* making empty trunk directory
authorstranger <dariusz.wiechecki@gmail.com>
Wed, 28 Jul 2010 08:53:52 +0000 (08:53 +0000)
committerstranger <dariusz.wiechecki@gmail.com>
Wed, 28 Jul 2010 08:53:52 +0000 (08:53 +0000)
git-svn-id: file:///svnroot/mdictionary/trunk@277 5bde0345-f819-0410-ac75-e5045f9217cc

252 files changed:
Doxyfile [deleted file]
Makefile [deleted file]
Makefile.am [deleted file]
Makefile_old [deleted file]
README [deleted file]
add_dict [deleted file]
autogen.sh [deleted file]
bm_converter/Makefile [deleted file]
bm_converter/build-stamp [deleted file]
bm_converter/build.log [deleted file]
bm_converter/configure-stamp [deleted file]
bm_converter/debian/README.Debian [deleted file]
bm_converter/debian/bmconverter.substvars [deleted file]
bm_converter/debian/changelog [deleted file]
bm_converter/debian/compat [deleted file]
bm_converter/debian/control [deleted file]
bm_converter/debian/copyright [deleted file]
bm_converter/debian/dirs [deleted file]
bm_converter/debian/docs [deleted file]
bm_converter/debian/files [deleted file]
bm_converter/debian/rules [deleted file]
bm_converter/desktop/bmconverter.desktop [deleted file]
bm_converter/desktop/bmconverter.png [deleted file]
bm_converter/desktop/bmconverter2.png [deleted file]
bm_converter/desktop/bmconverter3.png [deleted file]
bm_converter/src/bm-convert.c [deleted file]
bm_converter/src/bm-convert.h [deleted file]
bm_converter/src/main.c [deleted file]
configure.ac [deleted file]
data/bookmarks/bdb/bm_trans.db [deleted file]
data/bookmarks/bdb/bm_words.db [deleted file]
data/bookmarks/sql/ws_bookmarks [deleted file]
data/bookmarks/sql3/ws_bookmarks3 [deleted file]
data/bookmarks/xdxf/ws_bookmarks.cache [deleted file]
data/bookmarks/xdxf/ws_bookmarks.xdxf [deleted file]
data/dictionaries/EnglishFinnish/dict.cache [deleted file]
data/dictionaries/EnglishFinnish/dict.xdxf [deleted file]
data/dictionaries/EnglishFinnish/icon16.png [deleted file]
data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.dict.dz [deleted file]
data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.idx [deleted file]
data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.ifo [deleted file]
data/dictionaries/StarDictSampleDict/sample.dict.dz [deleted file]
data/dictionaries/StarDictSampleDict/sample.idx [deleted file]
data/dictionaries/StarDictSampleDict/sample.ifo [deleted file]
data/dictionaries/XDXFSampleDict/dict.xdxf [deleted file]
data/docs/mdictionary/changelog [deleted file]
data/docs/mdictionary/changelog.Debian [deleted file]
data/docs/mdictionary/copyright [deleted file]
data/docs/whitestorkdictionary/changelog [deleted file]
data/docs/whitestorkdictionary/changelog.Debian [deleted file]
data/docs/whitestorkdictionary/copyright [deleted file]
data/docs/whitestorkgui/changelog [deleted file]
data/docs/whitestorkgui/changelog.Debian [deleted file]
data/docs/whitestorkgui/copyright [deleted file]
data/docs/whitestorkplugins/changelog [deleted file]
data/docs/whitestorkplugins/changelog.Debian [deleted file]
data/docs/whitestorkplugins/copyright [deleted file]
data/icons/engine_xdxf_icon.png [deleted file]
data/icons/engine_xdxf_icon_2.png [deleted file]
data/icons/mdictionary.png [deleted file]
data/icons/mdictionary_about.png [deleted file]
data/icons/mdictionary_icon.png [deleted file]
data/icons/qgn_indi_search_mdictionary.png [deleted file]
data/icons/qgn_indi_search_whitestork.png [deleted file]
data/icons/whitestork.png [deleted file]
data/icons/whitestork_icon.png [deleted file]
data/icons/ws_top.png [deleted file]
data/icons/ws_tra.png [deleted file]
data/icons/ws_warning_icon.png [deleted file]
data/locale/POTFILES.in [deleted file]
data/locale/en_GB.po [deleted file]
data/locale/es.po [deleted file]
data/locale/pl_PL.po [deleted file]
data/mis/mdictionary-search.xml [deleted file]
data/mis/whitestork-search.xml [deleted file]
data/other/mdictionary.desktop [deleted file]
data/other/org.maemo.WhiteStorkGui.service [deleted file]
data/other/org.maemo.WhiteStorkManager.service [deleted file]
data/other/org.maemo.mdictionaryGui.service [deleted file]
data/other/org.maemo.mdictionaryManager.service [deleted file]
data/other/whitestork.desktop [deleted file]
data/package_contents/whitestork/DEBIAN/control [deleted file]
data/package_contents/whitestork/DEBIAN/postinst [deleted file]
data/package_contents/whitestork/DEBIAN/postrm [deleted file]
data/package_contents/whitestork/DEBIAN/preinst [deleted file]
data/package_contents/whitestork/DEBIAN/prerm [deleted file]
data/package_contents/whitestorkdictionary/DEBIAN/control [deleted file]
data/package_contents/whitestorkdictionary/DEBIAN/postinst [deleted file]
data/package_contents/whitestorkdictionary/DEBIAN/postrm [deleted file]
data/package_contents/whitestorkdictionary/DEBIAN/preinst [deleted file]
data/package_contents/whitestorkdictionary/DEBIAN/prerm [deleted file]
data/package_contents/whitestorkgui/DEBIAN/control [deleted file]
data/package_contents/whitestorkgui/DEBIAN/postinst [deleted file]
data/package_contents/whitestorkgui/DEBIAN/postrm [deleted file]
data/package_contents/whitestorkgui/DEBIAN/preinst [deleted file]
data/package_contents/whitestorkgui/DEBIAN/prerm [deleted file]
data/package_contents/whitestorkplugins/DEBIAN/control [deleted file]
data/package_contents/whitestorkplugins/DEBIAN/postinst [deleted file]
data/package_contents/whitestorkplugins/DEBIAN/postrm [deleted file]
data/package_contents/whitestorkplugins/DEBIAN/preinst [deleted file]
data/package_contents/whitestorkplugins/DEBIAN/prerm [deleted file]
debian/changelog [deleted file]
debian/compat [deleted file]
debian/control [deleted file]
debian/copyright [deleted file]
debian/docs [deleted file]
debian/mdictionary.dirs [deleted file]
debian/mdictionary.install [deleted file]
debian/mdictionary.postinst [deleted file]
debian/mdictionary.prerm [deleted file]
debian/rules [deleted file]
debian/whitestork.postinst [deleted file]
debian/whitestork.prerm [deleted file]
debian/whitestork.substvars [deleted file]
debian/whitestorkgui.postinst [deleted file]
debian/whitestorkgui.prerm [deleted file]
debian/whitestorkplugins.postinst [deleted file]
generate_locale [deleted file]
generate_repo [deleted file]
include/dictionary_engine.h [deleted file]
include/ws_dbus.h [deleted file]
include/ws_services.h [deleted file]
po/POTFILES.in [deleted file]
po/domain.mo [deleted file]
po/en_GB.po [deleted file]
po/pl_PL.po [deleted file]
po/pl_Pl.po [deleted file]
po/template.po [deleted file]
po/whitestork.mo [deleted file]
src/Makefile.am [deleted file]
src/bookmarks/Makefile.am [deleted file]
src/bookmarks/bdb/COPYING [deleted file]
src/bookmarks/bdb/Makefile [deleted file]
src/bookmarks/bdb/Makefile.am [deleted file]
src/bookmarks/bdb/Makefile_old [deleted file]
src/bookmarks/bdb/autogen.sh [deleted file]
src/bookmarks/bdb/configure.ac [deleted file]
src/bookmarks/bdb/data/bm_trans.db [deleted file]
src/bookmarks/bdb/data/bm_words.db [deleted file]
src/bookmarks/bdb/include/.kateconfig [deleted file]
src/bookmarks/bdb/include/engine_bookmark.h [deleted file]
src/bookmarks/bdb/src/.kateconfig [deleted file]
src/bookmarks/bdb/src/Makefile.am [deleted file]
src/bookmarks/bdb/src/berkeleyRead.c [deleted file]
src/bookmarks/bdb/src/engine_bookmark.c [deleted file]
src/bookmarks/bdb/src/test.c [deleted file]
src/bookmarks/bdb/src/testMakeDatabase.c [deleted file]
src/dbus_wrapper/COPYING [deleted file]
src/dbus_wrapper/Doxyfile [deleted file]
src/dbus_wrapper/Makefile [deleted file]
src/dbus_wrapper/Makefile.am [deleted file]
src/dbus_wrapper/Makefile_old [deleted file]
src/dbus_wrapper/configure.ac [deleted file]
src/dbus_wrapper/src/Makefile.am [deleted file]
src/dbus_wrapper/src/ws_dbus.c [deleted file]
src/gui/Makefile [deleted symlink]
src/gui/Makefile.am [deleted file]
src/gui/autogen.sh [deleted file]
src/gui/configure.ac [deleted file]
src/gui/include/pc-instances.h [deleted file]
src/gui/include/ws_gui.h [deleted file]
src/gui/include/ws_gui_callbacks.h [deleted file]
src/gui/include/ws_gui_layout.h [deleted file]
src/gui/include/ws_gui_utils.h [deleted file]
src/gui/makefile_old [deleted file]
src/gui/src/Makefile.am [deleted file]
src/gui/src/dbus_wrapper [deleted symlink]
src/gui/src/pc-instances.c [deleted file]
src/gui/src/ws_gui.c [deleted file]
src/gui/src/ws_gui_callbacks.c [deleted file]
src/gui/src/ws_gui_layout.c [deleted file]
src/gui/src/ws_gui_utils.c [deleted file]
src/manager/COPYING [deleted file]
src/manager/Makefile [deleted file]
src/manager/Makefile.am [deleted file]
src/manager/Makefile_old [deleted file]
src/manager/autogen.sh [deleted file]
src/manager/configure.ac [deleted file]
src/manager/include/pc-instances.h [deleted file]
src/manager/include/untar.h [deleted file]
src/manager/include/ws_manager.h [deleted file]
src/manager/include/ws_mng_bookmarks_utils.h [deleted file]
src/manager/include/ws_mng_callbacks.h [deleted file]
src/manager/include/ws_mng_dictionary_utils.h [deleted file]
src/manager/include/ws_mng_gconf_utils.h [deleted file]
src/manager/include/ws_mng_searching_threads.h [deleted file]
src/manager/include/ws_mng_threads_utils.h [deleted file]
src/manager/src/Makefile.am [deleted file]
src/manager/src/dbus_wrapper [deleted symlink]
src/manager/src/untar.c [deleted file]
src/manager/src/whitestork.c [deleted file]
src/manager/src/ws_manager.c [deleted file]
src/manager/src/ws_mng_bookmarks_utils.c [deleted file]
src/manager/src/ws_mng_callbacks.c [deleted file]
src/manager/src/ws_mng_dictionary_utils.c [deleted file]
src/manager/src/ws_mng_gconf_utils.c [deleted file]
src/manager/src/ws_mng_searching_threads.c [deleted file]
src/manager/src/ws_mng_threads_utils.c [deleted file]
src/plugins/stardict/COPYING [deleted file]
src/plugins/stardict/Makefile [deleted file]
src/plugins/stardict/Makefile.am [deleted file]
src/plugins/stardict/Makefile_old [deleted file]
src/plugins/stardict/autogen.sh [deleted file]
src/plugins/stardict/configure.ac [deleted file]
src/plugins/stardict/doc/DICTFILE_FORMAT [deleted file]
src/plugins/stardict/include/data.h [deleted file]
src/plugins/stardict/include/defs.h [deleted file]
src/plugins/stardict/include/dictP.h [deleted file]
src/plugins/stardict/include/dictd.h [deleted file]
src/plugins/stardict/include/dictzip.h [deleted file]
src/plugins/stardict/include/engine API.h [deleted file]
src/plugins/stardict/include/engine_stardict.h [deleted file]
src/plugins/stardict/include/maa.h [deleted file]
src/plugins/stardict/precompiled/arm/data.o [deleted file]
src/plugins/stardict/precompiled/arm/debug.o [deleted file]
src/plugins/stardict/precompiled/arm/error.o [deleted file]
src/plugins/stardict/precompiled/arm/hash.o [deleted file]
src/plugins/stardict/precompiled/arm/log.o [deleted file]
src/plugins/stardict/precompiled/arm/memory.o [deleted file]
src/plugins/stardict/precompiled/arm/prime.o [deleted file]
src/plugins/stardict/precompiled/arm/stack.o [deleted file]
src/plugins/stardict/precompiled/arm/string.o [deleted file]
src/plugins/stardict/precompiled/arm/xmalloc.o [deleted file]
src/plugins/stardict/precompiled/i686/data.o [deleted file]
src/plugins/stardict/precompiled/i686/debug.o [deleted file]
src/plugins/stardict/precompiled/i686/error.o [deleted file]
src/plugins/stardict/precompiled/i686/hash.o [deleted file]
src/plugins/stardict/precompiled/i686/log.o [deleted file]
src/plugins/stardict/precompiled/i686/memory.o [deleted file]
src/plugins/stardict/precompiled/i686/prime.o [deleted file]
src/plugins/stardict/precompiled/i686/stack.o [deleted file]
src/plugins/stardict/precompiled/i686/string.o [deleted file]
src/plugins/stardict/precompiled/i686/xmalloc.o [deleted file]
src/plugins/stardict/src/Makefile.am [deleted file]
src/plugins/stardict/src/engine_stardict.c [deleted file]
src/plugins/stardict/src/test.c [deleted file]
src/plugins/stardict/test_dictsip/data.c [deleted file]
src/plugins/stardict/test_dictsip/data.h [deleted file]
src/plugins/stardict/test_dictsip/dictd.c [deleted file]
src/plugins/stardict/test_dictsip/dictd.h [deleted file]
src/plugins/stardict/test_dictsip/dictzip.c [deleted file]
src/plugins/stardict/test_dictsip/dictzip.h [deleted file]
src/plugins/xdxf/COPYING [deleted file]
src/plugins/xdxf/Makefile [deleted file]
src/plugins/xdxf/Makefile.am [deleted file]
src/plugins/xdxf/Makefile_old [deleted file]
src/plugins/xdxf/autogen.sh [deleted file]
src/plugins/xdxf/configure.ac [deleted file]
src/plugins/xdxf/include/engine_xdxf.h [deleted file]
src/plugins/xdxf/src/Makefile.am [deleted file]
src/plugins/xdxf/src/engine_xdxf.c [deleted file]
src/plugins/xdxf/src/test.c [deleted file]

diff --git a/Doxyfile b/Doxyfile
deleted file mode 100644 (file)
index b1166f5..0000000
--- a/Doxyfile
+++ /dev/null
@@ -1,1254 +0,0 @@
-# Doxyfile 1.5.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-
-PROJECT_NAME           = "mDictionary Project"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = "1.0.0"
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = doc
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of 
-# source files, where putting all generated files in the same directory would 
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, 
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, 
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, 
-# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE        = English
-
-# This tag can be used to specify the encoding used in the generated output. 
-# The encoding is not always determined by the language that is chosen, 
-# but also whether or not the output is meant for Windows or non-Windows users. 
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
-# forces the Windows encoding (this is the default for the Windows binary), 
-# whereas setting the tag to NO uses a Unix-style encoding (the default for 
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING   = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is 
-# used as the annotated text. Otherwise, the brief description is used as-is. 
-# If left blank, the following values are used ("$name" is automatically 
-# replaced with the name of the entity): "The $name class" "The $name widget" 
-# "The $name file" "is" "provides" "specifies" "contains" 
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       = 
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = YES
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if those 
-# members were ordinary class members. Constructors, destructors and assignment 
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
-# path to strip.
-
-STRIP_FROM_PATH        = 
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    = 
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like the Qt-style comments (thus requiring an 
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF      = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-
-DETAILS_AT_TOP         = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
-# a new page for each member. If set to NO, the documentation of a member will 
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                = "changes=\par Changes:\n"
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-# sources only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
-# sources only. Doxygen will then generate output that is more tailored for Java. 
-# For instance, namespaces will be presented as packages, qualified scopes 
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
-# include (a tag file for) the STL sources as input, then you should 
-# set this tag to YES in order to let doxygen match functions declarations and 
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
-# func(std::string) {}). This also make the inheritance and collaboration 
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = YES
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = YES
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-
-EXTRACT_STATIC         = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = YES
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = YES
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = YES
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = YES
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
-# of that file.
-
-SHOW_INCLUDE_FILES     = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = NO
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-# doxygen should invoke to get the current version for each file (typically from the 
-# version control system). Doxygen will invoke the program by executing (via 
-# popen()) the command <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
-# provided by doxygen. Whatever the program writes to standard output 
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for 
-# functions that are documented, but have no documentation for their parameters 
-# or return value. If set to NO (the default) doxygen will only warn about 
-# wrong or incomplete parameter documentation, but not about the absence of 
-# documentation.
-
-WARN_NO_PARAMDOC       = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. Optionally the format may contain 
-# $version, which will be replaced by the version of the file (if it could 
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-
-INPUT                  = "include" "src"
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
-
-FILE_PATTERNS          = "*.c" "*.h"
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = "src/plugins/stardict/test_dictzip" "include/OLD_dictionary_engine.h"
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
-# directories that are symbolic links (a Unix filesystem feature) are excluded 
-# from the input.
-
-EXCLUDE_SYMLINKS       = YES
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. Note that the wildcards are matched 
-# against the file with absolute path, so to exclude all test directories 
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       = "*/engine API.h" "*/test*" "*/maa.h" "*/dictzip.h" \
-                         "*/dictP.h" "*/dictd.h" "*/stardict/include/defs.h" \
-                         "*/stardict/include/data.h" "*/pc-instances.*"
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = 
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
-# ignored.
-
-INPUT_FILTER           = 
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
-# is applied to all files.
-
-FILTER_PATTERNS        = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = YES
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentstion.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code 
-# will point to the HTML generated by the htags(1) tool instead of doxygen 
-# built-in source browser. The htags tool is part of GNU's global source 
-# tagging system (see http://www.gnu.org/software/global/global.html). You 
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 3
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        = 
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output directory.
-
-CHM_FILE               = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 1
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = YES
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_SCHEMA             = 
-
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_DTD                = 
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = YES
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
-# instead of the = operator.
-
-PREDEFINED             = 
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse 
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-# or super classes. Setting the tag to NO turns the diagrams off. Note that 
-# this option is superseded by the HAVE_DOT option below. This is only a 
-# fallback. It is recommended to install and use dot, since it yields more 
-# powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
-# Language.
-
-UML_LOOK               = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a call dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable call graphs for selected 
-# functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a caller dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable caller graphs for selected 
-# functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
-# then doxygen will show the dependencies a directory has on other directories 
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               = 
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-
-DOTFILE_DIRS           = 
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_WIDTH    = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT   = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes 
-# that lay further from the root node will be omitted. Note that setting this 
-# option to 1 or 2 may greatly reduce the computation time needed for large 
-# code bases. Also note that a graph may be further truncated if the graph's 
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
-# the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-# background. This is disabled by default, which results in a white background. 
-# Warning: Depending on the platform used, enabling this option may lead to 
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
-# read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-# files in one run (i.e. multiple -o and -T options on the command line). This 
-# makes dot run faster, but since only newer versions of dot (>1.8.10) 
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
-# the various graphs.
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index 9172285..0000000
--- a/Makefile
+++ /dev/null
@@ -1,347 +0,0 @@
-ARCH = `arch`
-REP_TAG = ../tags
-REP_BRANCH = branches
-
-DEB_REP_DIR = www
-
-#declaration of directory names
-BINARIES = bin
-SOURCE = src
-INCLUDE = include
-DATA = data
-PLUGINS = ${SOURCE}/plugins
-XDXF_PLUGIN = ${PLUGINS}/xdxf
-STARDICT_PLUGIN = ${PLUGINS}/stardict
-GUI = ${SOURCE}/gui
-MANAGER = ${SOURCE}/manager
-DBUS = ${SOURCE}/dbus_wrapper
-BOOKMARKS:=bdb
-BOOKMARKS_DIR = ${SOURCE}/bookmarks/${BOOKMARKS}
-DESTDIR = 
-
-ifeq (${BOOKMARKS}, sql)
-       SQLITE:=-DSQLITE=0
-endif
-
-ifeq (${BOOKMARKS}, sql3)
-       SQLITE:=-DSQLITE=3
-endif
-
-PACKAGES = packages
-
-#probably trash
-STARDICT = stardict
-APP_NAME = mDictionary
-
-#versions
-MAJOR_VER = 1
-MINOR_VER = 0
-PATCH_VER = 0
-RELEASE_MAJOR_VER = 1
-RELEASE_MINOR_VER = 0
-RELEASE_PATCH_VER = 0
-PACK_VER = 0
-FRM_VER = 0.1
-
-# VERSION_FILE = ./${INCLUDE}/ws_version.h
-
-#package structure
-GUI_PACK_NAME = mdictionarygui
-MNG_PACK_NAME = mdictionary
-PLUGINS_PACK_NAME = mdictionaryplugins
-BOOKMARKS_PACK_NAME = mdictionarybookmarks
-META_PACK_NAME = mdictionarydictionary
-
-GUI_EXECUTABLE = ${BINARIES}/mdictionary
-GUI_SERVICEFILE = org.maemo.mdictionaryGui.service
-GUI_DIRS = ${DESTDIR}/usr/bin ${DESTDIR}/usr/share/applications/hildon ${DESTDIR}/usr/share/pixmaps ${DESTDIR}/usr/share/mis ${DESTDIR}/usr/share/dbus-1/services ${DESTDIR}/usr/share/locale  
-#${DESTDIR}/usr/share/doc/mdictionarygui
-GUI_DBUS = ${DATA}/other/${GUI_SERVICEFILE}
-GUI_ICONS = ${DATA}/icons/mdictionary_icon.png ${DATA}/icons/mdictionary.png ${DATA}/icons/ws_top.png ${DATA}/icons/ws_warning_icon.png ${DATA}/icons/qgn_indi_search_mdictionary.png ${DATA}/icons/ws_tra.png ${DATA}/icons/mdictionary_about.png
-GUI_LOCALE = ${DATA}/locale/out/
-GUI_DOC = ${DATA}/docs/${GUI_PACK_NAME}/
-GUI_OTHER = ${DATA}/other/mdictionary.desktop
-GUI_MIS = ${DATA}/mis/mdictionary-search.xml
-
-MNG_EXECUTABLE = ${BINARIES}/mdictionaryManager 
-MNG_SERVICEFILE = org.maemo.mdictionaryManager.service
-MNG_LIB = ${BINARIES}/engine_bookmarks.so
-MNG_DIRS = ${DESTDIR}/usr/bin ${DESTDIR}/usr/lib/mdictionary ${DESTDIR}/usr/share/dbus-1/services  ${DESTDIR}/usr/share/mdictionary ${DESTDIR}/usr/share/doc/${MNG_PACK_NAME}
-MNG_DBUS = ${DATA}/other/${MNG_SERVICEFILE}
-MNG_OTHER = ${DATA}/dictionaries 
-
-MNG_DICT1 = ${DATA}/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.dict.dz ${DATA}/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.idx ${DATA}/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.ifo ${DESTDIR}/usr/share/mdictionary/dictionaries/FinnishEnglish/
-MNG_DICT2 = ${DATA}/dictionaries/EnglishFinnish/dict.xdxf ${DATA}/dictionaries/EnglishFinnish/dict.cache ${DESTDIR}/usr/share/mdictionary/dictionaries/EnglishFinnish/
-
-MNG_DICT_DIRS = ${DESTDIR}/usr/share/mdictionary/dictionaries/FinnishEnglish/ ${DESTDIR}/usr/share/mdictionary/dictionaries/EnglishFinnish/
-
-MNG_BOOKMARKS = ${DATA}/bookmarks/${BOOKMARKS}/*
-MNG_DOC = ${DATA}/docs/${MNG_PACK_NAME}/
-
-PLUGINS_LIB = ${BINARIES}/engine_*.so
-PLUGINS_DIRS = ${DESTDIR}/usr/lib/mdictionary ${DESTDIR}/usr/share/pixmaps
-#${DESTDIR}/usr/share/doc/${PLUGINS_PACK_NAME} 
-PLUGINS_ICONS = ${DATA}/icons/engine_xdxf_icon.png
-PLUGINS_DOC = ${DATA}/docs/${PLUGINS_PACK_NAME}/
-
-META_DIRS = ${PACKAGES}/${META_PACK_NAME}/usr/share/doc/${META_PACK_NAME}
-META_DOC = ${DATA}/docs/${META_PACK_NAME}/
-
-MAIL_ADDRESS = mdictionary-devel@garage.maemo.org
-LOCALEDIR=/usr/share/locale
-GETTEXT_PACKAGE=mdictionary
-ALL_LINGUAS="en_GB"
-#APP_VER = ${MAJOR_VER}.${MINOR_VER}.`svn info | grep "Revision:" | awk '{print $$2}'`
-
-ifeq (${MAKECMDGOALS}, release-package)
-       APP_VER = ${RELEASE_MAJOR_VER}.${RELEASE_MINOR_VER}.${RELEASE_PATCH_VER}
-else
-       APP_VER = ${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}-build`svn log -r HEAD -q | grep -v -e -- | awk '{print $$1}' | tr -d r`
-endif
-
-FILES = ${DATA}/files_debbuild
-LOG_DIR = logs
-LOG_CLEAN = ${LOG_DIR}/clean.log
-LOG_BUILD = ${LOG_DIR}/build.log
-LOG_RUN = ${LOG_DIR}/run.log
-LOG_DEBS = ${LOG_DIR}/debs.log
-LOG_INST = ${LOG_DIR}/install.log
-
-first: build
-       @echo -e -n ""
-
-tag-version: clean
-               @install -d ${REP_TAG}/${APP_NAME}-${APP_VER}
-               @tar -czf ${REP_TAG}/${APP_NAME}-${APP_VER}/${APP_NAME}-${APP_VER}.tar.gz ../trunk/* --exclude .svn
-               @svn add ${REP_TAG}/${APP_NAME}-${APP_VER} 
-               @svn ci ${REP_TAG}/${APP_NAME}-${APP_VER} -m "Tagged new version: ${APP_NAME}-${APP_VER}"
-
-send-last:     debs
-               @tar -czf ${APP_NAME}-${APP_VER}.tar.gz *_${APP_VER}-${PACK_VER}_${ARCH}.deb
-               @echo -e -n "#!/bin/bash\n\
-                       mutt -x -a ~/debs.log -a ~/build.log -a ~/${APP_NAME}-${APP_VER}.tar.gz -s \"[mdictionary]: daily build - version ${APP_NAME}-${APP_VER}\" ${MAIL_ADDRESS} <~/mail.content\n\
-                       rm -f ~/${APP_NAME}-${APP_VER}.tar.gz\n" > mail.script
-
-               @chmod +x mail.script
-
-               @echo -e -n "\
-                       This message was generated automatically , please do not reply.\n\
-                       Attachment: ${APP_NAME}-${APP_VER}.tar.gz - tarball with the newest mdictionary's packages.\n\
-                       Attachment: build.log - logs from building binaries.\n\
-                       Attachment: debs.log - logs from making *.deb packages.\n\n\
-                       Automatic Building Framework ver: ${FRM_VER}\nCopyright 2006 ComArch S.A.\n" > mail.content
-               @scp ${APP_NAME}-${APP_VER}.tar.gz krzsas@localhost:~/
-               @scp ${LOG_BUILD} krzsas@localhost:~/
-               @scp ${LOG_DEBS} krzsas@localhost:~/
-               @scp mail.script krzsas@localhost:~/
-               @scp mail.content krzsas@localhost:~/
-               @rm -f mail.script
-               @rm -f mail.content
-               @ssh krzsas@localhost  ./mail.script
-
-localization:
-               @echo -e -n "Generating locale...\n"
-               @echo -e -n "Generating locale...\n" > ${LOG_BUILD}
-               
-               @./generate_locale ${DATA}/locale/ ${GUI_LOCALE}
-               @echo -e -n "Locale generation successfully completed...\n"
-               @echo -e -n "Locale generation successfully completed...\n" > ${LOG_BUILD}
-
-build: pre-build  ${BINARIES}/ws_dbus.o ${GUI_EXECUTABLE} ${MNG_EXECUTABLE} ${BINARIES}/engine_bookmarks.so plugins
-               @echo -e -n "\nBuilding mdictionary is finished.\n"
-
-pre-build:
-               @echo -e -n "Building mdictionary... \n"
-               @echo -e -n "" > ${LOG_BUILD}
-
-plugins: ${BINARIES}/engine_xdxf.so ${BINARIES}/engine_stardict.so
-               
-
-${MNG_EXECUTABLE}: 
-# update-version
-               @echo -e -n "**--> Compiling Manager...\n"
-               @echo -e -n "**--> Compiling Manager...\n" >> ${LOG_BUILD}
-               @make SQLITE=${SQLITE} -C ${MANAGER} >> ${LOG_BUILD}
-
-${BINARIES}/ws_dbus.o:
-               @echo -e -n "**--> Compiling D-BUS Wrapper... \n"
-               @echo -e -n "**--> Compiling D-BUS Wrapper... \n" >> ${LOG_BUILD}
-#              @cd ${DBUS} && make >> ../../${LOG_BUILD}
-               @make -C ${DBUS} >> ${LOG_BUILD}
-
-${GUI_EXECUTABLE}: 
-#update-version
-               @echo -e -n "**--> Compiling User Interface...\n"
-               @echo -e -n "**--> Compiling User Interface...\n" >> ${LOG_BUILD}
-#              @cd ${GUI} && make APP_VER=${APP_VER} >> ../../${LOG_BUILD}
-               @make APP_VER=${APP_VER} -C ${GUI} >> ${LOG_BUILD}
-
-${BINARIES}/engine_xdxf.so: 
-# update-version
-               @echo -e -n "**--> Compiling XDXF Engine...\n"
-               @echo -e -n "**--> Compiling XDXF Engine...\n" >> ${LOG_BUILD}
-#              @cd ${XDXF_PLUGIN} && make >> ../../../${LOG_BUILD}
-               @make -C ${XDXF_PLUGIN} >> ${LOG_BUILD}
-
-${BINARIES}/engine_stardict.so:  
-# update-version
-               @echo -e -n "**--> Compiling StarDict Engine...\n"
-               @echo -e -n "**--> Compiling StarDict Engine...\n" >> ${LOG_BUILD}
-#              @cd ${STARDICT_PLUGIN} && make >> ../../../${LOG_BUILD}
-               @make -C ${STARDICT_PLUGIN} >> ${LOG_BUILD}
-
-${BINARIES}/engine_bookmarks.so: 
-# update-version
-               @echo -e -n "**--> Compiling Bookmarks...\n"
-               @echo -e -n "**--> Compiling Bookmarks...\n" >> ${LOG_BUILD}
-               @make -C ${BOOKMARKS_DIR} >> ${LOG_BUILD}
-               
-clean-logs:     
-               @echo -e -n "Cleaning all logs\n"
-               @rm -f ${LOG_DIR}/*.log
-
-clean: clean-logs
-               @-echo -e -n "Cleaning project directories\n"
-               @echo -e -n "" > ${LOG_CLEAN}
-               @-rm -f ${BINARIES}/* >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-rm -f *~ >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-rm -f *.deb >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-rm -rf ${PACKAGES}/*
-               @-make -C ${GUI} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-make -C ${DBUS} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-make -C ${XDXF_PLUGIN} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-make -C ${STARDICT_PLUGIN} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-cd ${MANAGER} && make clean >> ../../${LOG_CLEAN} 2>> ../../${LOG_CLEAN}
-               @-make -C ${MANAGER} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @find src/bookmarks/ -mindepth 1 -maxdepth 1 -type d -not -name .svn -exec make -C {} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN} \;
-               @-rm -rf ${GUI_LOCALE}*
-               
-#              @-cd ${GUI} && make clean >> ../../${LOG_CLEAN} 2>> ../../${LOG_CLEAN}
-#              @-cd ${DBUS} && make clean >> ../../${LOG_CLEAN} 2>> ../../${LOG_CLEAN}
-#              @-cd ${XDXF_PLUGIN} && make clean >> ../../../${LOG_CLEAN} 2>> ../../../${LOG_CLEAN}
-#              @-cd ${STARDICT_PLUGIN} && make clean >> ../../../${LOG_CLEAN} 2>> ../../../${LOG_CLEAN}
-#              @-cd ${BOOKMARKS_DIR} && make clean >> ../../../${LOG_CLEAN} 2>> ../../../${LOG_CLEAN}
-
-run: clean install entries run-dict clean-temp
-
-
-run-dict:
-               @run-standalone.sh mdictionaryManager
-
-clean-temp:
-               @-fakeroot rm -rf /usr/share/mdictionary
-               @-fakeroot rm -rf /usr/lib/mdictionary
-               @-fakeroot rm -rf /usr/include/mdictionary
-               @-fakeroot rm -f /etc/others-menu/extra_applications/0112_mdictionarygui.desktop
-               @-fakeroot rm -f /usr/share/applications/hildon/mdictionarygui.desktop 
-               @-fakeroot rm -f /usr/share/pixmaps/mdictionary.png 
-               @-fakeroot rm -f /usr/share/pixmaps/mdictionary_icon.png
-               @-fakeroot rm -f /usr/bin/mdictionary
-               @-fakeroot rm -f /usr/bin/mdictionaryManager
-               @-fakeroot rm -f /usr/share/applications/hildon/mdictionarygui.desktop 
-               @-fakeroot rm -f /usr/lib/mdictionary/engine_xdxf.so
-               @-fakeroot rm -f /usr/lib/mdictionary/engine_stardict.so
-
-#              gconftool-2 --recursive-unset /apps/maemo/mdictionary
-
-install-manager: localization ${BINARIES}/ws_dbus.o  ${BINARIES}/engine_bookmarks.so ${MNG_EXECUTABLE}
-               @install -d ${MNG_DIRS}
-               @cp ${MNG_EXECUTABLE} ${DESTDIR}/usr/bin
-               @cp ${MNG_LIB} ${DESTDIR}/usr/lib/mdictionary
-               @cp ${MNG_DBUS} ${DESTDIR}/usr/share/dbus-1/services
-               @find  ${MNG_DOC} -type f -not -path *.svn* -exec cp {} ${DESTDIR}/usr/share/doc/${MNG_PACK_NAME} \;
-               
-#              @install -d ${MNG_DICT_DIRS}
-#              @cp ${MNG_DICT1}
-#              @cp ${MNG_DICT2}
-               
-               @install -d ${DESTDIR}/usr/share/mdictionary/dictionaries/bookmarks
-               @cp -rf ${MNG_BOOKMARKS} ${DESTDIR}/usr/share/mdictionary/dictionaries/bookmarks
-               
-install-gui:   ${BINARIES}/ws_dbus.o ${GUI_EXECUTABLE} 
-               @install -d ${GUI_DIRS}
-               @cp ${GUI_EXECUTABLE} ${DESTDIR}/usr/bin
-               @cp ${GUI_ICONS} ${DESTDIR}/usr/share/pixmaps
-               @cp ${GUI_DBUS} ${DESTDIR}/usr/share/dbus-1/services
-               @cp ${GUI_OTHER} ${DESTDIR}/usr/share/applications/hildon
-               @cp ${GUI_MIS} ${DESTDIR}/usr/share/mis
-               @cp -a ${GUI_LOCALE}* ${DESTDIR}/usr/share/locale/              
-#              @find  ${GUI_DOC} -type f -not -path *.svn* -exec cp {} ${DESTDIR}/usr/share/doc/${GUI_PACK_NAME} \;
-
-install-plugins: plugins
-               @install -d ${PLUGINS_DIRS}
-               @cp ${PLUGINS_LIB} ${DESTDIR}/usr/lib/mdictionary
-               @cp ${PLUGINS_ICONS} ${DESTDIR}/usr/share/pixmaps
-               @install -d ${MNG_DICT_DIRS}
-               @cp ${MNG_DICT1}
-               @cp ${MNG_DICT2}
-#              @find  ${PLUGINS_DOC} -type f -not -path *.svn* -exec cp {} ${DESTDIR}/usr/share/doc/${PLUGINS_PACK_NAME} \;
-
-install-mdictionary:   install-manager install-gui install-plugins
-
-install:       install-manager install-gui install-plugins
-               @echo -e "\n\nIf you are installing mdictionary, please run 'make entries', before running the application ( not as root )\n\n"
-
-entries:       
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/StarDictSampleDict/name "Polish - English Sample Dictionary"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/StarDictSampleDict/path "/usr/share/mdictionary/dictionaries/StarDictSampleDict"
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/StarDictSampleDict/active true
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/StarDictSampleDict/optimized false
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/XDXFSampleDict/name "English - Polish Sample Dictionary"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/XDXFSampleDict/path "/usr/share/mdictionary/dictionaries/XDXFSampleDict"
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/XDXFSampleDict/active true
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/XDXFSampleDict/optimized false
-               
-               gconftool-2 --type string --set /apps/maemo/mdictionary/engines/bookmarks/path "/usr/lib/mdictionary/engine_bookmarks.so"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/bookmarks/name "Bookmarks"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/bookmarks/path "/usr/share/mdictionary/dictionaries/bookmarks"
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/bookmarks/active false
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/bookmarks/optimized true
-               chmod -R 0777 /usr/share/mdictionary/dictionaries
-               
-               gconftool-2 --type string --set /apps/maemo/mdictionary/engines/xdxf/path "/usr/lib/mdictionary/engine_xdxf.so"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/engines/stardict/path "/usr/lib/mdictionary/engine_stardict.so"
-               
-#              maemo-select-menu-location mdictionary.desktop
-
-
-install_deb: clean-inst-log uninstall eng-deb-i mng-deb-i gui-deb-i
-               @echo -e -n "All packages have been installed/reinstalled.\n"
-
-clean-inst-log: 
-               @echo -n "" > ${LOG_INST}
-
-uninstall:
-               @-fakeroot dpkg --purge mdictionary
-#              @-fakeroot dpkg --purge mdictionarydictionary
-
-display: access
-               @fakeroot su ${USER} -c 'af-sb-init.sh start'   
-
-display-s: access
-               @fakeroot su ${USER} -c 'af-sb-init.sh stop'
-
-display-r: access
-               @fakeroot su ${USER} -c 'af-sb-init.sh restart'
-
-access:
-               @fakeroot chmod 0777 /var/run
-
-release-package: clean debs meta-package
-               @echo "Release package generation successfully completed"
-
-snapshot: tag-version send-last
-
-repo:  release-package meta-package
-
-       @rm -rf ${DEB_REP_DIR}
-       @./generate_repo ${DEB_REP_DIR}
-       
-package: clean
-       dpkg-buildpackage -rfakeroot
-
-.PHONY: docs
-docs:
-       doxygen Doxyfile
-       # doxygen always put wrong meta charset tag - we have repair it manualy
-       sed -i -e "s/charset=iso-8859-1/charset=utf-8/g" doc/html/*html
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644 (file)
index 48476de..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src
-
-.PHONY: docs
-docs:
-       doxygen Doxyfile
-       # doxygen always put wrong meta charset tag - we have repair it manualy
-       sed -i -e "s/charset=iso-8859-1/charset=utf-8/g" doc/html/*html
\ No newline at end of file
diff --git a/Makefile_old b/Makefile_old
deleted file mode 100644 (file)
index 9172285..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-ARCH = `arch`
-REP_TAG = ../tags
-REP_BRANCH = branches
-
-DEB_REP_DIR = www
-
-#declaration of directory names
-BINARIES = bin
-SOURCE = src
-INCLUDE = include
-DATA = data
-PLUGINS = ${SOURCE}/plugins
-XDXF_PLUGIN = ${PLUGINS}/xdxf
-STARDICT_PLUGIN = ${PLUGINS}/stardict
-GUI = ${SOURCE}/gui
-MANAGER = ${SOURCE}/manager
-DBUS = ${SOURCE}/dbus_wrapper
-BOOKMARKS:=bdb
-BOOKMARKS_DIR = ${SOURCE}/bookmarks/${BOOKMARKS}
-DESTDIR = 
-
-ifeq (${BOOKMARKS}, sql)
-       SQLITE:=-DSQLITE=0
-endif
-
-ifeq (${BOOKMARKS}, sql3)
-       SQLITE:=-DSQLITE=3
-endif
-
-PACKAGES = packages
-
-#probably trash
-STARDICT = stardict
-APP_NAME = mDictionary
-
-#versions
-MAJOR_VER = 1
-MINOR_VER = 0
-PATCH_VER = 0
-RELEASE_MAJOR_VER = 1
-RELEASE_MINOR_VER = 0
-RELEASE_PATCH_VER = 0
-PACK_VER = 0
-FRM_VER = 0.1
-
-# VERSION_FILE = ./${INCLUDE}/ws_version.h
-
-#package structure
-GUI_PACK_NAME = mdictionarygui
-MNG_PACK_NAME = mdictionary
-PLUGINS_PACK_NAME = mdictionaryplugins
-BOOKMARKS_PACK_NAME = mdictionarybookmarks
-META_PACK_NAME = mdictionarydictionary
-
-GUI_EXECUTABLE = ${BINARIES}/mdictionary
-GUI_SERVICEFILE = org.maemo.mdictionaryGui.service
-GUI_DIRS = ${DESTDIR}/usr/bin ${DESTDIR}/usr/share/applications/hildon ${DESTDIR}/usr/share/pixmaps ${DESTDIR}/usr/share/mis ${DESTDIR}/usr/share/dbus-1/services ${DESTDIR}/usr/share/locale  
-#${DESTDIR}/usr/share/doc/mdictionarygui
-GUI_DBUS = ${DATA}/other/${GUI_SERVICEFILE}
-GUI_ICONS = ${DATA}/icons/mdictionary_icon.png ${DATA}/icons/mdictionary.png ${DATA}/icons/ws_top.png ${DATA}/icons/ws_warning_icon.png ${DATA}/icons/qgn_indi_search_mdictionary.png ${DATA}/icons/ws_tra.png ${DATA}/icons/mdictionary_about.png
-GUI_LOCALE = ${DATA}/locale/out/
-GUI_DOC = ${DATA}/docs/${GUI_PACK_NAME}/
-GUI_OTHER = ${DATA}/other/mdictionary.desktop
-GUI_MIS = ${DATA}/mis/mdictionary-search.xml
-
-MNG_EXECUTABLE = ${BINARIES}/mdictionaryManager 
-MNG_SERVICEFILE = org.maemo.mdictionaryManager.service
-MNG_LIB = ${BINARIES}/engine_bookmarks.so
-MNG_DIRS = ${DESTDIR}/usr/bin ${DESTDIR}/usr/lib/mdictionary ${DESTDIR}/usr/share/dbus-1/services  ${DESTDIR}/usr/share/mdictionary ${DESTDIR}/usr/share/doc/${MNG_PACK_NAME}
-MNG_DBUS = ${DATA}/other/${MNG_SERVICEFILE}
-MNG_OTHER = ${DATA}/dictionaries 
-
-MNG_DICT1 = ${DATA}/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.dict.dz ${DATA}/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.idx ${DATA}/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.ifo ${DESTDIR}/usr/share/mdictionary/dictionaries/FinnishEnglish/
-MNG_DICT2 = ${DATA}/dictionaries/EnglishFinnish/dict.xdxf ${DATA}/dictionaries/EnglishFinnish/dict.cache ${DESTDIR}/usr/share/mdictionary/dictionaries/EnglishFinnish/
-
-MNG_DICT_DIRS = ${DESTDIR}/usr/share/mdictionary/dictionaries/FinnishEnglish/ ${DESTDIR}/usr/share/mdictionary/dictionaries/EnglishFinnish/
-
-MNG_BOOKMARKS = ${DATA}/bookmarks/${BOOKMARKS}/*
-MNG_DOC = ${DATA}/docs/${MNG_PACK_NAME}/
-
-PLUGINS_LIB = ${BINARIES}/engine_*.so
-PLUGINS_DIRS = ${DESTDIR}/usr/lib/mdictionary ${DESTDIR}/usr/share/pixmaps
-#${DESTDIR}/usr/share/doc/${PLUGINS_PACK_NAME} 
-PLUGINS_ICONS = ${DATA}/icons/engine_xdxf_icon.png
-PLUGINS_DOC = ${DATA}/docs/${PLUGINS_PACK_NAME}/
-
-META_DIRS = ${PACKAGES}/${META_PACK_NAME}/usr/share/doc/${META_PACK_NAME}
-META_DOC = ${DATA}/docs/${META_PACK_NAME}/
-
-MAIL_ADDRESS = mdictionary-devel@garage.maemo.org
-LOCALEDIR=/usr/share/locale
-GETTEXT_PACKAGE=mdictionary
-ALL_LINGUAS="en_GB"
-#APP_VER = ${MAJOR_VER}.${MINOR_VER}.`svn info | grep "Revision:" | awk '{print $$2}'`
-
-ifeq (${MAKECMDGOALS}, release-package)
-       APP_VER = ${RELEASE_MAJOR_VER}.${RELEASE_MINOR_VER}.${RELEASE_PATCH_VER}
-else
-       APP_VER = ${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}-build`svn log -r HEAD -q | grep -v -e -- | awk '{print $$1}' | tr -d r`
-endif
-
-FILES = ${DATA}/files_debbuild
-LOG_DIR = logs
-LOG_CLEAN = ${LOG_DIR}/clean.log
-LOG_BUILD = ${LOG_DIR}/build.log
-LOG_RUN = ${LOG_DIR}/run.log
-LOG_DEBS = ${LOG_DIR}/debs.log
-LOG_INST = ${LOG_DIR}/install.log
-
-first: build
-       @echo -e -n ""
-
-tag-version: clean
-               @install -d ${REP_TAG}/${APP_NAME}-${APP_VER}
-               @tar -czf ${REP_TAG}/${APP_NAME}-${APP_VER}/${APP_NAME}-${APP_VER}.tar.gz ../trunk/* --exclude .svn
-               @svn add ${REP_TAG}/${APP_NAME}-${APP_VER} 
-               @svn ci ${REP_TAG}/${APP_NAME}-${APP_VER} -m "Tagged new version: ${APP_NAME}-${APP_VER}"
-
-send-last:     debs
-               @tar -czf ${APP_NAME}-${APP_VER}.tar.gz *_${APP_VER}-${PACK_VER}_${ARCH}.deb
-               @echo -e -n "#!/bin/bash\n\
-                       mutt -x -a ~/debs.log -a ~/build.log -a ~/${APP_NAME}-${APP_VER}.tar.gz -s \"[mdictionary]: daily build - version ${APP_NAME}-${APP_VER}\" ${MAIL_ADDRESS} <~/mail.content\n\
-                       rm -f ~/${APP_NAME}-${APP_VER}.tar.gz\n" > mail.script
-
-               @chmod +x mail.script
-
-               @echo -e -n "\
-                       This message was generated automatically , please do not reply.\n\
-                       Attachment: ${APP_NAME}-${APP_VER}.tar.gz - tarball with the newest mdictionary's packages.\n\
-                       Attachment: build.log - logs from building binaries.\n\
-                       Attachment: debs.log - logs from making *.deb packages.\n\n\
-                       Automatic Building Framework ver: ${FRM_VER}\nCopyright 2006 ComArch S.A.\n" > mail.content
-               @scp ${APP_NAME}-${APP_VER}.tar.gz krzsas@localhost:~/
-               @scp ${LOG_BUILD} krzsas@localhost:~/
-               @scp ${LOG_DEBS} krzsas@localhost:~/
-               @scp mail.script krzsas@localhost:~/
-               @scp mail.content krzsas@localhost:~/
-               @rm -f mail.script
-               @rm -f mail.content
-               @ssh krzsas@localhost  ./mail.script
-
-localization:
-               @echo -e -n "Generating locale...\n"
-               @echo -e -n "Generating locale...\n" > ${LOG_BUILD}
-               
-               @./generate_locale ${DATA}/locale/ ${GUI_LOCALE}
-               @echo -e -n "Locale generation successfully completed...\n"
-               @echo -e -n "Locale generation successfully completed...\n" > ${LOG_BUILD}
-
-build: pre-build  ${BINARIES}/ws_dbus.o ${GUI_EXECUTABLE} ${MNG_EXECUTABLE} ${BINARIES}/engine_bookmarks.so plugins
-               @echo -e -n "\nBuilding mdictionary is finished.\n"
-
-pre-build:
-               @echo -e -n "Building mdictionary... \n"
-               @echo -e -n "" > ${LOG_BUILD}
-
-plugins: ${BINARIES}/engine_xdxf.so ${BINARIES}/engine_stardict.so
-               
-
-${MNG_EXECUTABLE}: 
-# update-version
-               @echo -e -n "**--> Compiling Manager...\n"
-               @echo -e -n "**--> Compiling Manager...\n" >> ${LOG_BUILD}
-               @make SQLITE=${SQLITE} -C ${MANAGER} >> ${LOG_BUILD}
-
-${BINARIES}/ws_dbus.o:
-               @echo -e -n "**--> Compiling D-BUS Wrapper... \n"
-               @echo -e -n "**--> Compiling D-BUS Wrapper... \n" >> ${LOG_BUILD}
-#              @cd ${DBUS} && make >> ../../${LOG_BUILD}
-               @make -C ${DBUS} >> ${LOG_BUILD}
-
-${GUI_EXECUTABLE}: 
-#update-version
-               @echo -e -n "**--> Compiling User Interface...\n"
-               @echo -e -n "**--> Compiling User Interface...\n" >> ${LOG_BUILD}
-#              @cd ${GUI} && make APP_VER=${APP_VER} >> ../../${LOG_BUILD}
-               @make APP_VER=${APP_VER} -C ${GUI} >> ${LOG_BUILD}
-
-${BINARIES}/engine_xdxf.so: 
-# update-version
-               @echo -e -n "**--> Compiling XDXF Engine...\n"
-               @echo -e -n "**--> Compiling XDXF Engine...\n" >> ${LOG_BUILD}
-#              @cd ${XDXF_PLUGIN} && make >> ../../../${LOG_BUILD}
-               @make -C ${XDXF_PLUGIN} >> ${LOG_BUILD}
-
-${BINARIES}/engine_stardict.so:  
-# update-version
-               @echo -e -n "**--> Compiling StarDict Engine...\n"
-               @echo -e -n "**--> Compiling StarDict Engine...\n" >> ${LOG_BUILD}
-#              @cd ${STARDICT_PLUGIN} && make >> ../../../${LOG_BUILD}
-               @make -C ${STARDICT_PLUGIN} >> ${LOG_BUILD}
-
-${BINARIES}/engine_bookmarks.so: 
-# update-version
-               @echo -e -n "**--> Compiling Bookmarks...\n"
-               @echo -e -n "**--> Compiling Bookmarks...\n" >> ${LOG_BUILD}
-               @make -C ${BOOKMARKS_DIR} >> ${LOG_BUILD}
-               
-clean-logs:     
-               @echo -e -n "Cleaning all logs\n"
-               @rm -f ${LOG_DIR}/*.log
-
-clean: clean-logs
-               @-echo -e -n "Cleaning project directories\n"
-               @echo -e -n "" > ${LOG_CLEAN}
-               @-rm -f ${BINARIES}/* >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-rm -f *~ >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-rm -f *.deb >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-rm -rf ${PACKAGES}/*
-               @-make -C ${GUI} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-make -C ${DBUS} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-make -C ${XDXF_PLUGIN} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-make -C ${STARDICT_PLUGIN} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @-cd ${MANAGER} && make clean >> ../../${LOG_CLEAN} 2>> ../../${LOG_CLEAN}
-               @-make -C ${MANAGER} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN}
-               @find src/bookmarks/ -mindepth 1 -maxdepth 1 -type d -not -name .svn -exec make -C {} clean >> ${LOG_CLEAN} 2>> ${LOG_CLEAN} \;
-               @-rm -rf ${GUI_LOCALE}*
-               
-#              @-cd ${GUI} && make clean >> ../../${LOG_CLEAN} 2>> ../../${LOG_CLEAN}
-#              @-cd ${DBUS} && make clean >> ../../${LOG_CLEAN} 2>> ../../${LOG_CLEAN}
-#              @-cd ${XDXF_PLUGIN} && make clean >> ../../../${LOG_CLEAN} 2>> ../../../${LOG_CLEAN}
-#              @-cd ${STARDICT_PLUGIN} && make clean >> ../../../${LOG_CLEAN} 2>> ../../../${LOG_CLEAN}
-#              @-cd ${BOOKMARKS_DIR} && make clean >> ../../../${LOG_CLEAN} 2>> ../../../${LOG_CLEAN}
-
-run: clean install entries run-dict clean-temp
-
-
-run-dict:
-               @run-standalone.sh mdictionaryManager
-
-clean-temp:
-               @-fakeroot rm -rf /usr/share/mdictionary
-               @-fakeroot rm -rf /usr/lib/mdictionary
-               @-fakeroot rm -rf /usr/include/mdictionary
-               @-fakeroot rm -f /etc/others-menu/extra_applications/0112_mdictionarygui.desktop
-               @-fakeroot rm -f /usr/share/applications/hildon/mdictionarygui.desktop 
-               @-fakeroot rm -f /usr/share/pixmaps/mdictionary.png 
-               @-fakeroot rm -f /usr/share/pixmaps/mdictionary_icon.png
-               @-fakeroot rm -f /usr/bin/mdictionary
-               @-fakeroot rm -f /usr/bin/mdictionaryManager
-               @-fakeroot rm -f /usr/share/applications/hildon/mdictionarygui.desktop 
-               @-fakeroot rm -f /usr/lib/mdictionary/engine_xdxf.so
-               @-fakeroot rm -f /usr/lib/mdictionary/engine_stardict.so
-
-#              gconftool-2 --recursive-unset /apps/maemo/mdictionary
-
-install-manager: localization ${BINARIES}/ws_dbus.o  ${BINARIES}/engine_bookmarks.so ${MNG_EXECUTABLE}
-               @install -d ${MNG_DIRS}
-               @cp ${MNG_EXECUTABLE} ${DESTDIR}/usr/bin
-               @cp ${MNG_LIB} ${DESTDIR}/usr/lib/mdictionary
-               @cp ${MNG_DBUS} ${DESTDIR}/usr/share/dbus-1/services
-               @find  ${MNG_DOC} -type f -not -path *.svn* -exec cp {} ${DESTDIR}/usr/share/doc/${MNG_PACK_NAME} \;
-               
-#              @install -d ${MNG_DICT_DIRS}
-#              @cp ${MNG_DICT1}
-#              @cp ${MNG_DICT2}
-               
-               @install -d ${DESTDIR}/usr/share/mdictionary/dictionaries/bookmarks
-               @cp -rf ${MNG_BOOKMARKS} ${DESTDIR}/usr/share/mdictionary/dictionaries/bookmarks
-               
-install-gui:   ${BINARIES}/ws_dbus.o ${GUI_EXECUTABLE} 
-               @install -d ${GUI_DIRS}
-               @cp ${GUI_EXECUTABLE} ${DESTDIR}/usr/bin
-               @cp ${GUI_ICONS} ${DESTDIR}/usr/share/pixmaps
-               @cp ${GUI_DBUS} ${DESTDIR}/usr/share/dbus-1/services
-               @cp ${GUI_OTHER} ${DESTDIR}/usr/share/applications/hildon
-               @cp ${GUI_MIS} ${DESTDIR}/usr/share/mis
-               @cp -a ${GUI_LOCALE}* ${DESTDIR}/usr/share/locale/              
-#              @find  ${GUI_DOC} -type f -not -path *.svn* -exec cp {} ${DESTDIR}/usr/share/doc/${GUI_PACK_NAME} \;
-
-install-plugins: plugins
-               @install -d ${PLUGINS_DIRS}
-               @cp ${PLUGINS_LIB} ${DESTDIR}/usr/lib/mdictionary
-               @cp ${PLUGINS_ICONS} ${DESTDIR}/usr/share/pixmaps
-               @install -d ${MNG_DICT_DIRS}
-               @cp ${MNG_DICT1}
-               @cp ${MNG_DICT2}
-#              @find  ${PLUGINS_DOC} -type f -not -path *.svn* -exec cp {} ${DESTDIR}/usr/share/doc/${PLUGINS_PACK_NAME} \;
-
-install-mdictionary:   install-manager install-gui install-plugins
-
-install:       install-manager install-gui install-plugins
-               @echo -e "\n\nIf you are installing mdictionary, please run 'make entries', before running the application ( not as root )\n\n"
-
-entries:       
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/StarDictSampleDict/name "Polish - English Sample Dictionary"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/StarDictSampleDict/path "/usr/share/mdictionary/dictionaries/StarDictSampleDict"
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/StarDictSampleDict/active true
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/StarDictSampleDict/optimized false
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/XDXFSampleDict/name "English - Polish Sample Dictionary"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/XDXFSampleDict/path "/usr/share/mdictionary/dictionaries/XDXFSampleDict"
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/XDXFSampleDict/active true
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/XDXFSampleDict/optimized false
-               
-               gconftool-2 --type string --set /apps/maemo/mdictionary/engines/bookmarks/path "/usr/lib/mdictionary/engine_bookmarks.so"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/bookmarks/name "Bookmarks"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/bookmarks/path "/usr/share/mdictionary/dictionaries/bookmarks"
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/bookmarks/active false
-               gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/bookmarks/optimized true
-               chmod -R 0777 /usr/share/mdictionary/dictionaries
-               
-               gconftool-2 --type string --set /apps/maemo/mdictionary/engines/xdxf/path "/usr/lib/mdictionary/engine_xdxf.so"
-               gconftool-2 --type string --set /apps/maemo/mdictionary/engines/stardict/path "/usr/lib/mdictionary/engine_stardict.so"
-               
-#              maemo-select-menu-location mdictionary.desktop
-
-
-install_deb: clean-inst-log uninstall eng-deb-i mng-deb-i gui-deb-i
-               @echo -e -n "All packages have been installed/reinstalled.\n"
-
-clean-inst-log: 
-               @echo -n "" > ${LOG_INST}
-
-uninstall:
-               @-fakeroot dpkg --purge mdictionary
-#              @-fakeroot dpkg --purge mdictionarydictionary
-
-display: access
-               @fakeroot su ${USER} -c 'af-sb-init.sh start'   
-
-display-s: access
-               @fakeroot su ${USER} -c 'af-sb-init.sh stop'
-
-display-r: access
-               @fakeroot su ${USER} -c 'af-sb-init.sh restart'
-
-access:
-               @fakeroot chmod 0777 /var/run
-
-release-package: clean debs meta-package
-               @echo "Release package generation successfully completed"
-
-snapshot: tag-version send-last
-
-repo:  release-package meta-package
-
-       @rm -rf ${DEB_REP_DIR}
-       @./generate_repo ${DEB_REP_DIR}
-       
-package: clean
-       dpkg-buildpackage -rfakeroot
-
-.PHONY: docs
-docs:
-       doxygen Doxyfile
-       # doxygen always put wrong meta charset tag - we have repair it manualy
-       sed -i -e "s/charset=iso-8859-1/charset=utf-8/g" doc/html/*html
diff --git a/README b/README
deleted file mode 100644 (file)
index e00ff93..0000000
--- a/README
+++ /dev/null
@@ -1,48 +0,0 @@
-mdictionary Multilingual Dictionary ver. 0.1.0 ALPHA
-
-
-
-What is mdictionary Multilingual Dictionary
-------------------------------------------
-mdictionary is a multilingual dictionary enabling its users to use many dictionary formats. Our final goal is to use many search engines so that different file formats could be used. They will be in a form of dynamically loadable modules. For now however, we have limited the project to one engine for the XDXF format. The application consists of four modules: 
-- GUI - written using GTK+ Hildon, GPL License
-- Engine - XDXF format parser, GPL license
-- Manager - thread management and GUI starting, GPL license
-- D-BUS wrapper - communication between GUI and Manager, LGPL license. 
-
-Compilation
------------
-
-In order to compile this application go to the mdictionary/trunk directory and run the following command:
-
-make clean && make
-
-However, it is important to put out, that this will only compile the program. You won't be able to run it. Read the Installation section for information on how to install mdictionary on your system.
-
-Installation
-------------
-
-The first thing to do, is setting an environment variable called REP_LOCATION, to match the directory containing local svn repository. This should be done in the following way: 
-
-export REP_LOCATION = /local/svn/repository
-
-In order to install the program, issue the following command:
-
-make debs && make debs-i
-
-These lines, compile the source code, create a debian package and install it onto your system.
-
-Running
--------
-
-After installation is successful, there should a mdictionary entry in the Extras submenu. All you have to do now is start it. Please refer to the mdictionary User Interface Specification for hints on how to use our dictionary. It is available under this URL: https://garage.maemo.org/docman/?group_id=58
-The package contains two dictionaries, so you can start using our app right away.
-
-Should there be any problems, please contact one of our developers via garage.maemo.org.
-
-
-Have fun using our application
-
-
-The mdictionary Multilingual dictionary developer's
-
diff --git a/add_dict b/add_dict
deleted file mode 100755 (executable)
index 6919957..0000000
--- a/add_dict
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-if [ -z $1 ]; then
-       echo -e "\n* AddDict utility - tool for adding dictionaries to GConf *\n"
-       echo -e "Usage:\n\n./add_dict <dictionary_file> <name_of_dictionary>\n"
-       
-else
-       if [ -z $2 ]; then
-               echo "Dictionary name wasn't specified. Run without parameters to get help."
-       else
-               if [ -e $1 ]; then
-                       gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/$2/name "$2"
-                       gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/$2/path "`pwd`/$1"
-                       gconftool-2 --type boolean --set /apps/maemo/mdictionary/dictionaries/$2/active false
-                       gconftool-2 --type boolean --set /apps/maemo/mdictionary/dictionaries/$2/optimized false
-                       gconftool-2 -R /apps/maemo/mdictionary/dictionaries/$2
-               else
-                       echo "Dictionary file couldn't be found. Run without parameters to get help."
-                       
-               fi
-               
-       fi
-fi
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755 (executable)
index 935031d..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-rm -rf compile config.sub config.guess depcomp install-sh ltmain.sh missing aclocal.m4  autom4te.cache/ Makefile.in configure
-rm config.log config.status libtool Makefile
-
-if [ "_""$1" != "_nogen" ] 
-then           
-               aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake
-fi
-
-cd src/dbus_wrapper    
-./autogen.sh "$1"
-cd ../gui
-./autogen.sh "$1"
-cd ../bookmarks/bdb
-./autogen.sh "$1"
-cd ../../manager  
-./autogen.sh "$1"
-cd ../plugins/xdxf
-./autogen.sh "$1"
-cd ../stardict
-./autogen.sh "$1"
-
diff --git a/bm_converter/Makefile b/bm_converter/Makefile
deleted file mode 100644 (file)
index fc45dc5..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-EXECUTABLE = bmconverter
-
-CFLAGS += `pkg-config --cflags hildon-libs hildon-fm gtk+-2.0 gnome-vfs-2.0` 
-LIBS += `pkg-config --libs hildon-libs hildon-fm gtk+-2.0 gnome-vfs-2.0` -lsqlite -ldb1 
-CC = gcc
-DEBUG = -g -Wall
-SOURCES = src/main.c \
-        src/bm-convert.c
-
-INSTALL_DIR = ${DESTDIR}/usr/bin
-INSTALL_DESKTOP = ${DESTDIR}/usr/share/applications/hildon
-INSTALL_ICON = ${DESTDIR}/usr/share/pixmaps
-INSTALL_SYMLINK = ${DESTDIR}/etc/others-menu/extra_applications
-
-
-OBJECTS = ${SOURCES:src/%.c=bin/%.o}
-
-ARCH = `uname -m`
-all: ${EXECUTABLE} ${SOURCES} ./${EXECUTABLE}.sh
-
-${EXECUTABLE}: ${OBJECTS}
-       ${CC} ${DEBUG} -o $@ ${OBJECTS} ${CFLAGS} ${LIBS}
-
-bin/%.o: src/%.c
-       ${CC} ${DEBUG} -c $< -o $@ ${CFLAGS}
-
-# only for tests!
-${EXECUTABLE}.sh:
-       @echo -e "Creating run script for \"${ARCH}\" architecture"
-       @echo "#!/bin/sh" > ./${EXECUTABLE}.sh
-       @echo "export LD_LIBRARY_PATH=lib_${ARCH}/" >> ./${EXECUTABLE}.sh
-       @if [ ${ARCH} == "arm" ]; then \
-               echo "run-standalone.sh ./${EXECUTABLE}" >> ./${EXECUTABLE}.sh; \
-       else \
-               echo "./${EXECUTABLE}" >> ./${EXECUTABLE}.sh; \
-       fi; 
-       @chmod u+x ./${EXECUTABLE}.sh
-
-run: ./${EXECUTABLE}.sh
-       ./${EXECUTABLE}.sh
-
-clean:
-       rm -f bin/*.o
-       rm -f ${EXECUTABLE}
-       rm -f ${EXECUTABLE}.sh
-
-install:
-       install -d ${INSTALL_DIR}
-       install -d ${INSTALL_DIR}/data
-       install -d ${INSTALL_DESKTOP}
-       install -d ${INSTALL_ICON}
-       install -d ${INSTALL_SYMLINK}
-       install ./${EXECUTABLE} ${INSTALL_DIR}
-       install -m666 ./desktop/bmconverter.desktop ${INSTALL_DESKTOP}
-       install -m666 ./desktop/bmconverter.png ${INSTALL_ICON}
-       ln -s ${INSTALL_DESKTOP}/bmconverter.desktop ${INSTALL_SYMLINK}/0120_bmconverter.desktop
-package:
-       dpkg-buildpackage -us -uc -rfakeroot > build.log
-
-package-clean:
-       fakeroot make -f debian/rules clean
diff --git a/bm_converter/build-stamp b/bm_converter/build-stamp
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/bm_converter/build.log b/bm_converter/build.log
deleted file mode 100644 (file)
index 019f874..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-dpkg-buildpackage: source package is bmconverter
-dpkg-buildpackage: source version is 0.1.1-1
-dpkg-buildpackage: source changed by ComArch SA <contact@comarch.com>
-dpkg-buildpackage: host architecture armel
-dpkg-buildpackage: source version without epoch 0.1.1-1
-make[1]: Entering directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-dh_testdir
-dh_testroot
-rm -f build-stamp configure-stamp
-# Add here commands to clean up after the build process.
-/scratchbox/tools/bin/make clean
-make[2]: Entering directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-rm -f bin/*.o
-rm -f bmconverter
-rm -f bmconverter.sh
-make[2]: Leaving directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-dh_clean 
-make[1]: Leaving directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-dpkg-source: building bmconverter in bmconverter_0.1.1-1.tar.gz
-dpkg-source: building bmconverter in bmconverter_0.1.1-1.dsc
-make[1]: Entering directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-dh_testdir
-# Add here commands to configure the package.
-touch configure-stamp
-dh_testdir
-# Add here commands to compile the package.
-/scratchbox/tools/bin/make
-make[2]: Entering directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-gcc -g -Wall -c src/main.c -o bin/main.o `pkg-config --cflags hildon-libs hildon-fm gtk+-2.0 gnome-vfs-2.0` 
-gcc -g -Wall -c src/bm-convert.c -o bin/bm-convert.o `pkg-config --cflags hildon-libs hildon-fm gtk+-2.0 gnome-vfs-2.0` 
-gcc -g -Wall -o bmconverter bin/main.o bin/bm-convert.o `pkg-config --cflags hildon-libs hildon-fm gtk+-2.0 gnome-vfs-2.0`  `pkg-config --libs hildon-libs hildon-fm gtk+-2.0 gnome-vfs-2.0` -lsqlite -ldb1 
-Creating run script for "arm" architecture
-make[2]: Leaving directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-#/usr/bin/docbook-to-man debian/mwallet.sgml > mwallet.1
-touch build-stamp
-make[1]: Leaving directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-make[1]: Entering directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-dh_testdir
-dh_testroot
-dh_clean -k 
-dh_installdirs
-# Add here commands to install the package 
-/scratchbox/tools/bin/make install DESTDIR=/home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter
-make[2]: Entering directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-install -d /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/usr/bin
-install -d /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/usr/bin/data
-install -d /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/usr/share/applications/hildon
-install -d /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/usr/share/pixmaps
-install -d /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/etc/others-menu/extra_applications
-install ./bmconverter /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/usr/bin
-install -m666 ./desktop/bmconverter.desktop /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/usr/share/applications/hildon
-install -m666 ./desktop/bmconverter.png /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/usr/share/pixmaps
-ln -s /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/usr/share/applications/hildon/bmconverter.desktop /home/lukasz/MyDocs/mdictionary/trunk/bm_converter/debian/bmconverter/etc/others-menu/extra_applications/0120_bmconverter.desktop
-make[2]: Leaving directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-dh_testdir
-dh_testroot
-dh_link
-dh_strip
-dh_compress
-dh_fixperms
-dh_installdeb
-dh_shlibdeps
-dh_gencontrol
-dh_md5sums
-dh_builddeb
-dpkg-deb: building package `bmconverter' in `../bmconverter_0.1.1-1_armel.deb'.
-make[1]: Leaving directory `/home/lukasz/MyDocs/mdictionary/trunk/bm_converter'
-dpkg-buildpackage: full upload; Debian-native package (full source is included)
diff --git a/bm_converter/configure-stamp b/bm_converter/configure-stamp
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/bm_converter/debian/README.Debian b/bm_converter/debian/README.Debian
deleted file mode 100644 (file)
index dcd26a5..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-mwallet for Debian
-------------------
-
-<possible notes regarding this package - if none, delete this file>
-
- -- unknown <perf@unknown>, Tue,  5 Sep 2006 13:20:34 +0200
diff --git a/bm_converter/debian/bmconverter.substvars b/bm_converter/debian/bmconverter.substvars
deleted file mode 100644 (file)
index 4398996..0000000
+++ /dev/null
@@ -1 +0,0 @@
-shlibs:Depends=hildon-fm1 (>= 0.29-1), hildon-libs0 (>= 0.12.24-3), libatk1.0-0 (>= 1.9.0), libc6 (>= 2.3.5-1), libdb1, libdbus-1-2 (>= 0.61), libdbus-glib-1-2 (>= 0.61), libgconf2-6 (>= 2.6.4.14), libglib2.0-0 (>= 2.8.6-1osso1), libgtk2.0-0 (>= 2:2.6.10-1.osso8), libosso-gnomevfs2-0, libpango1.0-0 (>= 1.8.1), libsqlite0 (>= 2.8.13)
diff --git a/bm_converter/debian/changelog b/bm_converter/debian/changelog
deleted file mode 100644 (file)
index 7797172..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-bmconverter (0.1.1-1) unstable; urgency=low
-
-  * initial release
-  * tool for converting WhiteStrok bookmarks form sqlite format to Berkeley DB
-  * this software is under development
-
- -- ComArch SA <contact@comarch.com>  Fri,  2 Mar 2007 09:00:34 +0200
-
diff --git a/bm_converter/debian/compat b/bm_converter/debian/compat
deleted file mode 100644 (file)
index b8626c4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-4
diff --git a/bm_converter/debian/control b/bm_converter/debian/control
deleted file mode 100644 (file)
index ccebe74..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Source: bmconverter
-Section: user/other
-Priority: optional
-Maintainer: ComArch SA <contact@comarch.com>
-Build-Depends: debhelper (>= 4.0.0)
-Standards-Version: 3.6.0
-
-Package: bmconverter
-Architecture: any
-Depends: libsqlite0 (>= 2.8.13)
-Description: Software for converting mdictionary bookmarks from sqlite format to Berkeley DB
-XB-Maemo-Icon-26:
- iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAABBklEQVRIidWW246EMAxD7dF+eP7c
- +0CH3pK0ZTUjrSVEISWHmLQC+JL48Dmd5okmaBm35srWsJeXRBIktcBc1r3cNgjkgaO2B3NBgxQm
- uJKzs3ETdPmlmje10cozh6AbQhIkJ2ACW+rnzlMGIwDNfWSddQHD+KuD3Dn7+UtIBYXfk0OgTaa3
- jQ4k/y41xmngSG8Lhwq5BPVAAnF7y+u8o0VcQQJqM0yQqCkaO6PE8xjJgm3bfDwSCO/DuvvyKupg
- no62qCKvImZv/gQSgYBSfmCbTzIAdR1NXZlaB4ACxOaczrY4tLN7/00XnJ8FFQjwjYqKPgcyAJt7
- HQAgaIadbejpH9Y/0S/jKXQ85bZN/wAAAABJRU5ErkJggg==
diff --git a/bm_converter/debian/copyright b/bm_converter/debian/copyright
deleted file mode 100644 (file)
index 86a935c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-ComArch S.A.
-All rights reserved.
diff --git a/bm_converter/debian/dirs b/bm_converter/debian/dirs
deleted file mode 100644 (file)
index ca882bb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin
-usr/sbin
diff --git a/bm_converter/debian/docs b/bm_converter/debian/docs
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/bm_converter/debian/files b/bm_converter/debian/files
deleted file mode 100644 (file)
index 7064ad1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-bmconverter_0.1.1-1_armel.deb user/other optional
diff --git a/bm_converter/debian/rules b/bm_converter/debian/rules
deleted file mode 100755 (executable)
index 3520295..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# GNU copyright 1997 to 1999 by Joey Hess.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-
-CFLAGS = -Wall -g
-PACKAGENAME = bm_converter
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-       CFLAGS += -O0
-else
-       CFLAGS += -O2
-endif
-ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
-       INSTALL_PROGRAM += -s
-endif
-
-configure: configure-stamp
-configure-stamp:
-       dh_testdir
-       # Add here commands to configure the package.
-
-       touch configure-stamp
-
-
-build: build-stamp
-
-build-stamp: configure-stamp 
-       dh_testdir
-
-       # Add here commands to compile the package.
-       $(MAKE)
-       #/usr/bin/docbook-to-man debian/mwallet.sgml > mwallet.1
-
-       touch build-stamp
-
-clean:
-       dh_testdir
-       dh_testroot
-       rm -f build-stamp configure-stamp
-
-       # Add here commands to clean up after the build process.
-       -$(MAKE) clean
-
-       dh_clean 
-
-install: build
-       dh_testdir
-       dh_testroot
-       dh_clean -k 
-       dh_installdirs
-
-       # Add here commands to install the package 
-       $(MAKE) install DESTDIR=$(CURDIR)/debian/bmconverter
-
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
-       dh_testdir
-       dh_testroot
-#      dh_installchangelogs 
-#      dh_installdocs
-#      dh_installexamples
-#      dh_install
-#      dh_installmenu
-#      dh_installdebconf       
-#      dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installmime
-#      dh_installinit
-#      dh_installcron
-#      dh_installinfo
-#      dh_installman
-       dh_link
-       dh_strip
-       dh_compress
-       dh_fixperms
-#      dh_perl
-#      dh_python
-#      dh_makeshlibs
-       dh_installdeb
-       dh_shlibdeps
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/bm_converter/desktop/bmconverter.desktop b/bm_converter/desktop/bmconverter.desktop
deleted file mode 100644 (file)
index b34ecb5..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Name=Bookmark converter
-Comment=mdictionary bookmark converter
-Exec=/usr/bin/bmconverter
-Icon=bmconverter
-Terminal=true
-Type=Application
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
-X-Window-Icon=bmconverter
diff --git a/bm_converter/desktop/bmconverter.png b/bm_converter/desktop/bmconverter.png
deleted file mode 100644 (file)
index a83c1e3..0000000
Binary files a/bm_converter/desktop/bmconverter.png and /dev/null differ
diff --git a/bm_converter/desktop/bmconverter2.png b/bm_converter/desktop/bmconverter2.png
deleted file mode 100644 (file)
index bb42018..0000000
Binary files a/bm_converter/desktop/bmconverter2.png and /dev/null differ
diff --git a/bm_converter/desktop/bmconverter3.png b/bm_converter/desktop/bmconverter3.png
deleted file mode 100644 (file)
index 751eb6e..0000000
Binary files a/bm_converter/desktop/bmconverter3.png and /dev/null differ
diff --git a/bm_converter/src/bm-convert.c b/bm_converter/src/bm-convert.c
deleted file mode 100644 (file)
index 20ef202..0000000
+++ /dev/null
@@ -1,664 +0,0 @@
-#include <hildon-widgets/hildon-window.h>
-#include <hildon-widgets/hildon-program.h>
-#include <string.h>
-#include <sqlite.h>
-#include <db/db.h>
-#include <fcntl.h>
-#include <unistd.h> 
-#include <glib/gstdio.h>
-#include <libgnomevfs/gnome-vfs.h>
-#include "bm-convert.h"
-
-#define WHITE_STORK_NAME "/usr/bin/mdictionaryManager"
-#define WHITE_STORK_BOOKMARK_LOC "/usr/share/mdictionary/dictionaries/bookmarks/ws_bookmarks"
-#define TMP_FILE "/media/mmc1/.bookmarks"
-#define WS_BERKELEY_BOOKMARK_FILES "/usr/share/mdictionary/dictionaries/bookmarks"
-
-#define g_strlen(string) ( NULL == (string) ? 0 : strlen(string) )
-
-struct _MainWindow
-{
-       HildonWindow* window;
-       HildonProgram* program;
-       GtkWidget* button_import;
-       GtkWidget* button_export;
-       GtkWidget* button_quit;
-       GtkWidget* box;
-       GtkWidget* label;
-};
-struct _BookmarkEntry
-{
-       gchar* word;
-       gchar* translation;
-};
-typedef struct _BookmarkEntry BookmarkEntry;
-
-static void on_button_export_clicked(GtkButton *button, gpointer user_data);
-static void on_button_import_clicked(GtkButton *button, gpointer user_data);
-static void on_button_quit_clicked(GtkButton *button, gpointer user_data);
-static gint bm_compare_key_words(const DBT *a, const DBT *b);
-//static gint bm_compare_key_trans(const DBT *a, const DBT *b);
-static gboolean delete_event_cb(GtkWidget *widget,
-                               GdkEvent  *event,
-                               gpointer   user_data);
-static void bm_save_freeID(guint* freeID, DB* db_trans);
-static gboolean bm_add_new_entry(gchar* word, gchar* translation, guint *freeID,
-                               DB* db_words, DB* db_trans);
-static gboolean bookmark_write();
-static gint compare_strings (gconstpointer a, gconstpointer b);
-static void free_bookmark(BookmarkEntry* self);
-MainWindow* bmc_create()
-{
-       g_debug("%s <->", __FUNCTION__);
-       MainWindow* self = g_try_new(MainWindow, 1);
-       if (self != NULL)
-       {
-               self->program = HILDON_PROGRAM(hildon_program_get_instance());
-               g_set_application_name("mdictionary bookmark converter");
-               self->window = HILDON_WINDOW(hildon_window_new());
-               hildon_program_add_window(self->program, self->window);
-               g_signal_connect(self->window, "delete_event", 
-                       G_CALLBACK(delete_event_cb), 
-                       self);
-               
-               self->box = gtk_vbox_new(FALSE, 10);
-               gtk_widget_show(self->box);
-               gtk_container_add(GTK_CONTAINER(self->window), self->box);
-
-               self->label = 
-                       gtk_label_new("This application converts mdictionary bookmarks'"
-                               " database from the sqlite format to the Berkeley DB"
-                               " format.\nThe processed files are copied"
-                               " from /usr/share/mdictionary/dictionaries/bookmarks"
-                               " to /media/mmc1/.bookmarks directory");
-               gtk_label_set_line_wrap(GTK_LABEL(self->label), TRUE);
-               gtk_widget_show(self->label);
-               gtk_box_pack_start(GTK_BOX(self->box), self->label, 
-                               FALSE, FALSE, 0);
-               self->button_export = gtk_button_new_with_label("Export bookmarks");
-               gtk_widget_show(self->button_export);
-               gtk_box_pack_start(GTK_BOX(self->box), self->button_export, 
-                               FALSE, FALSE, 0);
-               
-               self->button_import = gtk_button_new_with_label("Import bookmarks");
-               gtk_widget_show(self->button_import);
-               gtk_box_pack_start(GTK_BOX(self->box), self->button_import, 
-                               FALSE, FALSE, 0);
-               self->button_quit = gtk_button_new_with_label("Close");
-               gtk_widget_show(self->button_quit);
-               gtk_box_pack_start(GTK_BOX(self->box), self->button_quit, 
-                               FALSE, FALSE, 0);
-               g_signal_connect((gpointer) self->button_quit, "clicked",
-                    G_CALLBACK(on_button_quit_clicked),
-                    self);
-               g_signal_connect((gpointer) self->button_export, "clicked",
-                    G_CALLBACK(on_button_export_clicked),
-                    self);
-               g_signal_connect((gpointer) self->button_import, "clicked",
-                    G_CALLBACK(on_button_import_clicked),
-                    self);
-               
-               if (!g_file_test(WHITE_STORK_NAME, G_FILE_TEST_EXISTS))
-               {
-                       gtk_widget_set_sensitive(
-                               GTK_WIDGET(self->button_import),
-                               FALSE);
-                       gtk_widget_set_sensitive(
-                               GTK_WIDGET(self->button_export),
-                               FALSE);
-                       GtkWidget* dialog = gtk_message_dialog_new(
-                                       GTK_WINDOW(self->window),
-                                       GTK_DIALOG_DESTROY_WITH_PARENT,
-                                       GTK_MESSAGE_ERROR,
-                                       GTK_BUTTONS_OK,
-                                       "mdictionary not installed");
-                       gtk_widget_show_all(dialog);
-                       g_signal_connect_swapped(dialog,
-                                       "response", 
-                                       G_CALLBACK (gtk_widget_destroy),
-                                       dialog);
-               }
-               
-               gchar* tmp_w = g_strconcat(TMP_FILE,"/bm_words.db",NULL);
-               gchar* tmp_t = g_strconcat(TMP_FILE,"/bm_trans.db",NULL);
-               
-               if (g_file_test(tmp_w, G_FILE_TEST_EXISTS) && 
-                       g_file_test(tmp_t, G_FILE_TEST_EXISTS))
-               {
-                       gtk_widget_set_sensitive(
-                               GTK_WIDGET(self->button_export),
-                               FALSE);
-               }else
-               {
-                       gtk_widget_set_sensitive(
-                               GTK_WIDGET(self->button_import),
-                               FALSE);
-               }
-               gtk_widget_show_all(GTK_WIDGET(self->window));
-               g_free(tmp_w);
-               g_free(tmp_t);
-               
-               if(!gnome_vfs_initialized ()) {
-                       gnome_vfs_init ();                       
-               }
-       }
-       else
-       {
-               g_debug("Not enought memory");
-       }
-       return self;
-}
-
-void bmc_destroy(MainWindow* self)
-{
-       g_debug("->%s", __FUNCTION__);
-       gtk_widget_destroy(GTK_WIDGET(self->window));
-       g_free(self);
-       g_debug("<-%s", __FUNCTION__);
-}
-
-static gboolean delete_event_cb(GtkWidget *widget,
-                               GdkEvent  *event,
-                               gpointer   user_data)
-{
-       g_debug("%s->", __FUNCTION__);
-       MainWindow* app = (MainWindow*) user_data;
-       gtk_widget_hide_all(GTK_WIDGET(app->window));
-       gtk_main_quit();
-       g_debug("<-%s", __FUNCTION__);
-       return TRUE;
-}
-
-static void on_button_quit_clicked(GtkButton *button, gpointer user_data)
-{
-       g_debug("->%s", __FUNCTION__);
-       MainWindow* app = (MainWindow*) user_data;
-       gtk_widget_hide_all(GTK_WIDGET(app->window));
-       gtk_main_quit();
-       g_debug("<-%s", __FUNCTION__);
-}
-
-static void on_button_export_clicked(GtkButton *button, gpointer user_data)
-{
-       g_debug("->%s", __FUNCTION__);
-       MainWindow* self = (MainWindow*) user_data;
-       gboolean result = bookmark_write();
-       if (result)
-       {
-               GtkWidget* dialog = gtk_message_dialog_new(
-                                   GTK_WINDOW(self->window),
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_INFO,
-                                   GTK_BUTTONS_OK,
-                                   "All ok");  
-               gtk_widget_show_all(dialog);
-               g_signal_connect_swapped(dialog,
-                                       "response", 
-                                       G_CALLBACK (gtk_widget_destroy),
-                                       dialog);
-               gtk_widget_set_sensitive(self->button_import, TRUE);
-               gtk_widget_set_sensitive(self->button_export, FALSE);
-       }
-       else
-       {
-               GtkWidget* dialog= gtk_message_dialog_new(
-                                   GTK_WINDOW(self->window),
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_ERROR,
-                                   GTK_BUTTONS_OK,
-                                   "Export failed");   
-               gtk_widget_show_all(dialog);
-               g_signal_connect_swapped(dialog,
-                                       "response", 
-                                       G_CALLBACK (gtk_widget_destroy),
-                                       dialog);
-       }
-       
-       g_debug("<-%s", __FUNCTION__);
-}
-
-static void on_button_import_clicked(GtkButton *button, gpointer user_data)
-{
-       g_debug("->%s", __FUNCTION__);
-       MainWindow* self = (MainWindow*) user_data;
-       //gnome_vfs_configuration_init();
-       gchar* tmp_w = g_strconcat(TMP_FILE,"/bm_words.db",NULL);
-       gchar* tmp_t = g_strconcat(TMP_FILE,"/bm_trans.db",NULL);
-       
-       gchar* dest_w = g_strconcat(WS_BERKELEY_BOOKMARK_FILES,
-                                       "/bm_words.db",NULL);
-       gchar* dest_t = g_strconcat(WS_BERKELEY_BOOKMARK_FILES,
-                                       "/bm_trans.db",NULL);
-       GnomeVFSURI* word = gnome_vfs_uri_new(tmp_w);
-       GnomeVFSURI* translation = gnome_vfs_uri_new(tmp_t);
-       GnomeVFSURI* dest_trans = gnome_vfs_uri_new(dest_t);
-       GnomeVFSURI* dest_word = gnome_vfs_uri_new(dest_w);
-       GnomeVFSResult result = gnome_vfs_xfer_uri(word,
-                                        dest_word,
-                                        GNOME_VFS_XFER_REMOVESOURCE,
-                                        GNOME_VFS_XFER_ERROR_MODE_ABORT,
-                                        GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
-                                        NULL,
-                                        NULL);
-       result |= gnome_vfs_xfer_uri(translation,
-                                        dest_trans,
-                                        GNOME_VFS_XFER_REMOVESOURCE,
-                                        GNOME_VFS_XFER_ERROR_MODE_ABORT,
-                                        GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
-                                        NULL,
-                                        NULL);
-       
-       if (GNOME_VFS_NUM_ERRORS != result)
-       {
-               GtkWidget* dialog = gtk_message_dialog_new(
-                                   GTK_WINDOW(self->window),
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_INFO,
-                                   GTK_BUTTONS_OK,
-                                   "All ok");  
-               gtk_widget_show_all(dialog);
-               g_signal_connect_swapped(dialog,
-                                       "response", 
-                                       G_CALLBACK (gtk_widget_destroy),
-                                       dialog);
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(self->button_export),
-                       TRUE);
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(self->button_import),
-                       FALSE);
-               gnome_vfs_remove_directory(TMP_FILE);
-       }
-       else
-       {
-               GtkWidget* dialog= gtk_message_dialog_new(
-                                   GTK_WINDOW(self->window),
-                                   GTK_DIALOG_DESTROY_WITH_PARENT,
-                                   GTK_MESSAGE_ERROR,
-                                   GTK_BUTTONS_OK,
-                                   "Import failed");   
-               gtk_widget_show_all(dialog);
-               g_signal_connect_swapped(dialog,
-                                       "response", 
-                                       G_CALLBACK (gtk_widget_destroy),
-                                       dialog);
-       }
-       
-       g_free(tmp_w); tmp_w = NULL;
-       g_free(tmp_t); tmp_t = NULL;
-       g_free(dest_w); dest_w = NULL;
-       g_free(dest_t); dest_t = NULL;
-       gnome_vfs_uri_unref(word);
-       gnome_vfs_uri_unref(translation);
-       gnome_vfs_uri_unref(dest_trans);
-       gnome_vfs_uri_unref(dest_word);
-       //g_free(word); word = NULL;
-       //g_free(translation); translation = NULL;
-       //g_free(dest_trans); dest_trans = NULL;
-       //g_free(dest_word); dest_word = NULL;
-       
-       g_debug("<-%s", __FUNCTION__);
-}
-
-static gboolean bookmark_write()
-{
-       sqlite* db = NULL;
-       gchar* err = NULL;
-       sqlite_vm* query = NULL;
-        gchar* sql = NULL;
-       gint sql_res = 0;
-        const gchar* end;
-        gint nCol = 0;
-        const gchar** values = NULL;
-        const gchar** head = NULL;
-        gint status = 0;
-        gboolean first = TRUE;
-       guint id = 0;
-//     gchar* word = NULL;
-//     gchar* translation = NULL;
-       GArray* bookmarks_word = g_array_new(TRUE, TRUE, sizeof(gchar*));
-       GArray* bookmarks = g_array_new(TRUE, TRUE, sizeof(BookmarkEntry*));
-       guint i = 0;
-//------------------------------------------------------------------------------
-       DB* db_words = NULL;
-       DB* db_trans = NULL;
-       gchar* tmp_w = g_strconcat(TMP_FILE,"/bm_words.db",NULL);
-       gchar* tmp_t = g_strconcat(TMP_FILE,"/bm_trans.db",NULL);
-
-       
-       if (!g_file_test(TMP_FILE, G_FILE_TEST_IS_DIR))
-       {
-               int tmp = g_mkdir(TMP_FILE, 
-                               S_IRWXU | S_IRWXG | S_IROTH | S_IRWXO| S_IXOTH);
-               if ( 0 != tmp) return FALSE;
-       }
-       BTREEINFO info_words = {
-         0,            /* permit duplicate keys? */
-         0,                    /* cache size; 0 - default size */
-         0,                    /* page size; 0 - default */
-         0,                    /* byte order; 0 - use host order */
-         0,                    /* min page number per page; 0 - default=2 */
-         bm_compare_key_words, /* comparision function */
-         NULL                  /* prefix comparision function */
-       };
-       
-       BTREEINFO info_trans = {
-         0,            /* permit duplicate keys? */
-         0,                    /* cache size; 0 - default size */
-         0,                    /* page size; 0 - default */
-         0,                    /* byte order; 0 - use host order */
-         0,                    /* min page number per page; 0 - default=2 */
-         bm_compare_key_words, /* comparision function */
-         NULL                  /* prefix comparision function */
-       };
-       
-       db_words = 
-               dbopen(tmp_w,       /* On-disk file that holds the database. */
-                      O_CREAT | O_RDWR,       /* flags, like O_CREAT etc. */
-                      0755,        /* mode same as flags <hmmm> ? */
-                      DB_BTREE,    /* type */
-                      &(info_words)
-                     );
-       if (NULL == db_words) return FALSE;
-       db_trans = dbopen(tmp_t,       /* On-disk file that holds the database. */
-                      O_CREAT | O_RDWR,       /* flags, like O_CREAT etc. */
-                      0755,        /* mode same as flags <hmmm> ? */
-                      DB_BTREE,    /* type */
-                      &(info_trans)
-                     );
-       if (NULL == db_trans) return FALSE;
-       //bm_save_freeID(&id, db_trans);
-       //id++;
-       guint temp = 0;
-       DBT key = { &temp, sizeof(guint)};
-       DBT val = { &id, sizeof(guint) };
-       db_trans->put(db_trans, &key, &val, R_NOOVERWRITE);
-       db_trans->sync(db_trans, 0);
-       g_free(tmp_w); tmp_w = NULL;
-       g_free(tmp_t); tmp_t = NULL;
-//------------------------------------------------------------------------------
-       
-       db = sqlite_open(WHITE_STORK_BOOKMARK_LOC, 0600,& err);
-       if(!(db)) {
-               g_debug("Bookmark/%s->%s() opening bookmark file failed.%s\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       err
-                       );
-               g_free(err);
-               return FALSE;
-        }
-       else
-       {
-               sql = sqlite_mprintf("SELECT DISTINCT word FROM translations");
-               sql_res = sqlite_compile(db,  /* The open database */
-                                (const gchar*)sql, /* SQL statement to be compiled */
-                                &end,      /* OUT: uncompiled tail of zSql */
-                                &query,    /* OUT: the virtual machine */
-                                &err       /* OUT: Error message. */
-                                );
-               if(err || sql_res!=0) {
-                               g_debug("Error while compiling query:\n%s\nreason:%s\n",
-                               sql,err);
-                       sqlite_freemem(sql); sql = NULL;
-                       return FALSE;
-               }
-               
-               do { 
-                       first = TRUE;
-                       do {
-                               if(!first) sleep(1);
-                               first = FALSE;
-                               status = sqlite_step(query,
-                                               &nCol,
-                                               &values,
-                                               &head 
-                                               );
-                               if(status == SQLITE_ROW) {
-                                       gchar* word = g_strdup((gchar*)(&(values[0][0])));
-                                       g_debug(" word %s", word);
-                                       g_array_append_val(bookmarks_word, word);
-                               }
-                        } while((status == SQLITE_BUSY) && (status != SQLITE_ERROR));
-               } while((status == SQLITE_ROW) && (status != SQLITE_ERROR));
-               sqlite_finalize(query, &err);
-               sqlite_freemem(sql); sql = NULL;
-               g_array_sort(bookmarks_word, compare_strings);
-               for (i = 0; i<bookmarks_word->len; i++)
-               {
-               gchar* tran = NULL;
-               sql = NULL;
-               sql = sqlite_mprintf("SELECT translation FROM translations WHERE word LIKE '%q';",
-                               g_array_index(bookmarks_word, gchar*, i));
-               sql_res = sqlite_compile(db,  /* The open database */
-                                (const gchar*)sql, /* SQL statement to be compiled */
-                                &end,      /* OUT: uncompiled tail of zSql */
-                                &query,    /* OUT: the virtual machine */
-                                &err       /* OUT: Error message. */
-                                );
-               if(err || sql_res!=0) {
-                               g_debug("Error while compiling query:\n%s\nreason:%s\n",
-                               sql,err);
-                       sqlite_freemem(sql); sql = NULL;
-                       return FALSE;
-               }
-               
-               do { 
-                       first = TRUE;
-                       do {
-                               if(!first) sleep(1);
-                               first = FALSE;
-                               status = sqlite_step(query,
-                                               &nCol,
-                                               &values,
-                                               &head 
-                                               );
-                               if(status == SQLITE_ROW) {
-                                       //id = (guint)(&(values[0][1]));
-                                       if (tran != NULL){
-                                       tran = g_strconcat(tran,"<BR>", 
-                                               (gchar*)(&(values[0][0])), NULL);       
-                                       }else{
-                                       tran = g_strdup_printf("%s <BR>",
-                                               (gchar*)(&(values[0][0])));
-                                       }
-                               }
-                        } while((status == SQLITE_BUSY) && (status != SQLITE_ERROR));
-               } while((status == SQLITE_ROW) && (status != SQLITE_ERROR));
-                       BookmarkEntry* new_book = g_try_new(BookmarkEntry, 1);
-                       new_book->word = g_array_index(bookmarks_word, gchar* ,i);
-                                       /*g_convert(g_array_index(bookmarks_word, gchar* ,i),
-                                       -1,
-                                        "UTF-8",
-                                        "ISO-8859-1",
-                                        &bytes_read,
-                                        &bytes_written,
-                                        NULL);*/
-                       new_book->translation = tran;
-                                       /*g_convert(tran,
-                                       -1,
-                                        "UTF-8",
-                                        "ISO-8859-1",
-                                        &bytes_read,
-                                        &bytes_written,
-                                        NULL);*/
-                       g_array_append_val(bookmarks, new_book);
-                       sqlite_finalize(query, &err);
-                       sqlite_freemem(sql); sql = NULL;
-                       
-               }
-       }
-       id++;
-       for (i = 0; i<bookmarks->len; i++)
-       {
-               BookmarkEntry* index = g_array_index(bookmarks, BookmarkEntry*, i);
-               
-               gboolean result = bm_add_new_entry(index->word, index->translation, &id,
-                                               db_words, db_trans);
-               if (!result) return FALSE;
-       }
-       
-       for(i=0; i<bookmarks->len; i++) 
-       {
-               free_bookmark(g_array_index(bookmarks, BookmarkEntry*, i));
-       }
-       g_array_free(bookmarks, TRUE);
-       g_array_free(bookmarks_word, TRUE);
-       //g_free(word); word = NULL;
-       //g_free(translation); translation = NULL;
-       
-       sqlite_close(db);
-       db_words->close(db_words);
-       db_trans->close(db_trans);
-       return TRUE;
-}
-
-static gboolean bm_add_new_entry(gchar* word, gchar* translation, guint *freeID,
-                               DB* db_words, DB* db_trans)
-{
-       guint hash = g_str_hash(translation);
-       gboolean result = TRUE;
-
-       DBT new_key = { freeID , sizeof(guint) };
-       DBT new_val = { translation , g_strlen(translation) + 1};
-       gint db_res = db_trans->put(db_trans,
-                                       &new_key,
-                                       &new_val,
-                                       R_NOOVERWRITE
-                                       );
-       if(-1 == db_res)
-       {
-               result = FALSE;
-       }
-       else
-       {
-               new_key.data = word;
-               new_key.size = g_strlen(word) + 1;
-
-               // { number of entries , id of the first entry , hash #1 }
-               guint temp[3] = { 1 , *freeID, hash };
-               new_val.data = temp;
-               new_val.size = sizeof(guint) * 3;
-
-               db_res = db_words->put(db_words,
-                                       &new_key,
-                                       &new_val,
-                                       R_NOOVERWRITE
-                                       );
-               if(-1 == db_res)
-               {
-                       new_key.data = freeID;
-                       new_key.size =  sizeof(guint);
-                       db_trans->del(db_trans, &new_key, 0);
-                       result = FALSE;
-               }
-               else
-               {
-                       result = TRUE;
-                       (*freeID)++;
-                       g_debug("freeID %d", *freeID);
-                       bm_save_freeID(freeID, db_trans);
-               }
-       }
-       db_res = db_words->sync(db_words,0);
-       db_res |= db_trans->sync(db_trans,0);
-       if(0 == db_res)
-       {
-               g_debug("Bookmark/%s->%s() adding new bookmark successful.\n",
-                     (gchar*)__FILE__,(gchar*)__FUNCTION__);
-       }
-       else
-       {
-               g_debug("Bookmark/%s->%s() adding new bookmark failed.\n",
-                     (gchar*)__FILE__,(gchar*)__FUNCTION__);
-       }
-       return result;  
-}
-
-static void bm_save_freeID(guint *freeID, DB* db_trans) {
-       g_debug("Saving new freeID=%u...\n", *freeID);
-       guint temp = 0;
-       DBT key = { &temp, sizeof(guint)};
-       DBT val = { freeID, sizeof(guint) };
-
-       gint res = db_trans->del(db_trans, &key, 0);
-       if(-1 == res)
-       {
-               g_debug("Error while trying to delete old freeID!\n");
-               return;
-       }
-       else {
-               g_debug("Old freeID=%u deleted successfully!\n", *freeID-1);
-       }
-
-       res = db_trans->put(db_trans, &key, &val, R_NOOVERWRITE);
-       if(-1 == res || 1 == res)
-       {
-               g_debug("Error while trying to write new value for freeID!\n");
-       }
-       else {
-               g_debug("New freeID=%u written successfully!\n", *freeID);
-       }
-
-       res = db_trans->sync(db_trans, 0);
-       if(-1 == res || 1 == res)
-       {
-               
-               g_debug("Error while trying to write data to file!\n");
-       }
-       else {
-               g_debug("New data saved successfully to file!\n");
-       }       
-}
-
-// static gint bm_compare_key_trans(const DBT *a, const DBT *b) {
-//     guint tmpa;// = (guint*)(a->data);
-//     guint tmpb;// = (guint*)(b->data);
-//     memcpy(&tmpa, a->data, sizeof(guint));
-//     memcpy(&tmpb, b->data, sizeof(guint));
-// 
-//     if(tmpa == tmpb) return 0;
-//     if(tmpa  > tmpb) return 1;
-//     else return -1;
-// }
-
-static gint bm_compare_key_words(const DBT *a, const DBT *b) {
-       gchar* tmpa = g_utf8_casefold((gchar*)(a->data),-1);
-       gchar* tmpb = g_utf8_casefold((gchar*)(b->data),-1);
-       gint result = g_utf8_collate(tmpa,tmpb);
-       g_free(tmpa);
-       g_free(tmpb);
-       return result;
-}
-
-static gint compare_strings (gconstpointer a, gconstpointer b)
-{
-        //gets the parameters to compare
-        //g_debug("--%s", __FUNCTION__);
-        gchar** str1 = (gchar**)(a);
-        gchar** str2 = (gchar**)(b);
-        //converts a string into a form that is independent of case
-        gchar* stra = g_utf8_strdown(str1[0], -1);
-        gchar* strb = g_utf8_strdown(str2[0], -1);
-       //g_debug("Comparing strings: %s vs. %s [ORIGINAL: %s vs. %s]\n",stra, strb, str1[0], str2[0]);
-        //compare two string
-        gint result = g_utf8_collate(stra, strb);
-        //free memory used by converted strings
-        g_free(stra); 
-        g_free(strb);
-        //return compare result 
-        return result;
-}
-
-static void free_bookmark(BookmarkEntry* self)
-{
-       g_debug("->%s", __FUNCTION__);
-       if (NULL != self)
-       {
-               g_free(self->word);
-               g_free(self->translation);
-               g_free(self);
-       }
-       g_debug("<-%s", __FUNCTION__);
-}
-
diff --git a/bm_converter/src/bm-convert.h b/bm_converter/src/bm-convert.h
deleted file mode 100644 (file)
index b6562ae..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/***
-ComArch S.A.
-All rights reserved.
-***/
-
-#ifndef WS_BM_CONVERTER__
-#define WS_BM_CONVERTER__
-#include <gtk/gtk.h>
-
-typedef struct _MainWindow MainWindow;
-
-MainWindow* bmc_create();
-void bmc_destroy(MainWindow* self);
-
-#endif /*WS_BM_CONVERTER__*/
diff --git a/bm_converter/src/main.c b/bm_converter/src/main.c
deleted file mode 100644 (file)
index 9544386..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "bm-convert.h"
-
-gint main (gint argc, gchar** argv)
-{
-       gtk_init(&argc, &argv);
-       MainWindow* app = NULL;
-       app = bmc_create();
-       g_debug("->%s", "gtk_main()");
-       gtk_main();
-       g_debug("<-%s", "gtk_main()");
-       bmc_destroy(app);
-       return 0;
-}
-
diff --git a/configure.ac b/configure.ac
deleted file mode 100644 (file)
index 1525ad3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-AC_INIT
-AC_CONFIG_AUX_DIR([.])
-
-AM_INIT_AUTOMAKE(mDictionary, 1.0)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-AC_PROG_LIBTOOL
-
-AC_CONFIG_FILES(Makefile src/Makefile src/bookmarks/Makefile src/plugins/Makefile)
-AC_CONFIG_SUBDIRS([src/gui src/manager src/bookmarks/bdb src/plugins/stardict src/plugins/xdxf])
-
-AC_OUTPUT
diff --git a/data/bookmarks/bdb/bm_trans.db b/data/bookmarks/bdb/bm_trans.db
deleted file mode 100644 (file)
index 7abe57a..0000000
Binary files a/data/bookmarks/bdb/bm_trans.db and /dev/null differ
diff --git a/data/bookmarks/bdb/bm_words.db b/data/bookmarks/bdb/bm_words.db
deleted file mode 100644 (file)
index d7d2019..0000000
Binary files a/data/bookmarks/bdb/bm_words.db and /dev/null differ
diff --git a/data/bookmarks/sql/ws_bookmarks b/data/bookmarks/sql/ws_bookmarks
deleted file mode 100644 (file)
index 183c23b..0000000
Binary files a/data/bookmarks/sql/ws_bookmarks and /dev/null differ
diff --git a/data/bookmarks/sql3/ws_bookmarks3 b/data/bookmarks/sql3/ws_bookmarks3
deleted file mode 100644 (file)
index 21a9e50..0000000
Binary files a/data/bookmarks/sql3/ws_bookmarks3 and /dev/null differ
diff --git a/data/bookmarks/xdxf/ws_bookmarks.cache b/data/bookmarks/xdxf/ws_bookmarks.cache
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/data/bookmarks/xdxf/ws_bookmarks.xdxf b/data/bookmarks/xdxf/ws_bookmarks.xdxf
deleted file mode 100644 (file)
index e48dfbd..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE xdxf SYSTEM "http://xdxf.sourceforge.net/xdxf_lousy.dtd">
-<xdxf lang_from="NN" lang_to="NN" format="visual">
-<full_name>mdictionary Bookmarks</full_name>
-<description>Version: 1.0</description>
-
-</xdxf>
\ No newline at end of file
diff --git a/data/dictionaries/EnglishFinnish/dict.cache b/data/dictionaries/EnglishFinnish/dict.cache
deleted file mode 100644 (file)
index 9c7cd7f..0000000
Binary files a/data/dictionaries/EnglishFinnish/dict.cache and /dev/null differ
diff --git a/data/dictionaries/EnglishFinnish/dict.xdxf b/data/dictionaries/EnglishFinnish/dict.xdxf
deleted file mode 100644 (file)
index a0c21c1..0000000
+++ /dev/null
@@ -1,37574 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE xdxf SYSTEM "http://xdxf.sourceforge.net/xdxf_lousy.dtd">
-<xdxf lang_from="ENG" lang_to="FIN" format="visual">
-<full_name>English-Finnish dictionary</full_name>
-<description>Copyright: Converted by swaj under GNU Public License; Version: 1.0</description>
-<ar><k>Advent</k>
-adventti</ar>
-<ar><k>April</k>
-huhtikuu</ar>
-<ar><k>April fool</k>
-aprillinarri</ar>
-<ar><k>April fools' day</k>
-aprillipäivä</ar>
-<ar><k>Ascension day</k>
-helatorstai</ar>
-<ar><k>August</k>
-elokuu</ar>
-<ar><k>Autumn</k>
-syksy</ar>
-<ar><k>Baltic</k>
-itämeri</ar>
-<ar><k>Belgium</k>
-belgia</ar>
-<ar><k>Boxing day</k>
-tapaninpäivä</ar>
-<ar><k>Britain</k>
-britannia</ar>
-<ar><k>Christ</k>
-kristus</ar>
-<ar><k>Christmas</k>
-joulu</ar>
-<ar><k>Christmas eve</k>
-jouluaatto</ar>
-<ar><k>Christmas party</k>
-pikkujoulu</ar>
-<ar><k>Christmas-tree</k>
-joulukuusi</ar>
-<ar><k>Cinderella</k>
-tuhkimo</ar>
-<ar><k>December</k>
-joulukuu</ar>
-<ar><k>Denmark</k>
-tanska</ar>
-<ar><k>Easter</k>
-pääsiäinen</ar>
-<ar><k>Epiphany</k>
-loppiainen</ar>
-<ar><k>Father Christmas</k>
-joulupukki</ar>
-<ar><k>Father Superior</k>
-luostarinesimies</ar>
-<ar><k>February</k>
-helmikuu</ar>
-<ar><k>Finland</k>
-suomi</ar>
-<ar><k>Finn</k>
-suomalainen</ar>
-<ar><k>Finnish rug</k>
-ryijy</ar>
-<ar><k>France</k>
-Ranska</ar>
-<ar><k>Friday</k>
-perjantai</ar>
-<ar><k>Good Friday</k>
-pitkäperjantai</ar>
-<ar><k>Greece</k>
-Kreikka</ar>
-<ar><k>Italy</k>
-Italia</ar>
-<ar><k>Jamaica pepper</k>
-maustepippuri</ar>
-<ar><k>January</k>
-tammikuu</ar>
-<ar><k>Jew</k>
-juutalainen</ar>
-<ar><k>July</k>
-heinäkuu</ar>
-<ar><k>June</k>
-kesäkuu</ar>
-<ar><k>Justice</k>
-tuomari</ar>
-<ar><k>Lady Day</k>
-marianpäivä</ar>
-<ar><k>Lady day</k>
-marianpäivä</ar>
-<ar><k>March</k>
-maaliskuu, marssi</ar>
-<ar><k>May</k>
-toukokuu</ar>
-<ar><k>May day</k>
-vappu</ar>
-<ar><k>Monday</k>
-maanatai</ar>
-<ar><k>Netherlands</k>
-alankomaat</ar>
-<ar><k>New Year's eve</k>
-uudenvuodenaatto</ar>
-<ar><k>New year's eve</k>
-uudenvuodenaatto</ar>
-<ar><k>Norja</k>
-Norway</ar>
-<ar><k>November</k>
-marraskuu</ar>
-<ar><k>October</k>
-lokakuu</ar>
-<ar><k>Saksa</k>
-Germany</ar>
-<ar><k>Santa Claus</k>
-joulupukki</ar>
-<ar><k>Saturday</k>
-lauantai</ar>
-<ar><k>Scotland</k>
-skotlanti</ar>
-<ar><k>September</k>
-syyskuu</ar>
-<ar><k>Shrove Tuesday</k>
-laskiastiistai</ar>
-<ar><k>Sunday</k>
-sunnuntai</ar>
-<ar><k>Sunday school</k>
-pyhäkoulu</ar>
-<ar><k>Swede</k>
-ruotsalainen</ar>
-<ar><k>Sweden</k>
-ruotsi</ar>
-<ar><k>Switzerland</k>
-sveitsi</ar>
-<ar><k>Thursday</k>
-torstai</ar>
-<ar><k>Tuesday</k>
-tiistai</ar>
-<ar><k>Viro</k>
-Estonia</ar>
-<ar><k>Whitsuntide</k>
-helluntai</ar>
-<ar><k>Winter</k>
-talvi</ar>
-<ar><k>Xmas</k>
-joulu</ar>
-<ar><k>a bit of alright</k>
-aivan loistava [puhek.]</ar>
-<ar><k>a for effort</k>
-yritys hyvä kymmenen [puhek.]</ar>
-<ar><k>a good deal</k>
-aika lailla</ar>
-<ar><k>a great deal</k>
-aikatavalla</ar>
-<ar><k>a hair's breadth</k>
-hiuksenverta</ar>
-<ar><k>a long way off</k>
-kaukana</ar>
-<ar><k>a while</k>
-tuokio</ar>
-<ar><k>a while ago</k>
-äsken</ar>
-<ar><k>abacus</k>
-helmitaulu</ar>
-<ar><k>abandon</k>
-heitteille (jättää), hylätä (jättää), luopua</ar>
-<ar><k>abandonment</k>
-hylkääminen</ar>
-<ar><k>abate</k>
-heiketä, talttua</ar>
-<ar><k>abattoir</k>
-teurastamo</ar>
-<ar><k>abbess</k>
-abbedissa</ar>
-<ar><k>abbot</k>
-apotti</ar>
-<ar><k>abbreviate</k>
-lyhentää (sana)</ar>
-<ar><k>abbreviation</k>
-lyhennys</ar>
-<ar><k>abdomen</k>
-vatsa (lääk)</ar>
-<ar><k>abhor</k>
-inhota</ar>
-<ar><k>abhorrence</k>
-inho</ar>
-<ar><k>able</k>
-etevä, kyvykäs</ar>
-<ar><k>able to</k>
-kykenevä</ar>
-<ar><k>abnormal</k>
-abnormi, epänormaali, luonnoton, säännötön</ar>
-<ar><k>abnormality</k>
-abnormisuus</ar>
-<ar><k>abode</k>
-asuinpaikka</ar>
-<ar><k>abolish</k>
-poistaa, lakkauttaa</ar>
-<ar><k>abolition</k>
-lakkautus</ar>
-<ar><k>abominable</k>
-inhottava</ar>
-<ar><k>abominate</k>
-inhota</ar>
-<ar><k>abortion</k>
-abortti</ar>
-<ar><k>abound in</k>
-uhkua</ar>
-<ar><k>abounding in fish</k>
-kalainen</ar>
-<ar><k>about</k>
-liikkeellä, likimain, noin, paikkeilla, suunnileen, ympäri
-
-jostakin, johonkin liittyen</ar>
-<ar><k>about-turn</k>
-täyskäännös, kokokäännös</ar>
-<ar><k>above</k>
-edellä, ylempänä, yli, yllä, yläpuolella, yläpuolelle, ylläoleva</ar>
-<ar><k>above all</k>
-etenkin</ar>
-<ar><k>above-mentioned</k>
-yllämainittu</ar>
-<ar><k>abrade</k>
-hiertää</ar>
-<ar><k>abrasion</k>
-hankauma, hiertymä</ar>
-<ar><k>abreast</k>
-rinnakkain</ar>
-<ar><k>abridge</k>
-lyhentää (teosta)</ar>
-<ar><k>abridgement</k>
-lyhennys</ar>
-<ar><k>abroad</k>
-ulkomailla</ar>
-<ar><k>abrupt</k>
-jyrkkä, äkkilinen, äkkinäinen</ar>
-<ar><k>abruptly</k>
-yhtäkkiä, äkkiä</ar>
-<ar><k>abscess</k>
-ajos, paise</ar>
-<ar><k>absence</k>
-poissaolo, puuttuminen</ar>
-<ar><k>absent</k>
-poissa, poissaoleva</ar>
-<ar><k>absent-minded</k>
-hajamielinen</ar>
-<ar><k>absent-mindedness</k>
-hajamielisyys</ar>
-<ar><k>absentee</k>
-poissaoleva</ar>
-<ar><k>absolute</k>
-absoluuttinen, kertakaikkinen, tinkimätön</ar>
-<ar><k>absolutely</k>
-ehdottomasti</ar>
-<ar><k>absoluteness</k>
-ehdottomuus</ar>
-<ar><k>absolution</k>
-synninpäästö</ar>
-<ar><k>absolutism</k>
-itsevaltius</ar>
-<ar><k>absorb</k>
-imeä itseensä</ar>
-<ar><k>absorbent</k>
-imukykyinen</ar>
-<ar><k>absorption</k>
-imeytyminen</ar>
-<ar><k>abstinence</k>
-kieltäymys</ar>
-<ar><k>abstract</k>
-abstrakti, ajatusperäinen, käsitteellinen, lyhennelmä, supistelma, tiivistelmä</ar>
-<ar><k>absurd</k>
-hullunkurinen, järjetön (mieletön)</ar>
-<ar><k>absurdity</k>
-järjettömyys, mielettömyys</ar>
-<ar><k>abundance</k>
-runsaus, yltäkylläisyys</ar>
-<ar><k>abundant</k>
-runsas, ylenpalttinen</ar>
-<ar><k>abuse</k>
-herjata</ar>
-<ar><k>abusive</k>
-herjaava</ar>
-<ar><k>abutment</k>
-maatuki</ar>
-<ar><k>abyss</k>
-horna, kuilu (syvä)</ar>
-<ar><k>ac-dc</k>
-biseksuaalinen [puhek.]</ar>
-<ar><k>acacia</k>
-akaasia</ar>
-<ar><k>academic</k>
-akateeminen</ar>
-<ar><k>academic year</k>
-lukuvuosi</ar>
-<ar><k>academician</k>
-akateemikko</ar>
-<ar><k>academy</k>
-akatemia, opisto</ar>
-<ar><k>accelerate</k>
-kiihdyttää (nopeuttaa)</ar>
-<ar><k>acceleration</k>
-kiihtyvyys</ar>
-<ar><k>accelerator pedal</k>
-kaasupoljin (auton)</ar>
-<ar><k>accent</k>
-korkomerkki</ar>
-<ar><k>accentuate</k>
-korostaa, painottaa</ar>
-<ar><k>accept</k>
-myöntyä, suostua, hyväksyä, vastaanottaa, ottaa vastaan</ar>
-<ar><k>acceptability</k>
-hyväksyttävyys</ar>
-<ar><k>acceptable</k>
-hyväksyttävä, otollinen</ar>
-<ar><k>acceptance</k>
-hyväksyminen, suostumus</ar>
-<ar><k>acceptor</k>
-hyväksi (vekselin)</ar>
-<ar><k>access</k>
-päästä käsiksi, avata pääsy jhkin</ar>
-<ar><k>access cover</k>
-työluukku</ar>
-<ar><k>access to</k>
-pääsy (jhk)</ar>
-<ar><k>accessible</k>
-helppopääsyinen</ar>
-<ar><k>accessories</k>
-asusteet (lisä- )</ar>
-<ar><k>accessory</k>
-osa, lisälaite, lisä-</ar>
-<ar><k>accessory part</k>
-lisäosa</ar>
-<ar><k>accident</k>
-onnettomuustapaus, sattuma, tapaturma</ar>
-<ar><k>accidental</k>
-satunnainen</ar>
-<ar><k>accidentally</k>
-satunnaisesti</ar>
-<ar><k>acclaim</k>
-tervehtiä suosionhuudoin
-
-suosionhuudot</ar>
-<ar><k>acclamation</k>
-huutoäänestys</ar>
-<ar><k>accomodate</k>
-majoittaa</ar>
-<ar><k>accomodate oneself</k>
-mukaantua, sopeutua</ar>
-<ar><k>accomodating</k>
-myöntyväinen</ar>
-<ar><k>accomodation</k>
-maijoitus, sijoitustila</ar>
-<ar><k>accompaniment</k>
-säestys</ar>
-<ar><k>accompanist</k>
-säestäjä</ar>
-<ar><k>accompany</k>
-myötäillä, saattaa (seurata), seurata (mukana), säestää</ar>
-<ar><k>accomplish</k>
-aikaansaada, suorittaa</ar>
-<ar><k>accomplishment</k>
-aikaansaannos, saavutus</ar>
-<ar><k>according to</k>
-jnk mukaan</ar>
-<ar><k>accordingly</k>
-niinmuodoin, senmukaisesti, siis</ar>
-<ar><k>accordion</k>
-hanuri, harmonikka</ar>
-<ar><k>account</k>
-kertomus, tililasku, tili</ar>
-<ar><k>account for</k>
-selittää</ar>
-<ar><k>account of</k>
-selonteko</ar>
-<ar><k>accountable</k>
-vastuussa (jstk)</ar>
-<ar><k>accountable to</k>
-vastuunalainen</ar>
-<ar><k>accountancy</k>
-liikelaskenta</ar>
-<ar><k>accountant</k>
-kirjanpitäjä, tilinpitäjä</ar>
-<ar><k>accounting</k>
-kirjanpito</ar>
-<ar><k>accumulate</k>
-karttua, kartuttaa, kasaantua, kasata, kertyä, kerääntyä</ar>
-<ar><k>accumulation</k>
-kasaantuma</ar>
-<ar><k>accumulator</k>
-akku</ar>
-<ar><k>accuracy</k>
-tarkkuus, täsmällisyys</ar>
-<ar><k>accurate</k>
-tarkka, täsmällinen, virheetön</ar>
-<ar><k>accurately</k>
-tarkasti</ar>
-<ar><k>accusative</k>
-akkusatiivi</ar>
-<ar><k>accuse</k>
-syyttää</ar>
-<ar><k>accused</k>
-syytetty</ar>
-<ar><k>accuser</k>
-syyttäjä</ar>
-<ar><k>accustom</k>
-totuttaa</ar>
-<ar><k>ace</k>
-ässä, loistokaveri</ar>
-<ar><k>acetic acid</k>
-etikkahappo</ar>
-<ar><k>acetylene</k>
-asetyleeni</ar>
-<ar><k>ache</k>
-kivistys, kolotus, polte, särky
-
-kivistää, kolottaa, särkeä</ar>
-<ar><k>achieve</k>
-saada aikaan</ar>
-<ar><k>achievement</k>
-aikaansaannos, ennätys (saavutus), saavutus</ar>
-<ar><k>acid</k>
-happo, LSD [puhek.]</ar>
-<ar><k>ackers</k>
-raha [puhek.]</ar>
-<ar><k>acknowledge</k>
-tunnustaa, myöntää</ar>
-<ar><k>acknowledgment</k>
-tunnustus</ar>
-<ar><k>acme</k>
-huippukohta</ar>
-<ar><k>acorn</k>
-tammenterho</ar>
-<ar><k>acoustics</k>
-akustiikka, äänioppi</ar>
-<ar><k>acquaint</k>
-tutustuttaa</ar>
-<ar><k>acquaintance</k>
-tuttavuus</ar>
-<ar><k>acquirable</k>
-hankittavissa</ar>
-<ar><k>acquire</k>
-saada, oppia</ar>
-<ar><k>acquiring</k>
-hankinta</ar>
-<ar><k>acquisition</k>
-hankinta</ar>
-<ar><k>acquit</k>
-vapauttaa</ar>
-<ar><k>acre</k>
-eekkeri (0.405 ha)</ar>
-<ar><k>acrid</k>
-kitkerä</ar>
-<ar><k>acridity</k>
-karvaus</ar>
-<ar><k>across</k>
-halki (yli), ristikkäin, ylitse</ar>
-<ar><k>acryl</k>
-akryyli</ar>
-<ar><k>acrylic paint</k>
-akryylimaali</ar>
-<ar><k>act</k>
-laki, menetelmä, teko
-
-menetellä, näytellä (teatt), toimia</ar>
-<ar><k>act of charity</k>
-armeliaisuustyö, laupeudentyö</ar>
-<ar><k>act rashly</k>
-hätäillä</ar>
-<ar><k>act the clown</k>
-ilveillä</ar>
-<ar><k>act the fool</k>
-hassutella, hullutella, hupsutella</ar>
-<ar><k>action</k>
-kanne, menettely, oikeudenkäynti, syyte, taistelu, teho, toiminta, uhkapeli [puhek.]</ar>
-<ar><k>action for debt</k>
-lainhaku</ar>
-<ar><k>activate</k>
-aktivoida, käyttää</ar>
-<ar><k>active</k>
-aktiivi, aktiivinen, hommakas, puuhakas, reipas, toimekas, toimiva, vilkas</ar>
-<ar><k>actively</k>
-vilkkaasti</ar>
-<ar><k>activity</k>
-toiminta</ar>
-<ar><k>actor</k>
-näyttelijä</ar>
-<ar><k>actual</k>
-todellinen, varsinainen</ar>
-<ar><k>actuality</k>
-todellisuus</ar>
-<ar><k>actually</k>
-todeteolla, varsinaisesti</ar>
-<ar><k>actuate</k>
-käyttää, saattaa mekaanisesti työtilaan</ar>
-<ar><k>actuator</k>
-kytkinvarsi, suljin</ar>
-<ar><k>acumen</k>
-äly</ar>
-<ar><k>acute</k>
-terävä</ar>
-<ar><k>adapt</k>
-mukuilla, sopeuttaa, soveltaa, sovitella, sovittaa</ar>
-<ar><k>adapt oneself</k>
-sopeutua</ar>
-<ar><k>adaptability</k>
-mukautuvaisuus</ar>
-<ar><k>adaptable</k>
-sopeutava</ar>
-<ar><k>adaptation</k>
-sovellutus</ar>
-<ar><k>adaptive</k>
-mukautuva</ar>
-<ar><k>adc flag</k>
-värinohjausviitta, väriviitta</ar>
-<ar><k>add</k>
-lisätä, kartuttaa</ar>
-<ar><k>add to</k>
-lisätä johonkin</ar>
-<ar><k>added</k>
-lisatty</ar>
-<ar><k>adder</k>
-kyykäärme</ar>
-<ar><k>addicted to</k>
-himoinen</ar>
-<ar><k>addition</k>
-jatko (lisäys), lisä, lisäys</ar>
-<ar><k>additional charge</k>
-lisämaksu</ar>
-<ar><k>additive</k>
-lisäaine (ruoan)</ar>
-<ar><k>address</k>
-osoite, puhe</ar>
-<ar><k>addressee</k>
-kirjeensaaja</ar>
-<ar><k>adenoid</k>
-kitarisa</ar>
-<ar><k>adequacy</k>
-riittävyys</ar>
-<ar><k>adequate</k>
-riittävä</ar>
-<ar><k>adhere</k>
-tarttua kiinni</ar>
-<ar><k>adherence</k>
-kannatus</ar>
-<ar><k>adhesion</k>
-kannatus</ar>
-<ar><k>adhesive</k>
-liima, tarra-</ar>
-<ar><k>adhesive tape</k>
-kiinnelaastari</ar>
-<ar><k>adjacent</k>
-viereinen</ar>
-<ar><k>adjective</k>
-adjektiivi, laatusana</ar>
-<ar><k>adjoin</k>
-olla jnk vieressä</ar>
-<ar><k>adjoining room</k>
-sivuhuone</ar>
-<ar><k>adjourn</k>
-lykätä, siirtää</ar>
-<ar><k>adjust</k>
-säätää (tekn), asetella, järjestellä, järjestää, kunnostaa, sovitella, sovittaa, korottaa, edetä</ar>
-<ar><k>adjustable</k>
-aseteltava, säädettävä</ar>
-<ar><k>adjustable spanner</k>
-jakoavain</ar>
-<ar><k>adjustment</k>
-sovittaminen, säätö, tarkistus, asetus</ar>
-<ar><k>administer</k>
-hallita, hoitaa, johtaa, toimittaa, jatkaa, antaa</ar>
-<ar><k>administration</k>
-hallinto, hoito (hallinto)</ar>
-<ar><k>administrative</k>
-hallinnollinen</ar>
-<ar><k>administrative council</k>
-maistraatti</ar>
-<ar><k>administrative district</k>
-lääni</ar>
-<ar><k>administrator</k>
-valtionhoitaja</ar>
-<ar><k>admirable</k>
-ihailtava</ar>
-<ar><k>admiral</k>
-amiraali</ar>
-<ar><k>admiration</k>
-ihailu</ar>
-<ar><k>admire</k>
-ihailla</ar>
-<ar><k>admirer</k>
-ihailija</ar>
-<ar><k>admissible</k>
-luvallinen</ar>
-<ar><k>admission</k>
-pääsy, pääsymaksu, myönnytys, sisäänpääsy</ar>
-<ar><k>admission fee</k>
-oviraha, pääsymaksu</ar>
-<ar><k>admission to</k>
-pääsy (jhk)</ar>
-<ar><k>admit</k>
-myöntää, tunnustaa</ar>
-<ar><k>admittance</k>
-sisäänpääsy</ar>
-<ar><k>adolescence</k>
-nuorukaisikä</ar>
-<ar><k>adolescent</k>
-nuoruusiässä</ar>
-<ar><k>adopt</k>
-adoptoida, omaksua</ar>
-<ar><k>adopted child</k>
-ottolapsi</ar>
-<ar><k>adoption</k>
-adoptio</ar>
-<ar><k>adorable</k>
-hurmaava, ihailtava</ar>
-<ar><k>adore</k>
-jumaloida, palvoa</ar>
-<ar><k>adorn</k>
-koristaa, somistaa</ar>
-<ar><k>adornment</k>
-koristus</ar>
-<ar><k>adrenal gland</k>
-lisämunuais</ar>
-<ar><k>adult</k>
-aikaihminen, aikamies, aikuinen, täysikasvuinen</ar>
-<ar><k>adult education</k>
-aikuiskasvatus</ar>
-<ar><k>adult education college</k>
-kansankorkeakoulu</ar>
-<ar><k>adultery</k>
-haureus (raam), huoruus</ar>
-<ar><k>advance</k>
-ennakko
-
-viedä eteenpäin, edistää, korottaa, parantaa
-
-eteneminen, edistys, yleneminen</ar>
-<ar><k>advance guard</k>
-etuvartio</ar>
-<ar><k>advanced in age</k>
-ikääntynyt</ar>
-<ar><k>advanced in years</k>
-iäkäs</ar>
-<ar><k>advancement</k>
-ylennys</ar>
-<ar><k>advantage</k>
-etu, etuus, hyöty (etu), yliote</ar>
-<ar><k>advantageous</k>
-edullinen</ar>
-<ar><k>adventure</k>
-seikkailu</ar>
-<ar><k>adventurer</k>
-seikkailija</ar>
-<ar><k>adverb</k>
-adverbi</ar>
-<ar><k>adverbial</k>
-adverbiaalinen</ar>
-<ar><k>adversary</k>
-vastustaja</ar>
-<ar><k>advertise</k>
-ilmoittaa (sanomalehdessä), kuuluttaa, mainostaa</ar>
-<ar><k>advertisement</k>
-ilmoitus (sanomalehdessä), kuulutus, mainos</ar>
-<ar><k>advertisement section</k>
-ilmoitusosasto</ar>
-<ar><k>advertiser</k>
-ilmoittaja (sanomal)</ar>
-<ar><k>advertising</k>
-mainonta, mainostus</ar>
-<ar><k>advertising agency</k>
-ilmoitustoimisto</ar>
-<ar><k>advertising board</k>
-ilmoitustaulu</ar>
-<ar><k>advice</k>
-neuvo, neuvot</ar>
-<ar><k>advisable</k>
-suositeltava, viisas</ar>
-<ar><k>advise</k>
-kehottaa, neuvoa</ar>
-<ar><k>adviser</k>
-konsulentti, neuvoja</ar>
-<ar><k>aerial</k>
-lento-, ilma-
-
-antenni</ar>
-<ar><k>aerodrome</k>
-lentokenttä</ar>
-<ar><k>aeroplane</k>
-lentokone</ar>
-<ar><k>affair</k>
-asia, rakkaus juttu</ar>
-<ar><k>affect</k>
-vaikuttaa</ar>
-<ar><k>affected</k>
-teennäinen, teeskentelevä</ar>
-<ar><k>affection</k>
-hellyys, mielenliikutus, teeskentely</ar>
-<ar><k>affectionate</k>
-hellä</ar>
-<ar><k>affectionately</k>
-rakkaasti</ar>
-<ar><k>affiliated company</k>
-tytäryhtiö</ar>
-<ar><k>affiliation</k>
-yhtyminen</ar>
-<ar><k>affirm</k>
-vakuuttaa</ar>
-<ar><k>affirmative</k>
-myönteinen</ar>
-<ar><k>afflicted</k>
-kärsivä</ar>
-<ar><k>affliction</k>
-kärsimys</ar>
-<ar><k>affluence</k>
-vauraus</ar>
-<ar><k>affluent</k>
-vauras</ar>
-<ar><k>afford</k>
-antaa (suoda), suoda, olla varaa</ar>
-<ar><k>affront</k>
-häväistys, loukkaus, solvaus</ar>
-<ar><k>afoot</k>
-jalkaisin</ar>
-<ar><k>afresh</k>
-uudelleen</ar>
-<ar><k>afro</k>
-afrikkalainen [puhek.]</ar>
-<ar><k>after</k>
-jäljessä, jäljestä, jälkeen, kuluttua, perästä, päästä</ar>
-<ar><k>after that</k>
-senjälkeen, sitten</ar>
-<ar><k>after-care</k>
-jälkihoito</ar>
-<ar><k>after-dinner nap</k>
-päivällisuni</ar>
-<ar><k>after-effect</k>
-jälkiseuraus</ar>
-<ar><k>afternoon</k>
-iltapuoli, iltapäivä</ar>
-<ar><k>afterwards</k>
-jäljepäin, jälkeenpäin, myöhemmin, senjälkeen, sitten (sen jälkeen)</ar>
-<ar><k>again</k>
-jälleen, taas, taaskin, uudelleen</ar>
-<ar><k>again and again</k>
-ehtimiseen</ar>
-<ar><k>against</k>
-vastaan, vasten, vastoin</ar>
-<ar><k>agape</k>
-avosuin</ar>
-<ar><k>agate</k>
-agaatti</ar>
-<ar><k>age</k>
-aikakausi, ikä, kausi</ar>
-<ar><k>ageeably</k>
-hauskasti</ar>
-<ar><k>agency</k>
-agentuuri, välitys</ar>
-<ar><k>agenda</k>
-esityslista, työjärjestys</ar>
-<ar><k>agent</k>
-agentti, välittäjä</ar>
-<ar><k>aggravate</k>
-pahentaa</ar>
-<ar><k>aggravation</k>
-paheneminen, harmi</ar>
-<ar><k>aggressive</k>
-agressiivinen, hyökkäyshaluinen, hyökkäävä</ar>
-<ar><k>aggressor</k>
-hyökkääjä</ar>
-<ar><k>aggro</k>
-aggressiivisuus [puhek.]</ar>
-<ar><k>agile</k>
-ketterä, nopsa, pirteä</ar>
-<ar><k>agility</k>
-ketteryys, notkeus</ar>
-<ar><k>agitate</k>
-agitoida, kiihottaa</ar>
-<ar><k>agitating</k>
-järkyttävä</ar>
-<ar><k>agitation</k>
-agitaatio, järkittyneisyys, kiihotus, kiihtymys, kuohahdus, mieltenkuohu, villitys</ar>
-<ar><k>agitator</k>
-agitaattori, kansankiihottaja, kiihottaja</ar>
-<ar><k>agonizing</k>
-tuskallinen</ar>
-<ar><k>agony</k>
-ahdistus, piina, tuska (hätä)</ar>
-<ar><k>agrarian</k>
-agraari</ar>
-<ar><k>agree</k>
-sopia (olla sovussa), täsmätä</ar>
-<ar><k>agree to</k>
-myöntyä (suostua), suostua</ar>
-<ar><k>agreeable</k>
-mieleinen</ar>
-<ar><k>agreement</k>
-kontrahti, sopimus, välikirja, yhtäpitävyys</ar>
-<ar><k>agricultural</k>
-maataloudellinen</ar>
-<ar><k>agriculture</k>
-maatalous</ar>
-<ar><k>agriculturist</k>
-agronomi</ar>
-<ar><k>ahead</k>
-edelle (eteen), eteenpäin</ar>
-<ar><k>ahead of</k>
-edellä (prep), edessä</ar>
-<ar><k>aid</k>
-auttaa, avustaa
-
-apu, tuki</ar>
-<ar><k>aide</k>
-adjutantti</ar>
-<ar><k>aiding and abetting</k>
-avunanto (lak)</ar>
-<ar><k>ailing</k>
-kivulloinen, raihnainen</ar>
-<ar><k>aim</k>
-päämaali, päämäärä, tarkoitus, tavoite
-
-suunnata, tähdätä</ar>
-<ar><k>aim of life</k>
-elämäntehtävä</ar>
-<ar><k>air</k>
-laulelma, laulu, sävelmä
-
-tuulettaa
-
-ilma</ar>
-<ar><k>air arm</k>
-lentoase</ar>
-<ar><k>air base</k>
-lentotukikohta</ar>
-<ar><k>air column</k>
-ilmapallo</ar>
-<ar><k>air conditioning</k>
-ilmastointi</ar>
-<ar><k>air control officer</k>
-lennonjohtaja</ar>
-<ar><k>air crash</k>
-lentoonnettomuus</ar>
-<ar><k>air current</k>
-ilmavirta</ar>
-<ar><k>air deflector</k>
-ilmanohjain</ar>
-<ar><k>air duct</k>
-ilmakanava</ar>
-<ar><k>air filter</k>
-ilmanpuhdistuslaite</ar>
-<ar><k>air flow</k>
-ilmavirta</ar>
-<ar><k>air hostess</k>
-lentoemäntä</ar>
-<ar><k>air knife</k>
-kevennyssuutin, ilmasuutin, irrotussuutin</ar>
-<ar><k>air line</k>
-lentoyhtiö</ar>
-<ar><k>air ones belly</k>
-oksentaa [puhek.]</ar>
-<ar><k>air piracy</k>
-ilmarosvous</ar>
-<ar><k>air pressure</k>
-ilmanpaine</ar>
-<ar><k>air supremacy</k>
-ilmanherrus</ar>
-<ar><k>air-channel</k>
-ilmatiehyt</ar>
-<ar><k>air-condition</k>
-ilmastoida</ar>
-<ar><k>air-hole</k>
-henkireikä</ar>
-<ar><k>air-line</k>
-lentolinja</ar>
-<ar><k>air-pocket</k>
-ilmakuoppa</ar>
-<ar><k>air-raid</k>
-ilmahyökkäys</ar>
-<ar><k>air-tight</k>
-ilmanpitävä</ar>
-<ar><k>aircraft</k>
-lentokone</ar>
-<ar><k>aircraft-carrier</k>
-lentotukialus</ar>
-<ar><k>airfield</k>
-lentokenttä</ar>
-<ar><k>airfield control</k>
-lennonjohto</ar>
-<ar><k>airiness</k>
-ilmavuus</ar>
-<ar><k>airing</k>
-tuuletus</ar>
-<ar><k>airlift</k>
-ilmasilta</ar>
-<ar><k>airline</k>
-lentoyhtiö</ar>
-<ar><k>airmail</k>
-lentoposti</ar>
-<ar><k>airmail letter</k>
-lentokirje</ar>
-<ar><k>airman</k>
-lentäjä</ar>
-<ar><k>airport</k>
-lentokenttä</ar>
-<ar><k>airship</k>
-ilmalaiva</ar>
-<ar><k>airspace</k>
-ilmatila</ar>
-<ar><k>airtight</k>
-ilmatiivis, ilmanpitävä</ar>
-<ar><k>airworthy</k>
-ilmakelpoinen</ar>
-<ar><k>airy</k>
-ilmava</ar>
-<ar><k>aisle</k>
-keskikäytävä</ar>
-<ar><k>ajar</k>
-raollaan</ar>
-<ar><k>alarm</k>
-hälytin, hälytys
-
-huolestuttaa</ar>
-<ar><k>alarm clock</k>
-herätyskello</ar>
-<ar><k>alarm system</k>
-hälytyslaite</ar>
-<ar><k>alarm-bell</k>
-hätäkello</ar>
-<ar><k>alarmed about</k>
-hädissään</ar>
-<ar><k>alarming</k>
-huolenalainen, huolestuttava</ar>
-<ar><k>album</k>
-albumi, muistokirja</ar>
-<ar><k>alchemy</k>
-alkemia, kullanteko</ar>
-<ar><k>alcohol</k>
-alkoholi, viina, väkiviina</ar>
-<ar><k>alcoholic drink</k>
-alkoholijuoma</ar>
-<ar><k>alcove</k>
-alkovi, seinäsyvennys, katos</ar>
-<ar><k>alder</k>
-leppä</ar>
-<ar><k>alert</k>
-varoittaa</ar>
-<ar><k>alien</k>
-muukalainen, ulkomaalainen</ar>
-<ar><k>alienation</k>
-vieraantuminen</ar>
-<ar><k>alight</k>
-laskeutua (tulla alas)</ar>
-<ar><k>align</k>
-kohdistaa, linjata, oikaista</ar>
-<ar><k>alignment</k>
-ojennus (rivin)</ar>
-<ar><k>alike</k>
-yhdennäköinen</ar>
-<ar><k>alkali</k>
-emäs (kem)</ar>
-<ar><k>alkaline</k>
-alkalinen, emäksinen</ar>
-<ar><k>alky</k>
-viina [puhek.]</ar>
-<ar><k>all</k>
-kaikki</ar>
-<ar><k>all around</k>
-joka puolella</ar>
-<ar><k>all kinds of</k>
-kaikenlainen</ar>
-<ar><k>all of a dither</k>
-ihan rätti [puhek.]</ar>
-<ar><k>all of a sudden</k>
-yhtäkkiä, äkisti</ar>
-<ar><k>all over</k>
-kauttaaltaan</ar>
-<ar><k>all over the place</k>
-siellä sun täällä [puhek.]</ar>
-<ar><k>all over the shop</k>
-joka puoli [puhek.]</ar>
-<ar><k>all set</k>
-kaikki valmiina [puhek.]</ar>
-<ar><k>all sorts of</k>
-kaikenlainen</ar>
-<ar><k>all the same</k>
-samantekevä, yhdentekevä</ar>
-<ar><k>all through</k>
-läpeensä</ar>
-<ar><k>all told</k>
-kaikkiaan</ar>
-<ar><k>all-round</k>
-kaikinpuolinen</ar>
-<ar><k>allay</k>
-lieventää</ar>
-<ar><k>allegation</k>
-väite</ar>
-<ar><k>allege</k>
-väittää</ar>
-<ar><k>alleged</k>
-muka, väitetty</ar>
-<ar><k>allegory</k>
-allegoria</ar>
-<ar><k>allergic</k>
-allerginen</ar>
-<ar><k>allergy</k>
-allergia</ar>
-<ar><k>alleviate</k>
-helpottaa (kipua)</ar>
-<ar><k>alleviation</k>
-helpotus, kevennys, lievennys, vaimennus</ar>
-<ar><k>alley</k>
-kuja</ar>
-<ar><k>alliance</k>
-liitto</ar>
-<ar><k>allied</k>
-liittoutunut</ar>
-<ar><k>alligator</k>
-alligaattori</ar>
-<ar><k>allocate</k>
-jakaa</ar>
-<ar><k>allocation</k>
-jako</ar>
-<ar><k>allow</k>
-antaa (sallia), antaa lupa, sallia, suoda</ar>
-<ar><k>allowable</k>
-sallittu</ar>
-<ar><k>allowance</k>
-määräraha</ar>
-<ar><k>allowed</k>
-luvallinen</ar>
-<ar><k>alloy</k>
-lejeerinki (tekn), metalliseos</ar>
-<ar><k>allspice</k>
-maustepippuri</ar>
-<ar><k>allude</k>
-viittailla</ar>
-<ar><k>allure</k>
-houkutella, vietellä</ar>
-<ar><k>allurement</k>
-houkutin, viettelys, houkutus</ar>
-<ar><k>alluring</k>
-houkuttelu</ar>
-<ar><k>allusion</k>
-viittailu, viittaus</ar>
-<ar><k>ally</k>
-liittolainen</ar>
-<ar><k>almanac</k>
-almanakka</ar>
-<ar><k>almond</k>
-manteli</ar>
-<ar><k>almost</k>
-jokseenkin (lähes), melkein, miltei</ar>
-<ar><k>alms</k>
-almu</ar>
-<ar><k>almsgiver</k>
-almunantaja</ar>
-<ar><k>alone</k>
-yksin, yksinään, yksistään</ar>
-<ar><k>along</k>
-myöten, pitkin</ar>
-<ar><k>along with</k>
-myötä, ohella</ar>
-<ar><k>aloud</k>
-ääneen</ar>
-<ar><k>alphabet</k>
-aakkoset, kirjaimisto</ar>
-<ar><k>alpine ski-ing</k>
-alppihiihto</ar>
-<ar><k>already</k>
-jo, joko</ar>
-<ar><k>alright already</k>
-nyt saa riittää [puhek.]</ar>
-<ar><k>alright for you</k>
-hätäkös sinulla [puhek.]</ar>
-<ar><k>also</k>
-niin ikään, kin, myös, niinikään</ar>
-<ar><k>altar</k>
-alttari</ar>
-<ar><k>altar service</k>
-alttaripalvelus</ar>
-<ar><k>altar-cloth</k>
-alttarilinna</ar>
-<ar><k>altarpiece</k>
-altaritaulu</ar>
-<ar><k>alter</k>
-muuttaa, muuttua</ar>
-<ar><k>alteration</k>
-muutos</ar>
-<ar><k>altercation</k>
-jupakka</ar>
-<ar><k>alternate</k>
-vaihdella</ar>
-<ar><k>alternate current</k>
-vaihtovirta</ar>
-<ar><k>alternately</k>
-vuoroin, vuoroittain</ar>
-<ar><k>alternating</k>
-vuorottelu</ar>
-<ar><k>alternating current</k>
-vaihtovirta</ar>
-<ar><k>alternative</k>
-vaihtoehto, vaihtoehtoinen</ar>
-<ar><k>alternatively</k>
-vaihtoehtoisesti</ar>
-<ar><k>although</k>
-vaikka</ar>
-<ar><k>altimeter</k>
-korkeusmittari</ar>
-<ar><k>altitude</k>
-korkeus (merenpinnasta)</ar>
-<ar><k>alto</k>
-altto (mus)</ar>
-<ar><k>altogether</k>
-aivan, kauttaaltaan, kerrassaan, lopen, tuiki, tykkänään, tyystin</ar>
-<ar><k>alum</k>
-aluna</ar>
-<ar><k>aluminium</k>
-alumiini</ar>
-<ar><k>aluminium foil</k>
-alumiinifolio</ar>
-<ar><k>always</k>
-aina, alati</ar>
-<ar><k>amass</k>
-kasata, kerätä (kasaan), koota (kone ym)</ar>
-<ar><k>amateur</k>
-amatööri, harrastelija</ar>
-<ar><k>amaze</k>
-hämmästyttää, hölmistyttää, ällistyttää</ar>
-<ar><k>amazement</k>
-hämmästys, hölmistys, kummatus, ällistys</ar>
-<ar><k>amazing</k>
-hämmästyttävä</ar>
-<ar><k>ambassador</k>
-suurlähettiläs</ar>
-<ar><k>ambient</k>
-ympäröivä, ympäristö-</ar>
-<ar><k>ambiguity</k>
-kaksimielisyys</ar>
-<ar><k>ambiguous</k>
-kaksimielinen, kaksiselitteinen</ar>
-<ar><k>ambition</k>
-kunnianhimo</ar>
-<ar><k>ambitious</k>
-eteenpyrkivä, kunnianhimoinen</ar>
-<ar><k>ambitiousness</k>
-kunnianhimo</ar>
-<ar><k>ambler</k>
-tasaastuja</ar>
-<ar><k>ambulance</k>
-ambulanssi</ar>
-<ar><k>ambush</k>
-väijytys</ar>
-<ar><k>amend</k>
-korjata (parsia ym), parantaa</ar>
-<ar><k>amendment</k>
-parannus, korjaus</ar>
-<ar><k>amethyst</k>
-ametisti</ar>
-<ar><k>amiable</k>
-rakstettava</ar>
-<ar><k>amicable</k>
-ystävällinen</ar>
-<ar><k>amid tears</k>
-itkusilmin</ar>
-<ar><k>amidst</k>
-keskuudessa</ar>
-<ar><k>amiss</k>
-hullusti</ar>
-<ar><k>ammonia</k>
-ammoniakki</ar>
-<ar><k>amnesty</k>
-armahdus (yleinen)</ar>
-<ar><k>among</k>
-kesken, keskuudessa, jnk sekaan</ar>
-<ar><k>amongst</k>
-kesken</ar>
-<ar><k>amorous</k>
-lemmekäs</ar>
-<ar><k>amount</k>
-erä (määrä), summa, verta (määrä), määrä</ar>
-<ar><k>ampere</k>
-ampeeri</ar>
-<ar><k>amphetamine</k>
-amfetamiini</ar>
-<ar><k>amphitheatre</k>
-amfiteatteri</ar>
-<ar><k>ample</k>
-runsas</ar>
-<ar><k>amplifier</k>
-vahvistin</ar>
-<ar><k>amply</k>
-runsaasti</ar>
-<ar><k>ampule</k>
-ampulli</ar>
-<ar><k>amputate</k>
-amputoida</ar>
-<ar><k>amulet</k>
-amuletti, taikakalu</ar>
-<ar><k>amuse</k>
-hauskuttaa, naurattaa</ar>
-<ar><k>amuse oneself</k>
-huvitella</ar>
-<ar><k>amusement</k>
-huvitus, hauskutus</ar>
-<ar><k>amusement park</k>
-huvipuisto</ar>
-<ar><k>amusing</k>
-hauska, hupailuisa, huvittava, lystikäs</ar>
-<ar><k>analogical</k>
-analoginen</ar>
-<ar><k>analogy</k>
-analogia, verranto, yhdenmukaisuus</ar>
-<ar><k>analyse</k>
-analysoida, eritellä, jäsennellä</ar>
-<ar><k>analysis</k>
-analyysi, erittely, jäsentely</ar>
-<ar><k>anarchist</k>
-anarkisti</ar>
-<ar><k>anarchy</k>
-anarkia</ar>
-<ar><k>anatomical</k>
-anatominen</ar>
-<ar><k>anatomist</k>
-anatomi</ar>
-<ar><k>anatomy</k>
-anatomia</ar>
-<ar><k>ancestor</k>
-esivanhempi</ar>
-<ar><k>anchor</k>
-ankkuri
-
-ankkuroida</ar>
-<ar><k>anchor bolt</k>
-ankkuripulti</ar>
-<ar><k>anchorage</k>
-ankkuripaikka</ar>
-<ar><k>anchovy</k>
-anjovis</ar>
-<ar><k>ancient</k>
-ammoinen, entisaikainen, ikivanha, muinainen, vanha</ar>
-<ar><k>ancillary building</k>
-sivurakennus</ar>
-<ar><k>and</k>
-ja</ar>
-<ar><k>and how</k>
-älä muuta viserrä [puhek.]</ar>
-<ar><k>and so</k>
-joten</ar>
-<ar><k>and thus</k>
-joten</ar>
-<ar><k>and yet</k>
-kuitenkin</ar>
-<ar><k>anecdote</k>
-kasku, pilajuttu</ar>
-<ar><k>anemic</k>
-veretön (lääk)</ar>
-<ar><k>anemone</k>
-vuokko</ar>
-<ar><k>anesthetic</k>
-puudutusaine</ar>
-<ar><k>anesthetize</k>
-nukkuttaa (lääk), puuduttaa (lääk)</ar>
-<ar><k>anew</k>
-uudelleen</ar>
-<ar><k>angel</k>
-enkeli</ar>
-<ar><k>angel of death</k>
-kuolonenkeli</ar>
-<ar><k>angelic</k>
-enkelimainen</ar>
-<ar><k>anger</k>
-suuttaa</ar>
-<ar><k>angered</k>
-vihainen</ar>
-<ar><k>angle</k>
-kulma, nurkka (kulma), oma lehmä ojassa [puhek.]</ar>
-<ar><k>angle for</k>
-saalistaa (kuv)</ar>
-<ar><k>angle of reflection</k>
-heijastuskulma</ar>
-<ar><k>angler</k>
-kalastaja, onkija</ar>
-<ar><k>anglican</k>
-anglikaaninen</ar>
-<ar><k>angling</k>
-onginta</ar>
-<ar><k>anglo-saxson</k>
-anglosaksinen</ar>
-<ar><k>angry</k>
-kiukkuinen, vihainen, äkäinen</ar>
-<ar><k>angular</k>
-kulmikas</ar>
-<ar><k>animal</k>
-elukka, eläimellinen, eläin</ar>
-<ar><k>animal fat</k>
-ihra</ar>
-<ar><k>animal kingdom</k>
-eläinkunta</ar>
-<ar><k>animal world</k>
-eläimistö</ar>
-<ar><k>animate</k>
-elvyttää, innostaa</ar>
-<ar><k>animated</k>
-eloisa (kuvaus)</ar>
-<ar><k>animation</k>
-eloisuus, elävyys</ar>
-<ar><k>aniseed</k>
-anis (mauste)</ar>
-<ar><k>ankle</k>
-nilkka</ar>
-<ar><k>annex</k>
-lisärakennus</ar>
-<ar><k>annexation</k>
-valtaus</ar>
-<ar><k>annihilation</k>
-tuho</ar>
-<ar><k>anniversary</k>
-muistopäivä, vuosipäivä</ar>
-<ar><k>annotation</k>
-merkintä</ar>
-<ar><k>announce</k>
-ilmoittaa (juhallisesti), julistaa (virall), kuuluttaa</ar>
-<ar><k>announcement</k>
-ilmoittaminen, ilmoittautuminen, ilmoitus, kuulutus, tiedote, tiedotus</ar>
-<ar><k>announcer</k>
-juontaja, kuuluttaja</ar>
-<ar><k>annoy</k>
-harmittaa, kiusata (vaivata), närkästyttää, vaivata</ar>
-<ar><k>annoyance</k>
-harmi, harmillisuus, kiusa, mieliharmi, vaiva</ar>
-<ar><k>annoyed</k>
-vihainen</ar>
-<ar><k>annoying</k>
-harmillinen</ar>
-<ar><k>annual</k>
-jokavuotinen, vuotuinen</ar>
-<ar><k>annual celebration</k>
-vuosijuhla</ar>
-<ar><k>annual meeting</k>
-vuosikokous</ar>
-<ar><k>annual report</k>
-vuosikertomus</ar>
-<ar><k>annual subscription</k>
-vuosimaksu</ar>
-<ar><k>annual vehicle inspection</k>
-autonkatsastus</ar>
-<ar><k>annually</k>
-vuosittain</ar>
-<ar><k>annul</k>
-kumota, mitätöntää</ar>
-<ar><k>annulment</k>
-kumoaminen, peruutus</ar>
-<ar><k>anode</k>
-anodi</ar>
-<ar><k>anonymous</k>
-nimetön</ar>
-<ar><k>another</k>
-toinen</ar>
-<ar><k>answer</k>
-vastaus
-
-vastata</ar>
-<ar><k>answerable to</k>
-vastuunalainen</ar>
-<ar><k>ant</k>
-muurahainen</ar>
-<ar><k>ant hill</k>
-muurahaiskeko</ar>
-<ar><k>antagonist</k>
-vastustaja</ar>
-<ar><k>antecedent</k>
-korrelaatti (kiel)</ar>
-<ar><k>anthem</k>
-hymni</ar>
-<ar><k>anther</k>
-ponsi (bot)</ar>
-<ar><k>anthology</k>
-antologia</ar>
-<ar><k>anthracite</k>
-antrasiitti</ar>
-<ar><k>anthrax</k>
-pernarutto</ar>
-<ar><k>anthropoid</k>
-ihmisapina</ar>
-<ar><k>anthropology</k>
-antropologia</ar>
-<ar><k>antibiotic</k>
-antibioottinen</ar>
-<ar><k>antic</k>
-ilve, temppu</ar>
-<ar><k>antichrist</k>
-antikritus</ar>
-<ar><k>anticipate</k>
-arvata (aavistaa), ennakoida</ar>
-<ar><k>anticipation</k>
-odotus</ar>
-<ar><k>anticlockwise</k>
-vastapäivään</ar>
-<ar><k>antidote</k>
-vastamyrkky</ar>
-<ar><k>antifreeze</k>
-pakkasneste</ar>
-<ar><k>antilope</k>
-antilooppi</ar>
-<ar><k>antique</k>
-antiikkiesine, muinaisesine</ar>
-<ar><k>antique dealer</k>
-antiikkikauppa</ar>
-<ar><k>antiquity</k>
-antiikki</ar>
-<ar><k>antiseptic</k>
-antiseptinen</ar>
-<ar><k>antiskew gate</k>
-oikaisuvaste</ar>
-<ar><k>antisocial</k>
-yhteiskunnanvastainen</ar>
-<ar><k>antistatic line</k>
-purkausjohto</ar>
-<ar><k>antlers</k>
-hirvensarvet</ar>
-<ar><k>anus</k>
-peräaukko</ar>
-<ar><k>anvil</k>
-alasin</ar>
-<ar><k>anxious</k>
-huolestunut, hätäinen, hätääntynyt, levoton</ar>
-<ar><k>anxiously</k>
-huolestuneesti</ar>
-<ar><k>any</k>
-kukaan, mikään, mitään, kuka t, mikä tahansa</ar>
-<ar><k>any old how</k>
-keinolla millä hyvänsä [puhek.]</ar>
-<ar><k>anybody</k>
-kuka hyvänsä, kukaan</ar>
-<ar><k>anyone</k>
-kuka hyvänsä, kukaan</ar>
-<ar><k>anything</k>
-mitä hyvänsä, jokin (pron), mikään, mitään</ar>
-<ar><k>aorta</k>
-aortta</ar>
-<ar><k>apart</k>
-erilleen, erillään, syrjässä</ar>
-<ar><k>apart from</k>
-paitsi</ar>
-<ar><k>apartment</k>
-huoneisto</ar>
-<ar><k>apathetic</k>
-apaattinen</ar>
-<ar><k>apathy</k>
-apatia</ar>
-<ar><k>ape</k>
-apina (hännätön), ihmisapina
-
-jäljitellä (matkia)</ar>
-<ar><k>aperture</k>
-(valo)aukko, rako</ar>
-<ar><k>apex</k>
-huippu (kärki)</ar>
-<ar><k>aphorism</k>
-aforismi</ar>
-<ar><k>apish</k>
-apinamainen</ar>
-<ar><k>apocryphal</k>
-apokryfinen</ar>
-<ar><k>apologetic</k>
-anteeksipyytelevä</ar>
-<ar><k>apologetically</k>
-anteeksipyydellen</ar>
-<ar><k>apologize</k>
-pyytää, anteeksi</ar>
-<ar><k>apology</k>
-anteeksipyyntö, puolustuskirjoitus</ar>
-<ar><k>apostle</k>
-apostoli</ar>
-<ar><k>apostrophe</k>
-apostrofi, heittomerkki</ar>
-<ar><k>appal</k>
-pöyristyttää</ar>
-<ar><k>appalling</k>
-kauhistava, pöyristyttävä</ar>
-<ar><k>apparent</k>
-ilmeinen, näennäinen, silminnähtävä</ar>
-<ar><k>appeal to</k>
-miellyttää, vedota</ar>
-<ar><k>appealing</k>
-liikuttava, vetoava, miellyttävä</ar>
-<ar><k>appear</k>
-esiintyä, ilmaantua, ilmestyä, ilmetä, näyttää, tulla (näkyviin)</ar>
-<ar><k>appearance</k>
-esiintyminen, ilmaantuminen, ilmestyminen</ar>
-<ar><k>appease</k>
-lauhduttaa, lepyttää, rauhoittaa</ar>
-<ar><k>appendage</k>
-lisäke</ar>
-<ar><k>appendicitis</k>
-umpisuolentulehdus</ar>
-<ar><k>appendix</k>
-liite (kirjaan), lisäke, umpilisäke, umpisuoli</ar>
-<ar><k>appertain to</k>
-kuulua (jklle jhk)</ar>
-<ar><k>appetite</k>
-ruokahalu</ar>
-<ar><k>applaud</k>
-taputtaa käsiään</ar>
-<ar><k>applause</k>
-kättentaputus</ar>
-<ar><k>apple</k>
-omena</ar>
-<ar><k>apple tart</k>
-omenatorttu</ar>
-<ar><k>appliance</k>
-koje (laite), laite
-
-laite</ar>
-<ar><k>applicable</k>
-sopiva, käyttökelpoinen</ar>
-<ar><k>applicant</k>
-anoja, hakija, kilpahakija</ar>
-<ar><k>application</k>
-anomus (hakemus), hakemus, sovellus</ar>
-<ar><k>application form</k>
-anolomake</ar>
-<ar><k>application of law</k>
-lainkäyttö</ar>
-<ar><k>apply</k>
-käyttää, sovelluttaa, soveltaa</ar>
-<ar><k>apply for</k>
-hakea (virkaa ym)</ar>
-<ar><k>apply the brake</k>
-jarruttaa</ar>
-<ar><k>apply to</k>
-kohdistua, koskea (tarkoittaa)</ar>
-<ar><k>appoint</k>
-määrätä, nimittää</ar>
-<ar><k>appointment</k>
-kohtaus (sovittu), nimitys, tapaaminen, virkanimitys</ar>
-<ar><k>apportion</k>
-jakaminen</ar>
-<ar><k>appraisal</k>
-arviointi</ar>
-<ar><k>appraise</k>
-arvioida</ar>
-<ar><k>appreciably</k>
-huomattavasti</ar>
-<ar><k>appreciate</k>
-arvostaa</ar>
-<ar><k>appreciation</k>
-arvonanto, arvostus</ar>
-<ar><k>apprehend</k>
-tajuta, käsittää</ar>
-<ar><k>apprehension</k>
-pelko</ar>
-<ar><k>apprehensive</k>
-pelokas</ar>
-<ar><k>apprentice</k>
-harjoittelija, oppipoika</ar>
-<ar><k>approach</k>
-lähennellä, lähestyä, lähetä</ar>
-<ar><k>appropriate</k>
-sopiva, sovelias</ar>
-<ar><k>approval</k>
-hyväksyminen, hyväksyntä, kannatus, suostumus</ar>
-<ar><k>approve</k>
-hyväksyä</ar>
-<ar><k>approved school</k>
-koulukoti</ar>
-<ar><k>approximate</k>
-arvionmukainen, likimääräinen</ar>
-<ar><k>approximate value</k>
-likiarvo</ar>
-<ar><k>approximately</k>
-likimain, likimäärin, suunnileen, noin</ar>
-<ar><k>apricot</k>
-aprikoosi</ar>
-<ar><k>apron</k>
-esiliina</ar>
-<ar><k>apron strip</k>
-seinän suojapelti</ar>
-<ar><k>aptitude</k>
-kyky, taipumus</ar>
-<ar><k>aquaint</k>
-tutustuttaa</ar>
-<ar><k>aquaintance</k>
-tuttava</ar>
-<ar><k>aquainted with</k>
-tuttu</ar>
-<ar><k>aquarium</k>
-akvaario</ar>
-<ar><k>aquittal</k>
-vapautus</ar>
-<ar><k>arable land</k>
-peltomaa</ar>
-<ar><k>arbitrator</k>
-välimies</ar>
-<ar><k>arbour</k>
-lehtimaja</ar>
-<ar><k>arc-lamp</k>
-kaarilamppu</ar>
-<ar><k>arcade</k>
-holvikäytävä</ar>
-<ar><k>arch</k>
-holvikaari, kaari
-
-holvata, köyristää, kaareutua</ar>
-<ar><k>arch enemy</k>
-perivihollinen</ar>
-<ar><k>archaic</k>
-arkaistinen</ar>
-<ar><k>archaism</k>
-arkaismi</ar>
-<ar><k>archbishop</k>
-arkiipiispa</ar>
-<ar><k>archbishop's diocese</k>
-arkkihiippakunta</ar>
-<ar><k>archduke</k>
-arkkiherttua</ar>
-<ar><k>arched</k>
-kaareva</ar>
-<ar><k>archeological</k>
-muinaistiteellinen</ar>
-<ar><k>archeologist</k>
-arkeologi, muinaistietelijä</ar>
-<ar><k>archeology</k>
-arkiologia, muinaistiede</ar>
-<ar><k>archer</k>
-jousimies</ar>
-<ar><k>archery</k>
-jousiammunta</ar>
-<ar><k>architect</k>
-arkkitehti
-
-arkkitehti</ar>
-<ar><k>architectural</k>
-arkkitehtoninen</ar>
-<ar><k>architecture</k>
-arkkitehtuuri</ar>
-<ar><k>archive</k>
-arkisto</ar>
-<ar><k>archivist</k>
-arkistonhoitaja</ar>
-<ar><k>archpelago</k>
-saaristo</ar>
-<ar><k>archway</k>
-holvikäytävä</ar>
-<ar><k>arcing</k>
-kipinäsuojus</ar>
-<ar><k>ardent</k>
-innokas, kiihkeä, palava</ar>
-<ar><k>ardently</k>
-hartaasti, tulisesti</ar>
-<ar><k>ardour</k>
-hehku (kuv), innokkuus, into</ar>
-<ar><k>arduous</k>
-työläs</ar>
-<ar><k>area</k>
-ala, alue (ala), seutu
-
-alue, kohta, pinta-ala</ar>
-<ar><k>area load</k>
-pintakuorma</ar>
-<ar><k>arena</k>
-areena</ar>
-<ar><k>argue</k>
-järkeillä, kiistellä, kinata, riidellä</ar>
-<ar><k>argue about</k>
-väitellä</ar>
-<ar><k>argue against</k>
-inttää (vastaan)</ar>
-<ar><k>argument</k>
-perustelu, riita, väittely, argumentti</ar>
-<ar><k>aria</k>
-aaria</ar>
-<ar><k>arid</k>
-karu (kuiva)</ar>
-<ar><k>arise</k>
-johtua jstk, juontua</ar>
-<ar><k>aristocracy</k>
-aristokratia</ar>
-<ar><k>aristocrat</k>
-ylimys</ar>
-<ar><k>aristocratic</k>
-aristokraattinen</ar>
-<ar><k>arithmatic</k>
-laskento, laskuoppi</ar>
-<ar><k>arithmetic</k>
-aritmetiikka</ar>
-<ar><k>arithmetical</k>
-aritmeettinen</ar>
-<ar><k>arm</k>
-käsinoja (tuolin), käsivarsi, lonkero (zo), varsi</ar>
-<ar><k>arm oneself</k>
-aseistautua</ar>
-<ar><k>arm-hole</k>
-hihanaukko</ar>
-<ar><k>arm-wrestling</k>
-kädenvääntö</ar>
-<ar><k>armchair</k>
-nojatuoli</ar>
-<ar><k>armed</k>
-aseellinen</ar>
-<ar><k>armful</k>
-sylys</ar>
-<ar><k>armistice</k>
-aselepo</ar>
-<ar><k>armour</k>
-haarniska, panssari</ar>
-<ar><k>armour-bearer</k>
-aseenkantaja</ar>
-<ar><k>armourplate glass</k>
-karkastu lasi</ar>
-<ar><k>armoury</k>
-varushuone</ar>
-<ar><k>armpit</k>
-kainalo, kainalokuoppa</ar>
-<ar><k>arms store</k>
-asevarasto</ar>
-<ar><k>army</k>
-armeija</ar>
-<ar><k>army corp</k>
-armeijakunta</ar>
-<ar><k>aroma</k>
-aromi, tuoksu</ar>
-<ar><k>aromatic herb</k>
-maustekasvi</ar>
-<ar><k>around</k>
-noin, ympäri</ar>
-<ar><k>arouse</k>
-havahduttaa, herättää (kuv), valveuttaa</ar>
-<ar><k>arouse pity</k>
-säälittää</ar>
-<ar><k>arrange</k>
-asetella, hommata (järjestää), järjestellä, järjestää, laittaa (järjestää)</ar>
-<ar><k>arrange in alphabetical order</k>
-aakkostaa</ar>
-<ar><k>arrangement</k>
-akordi, järjestely, sovitelma</ar>
-<ar><k>arranger</k>
-järjestäjä</ar>
-<ar><k>arrears</k>
-rästi</ar>
-<ar><k>arrest</k>
-vangita</ar>
-<ar><k>arrival</k>
-saapuminen, tulo</ar>
-<ar><k>arrive</k>
-saapua, tulla (perille)</ar>
-<ar><k>arrive at</k>
-päästä (saapua jhk)</ar>
-<ar><k>arrive at a result</k>
-päätyä</ar>
-<ar><k>arrive home</k>
-kotiutua</ar>
-<ar><k>arrive in time</k>
-ehtiä (tulla ajoissa)</ar>
-<ar><k>arrogance</k>
-kopeilu, kopeus, pöyhkeys, röyhkeys, röyhkeä, ylimielisyys</ar>
-<ar><k>arrogant</k>
-häikäilemätön, julkea, kopea, ylimielinen</ar>
-<ar><k>arrow</k>
-nuoli, vasama</ar>
-<ar><k>arse **</k>
-perse [alat.]</ar>
-<ar><k>arsehole **</k>
-perseenreikä [alat.]</ar>
-<ar><k>arsen</k>
-tuhopoltto</ar>
-<ar><k>arsenic</k>
-arsenikki</ar>
-<ar><k>art</k>
-taide</ar>
-<ar><k>art collection</k>
-taidekokoelma</ar>
-<ar><k>art critic</k>
-taiteenarvostelija</ar>
-<ar><k>art dealer</k>
-taidekauppias</ar>
-<ar><k>artful</k>
-taidokas</ar>
-<ar><k>artic</k>
-arktinen, artikia</ar>
-<ar><k>artic bramble</k>
-mesimarja</ar>
-<ar><k>artic cloudberry</k>
-lakka (marja), suomuurain</ar>
-<ar><k>artic fox</k>
-naali</ar>
-<ar><k>article</k>
-artikkeli (kieli ym), kauppaesine, kalu, kirjoitus, kyhäelmä, tuote (kalu)</ar>
-<ar><k>articulate</k>
-nivelikäs</ar>
-<ar><k>articulation</k>
-nivel</ar>
-<ar><k>artificial</k>
-keinotekoinen, teennäinen</ar>
-<ar><k>artificial eye</k>
-tekosilmä</ar>
-<ar><k>artificial insemination</k>
-keinosiemennys</ar>
-<ar><k>artificial respiration</k>
-tekohengitys</ar>
-<ar><k>artillery</k>
-tykistö</ar>
-<ar><k>artisan</k>
-käsityöläinen</ar>
-<ar><k>artist</k>
-taidemaalari, taiteilija</ar>
-<ar><k>artistic</k>
-taiteellinen</ar>
-<ar><k>artistically</k>
-taiteellisesti</ar>
-<ar><k>artless</k>
-koristelematon (kuv)</ar>
-<ar><k>as a matter of course</k>
-itseoikeutettu</ar>
-<ar><k>as a rule</k>
-yleensä</ar>
-<ar><k>as before</k>
-ennallaan, ennalleen, entisellään</ar>
-<ar><k>as far as</k>
-mikäli, saakka (jhk), aina jhk saakka</ar>
-<ar><k>as follows</k>
-seuraavasti</ar>
-<ar><k>as from today</k>
-tästä päivästä lukien [puhek.]</ar>
-<ar><k>as good as</k>
-yhtä</ar>
-<ar><k>as if</k>
-ikään kuin [puhek.]</ar>
-<ar><k>as it is</k>
-sinänsä</ar>
-<ar><k>as it were</k>
-niin sanoakseni, ikäänkuin</ar>
-<ar><k>as much</k>
-saatoinpa arvata [puhek.]</ar>
-<ar><k>as such</k>
-semmoinen, sinänsä</ar>
-<ar><k>as though</k>
-ikäänkuin</ar>
-<ar><k>as to</k>
-mitä tulee [puhek.]</ar>
-<ar><k>as well</k>
-myös [puhek.]</ar>
-<ar><k>as yet</k>
-tähän mennessä [puhek.]</ar>
-<ar><k>asbestos</k>
-asbesti</ar>
-<ar><k>ascend</k>
-kohota (lentok)</ar>
-<ar><k>ascent</k>
-nousu, vastamäki, ylämäki</ar>
-<ar><k>ascertain</k>
-saada (selville), todeta</ar>
-<ar><k>ascillation</k>
-heilahtelu</ar>
-<ar><k>ash</k>
-saarni</ar>
-<ar><k>ash-tray</k>
-tuhkakuppi</ar>
-<ar><k>ashamed</k>
-häpeällinen</ar>
-<ar><k>ashore</k>
-rantaan</ar>
-<ar><k>ask</k>
-kutsua (vieraaksi), kysellä, kysyä, pyydellä, pyytää, anoa</ar>
-<ar><k>askew</k>
-karsasti</ar>
-<ar><k>asleep</k>
-unessa</ar>
-<ar><k>asparagus</k>
-parsa</ar>
-<ar><k>aspen</k>
-haapa</ar>
-<ar><k>asphalt</k>
-asfaltti</ar>
-<ar><k>aspirant</k>
-kokelas, pyrkijä</ar>
-<ar><k>aspiration</k>
-pyrintö</ar>
-<ar><k>aspiration for</k>
-havittelu</ar>
-<ar><k>aspire</k>
-hedelmöittää (kuv)</ar>
-<ar><k>aspire to</k>
-havitella (tavoitella)</ar>
-<ar><k>aspirin</k>
-aspiriini</ar>
-<ar><k>aspiring</k>
-eteenpyrkivä</ar>
-<ar><k>ass</k>
-aasi</ar>
-<ar><k>ass-like</k>
-aasimainen</ar>
-<ar><k>assail</k>
-hätyyttää</ar>
-<ar><k>assailant</k>
-hyökkääjä</ar>
-<ar><k>assassin</k>
-salamurhaaja</ar>
-<ar><k>assassination</k>
-salamurha</ar>
-<ar><k>assault</k>
-hyökkäys, pahoinpitely (lak), rynnäkkö
-
-hyökätä</ar>
-<ar><k>assemble</k>
-kerätä, kerääntyä, kokoontua, koota (kone ym), asentaa</ar>
-<ar><k>assembled</k>
-koolla</ar>
-<ar><k>assembly</k>
-kokous, kokoonpano, asennus (tekn), huviseura, osisto</ar>
-<ar><k>assembly hall</k>
-aula, sali</ar>
-<ar><k>assent</k>
-myöntymys</ar>
-<ar><k>assert</k>
-puolustaa</ar>
-<ar><k>assertion</k>
-väite</ar>
-<ar><k>assess</k>
-arvioida, määrätä</ar>
-<ar><k>assessment</k>
-arviointi, taksoitus, verotus</ar>
-<ar><k>assets</k>
-varat</ar>
-<ar><k>assimilation</k>
-assimilaatio</ar>
-<ar><k>assist</k>
-auttaa, avustaa</ar>
-<ar><k>assistance</k>
-apu, avunanto, avustus</ar>
-<ar><k>assistant</k>
-amanuenssi, apulainen, apumies, auttaja</ar>
-<ar><k>assistant manager</k>
-apulaisjohtaja</ar>
-<ar><k>assistant physician</k>
-alilääkäri</ar>
-<ar><k>assizes</k>
-käräjät</ar>
-<ar><k>associate</k>
-työtoveri</ar>
-<ar><k>associate member</k>
-liitännäisjäsen</ar>
-<ar><k>associate with</k>
-seurustella</ar>
-<ar><k>associated</k>
-yhteenkuuluva</ar>
-<ar><k>associated with</k>
-kytkeytyä (kuv)</ar>
-<ar><k>association</k>
-yhdistys, yhteys</ar>
-<ar><k>assort</k>
-lajitella</ar>
-<ar><k>assortment</k>
-lajitelma, valikoima</ar>
-<ar><k>assume</k>
-edellyttää (olettaa), olettaa, omaksua, otaksua</ar>
-<ar><k>assumed name</k>
-salanimi, valenimi</ar>
-<ar><k>assumption</k>
-olettamuus</ar>
-<ar><k>assurance</k>
-vakuutus, varmuus</ar>
-<ar><k>assure</k>
-vakuuttaa, varmistaa</ar>
-<ar><k>assure oneself</k>
-varmistua</ar>
-<ar><k>assured</k>
-varma</ar>
-<ar><k>assuredly</k>
-taatusti</ar>
-<ar><k>assurity</k>
-vakuutus</ar>
-<ar><k>asterisk</k>
-tähti, asteriski (*)</ar>
-<ar><k>asthma</k>
-astam</ar>
-<ar><k>asthmatic</k>
-astmaattinen</ar>
-<ar><k>astonish</k>
-hämmästyttää, ihmetyttää, kummatuttaa, ihmetellä</ar>
-<ar><k>astonishment</k>
-hämmästys, ihmettely, kummatus, ällistys</ar>
-<ar><k>astound</k>
-saattaa hämmästyksen</ar>
-<ar><k>astounding</k>
-hämmästyttävä</ar>
-<ar><k>astray</k>
-eksyksiin, eksyksissä, harhaan</ar>
-<ar><k>astride</k>
-hajareisin</ar>
-<ar><k>astrologer</k>
-astrologi</ar>
-<ar><k>astrology</k>
-astrologia</ar>
-<ar><k>astronomer</k>
-tähtitieteilijä</ar>
-<ar><k>astronomical</k>
-tähtitieteellinen</ar>
-<ar><k>astronomy</k>
-tähtitiede</ar>
-<ar><k>astuteness</k>
-äly</ar>
-<ar><k>asylum</k>
-turvapaikka</ar>
-<ar><k>at a distance</k>
-loitolla</ar>
-<ar><k>at a greater distance</k>
-etäämmällä</ar>
-<ar><k>at a slow pace</k>
-verkalleen</ar>
-<ar><k>at a time</k>
-kerrallaan</ar>
-<ar><k>at all</k>
-ollenkaan</ar>
-<ar><k>at all events</k>
-joka tapauksessa</ar>
-<ar><k>at an angle</k>
-kallellaan</ar>
-<ar><k>at an early date</k>
-lähiaika, piakkoin</ar>
-<ar><k>at an early hour</k>
-varhain</ar>
-<ar><k>at another time</k>
-muulloin</ar>
-<ar><k>at any rate not</k>
-ei ainakaan</ar>
-<ar><k>at close quarters</k>
-läheltä</ar>
-<ar><k>at each time</k>
-kulloinkin</ar>
-<ar><k>at great length</k>
-pitkästi</ar>
-<ar><k>at hand</k>
-esillä (käsillä)</ar>
-<ar><k>at home</k>
-kotona</ar>
-<ar><k>at its highest</k>
-ylimmillään</ar>
-<ar><k>at last</k>
-lopuksi, lopulta, vihdoin, vihdoinkin, viimenkin</ar>
-<ar><k>at least</k>
-ainakin, edes (ainakin), vähintään</ar>
-<ar><k>at least not</k>
-ei ainakaan</ar>
-<ar><k>at leisure</k>
-joutilas</ar>
-<ar><k>at length</k>
-juurtajaksaen, vihdoin</ar>
-<ar><k>at liberty</k>
-esteetön</ar>
-<ar><k>at night</k>
-yöllä</ar>
-<ar><k>at once</k>
-heti, kohta (heti)</ar>
-<ar><k>at one time</k>
-aikoinaan</ar>
-<ar><k>at one's destination</k>
-perillä</ar>
-<ar><k>at random</k>
-umpimähkään</ar>
-<ar><k>at that place</k>
-siellä</ar>
-<ar><k>at that time</k>
-senaikuinen, silloin, silloinen</ar>
-<ar><k>at the back</k>
-takana</ar>
-<ar><k>at the beginning</k>
-alussa</ar>
-<ar><k>at the earliest</k>
-aikaisintaan</ar>
-<ar><k>at the latest</k>
-viimeistään</ar>
-<ar><k>at the left</k>
-vasemmalla</ar>
-<ar><k>at the most</k>
-enintään, korkeintaan</ar>
-<ar><k>at the outside</k>
-korkeintaan</ar>
-<ar><k>at the place</k>
-paikalla</ar>
-<ar><k>at the right time</k>
-ajallaan</ar>
-<ar><k>at the same time</k>
-yhtaikaa</ar>
-<ar><k>at the time</k>
-kulloinkin, silloin</ar>
-<ar><k>at the top</k>
-ylinnä</ar>
-<ar><k>at the very least</k>
-vähintään</ar>
-<ar><k>at this</k>
-tässä</ar>
-<ar><k>at this place</k>
-täällä</ar>
-<ar><k>at times</k>
-ajoittain, joskus</ar>
-<ar><k>at what time</k>
-milloin</ar>
-<ar><k>at which time</k>
-jolloin</ar>
-<ar><k>atheism</k>
-jumalankieltämys</ar>
-<ar><k>atheist</k>
-ateisti</ar>
-<ar><k>athlete</k>
-atleetti, urheilija, yleisurheilija</ar>
-<ar><k>athletic</k>
-atleettinen</ar>
-<ar><k>athletic field</k>
-kisakenttä</ar>
-<ar><k>athletics</k>
-urheilu, yleisurheilu</ar>
-<ar><k>atlas</k>
-kartasto</ar>
-<ar><k>atmosphere</k>
-ilmakehä, ilmapiiri</ar>
-<ar><k>atom</k>
-atomi</ar>
-<ar><k>atrocity</k>
-hirmutyö, kauhukertomus</ar>
-<ar><k>attach</k>
-kiinnittää, liittää, yhdistää</ar>
-<ar><k>attach oneself to</k>
-liittyä</ar>
-<ar><k>attachment</k>
-kiintymys</ar>
-<ar><k>attack</k>
-hyökkäys, rynnistys, ryynäkkö
-
-hyökätä, rynnistää</ar>
-<ar><k>attain</k>
-saavuttaa</ar>
-<ar><k>attainment</k>
-saavutus</ar>
-<ar><k>attempt</k>
-yritys
-
-koettaa, yrittää, yritys</ar>
-<ar><k>attend</k>
-kuunnella (luentoa), osallistua, huolehtia</ar>
-<ar><k>attend to</k>
-hoitaa, huolehtia</ar>
-<ar><k>attendance</k>
-hoito</ar>
-<ar><k>attendant</k>
-järjestymies, kaitsija (puiston), vahtimestari</ar>
-<ar><k>attention</k>
-huomaavaisuus, huominen, perusasento, tarkkaavaisuus</ar>
-<ar><k>attentive</k>
-huomaavainen, tarkkaavainen</ar>
-<ar><k>attentiveness</k>
-huomaavaisuus</ar>
-<ar><k>attic</k>
-ullakko, ullakkohuone, vintti (ullakko)</ar>
-<ar><k>attire</k>
-puku, pukea</ar>
-<ar><k>attitude</k>
-asenne, suhtautumiskanta, suhtautuminen</ar>
-<ar><k>attorney</k>
-edusmies (lak)</ar>
-<ar><k>attorney general</k>
-oikeuskansleri</ar>
-<ar><k>attract</k>
-vetää puoleensa, miellyttää</ar>
-<ar><k>attraction</k>
-houkutin, vetonumero, vetovoima</ar>
-<ar><k>attractive</k>
-miellyttävä, sievä, viehkeä, viehättävä</ar>
-<ar><k>attribute</k>
-attribuutti (kiel), määre</ar>
-<ar><k>auction</k>
-huutokauppa</ar>
-<ar><k>audacious</k>
-uskalias</ar>
-<ar><k>audible</k>
-kuuluva</ar>
-<ar><k>audience</k>
-audienssi, kuulijakunta, yleisö (teatt ym)</ar>
-<ar><k>audio-visual aid</k>
-havaintoväline</ar>
-<ar><k>audit</k>
-tilintarkastus
-
-tarkastaa</ar>
-<ar><k>auditor</k>
-tilintarkastaja</ar>
-<ar><k>auditory nerve</k>
-kuulohermo</ar>
-<ar><k>auditron</k>
-ositusmittari</ar>
-<ar><k>auger</k>
-väriruuvi, poistokierä, kaira</ar>
-<ar><k>augment</k>
-kartuttaa</ar>
-<ar><k>aunt</k>
-täti</ar>
-<ar><k>auricle</k>
-korvalehti</ar>
-<ar><k>authentic</k>
-alkuperäinen, oikeaperäinen</ar>
-<ar><k>authenticity</k>
-oikeaperäisyys</ar>
-<ar><k>author</k>
-kirjailija</ar>
-<ar><k>authorities</k>
-esivalta, viranomaiset</ar>
-<ar><k>authoritive</k>
-arvovaltainen</ar>
-<ar><k>authority</k>
-auktoriteetti, arvovalta</ar>
-<ar><k>authorization</k>
-valuutus</ar>
-<ar><k>authorize</k>
-valtuuttaa</ar>
-<ar><k>authorized agent</k>
-asiamies</ar>
-<ar><k>auto transformer</k>
-päämuuntaja, säätömuuntaja</ar>
-<ar><k>auto-</k>
-itse-</ar>
-<ar><k>auto-suggestion</k>
-itsesuggestio</ar>
-<ar><k>autobiography</k>
-omaelämäkerta</ar>
-<ar><k>autocracy</k>
-itsevaltius, yksinvalta</ar>
-<ar><k>autocrat</k>
-itsevaltias, yksinvaltias</ar>
-<ar><k>autocratic</k>
-yksinvaltainen</ar>
-<ar><k>autograph</k>
-nimikirjoitus</ar>
-<ar><k>automate</k>
-automatisoida</ar>
-<ar><k>automatic</k>
-automaattinen, itsetoimiva</ar>
-<ar><k>automation</k>
-automaatio</ar>
-<ar><k>autonomous</k>
-itsehallinnollinen, itsenäinen</ar>
-<ar><k>autopsy</k>
-obduktio, ruumiinavaus</ar>
-<ar><k>aux paper feeder</k>
-apu-syöttölaite</ar>
-<ar><k>aux paper tray</k>
-apualusta</ar>
-<ar><k>auxilary</k>
-apu-</ar>
-<ar><k>auxiliary verb</k>
-apuverbi</ar>
-<ar><k>availability</k>
-saatavissa olo</ar>
-<ar><k>available</k>
-liikenevä, saatavissa</ar>
-<ar><k>avalanche</k>
-lumivyöry, lumivyöry</ar>
-<ar><k>avenge</k>
-kostaa</ar>
-<ar><k>avenue</k>
-bulevardi, esplanadi, puistokatu, lehtikuja, puistokatu</ar>
-<ar><k>average</k>
-keskiarvo, keskimäärä, keskimääräinen, keksiverto</ar>
-<ar><k>averse</k>
-vastahakoinen, haluton</ar>
-<ar><k>averseness</k>
-epäsuopeus</ar>
-<ar><k>aversion</k>
-vastenmielisyys</ar>
-<ar><k>avert</k>
-torjua</ar>
-<ar><k>aviation</k>
-ilmailu</ar>
-<ar><k>aviator</k>
-lentäjä</ar>
-<ar><k>avoid</k>
-kaihtaa, karttaa, välttää, estää</ar>
-<ar><k>avoidance</k>
-karttaminen</ar>
-<ar><k>awake</k>
-havahtua, hereillä, herätä</ar>
-<ar><k>awaken</k>
-herättää, valveuttaa</ar>
-<ar><k>awakening</k>
-herätys (kuv)</ar>
-<ar><k>award</k>
-palkinto
-
-tuomita (jklle)</ar>
-<ar><k>award of contract</k>
-sopimuksen teko</ar>
-<ar><k>aware</k>
-tietoinen</ar>
-<ar><k>away</k>
-pois, poispäin, poissa</ar>
-<ar><k>awful</k>
-hirveä, kauhea</ar>
-<ar><k>awkward</k>
-epämukava, hankala, kömpelö, pulmallinen, tukala, tökerö</ar>
-<ar><k>awkwardness</k>
-pulmallisuus</ar>
-<ar><k>awl</k>
-naskali</ar>
-<ar><k>awn</k>
-vihne</ar>
-<ar><k>axe</k>
-kirves</ar>
-<ar><k>axle</k>
-akseli</ar>
-<ar><k>babble</k>
-jokeltaa, lörpötellä, solista</ar>
-<ar><k>babbler</k>
-lörppö</ar>
-<ar><k>babbling</k>
-hölläsuinen, jaaritus, kantelu</ar>
-<ar><k>baboon</k>
-paviaani</ar>
-<ar><k>baby</k>
-kapalolapsi, sylilapsi, pienokainen, vauva</ar>
-<ar><k>baby-sitter</k>
-kaitsija (lasten), lastenkaitsija</ar>
-<ar><k>baby-talk</k>
-jokellus</ar>
-<ar><k>bachelor</k>
-poikamies</ar>
-<ar><k>bacillus</k>
-basilli</ar>
-<ar><k>back</k>
-kääntöpuoli, perä, selkä, selkämys, selkäpuoli, takaosa, takapuoli
-
-peruuttaa, peräyttää, selusta
-
-taaksepäin, takaisin</ar>
-<ar><k>back and forth</k>
-edestakaisin</ar>
-<ar><k>back door</k>
-takaovi</ar>
-<ar><k>back hander</k>
-pimeä maksu</ar>
-<ar><k>back of a knife</k>
-hamara</ar>
-<ar><k>back out of</k>
-peräytyä</ar>
-<ar><k>back pedal</k>
-kääntää kelkkansa [puhek.]</ar>
-<ar><k>back putty</k>
-kittaus</ar>
-<ar><k>back rest</k>
-selkänoja</ar>
-<ar><k>back scratching</k>
-vastavuoroisuus</ar>
-<ar><k>back seat</k>
-takaistuin</ar>
-<ar><k>back the oars</k>
-huovata</ar>
-<ar><k>back up</k>
-kannattaa (kuv)</ar>
-<ar><k>back water</k>
-huovata</ar>
-<ar><k>back yard</k>
-takapiha</ar>
-<ar><k>back-combing</k>
-tupeeraus</ar>
-<ar><k>back-stroke</k>
-selkäuinti</ar>
-<ar><k>backbite</k>
-panetella</ar>
-<ar><k>backbone</k>
-selkäranka</ar>
-<ar><k>backed</k>
-selkäinen</ar>
-<ar><k>backgound voltage</k>
-taustajännite</ar>
-<ar><k>background</k>
-tausta</ar>
-<ar><k>background suppression</k>
-taustan häivytys</ar>
-<ar><k>backlash</k>
-holkkuma, taakse-</ar>
-<ar><k>backlog</k>
-tekemättömät työt</ar>
-<ar><k>backroom boys</k>
-poliitikot [puhek.]</ar>
-<ar><k>backward</k>
-takapajuinen</ar>
-<ar><k>backwards</k>
-taaksepäin</ar>
-<ar><k>backwoods</k>
-korpi, salo</ar>
-<ar><k>backyard</k>
-takapiha</ar>
-<ar><k>bacon</k>
-herkkusilava, pekoni</ar>
-<ar><k>bacteria</k>
-bakteeri</ar>
-<ar><k>bacteria scare</k>
-basillikauhu</ar>
-<ar><k>bad</k>
-huono, häijy, ilkeä, kehno, paha</ar>
-<ar><k>bad luck</k>
-epäonni</ar>
-<ar><k>bad memory</k>
-huonomuistinen</ar>
-<ar><k>bad news</k>
-kurja tilanne tai tapaus [puhek.]</ar>
-<ar><k>bad reputation</k>
-huonomaineisuus</ar>
-<ar><k>bad temper</k>
-huonotuulisuus</ar>
-<ar><k>bad trip</k>
-huono kokemus huumeesta</ar>
-<ar><k>bad year</k>
-katovuosi</ar>
-<ar><k>badge of rank</k>
-arvomerkki</ar>
-<ar><k>badger</k>
-mäyrä</ar>
-<ar><k>badly</k>
-huonosti, pahasti, pahoin</ar>
-<ar><k>badminton</k>
-sulkapallo</ar>
-<ar><k>badness</k>
-huonous</ar>
-<ar><k>baffle</k>
-ohjain
-
-nolata</ar>
-<ar><k>baffle board</k>
-hajoituslevy</ar>
-<ar><k>baffled</k>
-nolo</ar>
-<ar><k>baffling</k>
-hämmentävä</ar>
-<ar><k>bag</k>
-kassi, laukku, pussi, saalis (metsästäjän)</ar>
-<ar><k>bag of tricks</k>
-koko hoito [puhek.]</ar>
-<ar><k>bagpipe</k>
-ssäkkipilli</ar>
-<ar><k>bail</k>
-oikeustakaus</ar>
-<ar><k>bailiff</k>
-pehtori</ar>
-<ar><k>bait</k>
-syötti</ar>
-<ar><k>bake</k>
-kypsentää (leipä), leipoa</ar>
-<ar><k>baked dish</k>
-paistos</ar>
-<ar><k>bakelite</k>
-bakeliitti</ar>
-<ar><k>baker</k>
-leipuri</ar>
-<ar><k>baker's shop</k>
-leipämyymälä</ar>
-<ar><k>bakery</k>
-leipomo</ar>
-<ar><k>baking oven</k>
-leivinuuni</ar>
-<ar><k>baking powder</k>
-leivinjauhe</ar>
-<ar><k>baking tin</k>
-kakkuvuoka, vuoka</ar>
-<ar><k>balance</k>
-saatava, saldo, tasapaino, tase (liik), vaaka
-
-tasapaino, vastapaino</ar>
-<ar><k>balance sheet</k>
-tase</ar>
-<ar><k>balance-sheet</k>
-bilanssi</ar>
-<ar><k>balcony</k>
-parveke</ar>
-<ar><k>bald</k>
-kalju</ar>
-<ar><k>bald-headed</k>
-kaljupäinen</ar>
-<ar><k>baldness</k>
-kaljupäisyys</ar>
-<ar><k>baler</k>
-äyskäri</ar>
-<ar><k>baliff</k>
-vouti</ar>
-<ar><k>balk</k>
-hirsi</ar>
-<ar><k>ball</k>
-kerä, pallo, tanssiaiset</ar>
-<ar><k>ball-bearing</k>
-kuulalaakari</ar>
-<ar><k>ballad</k>
-balladi</ar>
-<ar><k>ballast</k>
-painolasti, kuristin</ar>
-<ar><k>ballbearing</k>
-kuulalaakeri</ar>
-<ar><k>ballet</k>
-baletti</ar>
-<ar><k>ballistic</k>
-ballistinen</ar>
-<ar><k>balloon</k>
-ilmapatsas</ar>
-<ar><k>ballot box</k>
-vaaliuurna</ar>
-<ar><k>ballot paper</k>
-äänestyslippu</ar>
-<ar><k>ballot-paper</k>
-vaalilippu, äänestyslippu</ar>
-<ar><k>ballpoint pen</k>
-kuulakärkikynä</ar>
-<ar><k>ballroom</k>
-tanssisali</ar>
-<ar><k>balls up</k>
-paskamainen tilanne [puhek.]</ar>
-<ar><k>balsam</k>
-balsami</ar>
-<ar><k>baltic country</k>
-itämerenmaa</ar>
-<ar><k>baltic herring</k>
-haili, silakka</ar>
-<ar><k>balustrade</k>
-kaide (kaiteet)</ar>
-<ar><k>bamboo</k>
-bambu</ar>
-<ar><k>ban</k>
-kielto
-
-kieltää</ar>
-<ar><k>banal</k>
-banaali</ar>
-<ar><k>banana</k>
-banaani</ar>
-<ar><k>band</k>
-hihna, rikosjoukkue, kopla (varas- ym), nauha, side, soittokunta, suikale, yhtye (mus)</ar>
-<ar><k>band saw</k>
-vannesaha</ar>
-<ar><k>band-leader</k>
-kapellimestari</ar>
-<ar><k>bandage</k>
-kääre (side), side (kääre)</ar>
-<ar><k>bandaging</k>
-sidonta</ar>
-<ar><k>bandit</k>
-rosvo</ar>
-<ar><k>bang</k>
-jymähdys, pamahdus, paukahdus
-
-pamahtaa</ar>
-<ar><k>bang on</k>
-aivan nappiin [puhek.]</ar>
-<ar><k>banishment</k>
-karkotus</ar>
-<ar><k>banister</k>
-kiinnitystanko, kaide (kaiteet)</ar>
-<ar><k>bank</k>
-pankki, penger, ranta, valli, äyräs</ar>
-<ar><k>bank of a river</k>
-jokiäyräs</ar>
-<ar><k>bank up</k>
-pengertää</ar>
-<ar><k>bank-note</k>
-seteli</ar>
-<ar><k>banker</k>
-pankkiiri</ar>
-<ar><k>banking</k>
-pankkitoiminta</ar>
-<ar><k>bankrupt</k>
-vararikkoinen</ar>
-<ar><k>bankruptcy</k>
-konkurssi, vararikko</ar>
-<ar><k>banner</k>
-lippu</ar>
-<ar><k>banquet</k>
-juhlaateria, juhlapäivälliset, pidot, syöminki</ar>
-<ar><k>bantam weight</k>
-kääpiösarja</ar>
-<ar><k>banter</k>
-ikamoida, kujeilla, pilailla</ar>
-<ar><k>bantering</k>
-ikamointi</ar>
-<ar><k>baptism</k>
-kaste</ar>
-<ar><k>baptist</k>
-baptisti</ar>
-<ar><k>bar</k>
-baari, harkko, kanki, kisko, kuppila, pidäke (kuv), puomi, rima (urh), tanko, telki
-
-salvata, teljetä, kieltää
-
-kieltää</ar>
-<ar><k>barb</k>
-väkä</ar>
-<ar><k>barbarian</k>
-barbaari, raakalainen</ar>
-<ar><k>barbaric</k>
-barbaarinen</ar>
-<ar><k>barbecue</k>
-ulkogrilli
-
-grillata</ar>
-<ar><k>barbed</k>
-väkäinen</ar>
-<ar><k>barbed wire</k>
-piikilanka</ar>
-<ar><k>barber</k>
-parturi</ar>
-<ar><k>bare</k>
-lehdetön, paljas, paljastaa</ar>
-<ar><k>barefoot</k>
-avojaloin</ar>
-<ar><k>barefooted</k>
-avojalkainen</ar>
-<ar><k>bareness</k>
-karuus</ar>
-<ar><k>bargain</k>
-kauppa (osto), sopimus
-
-tinkiä</ar>
-<ar><k>barge</k>
-lotja, proomu</ar>
-<ar><k>baritone</k>
-barytoni</ar>
-<ar><k>bark</k>
-haukkua</ar>
-<ar><k>bark at</k>
-haukkua</ar>
-<ar><k>barking</k>
-haukku, haukunta</ar>
-<ar><k>barley</k>
-ohra</ar>
-<ar><k>barn</k>
-heinälato, lato</ar>
-<ar><k>barometer</k>
-ilmapuntari</ar>
-<ar><k>baron</k>
-paroni</ar>
-<ar><k>barrack</k>
-kasarmi</ar>
-<ar><k>barracks</k>
-kasarmi</ar>
-<ar><k>barrage</k>
-pato</ar>
-<ar><k>barrel</k>
-kiväärinpiippu, tynnyri</ar>
-<ar><k>barrel-organ</k>
-posetiivi</ar>
-<ar><k>barren</k>
-hedelmätön (maa), karu</ar>
-<ar><k>barren soil</k>
-laihamaa</ar>
-<ar><k>barricade</k>
-barrikadi, katusulku, katusulku</ar>
-<ar><k>barrier</k>
-puomi</ar>
-<ar><k>base</k>
-alusta, emäs (kem), jalka (lampun ym), jalusta, perusta, perustus, tyvi
-
-perus-, pohja</ar>
-<ar><k>baseless</k>
-perätön</ar>
-<ar><k>basement</k>
-kellarikerros</ar>
-<ar><k>baseplate</k>
-pohjalaatta</ar>
-<ar><k>bashful</k>
-häveliäs, kaino</ar>
-<ar><k>bashfulness</k>
-kainostelu, kainous</ar>
-<ar><k>basic</k>
-emäksinen, kantamuoto, perus</ar>
-<ar><k>basic salary</k>
-pohjapalkka</ar>
-<ar><k>basin</k>
-allas (pesu- ym), kulho, sammio, pesuallas</ar>
-<ar><k>basis</k>
-pohja</ar>
-<ar><k>basis of estimation</k>
-arvosteperuste</ar>
-<ar><k>bask</k>
-lekotella</ar>
-<ar><k>basket</k>
-koppa, kori, vatsa [puhek.]</ar>
-<ar><k>basket-ball</k>
-korpallo</ar>
-<ar><k>basoon</k>
-fagotti (mus)</ar>
-<ar><k>bastard</k>
-äpärä</ar>
-<ar><k>bastard *</k>
-äpärä [alat.]</ar>
-<ar><k>baste</k>
-harsia</ar>
-<ar><k>bat</k>
-karttu (maila), lepakko, maila</ar>
-<ar><k>bat ones gums</k>
-lässyttää [puhek.]</ar>
-<ar><k>batching</k>
-suhteitus</ar>
-<ar><k>bath</k>
-kylpyamme, kylpy
-
-kylvettää</ar>
-<ar><k>bath attendant</k>
-kylvettäjä</ar>
-<ar><k>bath towel</k>
-kylpypyyhe</ar>
-<ar><k>bath tub</k>
-kylpyamme</ar>
-<ar><k>bath-robe</k>
-kylpytakki</ar>
-<ar><k>bathe</k>
-hautoa, kylpeä, uida</ar>
-<ar><k>bathe with hot water</k>
-haudella</ar>
-<ar><k>bathhouse stove</k>
-kiuas</ar>
-<ar><k>bathing</k>
-haudonta</ar>
-<ar><k>bathing beach</k>
-uimaranta</ar>
-<ar><k>bathing costume</k>
-uimapuku</ar>
-<ar><k>bathing hut</k>
-uimakoppi</ar>
-<ar><k>bathrobe</k>
-aamutakki</ar>
-<ar><k>bathroom</k>
-kylpyhuone</ar>
-<ar><k>baton</k>
-viestikapula, tahtipuikko, viestikapula</ar>
-<ar><k>batsman</k>
-lyöjä (urh)</ar>
-<ar><k>battalion</k>
-pataljoona</ar>
-<ar><k>batten</k>
-rima, soiro</ar>
-<ar><k>batter</k>
-kolhia, rusikoida</ar>
-<ar><k>battery</k>
-akkuparisto, paristo (fys), patteri (sot)</ar>
-<ar><k>battle</k>
-taistelu</ar>
-<ar><k>baud rate</k>
-(signaalien) siirtonopeus</ar>
-<ar><k>baulk</k>
-palkki</ar>
-<ar><k>bauxite</k>
-boksiitti</ar>
-<ar><k>bawl</k>
-parkua</ar>
-<ar><k>bay</k>
-lahti, lähdeke, merenlahti, poukama</ar>
-<ar><k>bay willow</k>
-halavapuu</ar>
-<ar><k>bay-window</k>
-erkkeri-ikkuna</ar>
-<ar><k>bayleaf</k>
-laakerinlehti</ar>
-<ar><k>bazaar</k>
-basaari, myyjäiset</ar>
-<ar><k>be</k>
-olla</ar>
-<ar><k>be a guardian</k>
-holhota</ar>
-<ar><k>be able to</k>
-jaksaa, mahtaa (voida), osata, pystyä, saattaa (kyetä), taitaa (kyetä), voida</ar>
-<ar><k>be absorbed</k>
-imeytyä</ar>
-<ar><k>be adrift</k>
-ajelehtia</ar>
-<ar><k>be afraid</k>
-pelätä</ar>
-<ar><k>be alive</k>
-elää (olla elossa)</ar>
-<ar><k>be all over someone</k>
-tehdä suuri numero jksta [puhek.]</ar>
-<ar><k>be alleviated</k>
-vaimeta</ar>
-<ar><k>be allowed</k>
-saada (lupa)</ar>
-<ar><k>be angry</k>
-vihoitella</ar>
-<ar><k>be annoyed</k>
-harmistua, kiusaantua, vihoitella</ar>
-<ar><k>be anxious</k>
-hätäillä</ar>
-<ar><k>be appeased</k>
-lauhtua</ar>
-<ar><k>be arched</k>
-kaareutua</ar>
-<ar><k>be asleep</k>
-nukkua</ar>
-<ar><k>be asphyxiated</k>
-häkään</ar>
-<ar><k>be astonished</k>
-kummaksua, kummastella</ar>
-<ar><k>be at large</k>
-irrallaan (eläin ym)</ar>
-<ar><k>be at work</k>
-työskennellä</ar>
-<ar><k>be audible</k>
-kuulua</ar>
-<ar><k>be awake</k>
-valvoa</ar>
-<ar><k>be aware of</k>
-tietää</ar>
-<ar><k>be born</k>
-syntyä</ar>
-<ar><k>be broken</k>
-särkyä</ar>
-<ar><k>be broken off</k>
-lohjeta</ar>
-<ar><k>be buried in</k>
-hautautua</ar>
-<ar><k>be busy</k>
-hommata, hyöriä, hääriä, puuhata, uurastaa</ar>
-<ar><k>be cancelled</k>
-peruutua</ar>
-<ar><k>be capable of</k>
-kyetä, pystyä, saattaa (kyetä), voida</ar>
-<ar><k>be caught</k>
-joutua kiinni</ar>
-<ar><k>be caused</k>
-aiheutua</ar>
-<ar><k>be caused by</k>
-johtua jstk</ar>
-<ar><k>be celebrating</k>
-juhlia</ar>
-<ar><k>be charmed</k>
-ihastua, viehättyä</ar>
-<ar><k>be checked</k>
-ehkäistyä</ar>
-<ar><k>be cocky</k>
-pöyhkeillä</ar>
-<ar><k>be cold</k>
-palella</ar>
-<ar><k>be completed</k>
-valmistua</ar>
-<ar><k>be composed of</k>
-koostua</ar>
-<ar><k>be conciliated</k>
-leppyä</ar>
-<ar><k>be condemned</k>
-hylättävä</ar>
-<ar><k>be confirmed</k>
-varmistua</ar>
-<ar><k>be conscious of</k>
-tietää</ar>
-<ar><k>be contained</k>
-sisältyä</ar>
-<ar><k>be continued</k>
-jatkua</ar>
-<ar><k>be converted</k>
-kääntyä (usk), muuttua (tekn)</ar>
-<ar><k>be cut off</k>
-katketa</ar>
-<ar><k>be damaged</k>
-vaurioitua, vikaantua, vioittua</ar>
-<ar><k>be deceitful</k>
-vilpistellä</ar>
-<ar><k>be defiant</k>
-uhitella</ar>
-<ar><k>be deficient</k>
-puuttua</ar>
-<ar><k>be delayed</k>
-hidastua, viivastyä</ar>
-<ar><k>be delighted</k>
-iloita</ar>
-<ar><k>be delighted at</k>
-ilostua</ar>
-<ar><k>be delighted with</k>
-ilostua</ar>
-<ar><k>be delirious</k>
-hourailla</ar>
-<ar><k>be dimly visible</k>
-kuultaa</ar>
-<ar><k>be directed</k>
-kohdistua</ar>
-<ar><k>be discerned</k>
-erottua (näkyä)</ar>
-<ar><k>be discontinued</k>
-keskeytyä</ar>
-<ar><k>be discouraged</k>
-lannistua</ar>
-<ar><k>be discovered</k>
-löytyä</ar>
-<ar><k>be disheartened</k>
-masentua</ar>
-<ar><k>be dispelled</k>
-hälvetä</ar>
-<ar><k>be distinguished</k>
-erottua (näkyä)</ar>
-<ar><k>be disturbed</k>
-häirintyä</ar>
-<ar><k>be divided</k>
-jakautua</ar>
-<ar><k>be doubtful</k>
-empiä</ar>
-<ar><k>be dragged along</k>
-laahautua</ar>
-<ar><k>be drowned</k>
-hukkua (veteen)</ar>
-<ar><k>be drowsy</k>
-torkkua</ar>
-<ar><k>be effective</k>
-tepsiä</ar>
-<ar><k>be elastic</k>
-joustaa, kimmota</ar>
-<ar><k>be embarrassed</k>
-kainostella</ar>
-<ar><k>be emotional</k>
-tunteilla</ar>
-<ar><k>be employed</k>
-työskennellä</ar>
-<ar><k>be emptied</k>
-tyhjentyä</ar>
-<ar><k>be enraged</k>
-julmistua</ar>
-<ar><k>be enthusiastic</k>
-intoilla</ar>
-<ar><k>be evident</k>
-käydä ilmi</ar>
-<ar><k>be extinguished</k>
-sammua</ar>
-<ar><k>be fascinated</k>
-viehättyä</ar>
-<ar><k>be fed up with</k>
-tympääntyä</ar>
-<ar><k>be fickle</k>
-huikennella</ar>
-<ar><k>be finished</k>
-valmistua</ar>
-<ar><k>be fit for</k>
-kelvata</ar>
-<ar><k>be flattened</k>
-litistyä</ar>
-<ar><k>be flushed</k>
-punoittaa</ar>
-<ar><k>be forgotten</k>
-unohtua</ar>
-<ar><k>be formed</k>
-muodostua</ar>
-<ar><k>be formented</k>
-hautua (lääk)</ar>
-<ar><k>be found</k>
-löytyä</ar>
-<ar><k>be frightened</k>
-säikkyä</ar>
-<ar><k>be glad about</k>
-iloita</ar>
-<ar><k>be going on</k>
-jatkua (kestää)</ar>
-<ar><k>be going to</k>
-aikoa</ar>
-<ar><k>be good</k>
-hei sitten [puhek.]</ar>
-<ar><k>be good enough</k>
-kelvata</ar>
-<ar><k>be greedy</k>
-ahnehtia</ar>
-<ar><k>be ground</k>
-hioutua</ar>
-<ar><k>be happy about</k>
-iloita</ar>
-<ar><k>be haughty</k>
-kopeilla</ar>
-<ar><k>be heard</k>
-kuulua</ar>
-<ar><k>be heart</k>
-ulkomuistista</ar>
-<ar><k>be hidden</k>
-kätkeytyä, piillä</ar>
-<ar><k>be hindered</k>
-estyä</ar>
-<ar><k>be hurt</k>
-loukkaantua</ar>
-<ar><k>be idle</k>
-laiskotella</ar>
-<ar><k>be ill</k>
-sairastaa</ar>
-<ar><k>be impatient</k>
-tuskailla</ar>
-<ar><k>be in a tantrum</k>
-kiukutella</ar>
-<ar><k>be in charge</k>
-isännöidä</ar>
-<ar><k>be in command of</k>
-komentaa</ar>
-<ar><k>be in flower</k>
-heilimöidä (ruis)</ar>
-<ar><k>be in high spirits</k>
-ilakoida</ar>
-<ar><k>be in poor health</k>
-sairastella</ar>
-<ar><k>be in session</k>
-istua (oikeus ym)</ar>
-<ar><k>be in time</k>
-ajoissa</ar>
-<ar><k>be in two minds</k>
-empiä</ar>
-<ar><k>be included</k>
-sisältyä</ar>
-<ar><k>be infectious</k>
-tarttua (taudista)</ar>
-<ar><k>be interrupted</k>
-katketa, keskeytyä</ar>
-<ar><k>be involved in</k>
-joutua</ar>
-<ar><k>be issuedcome out</k>
-ilmestyä (julkaisuista)</ar>
-<ar><k>be jammed</k>
-likistyä, lukkiintua</ar>
-<ar><k>be lacking</k>
-puuttua</ar>
-<ar><k>be late</k>
-myöhästyä, viivastyä</ar>
-<ar><k>be lazy</k>
-laiskotella</ar>
-<ar><k>be leaky</k>
-vuotaa</ar>
-<ar><k>be learning</k>
-opetella</ar>
-<ar><k>be left over</k>
-säästyä</ar>
-<ar><k>be like</k>
-olla jnk kaltainen</ar>
-<ar><k>be located</k>
-sijaita</ar>
-<ar><k>be lost</k>
-olla hukassa, hukkua, kadota</ar>
-<ar><k>be lying</k>
-virua</ar>
-<ar><k>be misled</k>
-hairahtua</ar>
-<ar><k>be missing</k>
-hukassa (kadoksissa)</ar>
-<ar><k>be mistaken</k>
-erehtyä</ar>
-<ar><k>be naked</k>
-olla alasti</ar>
-<ar><k>be noisy</k>
-elämöidä, remuta</ar>
-<ar><k>be obliged to</k>
-täytyä</ar>
-<ar><k>be of use</k>
-auttaa (hyödyttää), hyödyttää</ar>
-<ar><k>be on duty</k>
-päivystää</ar>
-<ar><k>be on the lookout for</k>
-etsiä</ar>
-<ar><k>be overthrown</k>
-kukistua</ar>
-<ar><k>be overturned</k>
-kaatua</ar>
-<ar><k>be paralysed</k>
-halvaantua</ar>
-<ar><k>be pedantic</k>
-saivarella</ar>
-<ar><k>be peevish</k>
-marista</ar>
-<ar><k>be permitted</k>
-saada (lupa)</ar>
-<ar><k>be pious</k>
-hurskastella</ar>
-<ar><k>be polluted</k>
-likaantua (esim vesi), saastua</ar>
-<ar><k>be postponed</k>
-lykkäytyä</ar>
-<ar><k>be preserved</k>
-säilyä</ar>
-<ar><k>be pressed</k>
-puristua</ar>
-<ar><k>be prevented</k>
-estyä</ar>
-<ar><k>be promoted</k>
-yletä</ar>
-<ar><k>be pronounced</k>
-ääntyä</ar>
-<ar><k>be proud</k>
-ylpeillä</ar>
-<ar><k>be published</k>
-ilmestyä (julkaisuista)</ar>
-<ar><k>be reckless</k>
-huikennella</ar>
-<ar><k>be reconciled with</k>
-leppyä</ar>
-<ar><k>be red</k>
-punoittaa</ar>
-<ar><k>be reflected</k>
-heijastua, kajastaa, kuvastua</ar>
-<ar><k>be refreshed</k>
-raitistua</ar>
-<ar><k>be relieved</k>
-helpottua, kevetä, lieventyä</ar>
-<ar><k>be remedied</k>
-korjautua</ar>
-<ar><k>be renewed</k>
-uusiutua</ar>
-<ar><k>be repaired</k>
-korjautua</ar>
-<ar><k>be repeated</k>
-toistua, uusiutua</ar>
-<ar><k>be revived</k>
-virota (henkiin)</ar>
-<ar><k>be ruined</k>
-pilaantua, tärveltyä</ar>
-<ar><k>be satisfied with</k>
-tyytyä</ar>
-<ar><k>be saved</k>
-säästyä</ar>
-<ar><k>be seated</k>
-istua</ar>
-<ar><k>be secreted</k>
-erittuä (fysiol)</ar>
-<ar><k>be seen</k>
-käydä ilmi, näkyä</ar>
-<ar><k>be sentimental</k>
-tunteilla</ar>
-<ar><k>be servile</k>
-nöyristellä</ar>
-<ar><k>be shivering</k>
-värjottää</ar>
-<ar><k>be shy</k>
-aristaa, kainostella, ujostella</ar>
-<ar><k>be sick</k>
-sairastaa</ar>
-<ar><k>be situated</k>
-sijaita</ar>
-<ar><k>be slow</k>
-hidastella, vitkastella</ar>
-<ar><k>be sluggish</k>
-vitkastella</ar>
-<ar><k>be smothered</k>
-tukahtua</ar>
-<ar><k>be soaked</k>
-vettyä</ar>
-<ar><k>be sorry</k>
-pahoillaan (olla)</ar>
-<ar><k>be sorry for</k>
-katua, pahoitella</ar>
-<ar><k>be spoiled</k>
-tärveltyä</ar>
-<ar><k>be strained</k>
-jännittyä</ar>
-<ar><k>be stretched</k>
-jännittyä, pingottua</ar>
-<ar><k>be successful</k>
-menestyä, onnistua</ar>
-<ar><k>be surprised</k>
-ihmetellä, kummaksua, kummastella, yllättyä</ar>
-<ar><k>be taken by surprise</k>
-yllättyä</ar>
-<ar><k>be taken ill</k>
-sairastua</ar>
-<ar><k>be taken with</k>
-ihastua</ar>
-<ar><k>be terrified</k>
-kauhistua</ar>
-<ar><k>be the master</k>
-isännöidä</ar>
-<ar><k>be through</k>
-panna välit poikki [puhek.]</ar>
-<ar><k>be timid</k>
-aristella, arkailla</ar>
-<ar><k>be torn</k>
-repeytyä</ar>
-<ar><k>be turned to</k>
-kohdistua</ar>
-<ar><k>be undecided</k>
-epäröidä</ar>
-<ar><k>be unduly formal</k>
-kursailla (turhia)</ar>
-<ar><k>be unfastened</k>
-irrota</ar>
-<ar><k>be united</k>
-yhdistyä, yhtyä</ar>
-<ar><k>be unruly</k>
-hulinoida</ar>
-<ar><k>be up to mischief</k>
-kujeilla</ar>
-<ar><k>be upset</k>
-järkyttyä, kaatua</ar>
-<ar><k>be valid</k>
-päteä</ar>
-<ar><k>be visible</k>
-näkyä</ar>
-<ar><k>be waiting for</k>
-odotella</ar>
-<ar><k>be wakeful</k>
-valvoa</ar>
-<ar><k>be wanting</k>
-puuttua</ar>
-<ar><k>be wasted</k>
-haaskantua</ar>
-<ar><k>be wide open</k>
-ammollaan (olla)</ar>
-<ar><k>be work-shy</k>
-arastaa työ</ar>
-<ar><k>be working</k>
-työskennellä</ar>
-<ar><k>be worn</k>
-kulua</ar>
-<ar><k>be worthy of</k>
-ansaita (olla jnk arvoinen)</ar>
-<ar><k>be wounded</k>
-haavoittua</ar>
-<ar><k>be zealous</k>
-kiivailla</ar>
-<ar><k>beach</k>
-kylpyranta</ar>
-<ar><k>beacon</k>
-majakka, merkkituli</ar>
-<ar><k>bead</k>
-helmi (läsi- puu- ym), pisara
-
-lista</ar>
-<ar><k>bead deletion</k>
-raehäviämä (kopiojälkivirhe)</ar>
-<ar><k>bead of sweat</k>
-hikihelmi</ar>
-<ar><k>beak</k>
-nokka</ar>
-<ar><k>beam</k>
-hirsi, kattoparru, malka, palkki, säde, tukki, valonsäde</ar>
-<ar><k>bean</k>
-papu</ar>
-<ar><k>bear</k>
-karhu
-
-kantaa (kuv), kestää (sietää), kärsiä</ar>
-<ar><k>bear-cub</k>
-karhunpentu</ar>
-<ar><k>beard</k>
-parta</ar>
-<ar><k>bearded</k>
-parrakas</ar>
-<ar><k>beardless</k>
-parraton</ar>
-<ar><k>bearing</k>
-laakeri (tekn)</ar>
-<ar><k>bearing pressure</k>
-tukipaine</ar>
-<ar><k>bearskin</k>
-karhuntalja</ar>
-<ar><k>beast</k>
-elukka, eläin, julmuri (hirviö)</ar>
-<ar><k>beast of burden</k>
-juhta</ar>
-<ar><k>beastly weather</k>
-koiranilma</ar>
-<ar><k>beat</k>
-kepittää, lyöda, läpättää, pamppailla, piestä (lyödä), piiskata (mattoja), päihittää, sykintä, sykkiä, sykähdys, sykähtää, tykyttää</ar>
-<ar><k>beat it</k>
-painu tiehesi, laputtaa [puhek.]</ar>
-<ar><k>beat the drum</k>
-puhua liikaa [puhek.]</ar>
-<ar><k>beater</k>
-vatkain, vispilä</ar>
-<ar><k>beautiful</k>
-kaunis, luonnonihana</ar>
-<ar><k>beautifully</k>
-ihanasti</ar>
-<ar><k>beauty</k>
-kaunotar, kaunotar</ar>
-<ar><k>beauty specialist</k>
-kosmetologi</ar>
-<ar><k>beaver</k>
-majava</ar>
-<ar><k>because</k>
-siksi, sillä</ar>
-<ar><k>because of</k>
-johdosta (jnk), varten, vuoksi (jnk)</ar>
-<ar><k>because of that</k>
-sentähden, senvuoksi</ar>
-<ar><k>become a member</k>
-liittyä (jäseneksi)</ar>
-<ar><k>become accustomed to</k>
-tottua</ar>
-<ar><k>become agitated</k>
-kiihtyä</ar>
-<ar><k>become alarmed</k>
-hätääntyä</ar>
-<ar><k>become amazed</k>
-hölmistyä</ar>
-<ar><k>become angry</k>
-suutahtaa</ar>
-<ar><k>become aquainted with</k>
-tutustua</ar>
-<ar><k>become attached to</k>
-kiintyä</ar>
-<ar><k>become aware of</k>
-havaita (huomata), huomata</ar>
-<ar><k>become blocked</k>
-tukkeutua</ar>
-<ar><k>become calm</k>
-hiljetä</ar>
-<ar><k>become charmed</k>
-hurmautua</ar>
-<ar><k>become charred</k>
-hiiltyä</ar>
-<ar><k>become cheaper</k>
-halveta</ar>
-<ar><k>become civilized</k>
-ihmistyä</ar>
-<ar><k>become clear</k>
-kirkastua</ar>
-<ar><k>become cold</k>
-kylmetä</ar>
-<ar><k>become confused</k>
-hämmentyä</ar>
-<ar><k>become crooked</k>
-koukistua, käyristyä</ar>
-<ar><k>become darker</k>
-himmenntyä</ar>
-<ar><k>become decayed</k>
-lahota</ar>
-<ar><k>become deeper</k>
-syvetä</ar>
-<ar><k>become delighted</k>
-ihastua</ar>
-<ar><k>become different</k>
-erilaistua</ar>
-<ar><k>become dilated</k>
-laajeta</ar>
-<ar><k>become distorted</k>
-kieroutua</ar>
-<ar><k>become dry</k>
-kuivua</ar>
-<ar><k>become due</k>
-erääntyä</ar>
-<ar><k>become empty</k>
-tyhjentyä</ar>
-<ar><k>become engaged</k>
-kihlautua</ar>
-<ar><k>become estranged</k>
-vieraantua</ar>
-<ar><k>become exhausted</k>
-uupua</ar>
-<ar><k>become familiar with</k>
-perehtyä, tutustua</ar>
-<ar><k>become fascinated</k>
-hurmautua</ar>
-<ar><k>become firm</k>
-vakaantua</ar>
-<ar><k>become flat</k>
-väljähtyä</ar>
-<ar><k>become fond of</k>
-mieltyä</ar>
-<ar><k>become furious</k>
-hurjistua, raivostua</ar>
-<ar><k>become hard</k>
-koveta</ar>
-<ar><k>become hardened</k>
-karaistua</ar>
-<ar><k>become hot</k>
-kuumeta</ar>
-<ar><k>become independent</k>
-itsenäistyä</ar>
-<ar><k>become infatuated with</k>
-hullaantua jhk</ar>
-<ar><k>become infuriated</k>
-julmistua</ar>
-<ar><k>become inspired</k>
-innostua</ar>
-<ar><k>become interested in</k>
-innostua, kiinnostua</ar>
-<ar><k>become intoxicated</k>
-juopua</ar>
-<ar><k>become irritated</k>
-ärsyttyä, ärtyä</ar>
-<ar><k>become larger</k>
-suurentua</ar>
-<ar><k>become lighter</k>
-kevetä, valjeta</ar>
-<ar><k>become lively</k>
-vilkastua</ar>
-<ar><k>become longer</k>
-pidetä</ar>
-<ar><k>become loose</k>
-väljetä</ar>
-<ar><k>become more complicated</k>
-mutkistua</ar>
-<ar><k>become more humane</k>
-inhimillistyä</ar>
-<ar><k>become more obscured</k>
-himmenntyä</ar>
-<ar><k>become more slender</k>
-hoikenta</ar>
-<ar><k>become mouldy</k>
-homehtua</ar>
-<ar><k>become narrower</k>
-suipentua</ar>
-<ar><k>become numb</k>
-turtua</ar>
-<ar><k>become paralyzed</k>
-lamaantua</ar>
-<ar><k>become parched</k>
-kuivettua</ar>
-<ar><k>become petrified</k>
-tyrmistyä</ar>
-<ar><k>become polished</k>
-hioutua (kulua)</ar>
-<ar><k>become poor</k>
-köyhtyä</ar>
-<ar><k>become quiet</k>
-hiljetä</ar>
-<ar><k>become refined</k>
-hienostua, jalostua</ar>
-<ar><k>become senile</k>
-höpertyä (vanhuuttaan)</ar>
-<ar><k>become sensitive</k>
-herkistyä</ar>
-<ar><k>become silent</k>
-vaieta</ar>
-<ar><k>become singed</k>
-kärventyä</ar>
-<ar><k>become slack</k>
-veltostua</ar>
-<ar><k>become slow</k>
-hidastua</ar>
-<ar><k>become sober</k>
-raitistua</ar>
-<ar><k>become soiled</k>
-likaantua</ar>
-<ar><k>become solid</k>
-koveta</ar>
-<ar><k>become stale</k>
-väljähtyä</ar>
-<ar><k>become steeper</k>
-jyrketä</ar>
-<ar><k>become stiff</k>
-jäykistyä, kangistua</ar>
-<ar><k>become stronger</k>
-voimistua</ar>
-<ar><k>become swollen</k>
-ajettua</ar>
-<ar><k>become tamed</k>
-kesyyntyä</ar>
-<ar><k>become thicker</k>
-paksuta, tihetä</ar>
-<ar><k>become trained</k>
-harjaantua</ar>
-<ar><k>become unfastened</k>
-irtautua</ar>
-<ar><k>become warm</k>
-lämmetä</ar>
-<ar><k>become warped</k>
-kieroutua</ar>
-<ar><k>become weaker</k>
-laimeta</ar>
-<ar><k>become wet</k>
-kastua</ar>
-<ar><k>becoming</k>
-pukeva</ar>
-<ar><k>bed</k>
-sänky, uoma, vuode</ar>
-<ar><k>bed-bug</k>
-lude, lutikka</ar>
-<ar><k>bedclothes</k>
-vuodevaatteet</ar>
-<ar><k>bedding</k>
-vuodevaatteet</ar>
-<ar><k>bedlam</k>
-hullunmylly (kuv)</ar>
-<ar><k>bedouin</k>
-beduiini</ar>
-<ar><k>bedrock</k>
-kallioperusta
-
-peruskallio</ar>
-<ar><k>bedroom</k>
-makuhuone</ar>
-<ar><k>bedside table</k>
-yöpöytä</ar>
-<ar><k>bedspread</k>
-päiväpeite</ar>
-<ar><k>bee</k>
-mehiläinen</ar>
-<ar><k>bee-keeper</k>
-mehiläishoitaja</ar>
-<ar><k>beech</k>
-pyökki</ar>
-<ar><k>beef</k>
-valitus [puhek.]</ar>
-<ar><k>beef extract</k>
-lihamehuste</ar>
-<ar><k>beefsteak</k>
-pihvi</ar>
-<ar><k>beehive</k>
-mehiläispesä</ar>
-<ar><k>beer</k>
-kalja, olut</ar>
-<ar><k>beer belly</k>
-olutmaha, kaljamaha [puhek.]</ar>
-<ar><k>beetle</k>
-kovakuoriainen, kuoriainen</ar>
-<ar><k>beetroot</k>
-punajuuri</ar>
-<ar><k>before</k>
-edellä (adv), edessä, ennen (adv), ennen (prep)</ar>
-<ar><k>beforehand</k>
-edeltäkäsin, edeltäpäin, ennakolta, etukäteen</ar>
-<ar><k>beg</k>
-kerjätä, pyytää, rukoilla</ar>
-<ar><k>beggar</k>
-almunpyytäjä, avunpyytäjä, kerjäläinen</ar>
-<ar><k>begging</k>
-kerjuu</ar>
-<ar><k>begin</k>
-alkaa, aloittaa, ruveta, ryhtyä</ar>
-<ar><k>beginner</k>
-alkaja, alokas</ar>
-<ar><k>beginning</k>
-alkaminen, alku, alkuaika</ar>
-<ar><k>beginning of the week</k>
-alkuviikko</ar>
-<ar><k>behave</k>
-käyttäytyä</ar>
-<ar><k>behavior</k>
-käyttäytyminen</ar>
-<ar><k>behaviour</k>
-esiintyminen (käytös), käyttäytyminen, käytös</ar>
-<ar><k>behead</k>
-mestata</ar>
-<ar><k>behind</k>
-jäljessä, jälkeen (taakse), perästä, perään, taakse, takana</ar>
-<ar><k>being</k>
-olemus, olio</ar>
-<ar><k>belch</k>
-röyhtäys
-
-röyhtäistä, ilmiantaa</ar>
-<ar><k>belfry</k>
-kellotorni</ar>
-<ar><k>belief</k>
-luulo, usko, uskomus</ar>
-<ar><k>believe</k>
-luulla, uskoa</ar>
-<ar><k>belittle</k>
-väheksyä</ar>
-<ar><k>bell</k>
-soittokello, soittokello</ar>
-<ar><k>belle</k>
-kaunotar</ar>
-<ar><k>bellow</k>
-mylviä</ar>
-<ar><k>bellows</k>
-palkeet</ar>
-<ar><k>belly button</k>
-napa [puhek.]</ar>
-<ar><k>belly-dancer</k>
-napatanssija</ar>
-<ar><k>belong to</k>
-kuulua (jklle jhk)</ar>
-<ar><k>belonging to</k>
-kuuluva</ar>
-<ar><k>belonging together</k>
-yhteenkuuluva</ar>
-<ar><k>beloved</k>
-arams, armas, lemmitty, rakas</ar>
-<ar><k>below</k>
-alitse, alle</ar>
-<ar><k>belt</k>
-hihna, vyö
-
-nyrkinisku</ar>
-<ar><k>belt up</k>
-suu kiinni [puhek.]</ar>
-<ar><k>belt-driven</k>
-hihnakäyttöinen</ar>
-<ar><k>bench</k>
-lavitsa, penkki</ar>
-<ar><k>bench vice</k>
-viilapenkki</ar>
-<ar><k>bench warmer</k>
-varamies [puhek.]</ar>
-<ar><k>bend</k>
-tienkaarre, kaarros, kaarto, käänne, mutka, polveke, taive, kulmayhde
-
-köristää, notkistaa, taipua, vääristää, kaartaa, koukistua, kaareilla, polvi, koukistaa</ar>
-<ar><k>bend over backwards</k>
-yrittää tosissaan [puhek.]</ar>
-<ar><k>bend someones ear</k>
-lärpättää kaikki asiansa jklle [puhek.]</ar>
-<ar><k>bending</k>
-taivutus</ar>
-<ar><k>bending machine</k>
-taivutuskone</ar>
-<ar><k>beneath</k>
-alla (jnk), alle</ar>
-<ar><k>benefactor</k>
-hyväntekijä</ar>
-<ar><k>benefit</k>
-etu (hyöty), hyöty
-
-hyödyttää, hyötyä</ar>
-<ar><k>benevolent</k>
-hyväntahtoinen, hyväsuopa</ar>
-<ar><k>benzene</k>
-bentsoli (kem)</ar>
-<ar><k>bequest</k>
-jälkilahjoitus</ar>
-<ar><k>beret</k>
-baskeri</ar>
-<ar><k>berk</k>
-torvi [puhek.]</ar>
-<ar><k>berry</k>
-marja</ar>
-<ar><k>berth</k>
-hyttipaikka, makuukoju</ar>
-<ar><k>beside</k>
-viereen, äärestä</ar>
-<ar><k>besides</k>
-vieläkin (lisäksi), vieläpä (lisäksi)</ar>
-<ar><k>best</k>
-paras, parhaiten</ar>
-<ar><k>best man</k>
-sulhaspoika</ar>
-<ar><k>best seller</k>
-menekkikirja</ar>
-<ar><k>bestial</k>
-eläimellinen (raaka)</ar>
-<ar><k>bestow</k>
-lahjoittaa, suoda</ar>
-<ar><k>bet</k>
-veikata, veto (veikka)</ar>
-<ar><k>betray</k>
-kavaltaa, pettää</ar>
-<ar><k>betrayal</k>
-petos</ar>
-<ar><k>betrayer</k>
-petturi</ar>
-<ar><k>better</k>
-paremmin, parempi</ar>
-<ar><k>between</k>
-kesken (välillä), lomitse, väliin, välille, välillä, välissä</ar>
-<ar><k>beverage</k>
-juoma</ar>
-<ar><k>bevvy</k>
-viina [puhek.]</ar>
-<ar><k>bewail</k>
-valittaa</ar>
-<ar><k>bewildered</k>
-ymmällä</ar>
-<ar><k>bewildering</k>
-hämmentävä</ar>
-<ar><k>bewilderment</k>
-hämmennys</ar>
-<ar><k>bewitch</k>
-lumota, noitua</ar>
-<ar><k>beyond description</k>
-kuvaamaton</ar>
-<ar><k>beyond help</k>
-auttamaton</ar>
-<ar><k>beyond reach</k>
-saavuttamaton</ar>
-<ar><k>bezel</k>
-luovutus, kopiointitapa-, paperialusta-</ar>
-<ar><k>bias</k>
-ennakkoluulo, puolueellinen, puolueellisuus, vinous</ar>
-<ar><k>bias voltage</k>
-biasjännite, kehitysjännite</ar>
-<ar><k>biathlon</k>
-ampumahiihto</ar>
-<ar><k>bib</k>
-kuolalappu, leukalappu</ar>
-<ar><k>bible</k>
-raamattu</ar>
-<ar><k>bicep</k>
-hauisliha</ar>
-<ar><k>bicker</k>
-kinata, riidellä, torailla, torata</ar>
-<ar><k>bicycle</k>
-polkupyörä</ar>
-<ar><k>bid</k>
-huuto (huutokauppassa), tarjous</ar>
-<ar><k>bid farewell</k>
-hyvästellä</ar>
-<ar><k>bidet</k>
-pesuistuin</ar>
-<ar><k>biennial</k>
-kaksivuotinen</ar>
-<ar><k>big</k>
-suuri, iso</ar>
-<ar><k>big city</k>
-suurkaupunki</ar>
-<ar><k>big d</k>
-dallas [puhek.]</ar>
-<ar><k>big deal</k>
-kiva [puhek.]</ar>
-<ar><k>big drink</k>
-rapakko [puhek.]</ar>
-<ar><k>big headed</k>
-leuhka [puhek.]</ar>
-<ar><k>big stink</k>
-skandaali [puhek.]</ar>
-<ar><k>big toe</k>
-isovarvas</ar>
-<ar><k>big-dipper</k>
-vuoristorata</ar>
-<ar><k>bigamy</k>
-kaksinnaiminen</ar>
-<ar><k>bigger</k>
-suurempi</ar>
-<ar><k>biggest</k>
-suurin</ar>
-<ar><k>bighead</k>
-omahyväinen tyyppi [puhek.]</ar>
-<ar><k>bigness</k>
-suuruus</ar>
-<ar><k>bike</k>
-polkupyörä [puhek.]</ar>
-<ar><k>bilberry</k>
-mustikka</ar>
-<ar><k>bilingual</k>
-kaksikielinen</ar>
-<ar><k>bill</k>
-juliste, lasku, nokka, seteli</ar>
-<ar><k>bill of lading</k>
-konessementti</ar>
-<ar><k>bill-posting</k>
-ilmoittaminen (julisteilla)</ar>
-<ar><k>billet</k>
-kalikka</ar>
-<ar><k>billiards</k>
-biljardi</ar>
-<ar><k>billing switch</k>
-laskutusohjauskytkin</ar>
-<ar><k>billion</k>
-biljoona, miljardi</ar>
-<ar><k>billow</k>
-laine, lainehtia</ar>
-<ar><k>bills of quanties</k>
-massaluettelot</ar>
-<ar><k>billy-goat</k>
-pukki</ar>
-<ar><k>bin</k>
-hinkalo, jyvöhinkalo, laari, lokero</ar>
-<ar><k>bind</k>
-sitoa, solmia, velvoittaa</ar>
-<ar><k>binding</k>
-kansi (kirjan), kirjankansi, nide, side (kirjan), sidonta, sitova, takertelu</ar>
-<ar><k>binge</k>
-juomingit, ryyppy [puhek.]</ar>
-<ar><k>binoculars</k>
-kiikari</ar>
-<ar><k>bint</k>
-mimmi [puhek.]</ar>
-<ar><k>biochemistry</k>
-biokemia</ar>
-<ar><k>biographical</k>
-elämäkerrallinen</ar>
-<ar><k>biography</k>
-elämäkerta</ar>
-<ar><k>biological</k>
-biologinen</ar>
-<ar><k>biologist</k>
-biologi</ar>
-<ar><k>biology</k>
-biologia</ar>
-<ar><k>biped</k>
-kaksijalkainen</ar>
-<ar><k>birch</k>
-koivu, koivuinen</ar>
-<ar><k>birch bark</k>
-tuohi</ar>
-<ar><k>birch grove</k>
-koivikko</ar>
-<ar><k>birch twig</k>
-koivunvarpu</ar>
-<ar><k>birchwood</k>
-koivikko</ar>
-<ar><k>bird</k>
-hempukka, lintu, pimu, nainen [puhek.]</ar>
-<ar><k>bird box</k>
-pesimispönttö</ar>
-<ar><k>bird house</k>
-pesimispönttö</ar>
-<ar><k>bird table</k>
-lintulauta</ar>
-<ar><k>bird's nest</k>
-linnunpesä</ar>
-<ar><k>bird-cage</k>
-lintuhäkki</ar>
-<ar><k>bird-cherry</k>
-tuomi</ar>
-<ar><k>birk</k>
-torvi [puhek.]</ar>
-<ar><k>biro</k>
-kuulakärkikynä [puhek.]</ar>
-<ar><k>birth</k>
-synty, syntymä, syntyperä</ar>
-<ar><k>birth certificate</k>
-syntymätodistus</ar>
-<ar><k>birth-mark</k>
-luomi (ihossa), syntymämerkki</ar>
-<ar><k>birth-rate</k>
-syntyvyys</ar>
-<ar><k>birthday</k>
-syntymäpäivä</ar>
-<ar><k>biscuit</k>
-keksi (leivos)</ar>
-<ar><k>bishop</k>
-piispa</ar>
-<ar><k>bit</k>
-kappale, lappu, pala, palanen, pala, hitunen, hevosenkuolaimet
-
-hiukan, vähän (hiukan)</ar>
-<ar><k>bitch</k>
-naaraskoira, narttu</ar>
-<ar><k>bite</k>
-purema, suupala
-
-haukata, puraista, purenta</ar>
-<ar><k>biting</k>
-pureva</ar>
-<ar><k>bits of glass</k>
-lasinsirpaleet</ar>
-<ar><k>bitter</k>
-karmea, karvas, katkera, kirpeä, kitkerä</ar>
-<ar><k>bitterness</k>
-karvaus, katkeruus, kirpeys</ar>
-<ar><k>bitumen</k>
-maapihka</ar>
-<ar><k>bituminous felt</k>
-bitumihuopa</ar>
-<ar><k>bizarre</k>
-eriskummallinen, hullunkurinen</ar>
-<ar><k>black</k>
-musta</ar>
-<ar><k>black grouse</k>
-teeri</ar>
-<ar><k>black money</k>
-pimeä raha [puhek.]</ar>
-<ar><k>black pepper</k>
-karvaspippuri</ar>
-<ar><k>black stuff</k>
-oopiumi [puhek.]</ar>
-<ar><k>black-pudding</k>
-palttu</ar>
-<ar><k>black-throated diver</k>
-kuikka</ar>
-<ar><k>blackbaiter</k>
-rasisti [puhek.]</ar>
-<ar><k>blackbird</k>
-mustarastas</ar>
-<ar><k>blacken</k>
-musteta</ar>
-<ar><k>blackhead</k>
-ihomato</ar>
-<ar><k>blackleg</k>
-lakonrikkuri, rikkuri</ar>
-<ar><k>blackmail</k>
-kiristää
-
-kiristys (uhkauksin)</ar>
-<ar><k>blacksmith</k>
-hevosenkengittäjä, karkeisseppä</ar>
-<ar><k>blacksmiths daughter</k>
-avain [puhek.]</ar>
-<ar><k>blade</k>
-lapa (airon), siipi (tekn), terä</ar>
-<ar><k>blade of an oar</k>
-aironlapa</ar>
-<ar><k>blamable</k>
-moititteva</ar>
-<ar><k>blame</k>
-moittia, syyttää</ar>
-<ar><k>blameless</k>
-moiteeton</ar>
-<ar><k>blamelessness</k>
-nuhteettomuus</ar>
-<ar><k>blandness</k>
-imelyys (kuv)</ar>
-<ar><k>blank</k>
-blanko
-
-kirjoittamaton, tyhjyys, tyhjä</ar>
-<ar><k>blank cartridge</k>
-paukkupanos</ar>
-<ar><k>blank copy</k>
-tyhjä kopio (kopiojälkivirhe)</ar>
-<ar><k>blanket</k>
-huopapeite, hevosloimi</ar>
-<ar><k>blaspheme</k>
-rienata</ar>
-<ar><k>blasphemer</k>
-jumalanpilkkaaja</ar>
-<ar><k>blasphemy</k>
-häväistys, jumalanpilkka</ar>
-<ar><k>blast</k>
-räjähdys, törähdys</ar>
-<ar><k>blast *</k>
-hitto [alat.]</ar>
-<ar><k>blast furnace</k>
-masuuni</ar>
-<ar><k>blaze</k>
-leimu, loimu, pilkka (merkki), roihu
-
-leimuta, liekehtiä, loimuta</ar>
-<ar><k>blaze of the sun</k>
-auringonpaahde</ar>
-<ar><k>bleach</k>
-haalistaa (väriä), valkaista</ar>
-<ar><k>bleak</k>
-kalsea (kuv), kolea, salakka, synkkyys, valju</ar>
-<ar><k>bleat</k>
-määkiä</ar>
-<ar><k>bleeder</k>
-karju [puhek.]</ar>
-<ar><k>bleeding</k>
-suonenisku, verenvuoto, hemmetti [puhek.]</ar>
-<ar><k>blend</k>
-seota
-
-sekoittaa</ar>
-<ar><k>bless</k>
-siunata</ar>
-<ar><k>blessed</k>
-autuas</ar>
-<ar><k>blessing</k>
-siunaus</ar>
-<ar><k>blight</k>
-noki (viljan)</ar>
-<ar><k>blind</k>
-kierrekaihdin, sokaista, sokea</ar>
-<ar><k>blind alley</k>
-umpikuja</ar>
-<ar><k>blind date</k>
-sokkotreffit [puhek.]</ar>
-<ar><k>blind tom</k>
-baseball erotuomari [puhek.]</ar>
-<ar><k>blindman</k>
-sokko</ar>
-<ar><k>blindness</k>
-sokeus</ar>
-<ar><k>blink</k>
-räpyttää (silmiään), vilkkua, vilkuttaa</ar>
-<ar><k>blinkers</k>
-silmät [puhek.]</ar>
-<ar><k>blinking</k>
-vilkutus</ar>
-<ar><k>bliss</k>
-autuus</ar>
-<ar><k>blissful</k>
-autuas</ar>
-<ar><k>blister</k>
-rakkula</ar>
-<ar><k>blizzard</k>
-tuisku</ar>
-<ar><k>bloated</k>
-turpea</ar>
-<ar><k>block</k>
-lohkare, harkko, suuri ryhmä, suuri rakennus, este, tukos</ar>
-<ar><k>block and tackle</k>
-talja</ar>
-<ar><k>block letter</k>
-painokirjain</ar>
-<ar><k>block load</k>
-suorakaidekuorma</ar>
-<ar><k>block of flats</k>
-kerrostalo</ar>
-<ar><k>block of ice</k>
-jäälohkare</ar>
-<ar><k>blockade</k>
-saarros, saarto</ar>
-<ar><k>blockboard</k>
-rimalevy</ar>
-<ar><k>blockhead</k>
-kovapää</ar>
-<ar><k>bloke</k>
-heppu</ar>
-<ar><k>blood</k>
-suku, veri</ar>
-<ar><k>blood clot</k>
-veritulppa</ar>
-<ar><k>blood plasma</k>
-verineste</ar>
-<ar><k>blood pressure</k>
-verenpaine</ar>
-<ar><k>blood sample</k>
-verinäyte</ar>
-<ar><k>blood transfusion</k>
-verensiirto</ar>
-<ar><k>blood vessel</k>
-suoni (anat)</ar>
-<ar><k>blood-poisoning</k>
-verenmyrkytys</ar>
-<ar><k>bloodhorse</k>
-rotuhevonen</ar>
-<ar><k>bloodily</k>
-verisesti</ar>
-<ar><k>bloodless</k>
-veretön</ar>
-<ar><k>bloodsucker</k>
-verenimijä</ar>
-<ar><k>bloodthirsty</k>
-verenhimoinen</ar>
-<ar><k>bloody</k>
-verinen</ar>
-<ar><k>bloody minded</k>
-pirullinen [puhek.]</ar>
-<ar><k>bloody murder</k>
-täydellinen tappio [puhek.]</ar>
-<ar><k>bloom</k>
-kukkia, kukoistaa</ar>
-<ar><k>bloomer</k>
-kömmähdys</ar>
-<ar><k>blooming</k>
-hehkeä, kukoistus</ar>
-<ar><k>blossom</k>
-hehkeys, kukinto, kukka</ar>
-<ar><k>blot</k>
-häpeäpilkku, läiskä</ar>
-<ar><k>blotter</k>
-imuri</ar>
-<ar><k>blotting-pad</k>
-imuri</ar>
-<ar><k>blotting-paper</k>
-imupaperi</ar>
-<ar><k>blouse</k>
-pusero</ar>
-<ar><k>blow</k>
-isku, lyönti, puhallus
-
-lietsoa, puhaltaa, soittaa (puhaltaa)</ar>
-<ar><k>blow a fuse</k>
-polttaa päreensä [puhek.]</ar>
-<ar><k>blow about</k>
-tupruta</ar>
-<ar><k>blow it</k>
-saamar [puhek.]i</ar>
-<ar><k>blow one's nose</k>
-niistää</ar>
-<ar><k>blow ones cool</k>
-menettää itsehillintänsä [puhek.]</ar>
-<ar><k>blow ones top</k>
-polttaa päreensä [puhek.]</ar>
-<ar><k>blow sky high</k>
-haukkua pataluhaksi [puhek.]</ar>
-<ar><k>blow torch</k>
-puhalluslamppu</ar>
-<ar><k>blow-lamp</k>
-puhalluslamppu</ar>
-<ar><k>blower</k>
-ilmapuhallin, puhallin (tekn)</ar>
-<ar><k>blowlamp</k>
-puhalluslamppu</ar>
-<ar><k>blue</k>
-sininen, sini</ar>
-<ar><k>blue colour</k>
-sini</ar>
-<ar><k>blue eyed boy</k>
-kultapoika [puhek.]</ar>
-<ar><k>blue fox</k>
-sinikettu</ar>
-<ar><k>blue-collar worker</k>
-haalarityöntekijä</ar>
-<ar><k>blue-eyed</k>
-sinisilmäinen</ar>
-<ar><k>blueberry</k>
-mustikka</ar>
-<ar><k>bluff</k>
-bluffi, hämäys, jyrkänne, töyräs
-
-hämätä</ar>
-<ar><k>blunder</k>
-haksahdus, huomaamattomuus, kömmähdys, munaus, törkeä (virhe)</ar>
-<ar><k>blunt</k>
-kärjetön, tylppä, tylsä, törkeä</ar>
-<ar><k>blur</k>
-epäselvä (kuva), sumentuma
-
-himmenntää</ar>
-<ar><k>blurt out</k>
-tokaista</ar>
-<ar><k>blush</k>
-punastua</ar>
-<ar><k>bluster</k>
-rehvastella</ar>
-<ar><k>boar</k>
-karju</ar>
-<ar><k>board</k>
-lauta, lautakunta, levy (kova- ym), pelilauta, taulu (koulun)
-
-laudoittaa</ar>
-<ar><k>board of directors</k>
-isännistö</ar>
-<ar><k>board of management</k>
-johtokunta</ar>
-<ar><k>board of trustees</k>
-johtokunta</ar>
-<ar><k>boarder</k>
-asukki</ar>
-<ar><k>boarding</k>
-laudoitus</ar>
-<ar><k>boarding school</k>
-internaatikoulu</ar>
-<ar><k>boast</k>
-kehua (kerskata), kerskailla, kerskaus</ar>
-<ar><k>boaster</k>
-kerskailija, ylvästelijä</ar>
-<ar><k>boastful</k>
-kerskaileva</ar>
-<ar><k>boat</k>
-vene</ar>
-<ar><k>boat-hook</k>
-venekeksi</ar>
-<ar><k>boating excursion</k>
-veneretki</ar>
-<ar><k>boatswain</k>
-pursimies</ar>
-<ar><k>bobbin</k>
-puola</ar>
-<ar><k>bod</k>
-tyyppi [puhek.]</ar>
-<ar><k>bodily</k>
-ruumillinen, ruumillisesti</ar>
-<ar><k>body</k>
-elin, joukko (järjestynyt), joukkue (sot), keho, ruumis (keho), vartalo</ar>
-<ar><k>body snatcher</k>
-paarinkantaja [puhek.]</ar>
-<ar><k>body-guard</k>
-henkivartija</ar>
-<ar><k>boffins</k>
-tutkijat [puhek.]</ar>
-<ar><k>bog</k>
-juolukka, suo</ar>
-<ar><k>bogey</k>
-mörkö, jeppe [puhek.]</ar>
-<ar><k>boggy</k>
-suoperäinen</ar>
-<ar><k>boil</k>
-keittää (vedessä), kiehua</ar>
-<ar><k>boil over</k>
-kuohua (kiehua)</ar>
-<ar><k>boil up</k>
-kiehahtaa</ar>
-<ar><k>boiled rice</k>
-riisipuuro</ar>
-<ar><k>boiler</k>
-höyrykattila
-
-lämmityskattila</ar>
-<ar><k>boiler house</k>
-lämpökeskus</ar>
-<ar><k>boiler-house</k>
-kattilahuone</ar>
-<ar><k>boiler-room</k>
-pannuhuone</ar>
-<ar><k>boiling</k>
-keitos, keitto</ar>
-<ar><k>boisterous</k>
-raisu, rasavilli</ar>
-<ar><k>bold</k>
-arkailematon, rohkea, urhoollinen, uskalias</ar>
-<ar><k>bold venture</k>
-uhkayritys</ar>
-<ar><k>boldness</k>
-rohkeus, uskaliaisuus, uskallus</ar>
-<ar><k>bollard</k>
-pollari</ar>
-<ar><k>bolt</k>
-haka, pultti, salpa, telki, vasama
-
-livistää, pillastua, salvata, teljetä</ar>
-<ar><k>bolt head</k>
-pultin pää</ar>
-<ar><k>bolt hole</k>
-pakopaikka [puhek.]</ar>
-<ar><k>bomb</k>
-pommi
-
-pommittaa</ar>
-<ar><k>bombard</k>
-pommittaa</ar>
-<ar><k>bombastic</k>
-mahtipontinen</ar>
-<ar><k>bombed out</k>
-täysin muissa maailmoissa [puhek.]</ar>
-<ar><k>bomber</k>
-pommikone</ar>
-<ar><k>bonce</k>
-pää [puhek.]</ar>
-<ar><k>bond</k>
-obligaatio, side
-
-tartunta</ar>
-<ar><k>bondage</k>
-orjuus</ar>
-<ar><k>bonded wharehouse</k>
-varrantti (liik)</ar>
-<ar><k>bonding agent</k>
-sideaineet</ar>
-<ar><k>bonds</k>
-kahleet (siteet)</ar>
-<ar><k>bone</k>
-luu, ruoto (kalan)</ar>
-<ar><k>bone bender</k>
-lääkäri [puhek.]</ar>
-<ar><k>bone eater</k>
-koira [puhek.]</ar>
-<ar><k>bone factory</k>
-sairaala [puhek.]</ar>
-<ar><k>bone marrow</k>
-luuydin</ar>
-<ar><k>bone of contention</k>
-kiistanaihe</ar>
-<ar><k>boneless</k>
-luuton</ar>
-<ar><k>boner</k>
-kömmähdys</ar>
-<ar><k>boneyard</k>
-hautuumaa [puhek.]</ar>
-<ar><k>bonfire</k>
-kokkotuli</ar>
-<ar><k>bonkers</k>
-hullu [puhek.]</ar>
-<ar><k>bonnet</k>
-konepelti, nauhamyssy</ar>
-<ar><k>bonus</k>
-lahjapalkkio, osuus (osa), voitto-osuus</ar>
-<ar><k>bony</k>
-luiseva, ruotoinen</ar>
-<ar><k>boo</k>
-buuata</ar>
-<ar><k>boobies</k>
-rinnat [puhek.]</ar>
-<ar><k>book</k>
-kirja, vihko
-
-tilata, varata</ar>
-<ar><k>book value</k>
-kirjanpitoarvo</ar>
-<ar><k>book-keeper</k>
-kirjanpitäjä</ar>
-<ar><k>book-keeping</k>
-kirjanpito</ar>
-<ar><k>book-stall</k>
-lehtimyymälä</ar>
-<ar><k>bookcase</k>
-kirjakaappi</ar>
-<ar><k>booking-clerk</k>
-lipunmyyjä</ar>
-<ar><k>bookkeeping</k>
-kirjanpito</ar>
-<ar><k>booklet</k>
-kirjanen</ar>
-<ar><k>boom</k>
-jymähdys, kumahdus, elpyminen, puomi
-
-jymähtää, kumahtaa</ar>
-<ar><k>boomerang</k>
-bumerangi</ar>
-<ar><k>boot</k>
-varsikenkä, lapikas, saapas</ar>
-<ar><k>booth</k>
-kauppakoju</ar>
-<ar><k>booty</k>
-saalis (ryöstö- ym)</ar>
-<ar><k>booze</k>
-juopotella, ryypiskellä</ar>
-<ar><k>booze-up</k>
-juomingit</ar>
-<ar><k>boozing</k>
-juopottelu</ar>
-<ar><k>border</k>
-lieve (reuna), palle, raja, reuna, reunus, syrjä</ar>
-<ar><k>bore</k>
-kyllästyttää, porata</ar>
-<ar><k>bore-hole</k>
-kairanreikä</ar>
-<ar><k>boredom</k>
-ikävystyminen, ikävä</ar>
-<ar><k>boring hole</k>
-poraus</ar>
-<ar><k>born</k>
-syntynyt</ar>
-<ar><k>boron</k>
-boori (kem)</ar>
-<ar><k>borrow</k>
-lainata</ar>
-<ar><k>borrower</k>
-lainanottaja</ar>
-<ar><k>borrowing</k>
-lainaus</ar>
-<ar><k>bosom</k>
-povi, rinta</ar>
-<ar><k>boss</k>
-kyhmy, pomo, päällikkö, työnjohtaja, esimies, ulkonema</ar>
-<ar><k>boss about</k>
-komennella [puhek.]</ar>
-<ar><k>boss the show</k>
-olla päällepäsmärinä [puhek.]</ar>
-<ar><k>botanic</k>
-kasviopillinen</ar>
-<ar><k>botanist</k>
-kasvitieteilijä</ar>
-<ar><k>botany</k>
-kasvioppi, kasvitiede</ar>
-<ar><k>botch</k>
-läpsäys [puhek.]</ar>
-<ar><k>both</k>
-molemmat</ar>
-<ar><k>bother</k>
-harmi, kiusa, päänvaiva, vaiva, vaivata, vastus (vaiva)</ar>
-<ar><k>bottle</k>
-pullo</ar>
-<ar><k>bottle club</k>
-ryyppyseura [puhek.]</ar>
-<ar><k>bottle top</k>
-korkki (pullon)</ar>
-<ar><k>bottle trap</k>
-pullohajulukko</ar>
-<ar><k>bottled gas</k>
-nestekaasu</ar>
-<ar><k>bottleneck</k>
-pullonkaula</ar>
-<ar><k>bottom</k>
-pohja, ala-
-
-pohja</ar>
-<ar><k>bottom boom</k>
-alapaarre</ar>
-<ar><k>bottom edge</k>
-alareuna</ar>
-<ar><k>bottom transom</k>
-alakehys</ar>
-<ar><k>bottomless</k>
-pohjaton</ar>
-<ar><k>bottomless pit</k>
-horna</ar>
-<ar><k>bough</k>
-oksa (haara)</ar>
-<ar><k>boulder</k>
-lohkare, vierinkivi</ar>
-<ar><k>boulevard</k>
-bulevardi</ar>
-<ar><k>bounce</k>
-pomppia</ar>
-<ar><k>bouncing</k>
-reima, roima</ar>
-<ar><k>bound</k>
-hyppy, hyppäys, hypähdys, loikkaus, ponnahdus, ääri
-
-hypähtää, loikata, ponnahtaa
-
-sidottu, nidottu (kirja)</ar>
-<ar><k>boundary wall</k>
-raja-aita</ar>
-<ar><k>boundless</k>
-ääretön</ar>
-<ar><k>bow</k>
-jousi, keula, kokka, kumarrus, ruusuke, solmuke, viulunjousi
-
-koukistaa, kumartaa, kumartua, köyristää, </ar>
-<ar><k>bow-legged</k>
-länkisäärinen</ar>
-<ar><k>bowed</k>
-kumara</ar>
-<ar><k>bowel</k>
-suoli</ar>
-<ar><k>bower</k>
-lehtimaja</ar>
-<ar><k>bowl</k>
-kulho, malja, maljakko
-
-keilailla</ar>
-<ar><k>bowler</k>
-keilailija, knalli</ar>
-<ar><k>bowling</k>
-keilailu, keilapeli</ar>
-<ar><k>bowsprit</k>
-kokkapuu</ar>
-<ar><k>bowstring</k>
-jousenjänne</ar>
-<ar><k>box</k>
-aitio, laatikko, lipas, pilttuu, rasia
-
-nyrkkeilä</ar>
-<ar><k>box on the ears</k>
-korvatillikka</ar>
-<ar><k>box pleat</k>
-vastalaskos</ar>
-<ar><k>boxer</k>
-nyrkkeilijä</ar>
-<ar><k>boxing</k>
-nyrkkeily</ar>
-<ar><k>boy</k>
-poika</ar>
-<ar><k>boy scout</k>
-partiopoika</ar>
-<ar><k>boy-friend</k>
-heila</ar>
-<ar><k>boycott</k>
-boikotoida</ar>
-<ar><k>boyish</k>
-poikamainen</ar>
-<ar><k>bra</k>
-rintaliivit</ar>
-<ar><k>brace</k>
-vinotuki</ar>
-<ar><k>braces</k>
-housunkannattimet</ar>
-<ar><k>bracing strut</k>
-jäykistyssauva</ar>
-<ar><k>bracket</k>
-lampetti, sulkumerkki, konsoli, kannatin, pidin.pidike, kiinnityslevy</ar>
-<ar><k>brag</k>
-kehua (kerskata), kerskailla, kerskua</ar>
-<ar><k>braggart</k>
-kerskailija</ar>
-<ar><k>braided cable</k>
-punoskaapeli</ar>
-<ar><k>brain</k>
-aivot, äly</ar>
-<ar><k>brain box</k>
-pääkoppa [puhek.]</ar>
-<ar><k>brain injury</k>
-aivovamma</ar>
-<ar><k>brain tumour</k>
-aivokasvain</ar>
-<ar><k>brain-washing</k>
-aivopesu</ar>
-<ar><k>brainy</k>
-fiksu, nokkela, ovela, viisas, älykäs</ar>
-<ar><k>braised joint</k>
-patapaisti</ar>
-<ar><k>brake</k>
-jarru
-
-jarruttaa</ar>
-<ar><k>brake release button</k>
-jarrulaukaisin</ar>
-<ar><k>braking</k>
-jarrutus</ar>
-<ar><k>bran</k>
-leseet</ar>
-<ar><k>branch</k>
-ala (haara), haara, oksa, sivuliike</ar>
-<ar><k>brand</k>
-laji (merkki), polttomerkki, tavaramerkki, tunnusmerkki, merkki</ar>
-<ar><k>brand name</k>
-merkkituote</ar>
-<ar><k>brand new</k>
-tuliterä, upouusi</ar>
-<ar><k>brandy</k>
-konjakki</ar>
-<ar><k>brass</k>
-messinki, messinkinen</ar>
-<ar><k>brass monkey weather</k>
-hyvin kylmä sää [puhek.]</ar>
-<ar><k>brassed off</k>
-kyllästynyt [puhek.]</ar>
-<ar><k>brat</k>
-kakara (halv)</ar>
-<ar><k>bravado</k>
-uhittelu</ar>
-<ar><k>brave</k>
-miehuullinen, uhrea, uljas, urhoollinen</ar>
-<ar><k>bravery</k>
-miehuullisuus, rohkeus, uljuus, urheus</ar>
-<ar><k>brawl</k>
-tappelu</ar>
-<ar><k>brawler</k>
-rähisijä</ar>
-<ar><k>brawn</k>
-syltty</ar>
-<ar><k>brazen</k>
-häpeämätön</ar>
-<ar><k>brazenness</k>
-häpeämättömyys</ar>
-<ar><k>brazing torch</k>
-hitsauspoltin</ar>
-<ar><k>breach</k>
-juopa, katkeama, murtuma, välirikko</ar>
-<ar><k>breach of the law</k>
-lainrikkomus</ar>
-<ar><k>breach of the peace</k>
-järjestyrikos</ar>
-<ar><k>bread</k>
-raha [puhek.]</ar>
-<ar><k>bread-fruit tree</k>
-leipäpuu</ar>
-<ar><k>bread-winner</k>
-elättäjä, perheenhuoltaja</ar>
-<ar><k>breadcrumb</k>
-leivänmuru, korppujauho</ar>
-<ar><k>breadcrumbs</k>
-korppujauho</ar>
-<ar><k>breadless</k>
-leivätön</ar>
-<ar><k>breadth</k>
-leveys</ar>
-<ar><k>breadwinner</k>
-huoltaja (perheen)</ar>
-<ar><k>break</k>
-katkeama, murros, murtuma, välitunti
-
-katkaista, katketa, murtautua, murttaa, murtua, nujertaa, rikkoa, taittaa</ar>
-<ar><k>break a flag</k>
-nykäistä lippu liehumaan</ar>
-<ar><k>break away</k>
-lähteä tiehensä</ar>
-<ar><k>break camp</k>
-purkaa leiri</ar>
-<ar><k>break cover</k>
-tulla esiin piilopaikastaan</ar>
-<ar><k>break down</k>
-rikkoa</ar>
-<ar><k>break even</k>
-päästä omilleen</ar>
-<ar><k>break ground</k>
-kaivaa maata</ar>
-<ar><k>break in</k>
-murto</ar>
-<ar><k>break in on</k>
-rynnätä sisään</ar>
-<ar><k>break into</k>
-murtautua sisään</ar>
-<ar><k>break jail</k>
-paeta vankilasta</ar>
-<ar><k>break loose</k>
-riuhtaista itsensä irti</ar>
-<ar><k>break off</k>
-katkaista, katkoa, keskeyttää, lohkaista</ar>
-<ar><k>break ones duck</k>
-saada pisteitä</ar>
-<ar><k>break step</k>
-rikkoa tahti</ar>
-<ar><k>break the ice</k>
-voittaa alkuvaikeudet</ar>
-<ar><k>break the news</k>
-kertoa jollekin</ar>
-<ar><k>break the peace</k>
-rikkoa rauha</ar>
-<ar><k>break through</k>
-puhkaisu
-
-murtautua läpi</ar>
-<ar><k>break up</k>
-hajaantua, mennä hajalle, hajota, möyhentää (maata), hajottaa</ar>
-<ar><k>break with</k>
-tehdä ero jostakin</ar>
-<ar><k>break-through</k>
-läpimurto</ar>
-<ar><k>breakdown</k>
-konerikko, konevika, romahdus</ar>
-<ar><k>breakfast</k>
-aamiainen</ar>
-<ar><k>breaking</k>
-katkeaminen, murros, murto</ar>
-<ar><k>breaking up</k>
-hajaantuminen</ar>
-<ar><k>breaking-up of ice</k>
-jäidenlähtö</ar>
-<ar><k>breaking-up of the ice</k>
-jäänlähtö</ar>
-<ar><k>breakwater</k>
-aallonmurtaja</ar>
-<ar><k>bream</k>
-lahna</ar>
-<ar><k>breast</k>
-povi, rinta</ar>
-<ar><k>breast feeding</k>
-imetys</ar>
-<ar><k>breast-stroke</k>
-rintauinti</ar>
-<ar><k>breath heavily</k>
-huohottaa, läähättää</ar>
-<ar><k>breathe</k>
-hengittää, henkiä, henkäistä, huokua (kuv)</ar>
-<ar><k>breathing-spell</k>
-levähdyshetki</ar>
-<ar><k>breathlessness</k>
-hengästyminen</ar>
-<ar><k>breathtaking</k>
-henkeäsalpaava</ar>
-<ar><k>breech</k>
-lukko (aseen)</ar>
-<ar><k>breeches</k>
-polvihousut</ar>
-<ar><k>breed</k>
-rotu
-
-kasvaa (eläimet)</ar>
-<ar><k>breed of horses</k>
-hovosrotu</ar>
-<ar><k>breeder</k>
-kasvattaja</ar>
-<ar><k>breeder of animals</k>
-eläintenkasvattaja</ar>
-<ar><k>breeding</k>
-siitos</ar>
-<ar><k>breeze</k>
-tuuli (heikko)</ar>
-<ar><k>breeze concrete</k>
-kuonabetoni</ar>
-<ar><k>brevity</k>
-lyhyys</ar>
-<ar><k>brew</k>
-hautua (tee)</ar>
-<ar><k>brew up</k>
-keittää teetä [puhek.]</ar>
-<ar><k>brewery</k>
-oluenpanija, olutpanimo, panimo</ar>
-<ar><k>brewing</k>
-oluenpano</ar>
-<ar><k>bribe</k>
-lahjoa, lahjus</ar>
-<ar><k>bribery</k>
-lahjonta</ar>
-<ar><k>bric-a-brac</k>
-koristeesineet</ar>
-<ar><k>brick</k>
-tiili</ar>
-<ar><k>brick bond</k>
-tiililimitys</ar>
-<ar><k>brick wall</k>
-tiiliseinä</ar>
-<ar><k>brickie</k>
-muurari</ar>
-<ar><k>bricklayer</k>
-muurari</ar>
-<ar><k>brickwork</k>
-muuraus</ar>
-<ar><k>bridal party</k>
-hääjoukko</ar>
-<ar><k>bride</k>
-morsian, nuorikko</ar>
-<ar><k>bridegroom</k>
-ylkä</ar>
-<ar><k>bridge</k>
-komentosilta, silta
-
-silloittaa</ar>
-<ar><k>bridle</k>
-suitset</ar>
-<ar><k>brief</k>
-evästää (kuv)
-
-lyhyt, suppea</ar>
-<ar><k>brief-case</k>
-kirjoitussalkku</ar>
-<ar><k>briefcase</k>
-salkku</ar>
-<ar><k>briefly</k>
-lyhyesti, suppeasti</ar>
-<ar><k>briefness</k>
-lyhyys</ar>
-<ar><k>brig</k>
-priki</ar>
-<ar><k>brigade</k>
-prikaati</ar>
-<ar><k>brigand</k>
-rosvo</ar>
-<ar><k>bright</k>
-fiksu (ark), heleä, hyväpäinen, kiiltävä, kirkas, selkeä, valoisa, älykäs</ar>
-<ar><k>bright and early</k>
-ajoissa [puhek.]</ar>
-<ar><k>bright blue</k>
-helakansininen</ar>
-<ar><k>bright specimen</k>
-hätähousu [puhek.]</ar>
-<ar><k>brighten</k>
-kirkastaa, seljetä, selvitä</ar>
-<ar><k>brighten up</k>
-piristyä</ar>
-<ar><k>brightness</k>
-heleys, kirkkaus</ar>
-<ar><k>brilliancy</k>
-loisto</ar>
-<ar><k>brilliant</k>
-hohtokivi, häikäisevä</ar>
-<ar><k>brim</k>
-laita (reuna), lieri, reuna, ääri (reuna)</ar>
-<ar><k>brim of a hat</k>
-hatunlieri</ar>
-<ar><k>brim over</k>
-uhkua</ar>
-<ar><k>brimstone</k>
-tulikivi</ar>
-<ar><k>brine</k>
-suolavesi</ar>
-<ar><k>bring</k>
-haettaa, noutaa, tuoda, viedä (johtaa)</ar>
-<ar><k>bring about</k>
-aiheuttaa, aikaansaada</ar>
-<ar><k>bring down</k>
-alentaa</ar>
-<ar><k>bring farther away</k>
-loitontaa</ar>
-<ar><k>bring nearer</k>
-lähentää</ar>
-<ar><k>bring to a head</k>
-huipentaa (kuv)</ar>
-<ar><k>bring to and end</k>
-päättää</ar>
-<ar><k>bring to the boil</k>
-kiehauttaa</ar>
-<ar><k>bring up</k>
-kasvattaa</ar>
-<ar><k>bring up to date</k>
-ajanmukaistaa</ar>
-<ar><k>brink</k>
-parras, reuna, äyräs</ar>
-<ar><k>brisk</k>
-karski (reima), railakas, reima, reipas, ripeä, rivakka, terhakka, vauhdikas, virkeä, virkku</ar>
-<ar><k>briskly</k>
-reippaasti, vauhdikkaasti</ar>
-<ar><k>briskness</k>
-pirteys, ripeys, terhakkuus, vauhdikkuus</ar>
-<ar><k>bristle</k>
-harjas</ar>
-<ar><k>bristly</k>
-harjaksinen</ar>
-<ar><k>bristols *</k>
-tissit [alat.]</ar>
-<ar><k>brittle</k>
-hauras
-
-helposti särkyvä</ar>
-<ar><k>brittleness</k>
-hauraus</ar>
-<ar><k>broad</k>
-leveä</ar>
-<ar><k>broad gauge</k>
-leveä raide</ar>
-<ar><k>broad tapeworm</k>
-lapamato</ar>
-<ar><k>broad-gauge</k>
-leveäraiteinen</ar>
-<ar><k>broad-shouldered</k>
-hartiakas</ar>
-<ar><k>broadcast</k>
-televisiolähetys
-
-radioida</ar>
-<ar><k>broadcaster</k>
-toimittaja</ar>
-<ar><k>broadcasting</k>
-radiointi</ar>
-<ar><k>broadcasting station</k>
-lähetysasema, radioasema</ar>
-<ar><k>broadcasting time</k>
-lähetysaika</ar>
-<ar><k>broaden</k>
-leventää, levetä</ar>
-<ar><k>broadly speaking</k>
-yleisesti</ar>
-<ar><k>brocade</k>
-brokadi</ar>
-<ar><k>brochure</k>
-brosyyri</ar>
-<ar><k>broil</k>
-halstaroida, käristää, pariloida</ar>
-<ar><k>broiler</k>
-kananpoika</ar>
-<ar><k>broken</k>
-halkinainen, katkonainen, poikkinainen, rikki, rikkinäinen</ar>
-<ar><k>broken line</k>
-katkoviiva</ar>
-<ar><k>broker</k>
-maklari, välittäjä</ar>
-<ar><k>bromide</k>
-bromi (kem)</ar>
-<ar><k>bronchitus</k>
-bronkiitti</ar>
-<ar><k>bronchus</k>
-keuhkoputki</ar>
-<ar><k>bronze</k>
-pronssi</ar>
-<ar><k>brooch</k>
-rintakoru, rintaneula</ar>
-<ar><k>brood</k>
-hautoa, mietiskellä</ar>
-<ar><k>brooding time</k>
-hautomaaika</ar>
-<ar><k>brook</k>
-puro</ar>
-<ar><k>broom</k>
-luuta</ar>
-<ar><k>broomstick</k>
-luudanvarsi</ar>
-<ar><k>broth</k>
-lihaliemi</ar>
-<ar><k>brothel</k>
-bordelli</ar>
-<ar><k>brothel creepers</k>
-läskipohjakengät [puhek.]</ar>
-<ar><k>brother</k>
-veli</ar>
-<ar><k>brother-in-law</k>
-lanko</ar>
-<ar><k>brotherhood</k>
-veljeys</ar>
-<ar><k>brown</k>
-ruskea</ar>
-<ar><k>brown hare</k>
-rusakko</ar>
-<ar><k>brown sugar</k>
-fariinisokeri</ar>
-<ar><k>brown trout</k>
-forelli</ar>
-<ar><k>brownie</k>
-tonttu, pieni partio tyytö</ar>
-<ar><k>bruise</k>
-kolhaisu, mustelma, ruhjevamma, sinelmä
-
-ruhjoa</ar>
-<ar><k>brush</k>
-harja, pensseli, sivellin, suti
-
-harjata, sipaista</ar>
-<ar><k>brush past</k>
-hipaista (ohimennen)</ar>
-<ar><k>brushwood</k>
-pensaikko</ar>
-<ar><k>brusqueness</k>
-tylyys</ar>
-<ar><k>brussels sprout</k>
-ruusukaali</ar>
-<ar><k>brutal</k>
-brutaalinen (raaka), petomainen, raakamainen</ar>
-<ar><k>brutality</k>
-eläimellisyys, petomaisuus, raakuus</ar>
-<ar><k>brutalize</k>
-raaistaa</ar>
-<ar><k>bubble</k>
-kupla, pore
-
-helmeillä (juoma), lorista</ar>
-<ar><k>bubbling</k>
-kuohuva</ar>
-<ar><k>buccaneer</k>
-merirosvo</ar>
-<ar><k>buck</k>
-pukki</ar>
-<ar><k>buck up</k>
-virkistää</ar>
-<ar><k>bucket</k>
-sanko, ämpäri</ar>
-<ar><k>buckle</k>
-taipuma (paperin), solki</ar>
-<ar><k>buckskin</k>
-pukinnahka</ar>
-<ar><k>buckwheat</k>
-tattari</ar>
-<ar><k>bud</k>
-nuppu, silmu (kasvin), umppu</ar>
-<ar><k>budge</k>
-hievahtaa</ar>
-<ar><k>budgerigar</k>
-undulaatti</ar>
-<ar><k>budget</k>
-budjetti, ennakkoarvio, talousarvio</ar>
-<ar><k>budget for</k>
-budjetoida</ar>
-<ar><k>budgie</k>
-undulaatti</ar>
-<ar><k>buff</k>
-kiillottaa</ar>
-<ar><k>buffalo</k>
-puhveli</ar>
-<ar><k>buffer</k>
-iskunvaimennin, puskuri</ar>
-<ar><k>buffoon</k>
-pajatso</ar>
-<ar><k>bug</k>
-lutikka</ar>
-<ar><k>bugger</k>
-paskiainen [puhek.]</ar>
-<ar><k>builder</k>
-rakentaja</ar>
-<ar><k>building</k>
-rakennus</ar>
-<ar><k>building inspector</k>
-rakennustarkastaja</ar>
-<ar><k>building site</k>
-tontti</ar>
-<ar><k>building trade</k>
-rakennusammatit</ar>
-<ar><k>built-in cupboard</k>
-komero</ar>
-<ar><k>built-in wardrobe</k>
-vaatekomero</ar>
-<ar><k>bulb</k>
-hehkulamppu</ar>
-<ar><k>bulk</k>
-massa</ar>
-<ar><k>bulk buying</k>
-tukkuosto</ar>
-<ar><k>bulk of</k>
-pääosa</ar>
-<ar><k>bulkhead</k>
-laipio (mer)</ar>
-<ar><k>bull</k>
-sonni</ar>
-<ar><k>bulldozer</k>
-puskutraktori</ar>
-<ar><k>bullet</k>
-kiväärinluoti, kuula (luoti), luoti</ar>
-<ar><k>bullet wound</k>
-ampumahaava</ar>
-<ar><k>bullet-proof</k>
-luodinkestävä</ar>
-<ar><k>bullet-proof glass</k>
-luodinkestävä lasi</ar>
-<ar><k>bulletin</k>
-tiedote</ar>
-<ar><k>bullfight</k>
-härkätaistelu</ar>
-<ar><k>bullfinch</k>
-punatulkku (zo)</ar>
-<ar><k>bullion</k>
-harkko</ar>
-<ar><k>bullshit</k>
-hevonpaska [puhek.]</ar>
-<ar><k>bulrushes</k>
-kaisilikko</ar>
-<ar><k>bumble-bee</k>
-kimalainen</ar>
-<ar><k>bump</k>
-kuhmu
-
-iskeä, kolahtaa, törmätä</ar>
-<ar><k>bump against</k>
-tönäistä</ar>
-<ar><k>bump into</k>
-tönäistä</ar>
-<ar><k>bump off</k>
-kolkata (sl)</ar>
-<ar><k>bumper</k>
-puskuri (auton ym)</ar>
-<ar><k>bumpy</k>
-kuhmuinen, kyhmyinen</ar>
-<ar><k>bun</k>
-kahvileipä, rusinapulla</ar>
-<ar><k>bun loaf</k>
-pitko</ar>
-<ar><k>bunch</k>
-kimppu, nippu, tukku
-
-sitoa (kimpuksi)</ar>
-<ar><k>bunch of fives</k>
-nyrkki [puhek.]</ar>
-<ar><k>bunch of flowers</k>
-kukkakimppu</ar>
-<ar><k>bunch of keys</k>
-avainkimppu</ar>
-<ar><k>bundle</k>
-kimppu, käärö, mytty, nippu, nyytti, pakka, pinkka, puntti</ar>
-<ar><k>bung</k>
-tulppa</ar>
-<ar><k>bungalow</k>
-huvila</ar>
-<ar><k>bungle</k>
-hutiloida, möhliä, tunaroida</ar>
-<ar><k>bungler</k>
-tuhertaja</ar>
-<ar><k>bunk</k>
-makuukoju, laveri</ar>
-<ar><k>bunk-bed</k>
-kerrossänky</ar>
-<ar><k>bunny</k>
-jänö</ar>
-<ar><k>bunting</k>
-lippukangas, sirkku (zo)</ar>
-<ar><k>buoy</k>
-merimerkki, poiju</ar>
-<ar><k>burbot</k>
-made</ar>
-<ar><k>burden</k>
-kuorma (taakka), taakka
-
-rasittaa, sälyttää</ar>
-<ar><k>bureau</k>
-toimisto</ar>
-<ar><k>bureaucracy</k>
-virkavalta</ar>
-<ar><k>bureaucratic</k>
-byrokraattinen, virkavaltainen</ar>
-<ar><k>burglar</k>
-murtovaras</ar>
-<ar><k>burial</k>
-hautajaiset</ar>
-<ar><k>burlap</k>
-hursti</ar>
-<ar><k>burlesque</k>
-irvokas</ar>
-<ar><k>burn</k>
-palaa, polttaa</ar>
-<ar><k>burn incense</k>
-suitsuttaa</ar>
-<ar><k>burner</k>
-poltin</ar>
-<ar><k>burning</k>
-palava, poltto, tulinen</ar>
-<ar><k>burnt offering</k>
-polttouhri</ar>
-<ar><k>burp</k>
-röyhtäys
-
-röyhtäistä</ar>
-<ar><k>burr</k>
-jäyste, purse</ar>
-<ar><k>burrow</k>
-kuopia</ar>
-<ar><k>burst</k>
-haljata, pakahtua, puhjeta</ar>
-<ar><k>burst out crying</k>
-hyrähtää (itkuun)</ar>
-<ar><k>bury</k>
-haudata</ar>
-<ar><k>bus</k>
-linjaauto, väylä</ar>
-<ar><k>bus bar</k>
-kokoomakisko</ar>
-<ar><k>bus stop</k>
-linjapysäkki</ar>
-<ar><k>bush</k>
-pensaikko, pensas</ar>
-<ar><k>bushed</k>
-uupunut</ar>
-<ar><k>bushel</k>
-vakka</ar>
-<ar><k>bushing</k>
-holkki, hylsy</ar>
-<ar><k>business</k>
-kauppa, kauppaliike</ar>
-<ar><k>business activity</k>
-liiketoiminta</ar>
-<ar><k>business condition</k>
-suhdanne</ar>
-<ar><k>business connection</k>
-liikesuhte</ar>
-<ar><k>business crisis</k>
-liikepula</ar>
-<ar><k>business enterprise</k>
-liikeyritys</ar>
-<ar><k>business letter</k>
-kauppakirje</ar>
-<ar><k>business man</k>
-liikkeenharjoittaja</ar>
-<ar><k>business matter</k>
-liikeasia</ar>
-<ar><k>business premises</k>
-liikehuoneisto</ar>
-<ar><k>business school</k>
-liikkeenjohdonkoulu</ar>
-<ar><k>business science</k>
-kauppaoppi</ar>
-<ar><k>business transaction</k>
-liiketoimi</ar>
-<ar><k>businesslike</k>
-asiallinen, liikemäinen</ar>
-<ar><k>businessman</k>
-liikkeenharjoittaja, liikemies</ar>
-<ar><k>bust a gut</k>
-vetää itsensä piippuun [puhek.]</ar>
-<ar><k>bustling</k>
-touhukas</ar>
-<ar><k>busy</k>
-hommakas, puuhakas, tekemässä, toimekas, touhukas, vilkas, tuuhea</ar>
-<ar><k>busy oneself</k>
-askarrella</ar>
-<ar><k>butcher</k>
-lihakauppias, teurastaja, huono lääkäri [puhek.]</ar>
-<ar><k>butcher shop</k>
-sairaala [puhek.]</ar>
-<ar><k>butcher's shop</k>
-lihakauppa</ar>
-<ar><k>butler</k>
-miespalvelija</ar>
-<ar><k>butt</k>
-puskia</ar>
-<ar><k>butt joint</k>
-puskusauma</ar>
-<ar><k>buttercup</k>
-leinikki (bot)</ar>
-<ar><k>butterfly</k>
-perhonen</ar>
-<ar><k>butterfly net</k>
-perhoshaavi</ar>
-<ar><k>buttermilk</k>
-kirnupiimä</ar>
-<ar><k>buttery</k>
-voinen</ar>
-<ar><k>buttock</k>
-pakara</ar>
-<ar><k>button</k>
-nappi, nuppi</ar>
-<ar><k>button up</k>
-olla hiljaa [puhek.]</ar>
-<ar><k>buttonhole</k>
-napinreikä</ar>
-<ar><k>buttons</k>
-hotellipoika</ar>
-<ar><k>buttress</k>
-kannatinpylväs, tukipilari</ar>
-<ar><k>buy</k>
-ostaa</ar>
-<ar><k>buyer</k>
-ostaja</ar>
-<ar><k>buying</k>
-osto</ar>
-<ar><k>buzz</k>
-hyrinstä, surista</ar>
-<ar><k>buzzard</k>
-hiirihaukka</ar>
-<ar><k>buzzer</k>
-summeri (tekn)</ar>
-<ar><k>buzzing</k>
-humina (korvien), hyrinä, surina</ar>
-<ar><k>buzzing in the ear</k>
-korvansuhina</ar>
-<ar><k>by</k>
-jnk mukaan, oheen, ohi, ohitse, sivuitse, viereen, äärestä</ar>
-<ar><k>by air</k>
-ilmateitse</ar>
-<ar><k>by and large</k>
-yleisesti</ar>
-<ar><k>by day</k>
-päivisin</ar>
-<ar><k>by degrees</k>
-vähitellen</ar>
-<ar><k>by force</k>
-väkisin</ar>
-<ar><k>by hand</k>
-käsin</ar>
-<ar><k>by itself</k>
-itsestään</ar>
-<ar><k>by land</k>
-maitse</ar>
-<ar><k>by letter</k>
-kirjeellinen, kirjeellisesti, kirjeitse</ar>
-<ar><k>by means of</k>
-kautta</ar>
-<ar><k>by no means</k>
-ei suinkaan</ar>
-<ar><k>by occupation</k>
-ammateittain</ar>
-<ar><k>by oneself</k>
-yksin, yksinään</ar>
-<ar><k>by past</k>
-sivu (ohi)</ar>
-<ar><k>by sea</k>
-meriteitse, meritse</ar>
-<ar><k>by suggestion</k>
-suggeroida</ar>
-<ar><k>by the grape-vine</k>
-juoruteitä</ar>
-<ar><k>by the side</k>
-vierellä</ar>
-<ar><k>by water</k>
-meriteitse, meritse</ar>
-<ar><k>by way of</k>
-kautta</ar>
-<ar><k>by-election</k>
-täytevaalit</ar>
-<ar><k>by-product</k>
-sivutuote</ar>
-<ar><k>bye bye</k>
-hyvästi (arkik)</ar>
-<ar><k>bypass</k>
-ohittaa</ar>
-<ar><k>bypass transport</k>
-välikuljetin</ar>
-<ar><k>byway</k>
-sivutie</ar>
-<ar><k>cab</k>
-taksi</ar>
-<ar><k>cabaret</k>
-kabaree</ar>
-<ar><k>cabbage</k>
-kaali, keräkaali, kupukaali</ar>
-<ar><k>cabbage head</k>
-kaalinkupu</ar>
-<ar><k>cabin</k>
-hytti, kajuutta, maja, tupa, tölli, tönö</ar>
-<ar><k>cabinet</k>
-hallitus, kabinetti (hallitus), valtioneuvosto</ar>
-<ar><k>cabinet maker</k>
-huonekalupuuseppä</ar>
-<ar><k>cable</k>
-vaijeri
-
-kaapeli, kettinki, vaijeri</ar>
-<ar><k>cable clamp</k>
-kaapelipinne, -kiinnike</ar>
-<ar><k>cable railway</k>
-köysirata</ar>
-<ar><k>cable tie</k>
-sidosnauha</ar>
-<ar><k>cache</k>
-kätkö</ar>
-<ar><k>cackle</k>
-kaakattaa, kotkottaa</ar>
-<ar><k>cactus</k>
-kaktus</ar>
-<ar><k>cadet</k>
-kadetti</ar>
-<ar><k>cadge</k>
-lainata [puhek.]</ar>
-<ar><k>cadre</k>
-kaaderi</ar>
-<ar><k>cafe</k>
-baari, kahvila, kuppila</ar>
-<ar><k>cafeteria</k>
-kahvila</ar>
-<ar><k>caftan</k>
-kauhtana</ar>
-<ar><k>cage</k>
-häkki (linnun ym)
-
-häkki</ar>
-<ar><k>caisson</k>
-arkku (sillan)</ar>
-<ar><k>cajole</k>
-mairitella</ar>
-<ar><k>cake</k>
-kakku, leivos, torttu
-
-paakkuuntua, kovettua</ar>
-<ar><k>cake doily</k>
-kakkupaperi</ar>
-<ar><k>cake hole</k>
-leipäläpi [puhek.]</ar>
-<ar><k>cake of soap</k>
-saippuapala</ar>
-<ar><k>cake slice</k>
-kakkulapio, leivoslapio</ar>
-<ar><k>cake tongs</k>
-leivospihdit</ar>
-<ar><k>calculate</k>
-laskea (mat), laskelmoida</ar>
-<ar><k>calculating</k>
-laskelmillinen</ar>
-<ar><k>calculating machine</k>
-laskukone</ar>
-<ar><k>calculation</k>
-arviolaskelma, laskelma</ar>
-<ar><k>calculus</k>
-laskenta</ar>
-<ar><k>calendar</k>
-ajanlasku, kalenteri</ar>
-<ar><k>calf</k>
-pohje, vasikka</ar>
-<ar><k>calfskin</k>
-vasikannahka</ar>
-<ar><k>calibration</k>
-alkuasetus, kalibrointi</ar>
-<ar><k>calibre</k>
-kaliberi</ar>
-<ar><k>calk</k>
-hokki</ar>
-<ar><k>call</k>
-esiinhuuto, huuto, kutsu, käynti, vieraskäynti
-
-kutsua, soittaa, nimittää</ar>
-<ar><k>call for</k>
-noutaa</ar>
-<ar><k>call house</k>
-ilotalo [puhek.]</ar>
-<ar><k>call it quits</k>
-luovuttaa [puhek.]</ar>
-<ar><k>call names</k>
-nimitellä</ar>
-<ar><k>call off</k>
-peruuttaa (kuv)</ar>
-<ar><k>call out</k>
-huuhdahtaa, huutaa</ar>
-<ar><k>call someone names</k>
-haukkua jkta [puhek.]</ar>
-<ar><k>call together</k>
-kokoon</ar>
-<ar><k>call-box</k>
-puhelinkoppi</ar>
-<ar><k>call-sign</k>
-kutsumerkki</ar>
-<ar><k>caller</k>
-kävijä</ar>
-<ar><k>calling</k>
-elämänkutsumus, kutsumus</ar>
-<ar><k>calling for tenders</k>
-tarjouspyynnöt</ar>
-<ar><k>callus</k>
-känsä</ar>
-<ar><k>calm</k>
-tyynnyttää, hiljentää, rauhoittaa
-
-hätäilemätön, levollinen, maltillinen, rauhallinen, tyyneys, tyyni</ar>
-<ar><k>calm down</k>
-rauhoittua, tyyntyä</ar>
-<ar><k>calm oneself</k>
-tyyntyä</ar>
-<ar><k>calmly</k>
-tyynesti</ar>
-<ar><k>calmness</k>
-hätäilemättömyys, levollisuus, maltillisuus, tyyneys</ar>
-<ar><k>calorie</k>
-kalori</ar>
-<ar><k>cam</k>
-nokka, nokkapyörä</ar>
-<ar><k>camber</k>
-korotus</ar>
-<ar><k>camber weld</k>
-kupera hitsi</ar>
-<ar><k>cambric</k>
-batisti</ar>
-<ar><k>camel</k>
-kameli</ar>
-<ar><k>camel hair</k>
-kamelinkarva</ar>
-<ar><k>cameo</k>
-kamee</ar>
-<ar><k>camera-man</k>
-kuvaaja (valok)</ar>
-<ar><k>camouflage</k>
-naamiointi (sot)</ar>
-<ar><k>camp</k>
-leiri
-
-leiriytyä</ar>
-<ar><k>camp fire</k>
-leirituli, nuotio</ar>
-<ar><k>campaign</k>
-kampanja</ar>
-<ar><k>camphor</k>
-kamferi</ar>
-<ar><k>camping</k>
-leirielämä, leirintä</ar>
-<ar><k>can</k>
-metallirasia, pönttö</ar>
-<ar><k>can do</k>
-selvä on [puhek.]</ar>
-<ar><k>canal</k>
-kaivanto, tiehyt</ar>
-<ar><k>canary</k>
-kanarialintu</ar>
-<ar><k>cancel</k>
-kumota, mitätöidä, peruuttaa (kuv), nollata</ar>
-<ar><k>cancellation</k>
-peruutus, purkaminen (kaupan ym)</ar>
-<ar><k>cancer</k>
-syöpä</ar>
-<ar><k>candelabra</k>
-kyntteikkö (pöytä)</ar>
-<ar><k>candid camera</k>
-piilocamera</ar>
-<ar><k>candidate</k>
-ehdokas, hakija, kandidaatti, kokelas, pyrkijä</ar>
-<ar><k>candidate for an election</k>
-vaaliehdokas</ar>
-<ar><k>candidate for parliament</k>
-eduskuntaehdokas</ar>
-<ar><k>candle</k>
-kynttilä</ar>
-<ar><k>candle wick</k>
-kynttilänsydän</ar>
-<ar><k>candlelight</k>
-kynttilänvalo</ar>
-<ar><k>candlestick</k>
-kynttilänjalka, lampetti</ar>
-<ar><k>candour</k>
-vilpittömyys</ar>
-<ar><k>candy</k>
-karamelli</ar>
-<ar><k>cane</k>
-ruoko, sokeriruoko, kävelykeppi
-
-kepittää</ar>
-<ar><k>cane sugar</k>
-ruokosokeri</ar>
-<ar><k>canned meat</k>
-lihasäilykkeet</ar>
-<ar><k>cannibal</k>
-ihmissyöjä</ar>
-<ar><k>cannon</k>
-kanuuna, tykki</ar>
-<ar><k>canoe</k>
-kanootti
-
-meloa</ar>
-<ar><k>canoeing</k>
-melonta</ar>
-<ar><k>canopy</k>
-vuodekatos, kuomu, suojuskatos</ar>
-<ar><k>canteen</k>
-ruokailu, ruokala</ar>
-<ar><k>cantilever</k>
-uloke</ar>
-<ar><k>canvas</k>
-purje-, telttakangas</ar>
-<ar><k>cap</k>
-hilkka, lakki, myssy</ar>
-<ar><k>cap plate</k>
-päätylevy</ar>
-<ar><k>capability</k>
-kyky</ar>
-<ar><k>capable</k>
-kelvollinen (henkilöstä), kyvykäs, pätevä</ar>
-<ar><k>capable of</k>
-kykenevä</ar>
-<ar><k>capable of delivering</k>
-hankintakykymen</ar>
-<ar><k>capacitor</k>
-kondensaattori</ar>
-<ar><k>capacity</k>
-kapasiteeti</ar>
-<ar><k>cape</k>
-niemi, vaippa, hartiaviitta, niemi</ar>
-<ar><k>capers</k>
-kapris</ar>
-<ar><k>capillary</k>
-hiushuokoinen</ar>
-<ar><k>capital</k>
-pääkaupunki
-
-erinomainen</ar>
-<ar><k>capital crime</k>
-hengenrikos</ar>
-<ar><k>capital letter</k>
-iso kirjain</ar>
-<ar><k>capital punishment</k>
-kuolemanrangaistus</ar>
-<ar><k>capitalism</k>
-kapitalismi</ar>
-<ar><k>capitalist</k>
-kapitalisti</ar>
-<ar><k>capsize</k>
-kaatua (veneestä)</ar>
-<ar><k>capstan</k>
-ankkurikela, kela (laivan)</ar>
-<ar><k>capsule</k>
-kapseli, kota (bot)</ar>
-<ar><k>captain</k>
-kapteeni</ar>
-<ar><k>caption</k>
-otsikko</ar>
-<ar><k>captivate</k>
-hurmata, kiehtoa</ar>
-<ar><k>capture</k>
-kaapata (mer), valloittaa</ar>
-<ar><k>car</k>
-auto, henkilöauto, vaunu, raitiovaunu</ar>
-<ar><k>car body</k>
-kori (auton)</ar>
-<ar><k>car crash</k>
-autokolari</ar>
-<ar><k>carat</k>
-karaatti</ar>
-<ar><k>caravan</k>
-asuntovaunu, karavaani</ar>
-<ar><k>caraway</k>
-kumina</ar>
-<ar><k>carbide</k>
-karbidi</ar>
-<ar><k>carbohydrate</k>
-hiilihydraatti</ar>
-<ar><k>carbolic acid</k>
-karbolihappo</ar>
-<ar><k>carbon</k>
-hiili (kem)</ar>
-<ar><k>carbon dioxide</k>
-hiilihappo (dioksidi)</ar>
-<ar><k>carbon monoxide</k>
-häkä</ar>
-<ar><k>carbon paper</k>
-hiilipaperi, kalkiopaperi</ar>
-<ar><k>carbonic acid</k>
-hiilihappo</ar>
-<ar><k>carbonize</k>
-hiillyttää</ar>
-<ar><k>carburettor</k>
-kaasutin</ar>
-<ar><k>carcass</k>
-haaska, raato</ar>
-<ar><k>card</k>
-villakarsta, kortti, käyntikortti</ar>
-<ar><k>card cage</k>
-piirilevyteline</ar>
-<ar><k>card-game</k>
-korttipeli</ar>
-<ar><k>card-index</k>
-kortisto, korttijärjestelmä</ar>
-<ar><k>card-trick</k>
-korttitemppu</ar>
-<ar><k>cardboard</k>
-pahvi</ar>
-<ar><k>cardboard box</k>
-pahvirasia</ar>
-<ar><k>cardigan</k>
-neulottu villapaita, villatakki</ar>
-<ar><k>cardinal</k>
-kardinaali</ar>
-<ar><k>cardinal number</k>
-perusluku</ar>
-<ar><k>care</k>
-huoli, murhe
-
-huolehtia, välittää</ar>
-<ar><k>care about</k>
-välittää (huolia)</ar>
-<ar><k>care for</k>
-välittää (huolia)</ar>
-<ar><k>care of children</k>
-lastenhoito</ar>
-<ar><k>care to</k>
-viitsiä</ar>
-<ar><k>care-free</k>
-huoleton</ar>
-<ar><k>career</k>
-elämänura, ura</ar>
-<ar><k>careerist</k>
-pyrkyri</ar>
-<ar><k>carefree</k>
-railakas, huoleton</ar>
-<ar><k>careful</k>
-arka (varova), hellävarainen, huolellinen, varovainen</ar>
-<ar><k>carefully</k>
-huolellisesti, tarkasti, tyystin, visusti</ar>
-<ar><k>carefulness</k>
-huoli (huolellisuus), varovaisuus</ar>
-<ar><k>careless</k>
-huoleton, huolimaton, hutiteloiva</ar>
-<ar><k>careless fellow</k>
-hutilus</ar>
-<ar><k>carelessness</k>
-huolettomuus, huolimattomuus</ar>
-<ar><k>caress</k>
-hyväillä</ar>
-<ar><k>caretaker</k>
-hoitaja, talonmies, talonvahti</ar>
-<ar><k>cargo</k>
-laivanlasti, lasti (laivan)</ar>
-<ar><k>cargo ship</k>
-rahtilaiva</ar>
-<ar><k>caricature</k>
-ivakuva</ar>
-<ar><k>carnage</k>
-verilöyly</ar>
-<ar><k>carnal</k>
-lihallinen</ar>
-<ar><k>carnation</k>
-neilikka</ar>
-<ar><k>carnival</k>
-karnevaali</ar>
-<ar><k>carnivore</k>
-lihansyöjä (zo)</ar>
-<ar><k>carp</k>
-karppi (zo)</ar>
-<ar><k>carpel</k>
-emilehti</ar>
-<ar><k>carpenter</k>
-kirvesmies, puuseppä</ar>
-<ar><k>carpet</k>
-matto</ar>
-<ar><k>carport</k>
-autotalli</ar>
-<ar><k>carriage</k>
-kelkka, joskus kuljetin, kuljetus, vaunu</ar>
-<ar><k>carrier</k>
-kehiterae</ar>
-<ar><k>carrot</k>
-porkkana</ar>
-<ar><k>carry</k>
-ajaa (kuljettaa), kantaa, kuljettaa, viedä (kuljettaa)</ar>
-<ar><k>carry on</k>
-jatkaa, räyhätä [puhek.]</ar>
-<ar><k>carry out</k>
-suorittaa, toimeenpanna, toimittaa, toteutaa</ar>
-<ar><k>carry the can</k>
-ottaa syy niskoilleen [puhek.]</ar>
-<ar><k>carrying capacity</k>
-kantavuus</ar>
-<ar><k>cart</k>
-kärryt, käsirattaat</ar>
-<ar><k>cartel</k>
-kartelli (liik)</ar>
-<ar><k>cartilage</k>
-rusto</ar>
-<ar><k>carton</k>
-kartonkirasia, pahvirasia, laatikko</ar>
-<ar><k>cartridge</k>
-patruuna</ar>
-<ar><k>cartridge paper</k>
-piirustuskartonki</ar>
-<ar><k>carve</k>
-leikata (paistia ym), veistää</ar>
-<ar><k>carving</k>
-koristeleikkaus</ar>
-<ar><k>case</k>
-asianlaita, hylsy, oikeusjuttu, kanne, kotelo, kuori (kellon), laatikko (iso), laukku (kartta- ym), lipas, rasia, tapaus</ar>
-<ar><k>casein</k>
-juustoaine</ar>
-<ar><k>cash</k>
-kassa, käteinen</ar>
-<ar><k>cash flow</k>
-kassavirta</ar>
-<ar><k>cash in</k>
-kähmiä (rahaa)</ar>
-<ar><k>cash on delivery</k>
-postiennakko</ar>
-<ar><k>cash register</k>
-kassakone</ar>
-<ar><k>cash-box</k>
-kassalipas</ar>
-<ar><k>cash-in-hand</k>
-kassansäästö</ar>
-<ar><k>cashier</k>
-kassanhoitaja, rahastaja</ar>
-<ar><k>casing</k>
-vaippa (tekn)</ar>
-<ar><k>cask</k>
-astia (tynnyri), dritteli, tynnyri</ar>
-<ar><k>cassette</k>
-kasetti</ar>
-<ar><k>cast</k>
-heittää</ar>
-<ar><k>cast a spell on</k>
-loihtia (lumota)</ar>
-<ar><k>cast iron</k>
-valurauta</ar>
-<ar><k>cast iron pipe</k>
-valurautaputki</ar>
-<ar><k>caster sugar</k>
-kidesokeria</ar>
-<ar><k>casting</k>
-valurunko</ar>
-<ar><k>castle</k>
-linna</ar>
-<ar><k>castle in the air</k>
-tuulentupa</ar>
-<ar><k>castle yard</k>
-linnanpiha</ar>
-<ar><k>castor</k>
-jalkarulla</ar>
-<ar><k>castor oil</k>
-risiiniöljy</ar>
-<ar><k>castrate</k>
-kuohita</ar>
-<ar><k>casual</k>
-syyperäinen, tilapäinen</ar>
-<ar><k>casual dress</k>
-arkivaateet</ar>
-<ar><k>cat</k>
-kissa</ar>
-<ar><k>cat in hells chance</k>
-ei mitään mahdollisuutta [puhek.]</ar>
-<ar><k>cat ladder</k>
-tikkaat</ar>
-<ar><k>cat's paw</k>
-kätyri</ar>
-<ar><k>catalogue</k>
-hinnasto, luettelo</ar>
-<ar><k>catapult</k>
-ritsa</ar>
-<ar><k>cataract</k>
-kaihi</ar>
-<ar><k>catarrh</k>
-katarri</ar>
-<ar><k>catch</k>
-koppi (urh), pidike, saalis (kalan)
-
-pyydystaa, tavoittaa, saada kiinni</ar>
-<ar><k>catch a cold</k>
-kylmettyä</ar>
-<ar><k>catch a packet</k>
-kuolla [puhek.]</ar>
-<ar><k>catch crayfish</k>
-ravustaa</ar>
-<ar><k>catch fish</k>
-kalastaa</ar>
-<ar><k>catch of fish</k>
-kalansaalis</ar>
-<ar><k>catch something</k>
-sairastua</ar>
-<ar><k>catch tray</k>
-hukka-allas</ar>
-<ar><k>catching</k>
-pyynti (kalan ym)</ar>
-<ar><k>catching salmon</k>
-lohenpyynti</ar>
-<ar><k>catchword</k>
-iskusana</ar>
-<ar><k>caterer</k>
-muonanhankkija</ar>
-<ar><k>catering</k>
-muonitus</ar>
-<ar><k>caterpillar</k>
-puskutraktori, toukka (perhosen)</ar>
-<ar><k>caterpillar tread</k>
-telaketju, toukka (perhosen)</ar>
-<ar><k>catgut</k>
-katgutti, suolijänne</ar>
-<ar><k>cathedral</k>
-katedraali</ar>
-<ar><k>cathedral glass</k>
-katedraalilasi</ar>
-<ar><k>cathode</k>
-katodi</ar>
-<ar><k>catholic</k>
-katolinen</ar>
-<ar><k>catkin</k>
-norkko (bot), urpu</ar>
-<ar><k>cattle</k>
-nautakarja</ar>
-<ar><k>cattle plague</k>
-eläinrutto</ar>
-<ar><k>cauliflower</k>
-kukkakaali</ar>
-<ar><k>cause</k>
-aihe, peruste, syy, 
-
-aiheuttaa, tuottaa (aiheuttaa)</ar>
-<ar><k>cause a split</k>
-hajaannuttaa</ar>
-<ar><k>cause of death</k>
-kuolemansyy</ar>
-<ar><k>cause perspiration</k>
-hiostaa</ar>
-<ar><k>cause to move</k>
-liikahduttaa</ar>
-<ar><k>cause to quake</k>
-järisyttää</ar>
-<ar><k>cause to ring</k>
-helähdyttää</ar>
-<ar><k>cause to rot</k>
-mädännyttää</ar>
-<ar><k>cause to scatter</k>
-hajaannuttaa</ar>
-<ar><k>cause to totter</k>
-horjuttaa</ar>
-<ar><k>cause to weep</k>
-itkettää</ar>
-<ar><k>causeway</k>
-viertotie</ar>
-<ar><k>caustic soda</k>
-lipeäkivi</ar>
-<ar><k>cauterize</k>
-polttaa (esim haava)</ar>
-<ar><k>caution</k>
-varoitus</ar>
-<ar><k>cautious</k>
-arvelevainen, varovainen</ar>
-<ar><k>cavalry</k>
-ratsuväki</ar>
-<ar><k>cave</k>
-luola</ar>
-<ar><k>cavity</k>
-hampaankolo, kolo, onkalo, ontelo, (ontto) tila</ar>
-<ar><k>cease</k>
-herjetä, lakata, tauota</ar>
-<ar><k>cease-fire</k>
-tulitauko</ar>
-<ar><k>ceaselessly</k>
-lakkaamatta</ar>
-<ar><k>ceiling</k>
-sisäkatto</ar>
-<ar><k>ceiling board</k>
-kattolevy</ar>
-<ar><k>ceiling heating</k>
-kattolämmitys</ar>
-<ar><k>celcius</k>
-celcius</ar>
-<ar><k>celebrate</k>
-huvitella, juhlia, viettää (juhlallisesti)</ar>
-<ar><k>celebrated</k>
-maineikas</ar>
-<ar><k>celebration</k>
-hipat, juhla, kekkerit, kemut, vietto</ar>
-<ar><k>celery</k>
-selleri</ar>
-<ar><k>celestial</k>
-taivaallinen</ar>
-<ar><k>cell</k>
-kenno (sähk), koppi, luostarikammio, mehiläiskenno, selli, solu</ar>
-<ar><k>cellar</k>
-kellari</ar>
-<ar><k>cello</k>
-sello (mus)</ar>
-<ar><k>cellophane</k>
-sellofaani</ar>
-<ar><k>celluloid</k>
-selluloidi</ar>
-<ar><k>cement</k>
-kitata
-
-sementti</ar>
-<ar><k>cemetery</k>
-hautausmaa</ar>
-<ar><k>censor</k>
-sensori, sensuroida</ar>
-<ar><k>censorship</k>
-sensuuri</ar>
-<ar><k>census</k>
-väestönlaskenta</ar>
-<ar><k>census list</k>
-henkikirja</ar>
-<ar><k>centennial</k>
-satavuotinen</ar>
-<ar><k>center</k>
-keskikohta
-
-keskittää, asettaa keskelle</ar>
-<ar><k>centigrade</k>
-sataasteinen</ar>
-<ar><k>centimetre</k>
-senttimetri</ar>
-<ar><k>central</k>
-keskeinen</ar>
-<ar><k>central heating system</k>
-lämpöjohto</ar>
-<ar><k>central part</k>
-keskiosa</ar>
-<ar><k>centralized</k>
-keskitetty</ar>
-<ar><k>centrally</k>
-keskeinen</ar>
-<ar><k>centre</k>
-keskikohta, keskipiste, keskus, keskusta</ar>
-<ar><k>centre line</k>
-keskiviiva</ar>
-<ar><k>centrifugal force</k>
-keskipakoisvoima</ar>
-<ar><k>century</k>
-vuosisata</ar>
-<ar><k>ceo</k>
-yhtiön pääjohtaja</ar>
-<ar><k>ceramic tile</k>
-keraamiset laatat</ar>
-<ar><k>ceramics</k>
-keramiikka, savitavarat</ar>
-<ar><k>cereal</k>
-viljakasvi</ar>
-<ar><k>cerebral cortex</k>
-aivokuori</ar>
-<ar><k>cerebral hemorrhage</k>
-aivoverenvuoto</ar>
-<ar><k>ceremonies</k>
-juhlallisuudet, juhlamenot</ar>
-<ar><k>ceremony</k>
-kursailu, juhla</ar>
-<ar><k>certain</k>
-erinäinen, varma</ar>
-<ar><k>certainly</k>
-kyllä (tosin), tietysti, tottakai, varmasti</ar>
-<ar><k>certainly not</k>
-tietenkään</ar>
-<ar><k>certainty</k>
-varma asia</ar>
-<ar><k>certificate</k>
-todistus (kirjallinen)</ar>
-<ar><k>certification</k>
-varmennus</ar>
-<ar><k>certified</k>
-hullu [puhek.]</ar>
-<ar><k>certify</k>
-todistaa, varmentaa</ar>
-<ar><k>cerumen</k>
-vaikku</ar>
-<ar><k>cesspool</k>
-likakaivo</ar>
-<ar><k>chafe</k>
-hangata, hieroutua, hiertää, kahnata</ar>
-<ar><k>chafed place</k>
-hankauma</ar>
-<ar><k>chafed spot</k>
-hiertymä</ar>
-<ar><k>chaff</k>
-härnätä, kiusoitella, pilailla</ar>
-<ar><k>chaffinch</k>
-peipponen</ar>
-<ar><k>chain</k>
-kahlehtia
-
-ketju</ar>
-<ar><k>chain up</k>
-kytkeä (ketjuun)</ar>
-<ar><k>chair</k>
-istuin, tuoli</ar>
-<ar><k>chair warmer</k>
-tyhjäntoimittaja [puhek.]</ar>
-<ar><k>chairman</k>
-puheenjohtaja</ar>
-<ar><k>chalice</k>
-ehtoolliskalkki, malja (raam)</ar>
-<ar><k>chalk</k>
-liitu</ar>
-<ar><k>chalk cliff</k>
-liitukallio</ar>
-<ar><k>challenge</k>
-haastaa (otteluun), haaste (kuv), uhmata</ar>
-<ar><k>challenge cup</k>
-kiertopalkinto</ar>
-<ar><k>chamber</k>
-kamari, kammio</ar>
-<ar><k>chamber of commerce</k>
-kauppakamari</ar>
-<ar><k>chamberlain</k>
-kamariherra</ar>
-<ar><k>chameleon</k>
-kameleontti</ar>
-<ar><k>chamois</k>
-gemssi, säämiskä</ar>
-<ar><k>champagne</k>
-samppanja</ar>
-<ar><k>champion</k>
-esitaistelija</ar>
-<ar><k>championship</k>
-mestaruus (urh)</ar>
-<ar><k>chance</k>
-sattuma, tilaisuus
-
-sattua</ar>
-<ar><k>chance ones arm</k>
-riskeerata [puhek.]</ar>
-<ar><k>chancel</k>
-kuori (kirkon)</ar>
-<ar><k>chancellor</k>
-kansleri, liittokansleri</ar>
-<ar><k>chandelier</k>
-kattokruunu, kyntteikkö (katto)</ar>
-<ar><k>change</k>
-käänne, muutos, vaihde, vaihto
-
-muuttaa, vaihtaa</ar>
-<ar><k>change of guard</k>
-vahdinvaihto</ar>
-<ar><k>change of mind</k>
-mielenmuutos</ar>
-<ar><k>change of residence</k>
-asunnonmuutos</ar>
-<ar><k>change of train</k>
-junanvaihto</ar>
-<ar><k>changeable</k>
-vaihteleva</ar>
-<ar><k>changed</k>
-muutettu</ar>
-<ar><k>changing</k>
-vaihto</ar>
-<ar><k>channel</k>
-kanava, kouru, laivaväylä, tiehyt, ura (väylä), väylä, uroma, u-kisko</ar>
-<ar><k>chant</k>
-messuta</ar>
-<ar><k>chanterelle</k>
-keltasieni</ar>
-<ar><k>chaos</k>
-kaaos, sekasorto</ar>
-<ar><k>chaotic</k>
-sekasortoinen</ar>
-<ar><k>chap</k>
-rohtuma</ar>
-<ar><k>chapel</k>
-kappeli</ar>
-<ar><k>chaplain</k>
-pappi</ar>
-<ar><k>chapter</k>
-luku (kirjan)</ar>
-<ar><k>char</k>
-hiillyttää, nieriä</ar>
-<ar><k>character</k>
-kirjainmerkki</ar>
-<ar><k>character-building</k>
-luonteenkasvatus</ar>
-<ar><k>characteristic</k>
-luonteenominaisuus, ominainen</ar>
-<ar><k>charcoal</k>
-puuhiili, puuhiili, sysi</ar>
-<ar><k>charcoal-pit</k>
-miilu</ar>
-<ar><k>charge</k>
-huolenpito, huosta (hoita), hyökkäys (rynnäkkö), varaus
-
-kuormittaa, ladata, panostaa, rynnätä, valvonta, veloittaa
-
-hinta</ar>
-<ar><k>charge corotron</k>
-varauskorotroni</ar>
-<ar><k>charge dicorotron</k>
-varausdikorotroni</ar>
-<ar><k>charging</k>
-lataus</ar>
-<ar><k>charitable</k>
-armelias, hyväntekeväinen, laupias</ar>
-<ar><k>charitable institution</k>
-armeliaisuuslaitos</ar>
-<ar><k>charity</k>
-hyväntekeväisyys
-
-armeliaisuus, laupeus</ar>
-<ar><k>charm</k>
-hurmata, ihastuttaa, lumota, viehättää</ar>
-<ar><k>charming</k>
-hempeä, ihastuttava, lumoava, suloinen, viehkeä, viehättävä, armas</ar>
-<ar><k>charred</k>
-hiiltynyt</ar>
-<ar><k>chart</k>
-merikartta, merikortti, taulukko, kaavio</ar>
-<ar><k>charter</k>
-perustamiskirja, asiakirja, sertepartia, rahtaus</ar>
-<ar><k>charterer</k>
-rahtaaja</ar>
-<ar><k>chartering</k>
-rahtaus</ar>
-<ar><k>chase</k>
-ajaa takaa</ar>
-<ar><k>chase away</k>
-hätistää</ar>
-<ar><k>chasm</k>
-kuilu (syvä), rotko</ar>
-<ar><k>chassis</k>
-alusta (auton), runko</ar>
-<ar><k>chastity</k>
-siveys</ar>
-<ar><k>chat</k>
-juttelu
-
-jutella, pakina, rupatella, rupattaa</ar>
-<ar><k>chat up</k>
-lyöttäytyä juttusille jkn kanssa [puhek.]</ar>
-<ar><k>chatterbox</k>
-lavertelija, lörppö, suupaltti</ar>
-<ar><k>chatty</k>
-juttelunhaluinen</ar>
-<ar><k>chauffeur</k>
-autonkuljettaja</ar>
-<ar><k>chauvinism</k>
-yltiöisänmaallisuus</ar>
-<ar><k>chauvinistic</k>
-kiihkoisänmaallinen, yltiöisänmaallinen</ar>
-<ar><k>cheap</k>
-halpa, helppo (halpa), huokea</ar>
-<ar><k>cheapen</k>
-halveta</ar>
-<ar><k>cheapness</k>
-halpuus, huokeus (hinnan)</ar>
-<ar><k>cheat</k>
-huijari
-
-huijata, huiputtaa, luntata, narrata, petkuttaa, petkuttaja, puijata, vilpistellä, väärinpelaaja</ar>
-<ar><k>cheating</k>
-huijaus, petkutus</ar>
-<ar><k>check</k>
-este (pidäke), hillike, lasku (Ravin.(Am)), tarkistus
-
-ehkäistä, hillitä, kontrolloida, tarkistaa, tyrehdyttää, tarkastaa
-
-selvä [puhek.]</ar>
-<ar><k>checked</k>
-ruudukas, ruudullinen</ar>
-<ar><k>checkers</k>
-tammipeli</ar>
-<ar><k>checking</k>
-ehkäisy</ar>
-<ar><k>checkmate</k>
-sakata</ar>
-<ar><k>checkpoint</k>
-rasti (urh), tarkastusasema</ar>
-<ar><k>cheek</k>
-poski</ar>
-<ar><k>cheekbone</k>
-poskiluu</ar>
-<ar><k>cheeky</k>
-röyhkeä</ar>
-<ar><k>cheep</k>
-piipittää</ar>
-<ar><k>cheer</k>
-hurraahuuto, hurrata</ar>
-<ar><k>cheer up</k>
-ilahduttaa, piristyä</ar>
-<ar><k>cheerful</k>
-hilpeä, ulinen, iloinen, ilomielinen</ar>
-<ar><k>cheerfully</k>
-ilomielin</ar>
-<ar><k>cheerfulness</k>
-hilpeys, iloisuus</ar>
-<ar><k>cheerless</k>
-iloton</ar>
-<ar><k>cheerlessness</k>
-ilottomuus</ar>
-<ar><k>cheers</k>
-kippis, terveydeksi</ar>
-<ar><k>cheese</k>
-juusto</ar>
-<ar><k>cheesy</k>
-juustomainen</ar>
-<ar><k>cheetah</k>
-gepardi</ar>
-<ar><k>chemical</k>
-kemiallinen</ar>
-<ar><k>chemist</k>
-apteekkari, apteekki</ar>
-<ar><k>cheque</k>
-sekki, shekki</ar>
-<ar><k>cherish</k>
-helliä</ar>
-<ar><k>cherry</k>
-kirsikka</ar>
-<ar><k>cherry picker</k>
-namusetä [puhek.]</ar>
-<ar><k>chess</k>
-sakki</ar>
-<ar><k>chessman</k>
-sakkinappula</ar>
-<ar><k>chest</k>
-arkku, pakkalaatikko, rintakehä</ar>
-<ar><k>chest of drawers</k>
-lipasto</ar>
-<ar><k>chestnut</k>
-kastanja, raudikko</ar>
-<ar><k>chew</k>
-pureksia, pureskella</ar>
-<ar><k>chewed up</k>
-kiukkuinen [puhek.]</ar>
-<ar><k>chewing-gum</k>
-purukumi</ar>
-<ar><k>chic</k>
-hieno, tyylikäs</ar>
-<ar><k>chicken</k>
-kananpoika</ar>
-<ar><k>chicken out</k>
-jänistää [puhek.]</ar>
-<ar><k>chicken-pox</k>
-vesirokko</ar>
-<ar><k>chicory</k>
-sikuri</ar>
-<ar><k>chief</k>
-esimies, johtaja (päällikkö), pääasiallisin, päällikkö, pomo [puhek.]</ar>
-<ar><k>chief accountant</k>
-kamreeri</ar>
-<ar><k>chief foreman</k>
-rakennusmestari</ar>
-<ar><k>chief ingredient</k>
-pääaines</ar>
-<ar><k>chief inspector</k>
-ylitarkastaja</ar>
-<ar><k>chief justice</k>
-ylituomari</ar>
-<ar><k>chief object</k>
-päätarkoitus</ar>
-<ar><k>chiefly</k>
-erittäinkin, parhaastaan</ar>
-<ar><k>chiffon</k>
-sifonki</ar>
-<ar><k>child allowance</k>
-lapsilisä</ar>
-<ar><k>child health centre</k>
-neuvola</ar>
-<ar><k>child welfare</k>
-lastenhuolto</ar>
-<ar><k>child's play</k>
-leikinteko</ar>
-<ar><k>childbirth</k>
-synnytys</ar>
-<ar><k>childhood</k>
-lapsuus</ar>
-<ar><k>childhood home</k>
-lapsuudenkoti</ar>
-<ar><k>childish</k>
-lapsellinen</ar>
-<ar><k>childishness</k>
-lapsellisuus</ar>
-<ar><k>childless</k>
-lapseton</ar>
-<ar><k>childlike</k>
-lapsellinen</ar>
-<ar><k>children's nurse</k>
-lastenhoitaja</ar>
-<ar><k>chill</k>
-vilu, nuha
-
-jäähdyttää, jäätää</ar>
-<ar><k>chilliness</k>
-vilu</ar>
-<ar><k>chilly</k>
-kalsea (sää), kolea, kylmä, kylmäkiskoinen</ar>
-<ar><k>chimney</k>
-savupiippu</ar>
-<ar><k>chimney flashing</k>
-savupiipun tyvirengas</ar>
-<ar><k>chimney-sweep</k>
-nuohooja</ar>
-<ar><k>chimpanzee</k>
-simpanssi (zo)</ar>
-<ar><k>chin</k>
-leuka</ar>
-<ar><k>china</k>
-posliini</ar>
-<ar><k>china-clay</k>
-kaoliini</ar>
-<ar><k>chink</k>
-halkeama (rako), rako</ar>
-<ar><k>chip</k>
-lastu, pelimarkka, siru</ar>
-<ar><k>chip away</k>
-vuolla</ar>
-<ar><k>chipboard</k>
-lastulevy</ar>
-<ar><k>chippie</k>
-kirvesmies</ar>
-<ar><k>chips</k>
-kurskesora, sepeli, perunalastut</ar>
-<ar><k>chirp</k>
-piipittää, sirkuttaa, visertää</ar>
-<ar><k>chirping</k>
-sirkutus</ar>
-<ar><k>chirrup</k>
-sirkuttaa, visertää</ar>
-<ar><k>chisel</k>
-meisseli, taltata, taltta</ar>
-<ar><k>chivalrous</k>
-ritarillinen</ar>
-<ar><k>chivalrous man</k>
-kavaljeeri</ar>
-<ar><k>chives</k>
-ruohosipuli</ar>
-<ar><k>chlorine</k>
-kloori</ar>
-<ar><k>chloroform</k>
-kloroformi</ar>
-<ar><k>chocolate</k>
-suklaa</ar>
-<ar><k>choice</k>
-valikoima, valinnanvara, valinta</ar>
-<ar><k>choir</k>
-kuori (kirkon), kuoro, laulukuoro</ar>
-<ar><k>choke</k>
-läkähtyä, tukehduttaa</ar>
-<ar><k>cholera</k>
-kolera</ar>
-<ar><k>cholesterol</k>
-kolestroli</ar>
-<ar><k>choose</k>
-valikoida, valita</ar>
-<ar><k>choosey</k>
-nirso</ar>
-<ar><k>chop</k>
-kotletti, kyljys
-
-hakata (pilkkoa), pilkkoa (puita), silputa</ar>
-<ar><k>chop off</k>
-hakata (oikki)</ar>
-<ar><k>chopped meat</k>
-hakkelus</ar>
-<ar><k>choral</k>
-koraali</ar>
-<ar><k>choral festival</k>
-laulujuhla</ar>
-<ar><k>chord</k>
-akordi, kieli (soittimen), jänne</ar>
-<ar><k>chorus</k>
-kuoro</ar>
-<ar><k>christening present</k>
-kumminlahja</ar>
-<ar><k>christian name</k>
-ristimänimi</ar>
-<ar><k>chromium</k>
-kromi</ar>
-<ar><k>chromium-plated</k>
-kromitettu</ar>
-<ar><k>chronic</k>
-krooninen</ar>
-<ar><k>chronicle</k>
-kronikka</ar>
-<ar><k>chronological order</k>
-aikajärjestys</ar>
-<ar><k>chronometer</k>
-kronometri</ar>
-<ar><k>chubby</k>
-pullea</ar>
-<ar><k>chuck</k>
-istukka (tekn)
-
-viskata</ar>
-<ar><k>chuck ones hand in</k>
-luopua jstk [puhek.]</ar>
-<ar><k>chuck ones weight about</k>
-olla mahtavaa poikaa [puhek.]</ar>
-<ar><k>chuffed</k>
-mielissään [puhek.]</ar>
-<ar><k>chum</k>
-kaveri, toveri</ar>
-<ar><k>chunk</k>
-kimpale, möhkäle</ar>
-<ar><k>church</k>
-kirkko</ar>
-<ar><k>church service</k>
-kirkonmenot</ar>
-<ar><k>church tower</k>
-kirkontorni</ar>
-<ar><k>churchwarden</k>
-kirkonisäntä</ar>
-<ar><k>churchyard</k>
-kirkkomaa</ar>
-<ar><k>churn</k>
-kirnu</ar>
-<ar><k>chute</k>
-liukurata, kouru
-
-laskukouru</ar>
-<ar><k>cider</k>
-omenaviini</ar>
-<ar><k>cigar</k>
-sikari</ar>
-<ar><k>cigarette</k>
-savuke</ar>
-<ar><k>cinder</k>
-rikka</ar>
-<ar><k>cinderella</k>
-tuhkimo</ar>
-<ar><k>cine-camera</k>
-filmikamera</ar>
-<ar><k>cinnamon</k>
-kaneli</ar>
-<ar><k>cipher</k>
-salakirjain, salamerkki</ar>
-<ar><k>circle</k>
-kehä, parveke (teatt), piiri, ympyrä
-
-kierrellä</ar>
-<ar><k>circle of friends</k>
-seurapiiri</ar>
-<ar><k>circuit</k>
-kierros, virtapiiri</ar>
-<ar><k>circular</k>
-kehänmuotoinen, kiertokirje, pyöreä, ympyriäinen</ar>
-<ar><k>circular downpipe</k>
-pyöreä syöksytorvi</ar>
-<ar><k>circular saw</k>
-pyörösaha</ar>
-<ar><k>circulate</k>
-kierrellä, levittää</ar>
-<ar><k>circulating</k>
-kiertävä</ar>
-<ar><k>circulation</k>
-kierto, kiertokulku, levikki, verenkierto
-
-kierto</ar>
-<ar><k>circumcision</k>
-ympärileikkaus</ar>
-<ar><k>circumference</k>
-kehä (ympärys), ympärys</ar>
-<ar><k>circumstance</k>
-asianhaara, olosuhde, seikka</ar>
-<ar><k>circumstances</k>
-olot, olosuhteet</ar>
-<ar><k>circumstantial evidence</k>
-aihetodiste</ar>
-<ar><k>circumstantially</k>
-juurtajaksaen</ar>
-<ar><k>circus</k>
-sirkus</ar>
-<ar><k>cistern</k>
-säiliö</ar>
-<ar><k>citizen</k>
-kansalainen</ar>
-<ar><k>citizenship</k>
-kansalaisuus</ar>
-<ar><k>citric acid</k>
-sitruunahappo</ar>
-<ar><k>city</k>
-kaupunki (suurempi)</ar>
-<ar><k>city hall</k>
-raatihuone</ar>
-<ar><k>civics</k>
-kansalaistieto</ar>
-<ar><k>civil register</k>
-siviilirekisteri</ar>
-<ar><k>civil rights</k>
-kansalaisluottamus (vanh)</ar>
-<ar><k>civil service department</k>
-virasto (valtion)</ar>
-<ar><k>civil war</k>
-kansalaissota</ar>
-<ar><k>civilian</k>
-siviili</ar>
-<ar><k>civilization</k>
-koulusivisty</ar>
-<ar><k>cladding</k>
-julkisivuverhous</ar>
-<ar><k>cladding glass</k>
-julkisivulasi</ar>
-<ar><k>claim</k>
-saatava, vaatimus, väite
-
-vaatia, väittää</ar>
-<ar><k>clairvoyant</k>
-selvänäkijä</ar>
-<ar><k>clam</k>
-simpukka (zo)</ar>
-<ar><k>clamber</k>
-kavuta</ar>
-<ar><k>clamp</k>
-pidike, ruuvipihdit, ruuvipuristin, tukirauta, kiinnike, pidin</ar>
-<ar><k>clandestine</k>
-salakähmäinen, salainen</ar>
-<ar><k>clang</k>
-helähdys, kajahdus, kalskahdus, sointi
-
-helahtää, raikua</ar>
-<ar><k>clank</k>
-kalistella, kalskahtaa</ar>
-<ar><k>clanking</k>
-kalske</ar>
-<ar><k>clap</k>
-paukuttaa</ar>
-<ar><k>clap of thunder</k>
-ukkosenjyrähdys</ar>
-<ar><k>clapper</k>
-läppä (kellon)</ar>
-<ar><k>claret</k>
-punaviivi</ar>
-<ar><k>clarifier</k>
-selvike</ar>
-<ar><k>clarify</k>
-selvittää, selvitä</ar>
-<ar><k>clarinet</k>
-klarinetti</ar>
-<ar><k>clarity</k>
-havinnollisuus, selkeys, selvyys</ar>
-<ar><k>clash</k>
-yhteenotto</ar>
-<ar><k>clasp</k>
-haka, solki, säppi</ar>
-<ar><k>clasp-knife</k>
-linkkuveitsi</ar>
-<ar><k>class</k>
-arvoluokka, kansanluokka, luokka, opetustunti</ar>
-<ar><k>class distinction</k>
-luokkaerotus</ar>
-<ar><k>class-conscious</k>
-luokkatietoinen</ar>
-<ar><k>classic</k>
-klassikko
-
-klassillinen</ar>
-<ar><k>classical</k>
-klassillinen</ar>
-<ar><k>classification</k>
-luokitus</ar>
-<ar><k>classify</k>
-luokitella, luokittaa, ryhmittää</ar>
-<ar><k>classmate</k>
-luokkatoveri</ar>
-<ar><k>classroom</k>
-luokkahuone</ar>
-<ar><k>clatter</k>
-kalina, kalke, kalkutus, kalske, kapse, kolina, rätinä
-
-kalistella</ar>
-<ar><k>clause</k>
-lause (lyhyt), ehto</ar>
-<ar><k>claw</k>
-kynsi (eläin), sorkka (vasaran)</ar>
-<ar><k>clay</k>
-savi
-
-savi</ar>
-<ar><k>clay pigeon</k>
-savikyyhkynen, savikiekko</ar>
-<ar><k>clay-pigeon</k>
-savikiekko</ar>
-<ar><k>clay-pit</k>
-savikuoppa</ar>
-<ar><k>clean</k>
-puhdistaa, siivota
-
-syytön [puhek.]
-
-puhdas, siisti, </ar>
-<ar><k>clean out</k>
-ruokota</ar>
-<ar><k>clean up</k>
-siistiä</ar>
-<ar><k>cleaner</k>
-siivooja</ar>
-<ar><k>cleaner assembly</k>
-puhdistuslaite</ar>
-<ar><k>cleaner blade</k>
-puhdistuslevy, kaavin</ar>
-<ar><k>cleaner material</k>
-puhdistusrakeet</ar>
-<ar><k>cleaner roll</k>
-puhdistustela</ar>
-<ar><k>cleaning</k>
-perkaus, siivous</ar>
-<ar><k>cleanliness</k>
-puhtaus, siisteys</ar>
-<ar><k>cleanly</k>
-puhtaasti</ar>
-<ar><k>cleanness</k>
-puhtaus</ar>
-<ar><k>cleanse</k>
-puhdistaa</ar>
-<ar><k>clear</k>
-raivata, selvittää, tullata
-
-havainnollinen, heleä, kirkas, selkeä, selvä</ar>
-<ar><k>clear one's throat</k>
-rykiä</ar>
-<ar><k>clear sailing</k>
-selvillä vesillä [puhek.]</ar>
-<ar><k>clear soup</k>
-lihaliemi</ar>
-<ar><k>clear up</k>
-seljetä, selvetä</ar>
-<ar><k>clear-voiced</k>
-heleäääninen</ar>
-<ar><k>clearance</k>
-vapaa väli</ar>
-<ar><k>clearance sale</k>
-loppuunmyynti</ar>
-<ar><k>clearing</k>
-aho</ar>
-<ar><k>clearly</k>
-ileisesti, selvästi</ar>
-<ar><k>clearness</k>
-havainnollisuus, heleys, kirkkaus, selkeys, selko</ar>
-<ar><k>cleat</k>
-vahvike</ar>
-<ar><k>cleave</k>
-haljeta, halkaista, halkoa, lohjeta</ar>
-<ar><k>clef</k>
-nuottiavain</ar>
-<ar><k>cleft</k>
-halkeama, kuilu, rotko</ar>
-<ar><k>clergyman</k>
-pappi</ar>
-<ar><k>clerical</k>
-papillinen</ar>
-<ar><k>clerk</k>
-kirjuri, konttoristi</ar>
-<ar><k>clever</k>
-fiksu (ark), hyväpäinen, nokkela, ovela, viisas, älykäs</ar>
-<ar><k>cleverness</k>
-sukkelus, viisaus</ar>
-<ar><k>click</k>
-naksahdus, napsahdus
-
-napsahtaa, raksahtaa</ar>
-<ar><k>client</k>
-asiakas</ar>
-<ar><k>cliff</k>
-rantakallio</ar>
-<ar><k>climate</k>
-ilmanala, ilmasto</ar>
-<ar><k>climatic</k>
-ilmastollinen</ar>
-<ar><k>climatic conditions</k>
-ilmastosuhteet</ar>
-<ar><k>climax</k>
-huippukohta, kliimaks</ar>
-<ar><k>climb</k>
-kavuta, kiivetä, kohota (lentok)</ar>
-<ar><k>climber</k>
-etuilija, kiipijä, pyrkyri</ar>
-<ar><k>climbing iron</k>
-teräsastin</ar>
-<ar><k>climbing plant</k>
-köynnöskasvi</ar>
-<ar><k>clinch</k>
-kotkata</ar>
-<ar><k>clincher</k>
-kotkain</ar>
-<ar><k>clinic</k>
-klinikka</ar>
-<ar><k>clink</k>
-helistä, kilahtaa</ar>
-<ar><k>clip</k>
-nipistin, pidike</ar>
-<ar><k>clique</k>
-klikki, kuppikunta</ar>
-<ar><k>cloak</k>
-kappa, mantelli, peite, vaippa, viitta</ar>
-<ar><k>cloakroom</k>
-vaatesäilö</ar>
-<ar><k>clobber</k>
-kolkata (sl)</ar>
-<ar><k>clock</k>
-kello</ar>
-<ar><k>clockwise</k>
-myötäpäivään</ar>
-<ar><k>clog</k>
-pidäke
-
-puukenkä</ar>
-<ar><k>close</k>
-lopettaa, sulkea, sulkeutua
-
-liki, loppu, läheinen, lähelle, jnk luona</ar>
-<ar><k>close at hand</k>
-saatavissa [puhek.]</ar>
-<ar><k>close by</k>
-lähelle, ohessa, viereinen, läheinen</ar>
-<ar><k>close cropped</k>
-lyhyeksi leikattu [puhek.]</ar>
-<ar><k>close fight</k>
-käsikähmä [puhek.]</ar>
-<ar><k>close friend</k>
-henkiystävä</ar>
-<ar><k>close mouthed</k>
-vaitelias [puhek.]</ar>
-<ar><k>close range</k>
-lähitaistelu [puhek.]</ar>
-<ar><k>close relative</k>
-omainen</ar>
-<ar><k>close season</k>
-rauhoitusaika [puhek.]</ar>
-<ar><k>close shave</k>
-täpärä paikka [puhek.]</ar>
-<ar><k>close shot</k>
-lähikuva (valok)</ar>
-<ar><k>close to</k>
-liki, jnk luona, lähelle</ar>
-<ar><k>close to each other</k>
-lähekkäin</ar>
-<ar><k>close together</k>
-kantapäät yhdessä [puhek.]</ar>
-<ar><k>close-fisted</k>
-itara</ar>
-<ar><k>close-up</k>
-lähikuva (valok)</ar>
-<ar><k>closed</k>
-kiinni (suljettu), suljettu, umpinainen</ar>
-<ar><k>closed circuit</k>
-sulkeinen piiri</ar>
-<ar><k>closed to traffic</k>
-ajokielto</ar>
-<ar><k>closely</k>
-tarkasti, tarkoin, tiukasti, visusti</ar>
-<ar><k>closeness</k>
-tiiviys</ar>
-<ar><k>closer</k>
-lähemmin, lähentää</ar>
-<ar><k>closing of the books</k>
-tilinpäätös</ar>
-<ar><k>closing-time</k>
-sulkemisaika</ar>
-<ar><k>clot</k>
-idiootti [puhek.]
-
-maksoittua</ar>
-<ar><k>clothe</k>
-pukea, vaatettaa</ar>
-<ar><k>clothes moth</k>
-koi</ar>
-<ar><k>clothes peg</k>
-pyykkipoika</ar>
-<ar><k>clothes-line</k>
-pyykkinuora</ar>
-<ar><k>clothing</k>
-asusteet, vaatetus</ar>
-<ar><k>clothing store</k>
-asusteliike</ar>
-<ar><k>clotting</k>
-hyytyminen (veren ym)</ar>
-<ar><k>cloud</k>
-pilvi</ar>
-<ar><k>cloud of smoke</k>
-savupilvi</ar>
-<ar><k>cloud over</k>
-pilvettyä</ar>
-<ar><k>cloudberry</k>
-muurain</ar>
-<ar><k>cloudburst</k>
-kaatosade</ar>
-<ar><k>cloudy</k>
-pilvinen, samea</ar>
-<ar><k>clove</k>
-mausteneilikka</ar>
-<ar><k>cloven hoof</k>
-sorkka</ar>
-<ar><k>clover</k>
-apila</ar>
-<ar><k>clown</k>
-ilveilijä, pajatso, pelle
-
-pelleillä</ar>
-<ar><k>club</k>
-kerho, kurikka, nuija</ar>
-<ar><k>club-foot</k>
-kampurajalka</ar>
-<ar><k>club-rush</k>
-kaisla</ar>
-<ar><k>cluck</k>
-kotkotus</ar>
-<ar><k>clue</k>
-johtolanka (kuv)</ar>
-<ar><k>clumsiness</k>
-kömpelyys</ar>
-<ar><k>clumsy</k>
-kömpelö</ar>
-<ar><k>cluster</k>
-kimppu, sikermä, terttu</ar>
-<ar><k>clutch</k>
-kytkin (auton), vetokytkin
-
-tarrata, tarttua</ar>
-<ar><k>clutter</k>
-sotku
-
-sokeltaa</ar>
-<ar><k>co-existence</k>
-rinnakkaiselo</ar>
-<ar><k>coach</k>
-valmentaja, bussi
-
-valmentaa</ar>
-<ar><k>coach screw</k>
-kuusioruuvi</ar>
-<ar><k>coagulate</k>
-hyydyttää, maksoittua</ar>
-<ar><k>coagulation</k>
-hyytyminen (veren ym)</ar>
-<ar><k>coal</k>
-hiilikivi, kivihiili
-
-hiilestää</ar>
-<ar><k>coal stratum</k>
-hiilikerros</ar>
-<ar><k>coal-mine</k>
-hiilikaivos, kivikaivos</ar>
-<ar><k>coalition</k>
-yhteenliittyminen</ar>
-<ar><k>coalition government</k>
-kokoomushallitus</ar>
-<ar><k>coarse</k>
-järeä, järeätekoinen, karkea, raakamainen (karkea), törkeä</ar>
-<ar><k>coarse aggregate</k>
-karkea runkoaine, sora</ar>
-<ar><k>coarse-featured</k>
-karkeapiirteinen</ar>
-<ar><k>coarseness</k>
-raakuus, törkeys</ar>
-<ar><k>coarsly woven</k>
-harvakudontainen</ar>
-<ar><k>coast</k>
-rannikko</ar>
-<ar><k>coastguard</k>
-merivartiosto</ar>
-<ar><k>coat</k>
-kappa, nuttu, peite, päällys, takki
-
-päällystää</ar>
-<ar><k>coat hanger</k>
-vaateripustin</ar>
-<ar><k>coat of arms</k>
-aatelisvaakuna, vaakuna</ar>
-<ar><k>coat-rack</k>
-naulakko, vaatenaulakko</ar>
-<ar><k>coating</k>
-pinnoite, päällys, tahma, peite</ar>
-<ar><k>coax</k>
-lirkuttaa (mielistellä)</ar>
-<ar><k>cobble</k>
-mukulakivi</ar>
-<ar><k>cobbler</k>
-jalkinekorjaamo, suutari</ar>
-<ar><k>cobblestone</k>
-nupukivi</ar>
-<ar><k>cobweb</k>
-hämähäkinseitti, seitti</ar>
-<ar><k>cocaine</k>
-kokaiini</ar>
-<ar><k>cock</k>
-koiras (linnusta), kukko</ar>
-<ar><k>cock **</k>
-kyrpä [alat.]</ar>
-<ar><k>cock teaser</k>
-keimailija [puhek.]</ar>
-<ar><k>cock-a-doodle-doo</k>
-kukkokiekuu</ar>
-<ar><k>cock-and-bull-story</k>
-ryövärijuttu</ar>
-<ar><k>cockade</k>
-kokardi</ar>
-<ar><k>cockerel</k>
-kukkopoikanen</ar>
-<ar><k>cockeyed</k>
-tiedoton [puhek.]</ar>
-<ar><k>cockroach</k>
-torakka</ar>
-<ar><k>cockup</k>
-täysi sotku [puhek.]</ar>
-<ar><k>cocoa</k>
-kaakoa</ar>
-<ar><k>coconut</k>
-kookospähkinä</ar>
-<ar><k>coconut matting</k>
-kookosmatto</ar>
-<ar><k>coconut palm</k>
-kookospalmu</ar>
-<ar><k>cocoon</k>
-kotelokoppa (zo)</ar>
-<ar><k>cod</k>
-turska</ar>
-<ar><k>cod-liver oil</k>
-kalanmaksaöljy</ar>
-<ar><k>coddle</k>
-hellitellä, hemmotella, lellitellä</ar>
-<ar><k>coddling</k>
-hemmottelu</ar>
-<ar><k>code</k>
-koodi, suuntanumero, tunnus, tunniste</ar>
-<ar><k>code name</k>
-peitenimi</ar>
-<ar><k>codswallop</k>
-kurja veruke [puhek.]</ar>
-<ar><k>coefficient</k>
-kerroin (mat)</ar>
-<ar><k>coffee</k>
-kahvi</ar>
-<ar><k>coffee bar</k>
-kahvila</ar>
-<ar><k>coffee party</k>
-kahvikestit</ar>
-<ar><k>coffee percolator</k>
-kahvinkeitin</ar>
-<ar><k>coffee set</k>
-kahvikalusto</ar>
-<ar><k>coffee substitute</k>
-kahvinkorvike</ar>
-<ar><k>coffee-maker</k>
-kahvinkeitin</ar>
-<ar><k>coffee-pot</k>
-kahvikannu, kahvipannu</ar>
-<ar><k>coffeine</k>
-kofeiini</ar>
-<ar><k>coffin</k>
-ruumisarkku, ruumisarkku</ar>
-<ar><k>coiffeur</k>
-parturi, kampaaja</ar>
-<ar><k>coiffure</k>
-kampaus, hiuslaite</ar>
-<ar><k>coil</k>
-kela (sähk), kiehkura, kiemura, kierukka, käämi
-
-kiertyä
-
-kierukka (ehkäisyväline)</ar>
-<ar><k>coin</k>
-kolikko, lantti, raha (lantti)</ar>
-<ar><k>coin machine</k>
-pelipajatso</ar>
-<ar><k>coincidence</k>
-yhteensattuma</ar>
-<ar><k>coincidental</k>
-yhtaikainen</ar>
-<ar><k>coke</k>
-koksi</ar>
-<ar><k>cold</k>
-kylmyys, kylmä, nuha, pakkanen, vilu, viluinen</ar>
-<ar><k>cold cream</k>
-ihovoide</ar>
-<ar><k>cold fish</k>
-kalsea tyyppi [puhek.]</ar>
-<ar><k>cold flow</k>
-kylmämyötö</ar>
-<ar><k>cold period</k>
-pakkaskausi</ar>
-<ar><k>cold shivers</k>
-vilunväreet</ar>
-<ar><k>cold storage</k>
-hauta [puhek.]</ar>
-<ar><k>cold sweat</k>
-tuskanhiki</ar>
-<ar><k>cold-blooded</k>
-vaihtolämpöinen</ar>
-<ar><k>coldness</k>
-kylmyys</ar>
-<ar><k>colic</k>
-ähky (lääk)</ar>
-<ar><k>collapse</k>
-kaatua (suistua), lysähtää, lyyhistyä, romahtaa, sortua</ar>
-<ar><k>collapsible</k>
-kokoontyönettävä</ar>
-<ar><k>collar</k>
-kaulahihna, kaulapanta, kaulus, länget, rengas, pidätinrengas, laippa</ar>
-<ar><k>collar beam</k>
-kitapuu</ar>
-<ar><k>collar stud</k>
-kauluksennappi, kaulusnappi</ar>
-<ar><k>collar-bone</k>
-solisluu</ar>
-<ar><k>collate</k>
-koota (oikeaan järjetsykseen)</ar>
-<ar><k>collated set</k>
-kopio sarja, koonta</ar>
-<ar><k>collating tray</k>
-koonta-alusta, joskus tasausalusta</ar>
-<ar><k>collator</k>
-koontalaite</ar>
-<ar><k>colleague</k>
-kollega</ar>
-<ar><k>collect</k>
-keräillä, kerätä, kerääntyä, kokoilla, koota, rahastaa</ar>
-<ar><k>collected</k>
-maltillinen</ar>
-<ar><k>collection</k>
-keruu, keräys, kokoelma, kolehti, perintä (maksun)</ar>
-<ar><k>collection of plants</k>
-kasvikokoelma</ar>
-<ar><k>collection of taxes</k>
-veronkanto</ar>
-<ar><k>collective</k>
-kollektiivinen</ar>
-<ar><k>collector</k>
-keräilijä, kokoilija</ar>
-<ar><k>college</k>
-kollegio, opisto</ar>
-<ar><k>collide</k>
-törmätä (yhteen)</ar>
-<ar><k>collier</k>
-kaivosmies</ar>
-<ar><k>colliery</k>
-hiilikaivos, kivikaivos</ar>
-<ar><k>collision</k>
-kolari, yhteenajo, yhteentörmäys</ar>
-<ar><k>colloquial language</k>
-arkikieli, puhekieli</ar>
-<ar><k>colon</k>
-kaksoispiste</ar>
-<ar><k>colonel</k>
-eversti</ar>
-<ar><k>colonist</k>
-uudisasukas</ar>
-<ar><k>colonization</k>
-asutus</ar>
-<ar><k>colonize</k>
-asuttaa</ar>
-<ar><k>colony</k>
-siirtomaa</ar>
-<ar><k>colour</k>
-väri</ar>
-<ar><k>colour-blind</k>
-värisokea</ar>
-<ar><k>coloured</k>
-värillinen</ar>
-<ar><k>colourful</k>
-värikäs</ar>
-<ar><k>colourfulness</k>
-värikkyys</ar>
-<ar><k>colouring</k>
-väritys</ar>
-<ar><k>colourless</k>
-väritön</ar>
-<ar><k>colours</k>
-lippu</ar>
-<ar><k>colt</k>
-orivarsa</ar>
-<ar><k>coltsfoot</k>
-leskenlehti (bot)</ar>
-<ar><k>columbine</k>
-akileija</ar>
-<ar><k>column</k>
-kolonna, palsta (kirjan ym), pilari, pylväs, sarake</ar>
-<ar><k>column radiator</k>
-ripapatteri</ar>
-<ar><k>comb</k>
-kampa
-
-kammata</ar>
-<ar><k>combat</k>
-kamppailu, taistelu</ar>
-<ar><k>combatant</k>
-taistelija</ar>
-<ar><k>combination</k>
-yhdistelmä</ar>
-<ar><k>combination of subjects</k>
-aineyhdistelmä</ar>
-<ar><k>combine</k>
-yhtymä (liik)
-
-sovittaa (yhteen), yhdistellä, yhdistää, yhtyä</ar>
-<ar><k>combine harvester</k>
-leikkuupuimuri</ar>
-<ar><k>combustion</k>
-poltto (palaminen)</ar>
-<ar><k>come</k>
-tulla</ar>
-<ar><k>come about</k>
-sattua</ar>
-<ar><k>come across</k>
-kohdata (sattumalta), tavata</ar>
-<ar><k>come again</k>
-toistaa mitä juuri sanoin [puhek.]</ar>
-<ar><k>come back</k>
-palata</ar>
-<ar><k>come down</k>
-laskeutua (tulla alas), varista</ar>
-<ar><k>come from</k>
-johtua jstk</ar>
-<ar><k>come home</k>
-kotiutua</ar>
-<ar><k>come in sight</k>
-ilmestyä näkyviin</ar>
-<ar><k>come into</k>
-joutua</ar>
-<ar><k>come into sight</k>
-ilmestyä näkyviin</ar>
-<ar><k>come loose</k>
-aueta, hellitä, irrota, irtautua, lähteä (irti), löyhtyä</ar>
-<ar><k>come of age</k>
-tulla täysi-ikäiseksi [puhek.]</ar>
-<ar><k>come off</k>
-irrota, lähteä (irti)</ar>
-<ar><k>come on</k>
-kutsu [puhek.]</ar>
-<ar><k>come the heavy</k>
-olla mahtipontinen [puhek.]</ar>
-<ar><k>come to</k>
-saapua</ar>
-<ar><k>come to an end</k>
-päätyä</ar>
-<ar><k>come to heel</k>
-taipua [puhek.]</ar>
-<ar><k>come to order</k>
-järjestäytyä (kokous)</ar>
-<ar><k>come to that</k>
-sen puoleen [puhek.]</ar>
-<ar><k>come to the wrong shop</k>
-tulla vikapaikkaan [puhek.]</ar>
-<ar><k>come together</k>
-kokoontua</ar>
-<ar><k>come true</k>
-toteutua</ar>
-<ar><k>come under</k>
-joutua (kohteeksi)</ar>
-<ar><k>come undone</k>
-purkautua</ar>
-<ar><k>come up to scratch</k>
-pärjätä [puhek.]</ar>
-<ar><k>comedian</k>
-koomikko</ar>
-<ar><k>comedown</k>
-pettymys [puhek.]</ar>
-<ar><k>comedy</k>
-hupailu, huvinäytelmä</ar>
-<ar><k>comet</k>
-pyrstötähti</ar>
-<ar><k>comfort</k>
-lohduttaa</ar>
-<ar><k>comfortable</k>
-mukava</ar>
-<ar><k>comfortably</k>
-mukavasti</ar>
-<ar><k>comforting</k>
-lohdullinen</ar>
-<ar><k>comic song</k>
-kupletti</ar>
-<ar><k>comic strip</k>
-sarjakuva</ar>
-<ar><k>comical</k>
-hullunkurinen (lystikäs), koomillinen</ar>
-<ar><k>coming</k>
-tuleva, tulo, vastavainen</ar>
-<ar><k>command</k>
-komennus, komento, käsky
-
-komentaa, käskeä, määrätä, hallita</ar>
-<ar><k>commandant</k>
-linnanpäällikkö</ar>
-<ar><k>commander</k>
-komentaja</ar>
-<ar><k>commander-in-chief</k>
-ylipäällikkö</ar>
-<ar><k>commence</k>
-alkaa</ar>
-<ar><k>commencement</k>
-alkaminen</ar>
-<ar><k>commend</k>
-kiitellä (ylistää)</ar>
-<ar><k>comment</k>
-huomautus</ar>
-<ar><k>commentary</k>
-selostus (urh)</ar>
-<ar><k>commentator</k>
-huomioitsija</ar>
-<ar><k>commercial</k>
-kaupallinen</ar>
-<ar><k>commercial bank</k>
-liikepankki</ar>
-<ar><k>commercial college</k>
-kauppaopisto</ar>
-<ar><k>commercial house</k>
-liiketalo</ar>
-<ar><k>commercial pilot</k>
-liikennelentäjä</ar>
-<ar><k>commercial school</k>
-kauppakoulu</ar>
-<ar><k>commercial vehicle</k>
-hyötyajoneuvo</ar>
-<ar><k>commercialize</k>
-kaupallistaa</ar>
-<ar><k>commical</k>
-hassunkurinen</ar>
-<ar><k>commission</k>
-lautakunta, valtuuskunta
-
-myyntipalkkio, provisio</ar>
-<ar><k>commissioned officer</k>
-upseeri</ar>
-<ar><k>commissioner</k>
-komissaari</ar>
-<ar><k>commitment</k>
-sitoutuminen, sitoumus</ar>
-<ar><k>committee</k>
-lautakunta</ar>
-<ar><k>commodity</k>
-hyödyke, kauppatavara</ar>
-<ar><k>common</k>
-yleinen, yhteinen, yhteis-</ar>
-<ar><k>common market</k>
-yhteismarkkinat</ar>
-<ar><k>common people</k>
-rahvas</ar>
-<ar><k>common sense</k>
-järkevyys</ar>
-<ar><k>common snipe</k>
-taivaanvuohi (zo)</ar>
-<ar><k>commoner</k>
-aateliton</ar>
-<ar><k>commonness</k>
-yleisyys</ar>
-<ar><k>commonplace</k>
-arkinen, banaali</ar>
-<ar><k>commotion</k>
-häly, vilinä</ar>
-<ar><k>communication</k>
-tiedonanto, kulkuyhteys</ar>
-<ar><k>communication between people</k>
-kanssakäyminen</ar>
-<ar><k>communique</k>
-tiedote</ar>
-<ar><k>communism</k>
-kommunismi</ar>
-<ar><k>communist</k>
-kommunisti</ar>
-<ar><k>community</k>
-yhdyskunta, yhteiskunta</ar>
-<ar><k>compact</k>
-tiivis</ar>
-<ar><k>compaction</k>
-tiivistys</ar>
-<ar><k>compactness</k>
-tiiviys</ar>
-<ar><k>companion</k>
-kumppani, saattaja, seuralainen</ar>
-<ar><k>company</k>
-lippukunta, yhtiö, seura</ar>
-<ar><k>comparative</k>
-komparatiivi
-
-suhteellinen</ar>
-<ar><k>compare</k>
-vertailla, verrata</ar>
-<ar><k>compare with</k>
-verrata</ar>
-<ar><k>comparison</k>
-komparaatio, vertailu</ar>
-<ar><k>comparitively</k>
-verraten, verrattain</ar>
-<ar><k>compartment</k>
-lokero</ar>
-<ar><k>compass</k>
-kompassi</ar>
-<ar><k>compass divider</k>
-harppi</ar>
-<ar><k>compass dividers</k>
-harppi</ar>
-<ar><k>compassion</k>
-armahtavaisuus, sääli</ar>
-<ar><k>compassionate</k>
-armahtavainen</ar>
-<ar><k>compatibility</k>
-yhteensopivuus</ar>
-<ar><k>compel</k>
-pakottaa</ar>
-<ar><k>compensate</k>
-hyvittää, kompensoida, korvata</ar>
-<ar><k>compensation</k>
-hyvitys, korvaus, vahingonkorvaus, vastike (korvaus)</ar>
-<ar><k>compere</k>
-juontaa (ohjelma)</ar>
-<ar><k>compete</k>
-kilpailla, otella (urh)</ar>
-<ar><k>competence</k>
-pätevyys</ar>
-<ar><k>competent</k>
-asiantunteva, kelvollinen (henkilöstä), pätevä</ar>
-<ar><k>competing</k>
-kilpaileva</ar>
-<ar><k>competition</k>
-kilpailu</ar>
-<ar><k>competitive</k>
-kilpailukykyinen</ar>
-<ar><k>competitor</k>
-kilpahakija, kilpailija</ar>
-<ar><k>complain</k>
-valittaa, nureksia, nurista, nurkkua</ar>
-<ar><k>complain about</k>
-valittaa</ar>
-<ar><k>complain of</k>
-valittaa, voivotella</ar>
-<ar><k>complaining</k>
-valitus</ar>
-<ar><k>complaint</k>
-kanne (valitus), kantelu (lak), tauti, valitus</ar>
-<ar><k>complete</k>
-suorittaa (loppuun), täydellistää, täydentää
-
-tehdä valmiiksi, tehdä loppuun asti
-
-täysi, täydellinen</ar>
-<ar><k>completely</k>
-kokonaan, täydelleen, täydellisesti</ar>
-<ar><k>completeness</k>
-täydellisyys</ar>
-<ar><k>completion</k>
-täydennys</ar>
-<ar><k>complex</k>
-kompleksi, monimutkainen</ar>
-<ar><k>complex sentence</k>
-lauseyhdistys, virke (kiel)</ar>
-<ar><k>complexion</k>
-hipiä, iho (hipiä), ihonväri</ar>
-<ar><k>complexity</k>
-monimutkaisuus</ar>
-<ar><k>compliance</k>
-myöntyväisyys</ar>
-<ar><k>compliant</k>
-myöntyväinen, peräänantavainen</ar>
-<ar><k>complicate</k>
-mutkistaa</ar>
-<ar><k>complicated</k>
-pulmallinen
-
-kiperä (kuv), konstikas, monimutkainen, mutkallinen (kuv)</ar>
-<ar><k>complication</k>
-jälkitauti, lisätauti, sekaannus</ar>
-<ar><k>compliment</k>
-kohteliaisuus</ar>
-<ar><k>component</k>
-aineosa, osa (kokonaisuuden), komponentti</ar>
-<ar><k>compose</k>
-laatia, latoa (kirjap), säveltää</ar>
-<ar><k>composed</k>
-hiilitty, hätäilemätön, levollinen, tyyni</ar>
-<ar><k>composed of</k>
-kokoonpantu</ar>
-<ar><k>composer</k>
-säveltäjä</ar>
-<ar><k>composing-room</k>
-latomo</ar>
-<ar><k>composite</k>
-mykerökukkainen</ar>
-<ar><k>composition</k>
-ainekirjoitus, kokoomus, kokoonpano, koostumus, ladelma, sävelys</ar>
-<ar><k>compositor</k>
-latoja</ar>
-<ar><k>compost</k>
-komposti</ar>
-<ar><k>composure</k>
-hätäilemättömyys, levollisuus, maltillisuus, maltti, tyyneys</ar>
-<ar><k>compound</k>
-aineyhdiste, yhdiste (kem), seos</ar>
-<ar><k>comprehend</k>
-käsittää, tajuta, ymmärtää, älytä</ar>
-<ar><k>comprehensible</k>
-käsitettävä, tajuttava, ymmärrettävä</ar>
-<ar><k>comprehension</k>
-käsitys</ar>
-<ar><k>comprehensive</k>
-laaja (kuv)</ar>
-<ar><k>comprehensive school</k>
-peruskoulu</ar>
-<ar><k>compress</k>
-puristaa, pusertaa, tiivistaa</ar>
-<ar><k>compressed</k>
-tiivistetty</ar>
-<ar><k>compression</k>
-puristus</ar>
-<ar><k>compression member</k>
-piristussauva</ar>
-<ar><k>compression spring</k>
-painejousi</ar>
-<ar><k>compressor</k>
-kompressori</ar>
-<ar><k>comprise</k>
-käsittää (sisltää)</ar>
-<ar><k>compromise</k>
-kompromissi, sovittelu</ar>
-<ar><k>compulsion</k>
-pakko, pakotus</ar>
-<ar><k>compulsory</k>
-pakollinen</ar>
-<ar><k>compute</k>
-laskea (mat)</ar>
-<ar><k>computer</k>
-tietokone</ar>
-<ar><k>comrade</k>
-toveri</ar>
-<ar><k>comradeship</k>
-toveruus</ar>
-<ar><k>concave</k>
-kovera</ar>
-<ar><k>concave lens</k>
-hajottajalinssi</ar>
-<ar><k>conceal</k>
-kätkeä, piilottaa, salailla, salata</ar>
-<ar><k>conceal oneself</k>
-kätkeytyä</ar>
-<ar><k>concealed</k>
-salainen</ar>
-<ar><k>concede</k>
-myöntää</ar>
-<ar><k>conceit</k>
-itserakkaus, omahyväisyys, pöyhkeys</ar>
-<ar><k>conceited</k>
-itserakas, pöyhkeä</ar>
-<ar><k>concentrate</k>
-keskittyä, keskittää, rikastaa (tekn)</ar>
-<ar><k>concentrated load</k>
-pistekuorma</ar>
-<ar><k>concentration</k>
-keskittyminen, keskitys</ar>
-<ar><k>concept</k>
-käsite</ar>
-<ar><k>conception</k>
-mielle, tajunta</ar>
-<ar><k>concern</k>
-kauppaliike, yhtymä (liik), huoli
-
-koskea (tarkoittaa)</ar>
-<ar><k>concern oneself</k>
-piitata</ar>
-<ar><k>concerned</k>
-huolestunut, osallinen</ar>
-<ar><k>concert</k>
-konsertti</ar>
-<ar><k>concert grand</k>
-konserttiflyygeli</ar>
-<ar><k>concession</k>
-myönnytys, toimilupa</ar>
-<ar><k>conciliate</k>
-lepyttää</ar>
-<ar><k>concise</k>
-lakoninen, suppea</ar>
-<ar><k>concisely</k>
-suppeasti</ar>
-<ar><k>conciseness</k>
-suppeus</ar>
-<ar><k>conclude</k>
-tehdä johtopäätös, lopettaa, päätellä, päättää, saattaa loppuun</ar>
-<ar><k>concluded</k>
-loppuunkäsitelty</ar>
-<ar><k>conclusion</k>
-johtopäätös</ar>
-<ar><k>concord</k>
-sopu</ar>
-<ar><k>concrete</k>
-betoni, esineellinen, konkreettinen</ar>
-<ar><k>concrete pile</k>
-betonipylväs</ar>
-<ar><k>concrete vibrator</k>
-betonitärytin</ar>
-<ar><k>concrete worker</k>
-betonimies</ar>
-<ar><k>concubine</k>
-jalkavaimo</ar>
-<ar><k>concussion</k>
-aivitärähdys, tärähdys (lääk)</ar>
-<ar><k>condense</k>
-tiivistyä</ar>
-<ar><k>condensed</k>
-suppeus</ar>
-<ar><k>condescending</k>
-alentuvainen</ar>
-<ar><k>condescension</k>
-alentuvaisuus</ar>
-<ar><k>condiment</k>
-mauste</ar>
-<ar><k>condition</k>
-edellytys, ehto, kunto</ar>
-<ar><k>conditional</k>
-ehdollinen, ehdonalainen, ehtotapa (kiel), konditionaali</ar>
-<ar><k>conduct</k>
-johdattaa, johtaa (mus), käyttäytyä, ohjata</ar>
-<ar><k>conduct oneself</k>
-esiintyä (käyttäytyä)</ar>
-<ar><k>conductive</k>
-johtava</ar>
-<ar><k>conductor</k>
-johdin, johde, junailija, orkesterinjohtaja</ar>
-<ar><k>conductor of heat</k>
-lämmönjohtaja</ar>
-<ar><k>conductors</k>
-johdot</ar>
-<ar><k>conduit</k>
-sähköputki</ar>
-<ar><k>conduit box</k>
-jakorasia</ar>
-<ar><k>cone</k>
-kartio, käpy, tötterö</ar>
-<ar><k>confectioner</k>
-konditori</ar>
-<ar><k>confectioner's</k>
-konditoria</ar>
-<ar><k>confectionery</k>
-makeiset</ar>
-<ar><k>confederate</k>
-valaliittolainen</ar>
-<ar><k>confederation</k>
-valaliitto</ar>
-<ar><k>confer</k>
-neuvotella</ar>
-<ar><k>conference</k>
-neuvottelu, konfernessi, kokous</ar>
-<ar><k>conference room</k>
-neuvotteluhuone</ar>
-<ar><k>confess</k>
-ripittäytyä, tunnustaa</ar>
-<ar><k>confession</k>
-rippi, synnintunnustus, tunnustus, uskontunnustus</ar>
-<ar><k>confidant</k>
-uskottu</ar>
-<ar><k>confident</k>
-luottavainen</ar>
-<ar><k>confidential</k>
-kahdenkeskinen, luottamuksellinen</ar>
-<ar><k>confidently</k>
-huoleti (turvallisesti)</ar>
-<ar><k>configuration</k>
-apulaitteet, laiteyhdistelmä</ar>
-<ar><k>confine</k>
-rajoittaa</ar>
-<ar><k>confirm</k>
-vahvistaa (varmentaa), varmentaa</ar>
-<ar><k>confirmation</k>
-ripillepääsy, vahvistus, varmennus, varmistus</ar>
-<ar><k>confirmation school</k>
-rippikoulu</ar>
-<ar><k>confiscation</k>
-takavarikko</ar>
-<ar><k>conflict</k>
-ristiriita</ar>
-<ar><k>conflicting</k>
-ristiriitainen</ar>
-<ar><k>conformity</k>
-yhdenmukaisuus, yhtäpitävyys</ar>
-<ar><k>confrontation</k>
-yhteenotto</ar>
-<ar><k>confuse</k>
-hämmentää (kuv), hämmäänyttää, sekaannuttaa, sekoittaa (kuv)</ar>
-<ar><k>confused</k>
-epäselvä (sekava), sekainen, sekava, tolkuton, ymmällä</ar>
-<ar><k>confused state</k>
-sekavuus</ar>
-<ar><k>confusion</k>
-epäjärjestys, hämminki, sekaannus, sekasorto, sekavuus</ar>
-<ar><k>congeal</k>
-hyydyttää, hyytyä</ar>
-<ar><k>congelation</k>
-hyytyminen</ar>
-<ar><k>congradulate</k>
-onnitella</ar>
-<ar><k>congradulation</k>
-onnittelu</ar>
-<ar><k>congress</k>
-kongressi</ar>
-<ar><k>conical</k>
-kartiomainen</ar>
-<ar><k>conifer</k>
-havupuu</ar>
-<ar><k>conjugal</k>
-aviollinen</ar>
-<ar><k>conjunction</k>
-konjunktio, sidesana</ar>
-<ar><k>conjure</k>
-loihtia, loitsia, taikoa</ar>
-<ar><k>conjuring trick</k>
-taikatemppu</ar>
-<ar><k>connect</k>
-kytkeä (tekn), yhdistää, kytkeä kiinni, liittää</ar>
-<ar><k>connection</k>
-liikenneyhteys, yhteys, liitäntä, kytkentä</ar>
-<ar><k>connector</k>
-jatkoyhde, liitin</ar>
-<ar><k>conning tower</k>
-komentotorni</ar>
-<ar><k>conquer</k>
-valloittaa</ar>
-<ar><k>conqueror</k>
-valloittaja, voittaja</ar>
-<ar><k>conquest</k>
-valloitus</ar>
-<ar><k>conscience</k>
-omatunto</ar>
-<ar><k>consciencious objector</k>
-aseistakieltäytyjä</ar>
-<ar><k>conscientious</k>
-tunnollinen</ar>
-<ar><k>conscientiousness</k>
-tunnollisuus</ar>
-<ar><k>conscious</k>
-tajuinen, tietoinen</ar>
-<ar><k>consciousness</k>
-taju, tajunta, tietoisuus</ar>
-<ar><k>conscript</k>
-varusmies</ar>
-<ar><k>consecrate</k>
-pyhittää</ar>
-<ar><k>consecration</k>
-vihkimys</ar>
-<ar><k>consecutive</k>
-peräkkäinen, perättäinen</ar>
-<ar><k>consent</k>
-myöntymys, suostumus
-
-myöntyä, suostua</ar>
-<ar><k>consequence</k>
-arvo (merkitys), seuraamus</ar>
-<ar><k>consequently</k>
-niinmuodoin, siis</ar>
-<ar><k>conservancy tank</k>
-kokoojakaivo</ar>
-<ar><k>conservation</k>
-luonnonsuojelu, säilytys</ar>
-<ar><k>conservationist</k>
-luonnonsuojelija</ar>
-<ar><k>conserve</k>
-säilyttää</ar>
-<ar><k>consider</k>
-ajatella, arvella (katsoa), harkita, katsoa, miettiä, punnita (kuv)</ar>
-<ar><k>consider as</k>
-pitää (jnak)</ar>
-<ar><k>consider strange</k>
-oudoksua</ar>
-<ar><k>considerable</k>
-huomioonotettava, melkoinen</ar>
-<ar><k>considerably</k>
-huomattava (melkoinen), huomattavasti, melkosesti, tuntuvasti</ar>
-<ar><k>considerate</k>
-arkatunteinen, hienotunteinen, hienovarainen, huomaavainen</ar>
-<ar><k>considering</k>
-katsoen, jhk nähden</ar>
-<ar><k>consignment</k>
-tavaraerä, lähetys (kaupp), tavaralähetys</ar>
-<ar><k>consignment note</k>
-kuljetuskirja</ar>
-<ar><k>consist</k>
-käsittää</ar>
-<ar><k>consist of</k>
-koostua</ar>
-<ar><k>consistency</k>
-johdonmukaisuus, kokoomus (fys), yhtenäisyys, notkeus</ar>
-<ar><k>consistent</k>
-johdonmukainen, yhdenmukainen, yhtenäinen</ar>
-<ar><k>consistent with</k>
-senmukainen</ar>
-<ar><k>consistently</k>
-johdonmukaisesti</ar>
-<ar><k>consolation</k>
-lohdutus, lohtu</ar>
-<ar><k>console</k>
-lohduttaa</ar>
-<ar><k>consoling</k>
-lohdullinen</ar>
-<ar><k>consonant</k>
-kerake, konsanantti</ar>
-<ar><k>conspicuous</k>
-huomattava (näkyvä), huomiotaherättävä</ar>
-<ar><k>conspicuousness</k>
-huomattavuus</ar>
-<ar><k>conspiracy</k>
-salajuoni, salaliitto</ar>
-<ar><k>conspirator</k>
-vehkeilijä</ar>
-<ar><k>conspire against</k>
-vehkeillä</ar>
-<ar><k>constable</k>
-konstaapeli</ar>
-<ar><k>constant</k>
-ainainen, vakio (mat)
-
-vakio</ar>
-<ar><k>constantly</k>
-aina, alati, alinomaa, ehtimiseen, yhtenään</ar>
-<ar><k>constellation</k>
-tähtikuvio</ar>
-<ar><k>consternation</k>
-tyrmistys</ar>
-<ar><k>constipated</k>
-kovavatsainen</ar>
-<ar><k>constituency</k>
-vaalipiiri</ar>
-<ar><k>constituent</k>
-aineosa</ar>
-<ar><k>constrained</k>
-väkinäinen</ar>
-<ar><k>constraint</k>
-jäykkyys (kuv), pakko</ar>
-<ar><k>construct</k>
-konstruoida, kyhätä, rakentaa</ar>
-<ar><k>construction period</k>
-rakennusvaihe</ar>
-<ar><k>construe</k>
-analysoida, selittää kieliopillisesti</ar>
-<ar><k>consul general</k>
-pääkonsuli</ar>
-<ar><k>consulate</k>
-konsulaatti</ar>
-<ar><k>consult</k>
-neuvotella</ar>
-<ar><k>consultant</k>
-konsultti</ar>
-<ar><k>consultation</k>
-neuvottelu</ar>
-<ar><k>consumables</k>
-kulutustarvikkeet</ar>
-<ar><k>consume</k>
-hivuttaa (kalvaa), kuluttaa, riuduttaa</ar>
-<ar><k>consumer</k>
-kuluttaja</ar>
-<ar><k>consumption</k>
-kulutus
-
-kulutus</ar>
-<ar><k>contact</k>
-kosketin (sähk), yhteys (kosketus)
-
-ottaa yhteys jkh</ar>
-<ar><k>contact lense</k>
-piilolasi</ar>
-<ar><k>contact lenses</k>
-piilolasit</ar>
-<ar><k>contact man</k>
-yhdysmies</ar>
-<ar><k>contain</k>
-sisältää</ar>
-<ar><k>container</k>
-astia, kontti, kotelo, säiliö</ar>
-<ar><k>containing salt</k>
-suolapitoinen</ar>
-<ar><k>containing sugar</k>
-sokeripitoinen</ar>
-<ar><k>contains</k>
-sisältää</ar>
-<ar><k>contaminate</k>
-saastuttaa</ar>
-<ar><k>contamination</k>
-likaantuminen, pinttyminen, saastutus</ar>
-<ar><k>contemplation</k>
-mietiskely</ar>
-<ar><k>contemporary</k>
-aikalainen</ar>
-<ar><k>contempt</k>
-halveksunta, ylenkatse</ar>
-<ar><k>contempt for</k>
-halveksiminen</ar>
-<ar><k>contend</k>
-otella (urh)</ar>
-<ar><k>content</k>
-tilavuus</ar>
-<ar><k>contented</k>
-tyytyväinen</ar>
-<ar><k>contention</k>
-riita</ar>
-<ar><k>contentment</k>
-viihtymys</ar>
-<ar><k>contents</k>
-sisällys, sisältö</ar>
-<ar><k>contest</k>
-kilpailu, ottelu
-
-eittää, kiistää</ar>
-<ar><k>contested</k>
-kiistanalainen</ar>
-<ar><k>context</k>
-lauseyhteys</ar>
-<ar><k>continent</k>
-mannermaa</ar>
-<ar><k>continental</k>
-mannermainen</ar>
-<ar><k>continual</k>
-ainainen, alituinen, jatkuva</ar>
-<ar><k>continually</k>
-alinomaa, jatkuvasti, yhä (alituisesti)</ar>
-<ar><k>continuation</k>
-jatko, jatkuminen</ar>
-<ar><k>continue</k>
-jatkaa, jatkua (kestää)</ar>
-<ar><k>continued</k>
-jatkuva</ar>
-<ar><k>continuity</k>
-jatkuvuus</ar>
-<ar><k>continuous</k>
-katkeamaton</ar>
-<ar><k>continuous form</k>
-ketjulokake tai atk-lista</ar>
-<ar><k>continuously</k>
-jatkuvasti, lakkaamatta, yhtenään</ar>
-<ar><k>contraband</k>
-salatavara</ar>
-<ar><k>contraceptive</k>
-ehkäisyväline</ar>
-<ar><k>contraceptive pill</k>
-ehkäisypilleri</ar>
-<ar><k>contract</k>
-kontrahti, sopimus, urakka, vuokrasopimus, välikirja
-
-kutistua (lääk)</ar>
-<ar><k>contract for future delivery</k>
-aikakauppa</ar>
-<ar><k>contract something</k>
-sairastua</ar>
-<ar><k>contraction</k>
-kutistuma</ar>
-<ar><k>contractor</k>
-urakoitsija
-
-rakennutaja</ar>
-<ar><k>contracts</k>
-urakkasopimukset</ar>
-<ar><k>contradict</k>
-inttää (vastaan)</ar>
-<ar><k>contradiction</k>
-ristiriitaisuus</ar>
-<ar><k>contrary to</k>
-vastakkainen, vastoin</ar>
-<ar><k>contribution</k>
-lahja (avustus), panos</ar>
-<ar><k>control</k>
-ohjaus
-
-hallita, hillintä, kontrolli, kontrolloida, valvonta</ar>
-<ar><k>control panel</k>
-ohjaustaulu</ar>
-<ar><k>control stick</k>
-ohjaussauva</ar>
-<ar><k>control system</k>
-ohjausjärjestelmä</ar>
-<ar><k>controlled</k>
-hiilitty</ar>
-<ar><k>controversial</k>
-kiistanalainen</ar>
-<ar><k>controversy</k>
-kiista, sanakiista, riita</ar>
-<ar><k>contusion</k>
-ruhjevamma</ar>
-<ar><k>convalescence</k>
-toipilasaika</ar>
-<ar><k>convalescent</k>
-toipilas</ar>
-<ar><k>convalescent home</k>
-lepokoti</ar>
-<ar><k>convection current</k>
-kiertoilma</ar>
-<ar><k>convenience outlet</k>
-työpistorasia</ar>
-<ar><k>convenient</k>
-otollinen (sovelias), sopiva, sovelias</ar>
-<ar><k>convent</k>
-nunnaluostari, nunnaluostari</ar>
-<ar><k>conventional</k>
-perinteellinen, sovinnainen, totunnainen</ar>
-<ar><k>conversation</k>
-keskustelu</ar>
-<ar><k>converse</k>
-keskustella</ar>
-<ar><k>conversion</k>
-käännytys, kääntymys</ar>
-<ar><k>convert</k>
-muuntaa</ar>
-<ar><k>convert into ice</k>
-jäätää</ar>
-<ar><k>convertible</k>
-vaihtokelpoinen</ar>
-<ar><k>convertible sofa</k>
-vuodesohva</ar>
-<ar><k>convex</k>
-kupera</ar>
-<ar><k>convey</k>
-ajaa (kuljettaa), antaa (käsitys ym), kuljettaa, viedä, välittää</ar>
-<ar><k>conveyance</k>
-kuljetus, luovutus</ar>
-<ar><k>conveyor</k>
-kuljettaja</ar>
-<ar><k>conveyor belt</k>
-kuljetushihna, liukuhihna</ar>
-<ar><k>convulsion</k>
-kouristus</ar>
-<ar><k>coo</k>
-kuhertaa</ar>
-<ar><k>cooing</k>
-kuherrus</ar>
-<ar><k>cook</k>
-keittäjä, kokki
-
-keittää (valmistaa ruokaa)</ar>
-<ar><k>cook up</k>
-sepittää [puhek.]</ar>
-<ar><k>cooked food</k>
-einestuote</ar>
-<ar><k>cooked foods</k>
-einestuotteet</ar>
-<ar><k>cooker</k>
-keitin, liesi</ar>
-<ar><k>cookery-book</k>
-keittokirja</ar>
-<ar><k>cooking</k>
-keitto</ar>
-<ar><k>cooking apparatus</k>
-keitin</ar>
-<ar><k>cool</k>
-jäähdyttää, jäähtyä, kylmetä, viilentää, viiletä
-
-viileä, vilpoinen, raikas (viiliä)</ar>
-<ar><k>cool off</k>
-haaleta, jäähdytellä</ar>
-<ar><k>cooler</k>
-jäähdytin</ar>
-<ar><k>cooling</k>
-jäähdytys</ar>
-<ar><k>cooling down</k>
-jäähtyminen</ar>
-<ar><k>cooling duct</k>
-jäähdytyskanava</ar>
-<ar><k>coolly</k>
-raittiisti</ar>
-<ar><k>coolness</k>
-levollisuus, raikkaus, vilpoisuus</ar>
-<ar><k>coop</k>
-kanahäkki</ar>
-<ar><k>cooperate</k>
-toimia yhdessä</ar>
-<ar><k>cooperation</k>
-yhteistoiminta, yhteistyö</ar>
-<ar><k>coordinate</k>
-rinnastaa, yhtenäistää</ar>
-<ar><k>cop a packet</k>
-haavoittua [puhek.]</ar>
-<ar><k>cope</k>
-suoriutua</ar>
-<ar><k>copier configuration</k>
-konee kokoonpano</ar>
-<ar><k>copier timing</k>
-koneen ajastus</ar>
-<ar><k>copper</k>
-kupari, vaski</ar>
-<ar><k>copper pipe</k>
-kupariputki</ar>
-<ar><k>copper shingle</k>
-kuparipaanu</ar>
-<ar><k>copperplate</k>
-kuparipiirros</ar>
-<ar><k>coppice</k>
-lehto, metsikkö</ar>
-<ar><k>copse</k>
-lehto</ar>
-<ar><k>copulate</k>
-paritella</ar>
-<ar><k>copulation</k>
-parittelu</ar>
-<ar><k>copy</k>
-jäljennös, kopio
-
-jäljentää, jäljitellä, kopioida</ar>
-<ar><k>copy counter meter</k>
-mittari, kopiolaskuri</ar>
-<ar><k>copy darker</k>
-kopiojäljen tummennus</ar>
-<ar><k>copy lighter</k>
-kopiojäljen vaalennus</ar>
-<ar><k>copy run</k>
-kopiointojakso, kopiojakso</ar>
-<ar><k>copyright</k>
-kustannusoikeus</ar>
-<ar><k>coral</k>
-koralli</ar>
-<ar><k>coral reef</k>
-koralliriutta</ar>
-<ar><k>cord</k>
-köysi, liitäntäjohto, naru, nuora, nyöri, sähkökaapeli</ar>
-<ar><k>cordial</k>
-sydämellinen</ar>
-<ar><k>cordiality</k>
-sydämellisyys</ar>
-<ar><k>cordon</k>
-ketju (sot)</ar>
-<ar><k>corduroy</k>
-vakosametti</ar>
-<ar><k>core</k>
-sisin, ydin (kuv)</ar>
-<ar><k>cork</k>
-korkki
-
-korkita</ar>
-<ar><k>corkscrew</k>
-korkkiruuvi</ar>
-<ar><k>corn</k>
-känsä (varpaan)</ar>
-<ar><k>corn exchange</k>
-viljapörssi</ar>
-<ar><k>corn plaster</k>
-känsälaastari</ar>
-<ar><k>corner</k>
-kolkka, kulma (nurkka), kulmaus, loukko, nurkka, nurkkaus, sopukka</ar>
-<ar><k>cornet</k>
-kornetti</ar>
-<ar><k>cornflour</k>
-maissijauhot</ar>
-<ar><k>cornice</k>
-nurkkalista</ar>
-<ar><k>corolla</k>
-teriö (bot)</ar>
-<ar><k>corona</k>
-korona, ioinisoitunut ilma</ar>
-<ar><k>coronary artery</k>
-sepelvaltimo</ar>
-<ar><k>coronation</k>
-kruunajaiset</ar>
-<ar><k>coronet</k>
-aateliskruunu</ar>
-<ar><k>coronode</k>
-koronaari (dikorotronin lanka)</ar>
-<ar><k>corporal punishment</k>
-kuritus</ar>
-<ar><k>corporate</k>
-järjestynyt</ar>
-<ar><k>corporate image</k>
-yrityskuva</ar>
-<ar><k>corporation</k>
-yhtiö</ar>
-<ar><k>corpse</k>
-ruumis</ar>
-<ar><k>corpulence</k>
-lihavuus</ar>
-<ar><k>corpulent</k>
-lihava</ar>
-<ar><k>correct</k>
-korjata (parsia ym), oikaista (korjata), rangaista
-
-virheetön, oikea</ar>
-<ar><k>correction</k>
-oikaisu, korjaus, korjaaminen</ar>
-<ar><k>corrective action</k>
-korjaus, selvitys</ar>
-<ar><k>correctly</k>
-oikein</ar>
-<ar><k>correspond</k>
-vastata, olla yhdenmukainen</ar>
-<ar><k>correspondence</k>
-kirjeenvaihto</ar>
-<ar><k>correspondence school</k>
-kirjeopisto</ar>
-<ar><k>correspondent</k>
-kirjeenvaihtaja, toimittaja</ar>
-<ar><k>corresponding</k>
-vastaava</ar>
-<ar><k>corridor</k>
-käytävä, välikkö</ar>
-<ar><k>corroborate</k>
-vahvistaa (varmentaa)</ar>
-<ar><k>corroboration</k>
-varmennus</ar>
-<ar><k>corrode</k>
-syöpyä (kemiallisesti), syövyttää</ar>
-<ar><k>corroded</k>
-ruostunut</ar>
-<ar><k>corrosion</k>
-korroosio</ar>
-<ar><k>corrosion resistant</k>
-ruosteenkestävä</ar>
-<ar><k>corrugated</k>
-aallotettu, aalto-</ar>
-<ar><k>corrugated cardboard</k>
-aaltopahvi</ar>
-<ar><k>corrugated iron</k>
-aaltolevy</ar>
-<ar><k>corrugated sheet</k>
-aaltopelti</ar>
-<ar><k>corrugator rolls</k>
-jäykistysrullat</ar>
-<ar><k>corrupt</k>
-lahjoa, turmella
-
-turmeltunut</ar>
-<ar><k>corruptible</k>
-lahjottava</ar>
-<ar><k>corruption</k>
-korruptio</ar>
-<ar><k>corset</k>
-kureliivi, liivit (naisen)</ar>
-<ar><k>cortisone</k>
-kortisoni</ar>
-<ar><k>cosiness</k>
-kodikkuus, viihtyisyys</ar>
-<ar><k>cosmetician</k>
-kosmetologi</ar>
-<ar><k>cosmetics</k>
-kosmeettinen</ar>
-<ar><k>cosmic</k>
-kosminen</ar>
-<ar><k>cosmopolitan</k>
-kosmopoliitti</ar>
-<ar><k>cosmos</k>
-kaikkeus</ar>
-<ar><k>cossack</k>
-kasakka</ar>
-<ar><k>cost</k>
-maksaa
-
-kulunki, kustannus</ar>
-<ar><k>cost insurance and freight</k>
-cif</ar>
-<ar><k>cost of living</k>
-elinkustannukset</ar>
-<ar><k>cost-of-living increment</k>
-kalliinajanlisä</ar>
-<ar><k>costliness</k>
-kallisarvoisuus</ar>
-<ar><k>costly</k>
-kallisarvoinen, kallishintainen</ar>
-<ar><k>costs</k>
-kustannukset</ar>
-<ar><k>cosy</k>
-kodikas, kotoinen, viihtyissä</ar>
-<ar><k>cottage</k>
-huvila, maja, mökki, tupa</ar>
-<ar><k>cotter-pin</k>
-sokkanaula</ar>
-<ar><k>cotton</k>
-puuvillalanka, puuvilla</ar>
-<ar><k>cotton material</k>
-puuvillakangas</ar>
-<ar><k>cotton thread</k>
-puuvillalanka</ar>
-<ar><k>cotton waste</k>
-trasseli</ar>
-<ar><k>cotton wool</k>
-vanu</ar>
-<ar><k>cotton-wool</k>
-pumpuli</ar>
-<ar><k>couch</k>
-leposohva</ar>
-<ar><k>cough</k>
-köhä, yskä
-
-yskiä</ar>
-<ar><k>couldn't care less</k>
-sama se minulle on [puhek.]</ar>
-<ar><k>councelor</k>
-neuvonantaja</ar>
-<ar><k>council</k>
-neuvosto, raati</ar>
-<ar><k>counsel</k>
-neuvoa</ar>
-<ar><k>counsel for the defence</k>
-puolustusasianajaja</ar>
-<ar><k>counsellor</k>
-konsulentti</ar>
-<ar><k>count</k>
-kreivi
-
-laskea (mat), lukea (laskea)</ar>
-<ar><k>count upon</k>
-luottaa (jhk)</ar>
-<ar><k>countefeit</k>
-jäljitelmä (petoll tark)</ar>
-<ar><k>counter</k>
-pelimarkka, tiski</ar>
-<ar><k>counter-clockwise</k>
-vastapäivään</ar>
-<ar><k>counter-espionage</k>
-vastavakoilu</ar>
-<ar><k>counteraction</k>
-vastavaikutus</ar>
-<ar><k>counterbalance</k>
-vastapaino</ar>
-<ar><k>counterclockwise</k>
-vastapäivään</ar>
-<ar><k>counterfeiter</k>
-väärentäjä (raha)</ar>
-<ar><k>counterfoil</k>
-kanta (kuitin lipun), kantalippu, emälippu</ar>
-<ar><k>counterpane</k>
-päiväpeite</ar>
-<ar><k>counterpart</k>
-vastine</ar>
-<ar><k>counterweight</k>
-vastapaino</ar>
-<ar><k>countless</k>
-lukematon</ar>
-<ar><k>country</k>
-maa</ar>
-<ar><k>country-house</k>
-huvila</ar>
-<ar><k>countryside</k>
-maaseutu</ar>
-<ar><k>county</k>
-kreivikunta</ar>
-<ar><k>coup</k>
-valtiokeikaus</ar>
-<ar><k>couple</k>
-kytkeä (tekn)
-
-pari</ar>
-<ar><k>coupling</k>
-kytkin</ar>
-<ar><k>coupon</k>
-kuponki</ar>
-<ar><k>courageous</k>
-rohkea</ar>
-<ar><k>courier</k>
-kuriiri, opas</ar>
-<ar><k>course</k>
-kulku, kurssi, linja (koulu), meno (kulku), reitti, suunta, ura (suunta)</ar>
-<ar><k>court</k>
-hovi, kenttä (urh), kosiskella, oikeusistuin</ar>
-<ar><k>court chaplain</k>
-hovisaarnaaja</ar>
-<ar><k>court jester</k>
-hovinarri</ar>
-<ar><k>court martial</k>
-sotaoikeus</ar>
-<ar><k>court mourning</k>
-hovisuru</ar>
-<ar><k>court of appeal</k>
-hovioikeus</ar>
-<ar><k>courteous</k>
-kohtelias</ar>
-<ar><k>courtesy</k>
-kohteliaisuus</ar>
-<ar><k>courtier</k>
-hoviherra, hovimies</ar>
-<ar><k>courtroom</k>
-raastupa</ar>
-<ar><k>courtyard</k>
-piha</ar>
-<ar><k>cousin</k>
-serkku</ar>
-<ar><k>cove</k>
-lähdeke, poukama</ar>
-<ar><k>coved weld</k>
-kovera hitsi</ar>
-<ar><k>cover</k>
-kansi, kansilehti, kate, kirjankansi, peite, peitto, päällys, levy
-
-kattaa, peittää
-
-peittää, kattaa, mullata, päällystää, suoja, ulottua, verhota</ar>
-<ar><k>cover girl</k>
-kansikuvatyttö</ar>
-<ar><k>cover up</k>
-peittää</ar>
-<ar><k>coverage</k>
-väripeitto</ar>
-<ar><k>covered skirting</k>
-koverat jalkalistalaatat</ar>
-<ar><k>covered with ice</k>
-jääpeitteinen</ar>
-<ar><k>covered with perspiration</k>
-hiestyä</ar>
-<ar><k>covering</k>
-kate, päällinen, verho</ar>
-<ar><k>covet</k>
-himoita</ar>
-<ar><k>covetous</k>
-himoinen</ar>
-<ar><k>cow</k>
-lehmä</ar>
-<ar><k>cow juice</k>
-maito [puhek.]</ar>
-<ar><k>cow-house</k>
-navetta</ar>
-<ar><k>cow-shed</k>
-läävä</ar>
-<ar><k>coward</k>
-arkailija, pelkuri</ar>
-<ar><k>cowardice</k>
-akkamaisuus, pelkuruus, raukkamaisuus</ar>
-<ar><k>cowardly</k>
-raukkamainen</ar>
-<ar><k>cowl</k>
-savuhattu</ar>
-<ar><k>cowslip</k>
-esikko</ar>
-<ar><k>coy</k>
-häveliäs, kaino, ujo</ar>
-<ar><k>crab</k>
-taskurapu</ar>
-<ar><k>crack</k>
-halkeama, läimäys (piiskan), läiske, railo, särö
-
-haljeta, halkeilla, paukkua, raksahtaa, säristä, särähtää</ar>
-<ar><k>crack down</k>
-suorittaa ratsia [puhek.]</ar>
-<ar><k>crack jokes</k>
-vitsailla</ar>
-<ar><k>cracked</k>
-halkinainen, hassahtava, höperö, kaistapäinen, löylynlyömä, rämeä, säröinen</ar>
-<ar><k>cracker</k>
-keksi (leivos)</ar>
-<ar><k>crackle</k>
-räiskyä</ar>
-<ar><k>cradle</k>
-kehto, kätkyt</ar>
-<ar><k>craft</k>
-ammatti (käsityö), ammattikunta, pursi</ar>
-<ar><k>craftiness</k>
-juonikkuus, viekkaus</ar>
-<ar><k>crafts</k>
-askartelu</ar>
-<ar><k>craftsman</k>
-ammattilainen, ammattimies, käsityöläinen</ar>
-<ar><k>crafty</k>
-juonikas, viekas</ar>
-<ar><k>cram</k>
-sulloa</ar>
-<ar><k>cramp</k>
-kouristus, suonenveto</ar>
-<ar><k>cramped</k>
-ahdas</ar>
-<ar><k>cramped conditions</k>
-ahtaus</ar>
-<ar><k>cranberry</k>
-karpalo</ar>
-<ar><k>crane</k>
-kurki, nostokurki, nosturi</ar>
-<ar><k>crane rail</k>
-nosturirata</ar>
-<ar><k>crane's bill</k>
-kurjenpolvi (bot)</ar>
-<ar><k>cranes</k>
-nosturit</ar>
-<ar><k>cranium</k>
-kallo</ar>
-<ar><k>cranny</k>
-loukko</ar>
-<ar><k>crap</k>
-puhua roskaa [puhek.]</ar>
-<ar><k>crap **</k>
-paska [alat.]</ar>
-<ar><k>crash</k>
-jyske, kolari, romahdus, ryske, yhteentörmäys
-
-rysähtää</ar>
-<ar><k>crash course</k>
-pikakurssi</ar>
-<ar><k>crash helmet</k>
-syöksykypärä</ar>
-<ar><k>crash into</k>
-iskeytyä (auto), törmätä</ar>
-<ar><k>crate</k>
-laatikko (harva), sälelaatikko</ar>
-<ar><k>crater</k>
-kraatteri</ar>
-<ar><k>craving</k>
-halu, himo, mieliteko</ar>
-<ar><k>craw</k>
-kupu (linnun)</ar>
-<ar><k>crawl</k>
-kompuroida, kontata, kömpiä, madella, ryömiä</ar>
-<ar><k>crawling</k>
-matelu</ar>
-<ar><k>crayon</k>
-piirustusliitu, väriliitu</ar>
-<ar><k>crazy</k>
-hassu, hourupäinen, hullu, hupsu, mieletön</ar>
-<ar><k>crazy about</k>
-hullaantunut</ar>
-<ar><k>creak</k>
-narahdus, narina, vingahdus
-
-narahtaa, narista</ar>
-<ar><k>crease</k>
-kurttu (vaatteessa ym), ryppy, taite</ar>
-<ar><k>creases</k>
-housunprässit</ar>
-<ar><k>create</k>
-luoda</ar>
-<ar><k>creation</k>
-luomakunta, luomus</ar>
-<ar><k>creative</k>
-luova</ar>
-<ar><k>creative ability</k>
-luovuus</ar>
-<ar><k>creativity</k>
-luovuus</ar>
-<ar><k>creator</k>
-luoja</ar>
-<ar><k>creature</k>
-elukka, eläin, luontokappale, olio</ar>
-<ar><k>credentials</k>
-valtuuskirja</ar>
-<ar><k>credibility</k>
-uskottavuus</ar>
-<ar><k>credible</k>
-uskottava</ar>
-<ar><k>credit</k>
-hyvittää
-
-luotto (liik)
-
-hyvitys</ar>
-<ar><k>credit card</k>
-luottokortti</ar>
-<ar><k>credit company</k>
-luottolaitos</ar>
-<ar><k>creditor</k>
-luotonantaja, saamamies</ar>
-<ar><k>creek</k>
-poukama</ar>
-<ar><k>creep</k>
-kontata, madella, ryömiä</ar>
-<ar><k>creeper</k>
-köynnöskasvi</ar>
-<ar><k>cremate</k>
-polttaa (ruumis)</ar>
-<ar><k>cremation</k>
-polttohautaus</ar>
-<ar><k>crematory</k>
-krematorio</ar>
-<ar><k>crepe</k>
-kreppi</ar>
-<ar><k>cresent</k>
-kuunsirppi</ar>
-<ar><k>crest of a wave</k>
-aallonharja</ar>
-<ar><k>crevice</k>
-halkeama (rako)</ar>
-<ar><k>crew</k>
-miehistö (mer.lentok)</ar>
-<ar><k>crew cut</k>
-jenkkitukka</ar>
-<ar><k>cricket</k>
-sirkka (zo)
-
-kriketti</ar>
-<ar><k>criminal</k>
-rikollinen</ar>
-<ar><k>criminal offence</k>
-rikos</ar>
-<ar><k>crimp</k>
-liittää puristamalla, puristusliitos</ar>
-<ar><k>crimson</k>
-karmosiini</ar>
-<ar><k>cringe before</k>
-hännystellä</ar>
-<ar><k>cringing</k>
-mateleva (kuv), matelu</ar>
-<ar><k>cripple</k>
-raajarikko, vaivainen</ar>
-<ar><k>crippled</k>
-rampa</ar>
-<ar><k>crisis</k>
-kriisi, käänne (taudin)</ar>
-<ar><k>crisp</k>
-murea, tuore (rapea)</ar>
-<ar><k>crispbread</k>
-näkkileipä</ar>
-<ar><k>criterion</k>
-kriteeri</ar>
-<ar><k>critic</k>
-arvostelija</ar>
-<ar><k>critical</k>
-arvosteleva, kriittinen</ar>
-<ar><k>criticism</k>
-arvosteleminen, arvostelu, kritiikki</ar>
-<ar><k>criticize</k>
-arvostella</ar>
-<ar><k>croak</k>
-kurista, kurnuttaa</ar>
-<ar><k>crochet</k>
-solmustaa, virkata</ar>
-<ar><k>crochet hook</k>
-virkkuuneula</ar>
-<ar><k>crocheting</k>
-virkkuu</ar>
-<ar><k>crocodile</k>
-krokotiili</ar>
-<ar><k>crooked</k>
-kelju (kiero), kiero, koukkuinen, käyrä, väärä (koukistunut)</ar>
-<ar><k>crookedness</k>
-vääryys, kierous</ar>
-<ar><k>croon</k>
-hyräillä</ar>
-<ar><k>crooner</k>
-iskelmälaulaja</ar>
-<ar><k>crop</k>
-elo (sato), kupu (linnun), ratsupiiska, sato
-
-leikata (lyhyeksi), typistää, järsiä</ar>
-<ar><k>croquet</k>
-kroketti</ar>
-<ar><k>cross</k>
-risti
-
-panna ristiin, kulkea yli
-
-kiukkuinen, kärtyinen, äkäinen</ar>
-<ar><k>cross brace</k>
-vinotuki</ar>
-<ar><k>cross section</k>
-poikkileikkaus</ar>
-<ar><k>cross street</k>
-poikkikatu</ar>
-<ar><k>cross-bow</k>
-jousipyssy, kaaripyssy</ar>
-<ar><k>cross-country race</k>
-maastojuoksu</ar>
-<ar><k>cross-section</k>
-poikkileikkaus</ar>
-<ar><k>crossing</k>
-merimatka, risteys, tienristeys, ylikulku, ylitys (meren)</ar>
-<ar><k>crossmixer</k>
-sekoitin</ar>
-<ar><k>crossness</k>
-kiukku, äkeys, äreys</ar>
-<ar><k>crossroad</k>
-poikkitie, tienristeys</ar>
-<ar><k>crosswise</k>
-poikittain, ristiin, ristikkäin</ar>
-<ar><k>crossword</k>
-ristisanatehtävä, sanaristikko</ar>
-<ar><k>crouch</k>
-kyykistyä</ar>
-<ar><k>croup</k>
-kuristauti</ar>
-<ar><k>crow</k>
-varis
-
-kiekua</ar>
-<ar><k>crow bar</k>
-sorkkarauta</ar>
-<ar><k>crowbar</k>
-sorkkarauta</ar>
-<ar><k>crowd</k>
-ihmisjoukko, liuta, porukka, sakki, tungos, väkijoukko
-
-sulloutua, tunkea</ar>
-<ar><k>crowd of people</k>
-väentungos</ar>
-<ar><k>crowding</k>
-ahdinko</ar>
-<ar><k>crown</k>
-koppa (hatun), kruunu, kupu (hatun), laki (korkein kohta)
-
-kruunata
-
-nitomanastan selkä</ar>
-<ar><k>crucian carp</k>
-ruutana (zo)</ar>
-<ar><k>crude</k>
-järeätekoinen, raaka</ar>
-<ar><k>crudity</k>
-raakuus</ar>
-<ar><k>cruel</k>
-julma</ar>
-<ar><k>cruelly</k>
-säälimättömästi</ar>
-<ar><k>cruelty</k>
-julmuus</ar>
-<ar><k>cruelty to animals</k>
-eläinrääkkäys</ar>
-<ar><k>cruise</k>
-risteillä</ar>
-<ar><k>cruiser</k>
-risteilijä</ar>
-<ar><k>crumb</k>
-muru</ar>
-<ar><k>crumble</k>
-hienontaa, murentaa</ar>
-<ar><k>crumple</k>
-rutistaa, rypistää</ar>
-<ar><k>crunch</k>
-narske
-
-rauskuttaa, rouskua, rouskuttaa</ar>
-<ar><k>crusade</k>
-ristiteki</ar>
-<ar><k>crush</k>
-hienontaa, murskata, musertaa, nujertaa, rusentaa, rutistaa, survoa</ar>
-<ar><k>crust</k>
-kamara (kuori), kannikka, karsta (lääk)</ar>
-<ar><k>crust of bread</k>
-leivänkuori</ar>
-<ar><k>crust of snow</k>
-hanki</ar>
-<ar><k>crustacean</k>
-äyriäinen</ar>
-<ar><k>crutch</k>
-kainalosauva, pönkkä</ar>
-<ar><k>cry</k>
-huuto, parkaisu
-
-itkeä</ar>
-<ar><k>cry for help</k>
-avunhuuto</ar>
-<ar><k>cry for joy</k>
-huuhdahilosta</ar>
-<ar><k>cry of distress</k>
-hätähuuto</ar>
-<ar><k>cry of joy</k>
-ilohuuto</ar>
-<ar><k>crystal</k>
-kide, kristalli</ar>
-<ar><k>cub</k>
-pentu</ar>
-<ar><k>cube</k>
-kuutio</ar>
-<ar><k>cubic</k>
-kuutiomainen</ar>
-<ar><k>cubic capacity</k>
-kuutiotilavuus, vetoisuus</ar>
-<ar><k>cubic measure</k>
-astiamitta</ar>
-<ar><k>cuckoo</k>
-kukkua, käki</ar>
-<ar><k>cucumber</k>
-kurkku (kasvi)</ar>
-<ar><k>cuddle</k>
-syleillä</ar>
-<ar><k>cuddling</k>
-lemmiskely</ar>
-<ar><k>cue</k>
-biljardikeppi</ar>
-<ar><k>cuff</k>
-hihansuu (käänne), kalvosin, käänne (hihan)</ar>
-<ar><k>cuff-links</k>
-kalvosinnapit</ar>
-<ar><k>culm</k>
-korsi</ar>
-<ar><k>culminate</k>
-huipentua (kuv)</ar>
-<ar><k>culmination</k>
-huippukohta</ar>
-<ar><k>culprit</k>
-syyllinen</ar>
-<ar><k>cultivate</k>
-jalostaa (kasveja ym), viljellä</ar>
-<ar><k>cultivation</k>
-viljely</ar>
-<ar><k>culture</k>
-kulttuuri</ar>
-<ar><k>cunning</k>
-kettumainen, viekas, viekkaus</ar>
-<ar><k>cunt ***</k>
-vittu [alat.]</ar>
-<ar><k>cup</k>
-kuppi, pikari
-
-kupata</ar>
-<ar><k>cup of</k>
-kupillinen</ar>
-<ar><k>cupboard</k>
-astiakaappi, hyllykaappi, kaappi</ar>
-<ar><k>cupful</k>
-kupillinen</ar>
-<ar><k>cupola</k>
-kupoli</ar>
-<ar><k>curate</k>
-apulaispappi, kappalainen</ar>
-<ar><k>curator</k>
-intendentti (museon)</ar>
-<ar><k>curb</k>
-hillitä</ar>
-<ar><k>curdle</k>
-juustoutua</ar>
-<ar><k>curdled milk</k>
-juustomaito</ar>
-<ar><k>cure</k>
-parannus
-
-lääkintä, palvata, savustaa (palvata)</ar>
-<ar><k>curio</k>
-antiikkiesine</ar>
-<ar><k>curiosity</k>
-uteliasuus</ar>
-<ar><k>curious</k>
-eriskummallinen, kummallinen, utelias</ar>
-<ar><k>curiousness</k>
-ihmeellisyys</ar>
-<ar><k>curl</k>
-kiehkura, kiemura, kihara, kutri
-
-kähertää, kihartua</ar>
-<ar><k>curl up</k>
-käpertyä</ar>
-<ar><k>curler</k>
-kiharrin, papiljotti</ar>
-<ar><k>curlew</k>
-kuovi (zo)</ar>
-<ar><k>curling-irons</k>
-käherpihdit</ar>
-<ar><k>curling-tongs</k>
-käherpihdit</ar>
-<ar><k>curly</k>
-kihara</ar>
-<ar><k>currant</k>
-viinimarja</ar>
-<ar><k>currency</k>
-valuutta</ar>
-<ar><k>currency restrictions</k>
-valuuttarajoitukset</ar>
-<ar><k>current</k>
-sähkövirta
-
-juokseva, nykyinen, tuorein</ar>
-<ar><k>current affairs programme</k>
-ajankohtaislähetys</ar>
-<ar><k>curse</k>
-kirota, sadatella</ar>
-<ar><k>cursing</k>
-sadattelu</ar>
-<ar><k>curt</k>
-lyhytsanainen</ar>
-<ar><k>curtail</k>
-lyhentää, niukentaa, supistaa</ar>
-<ar><k>curtailment</k>
-supistus, vähennys</ar>
-<ar><k>curtain</k>
-esirippu, kaihdin, uudin, ikkunaverho</ar>
-<ar><k>curtain wall</k>
-kevyt ulkoseinä</ar>
-<ar><k>curtsey</k>
-hoviniiaus, niiaus
-
-niiata</ar>
-<ar><k>curvaceous</k>
-kurvikas (leik)</ar>
-<ar><k>curvature</k>
-kaarevuus</ar>
-<ar><k>curve</k>
-kaarevuus, kaari, tienkaarre, käyrä, mutka
-
-kaareilla, kaartua</ar>
-<ar><k>curved</k>
-kaareva, koukkuinen, käyrä</ar>
-<ar><k>cushion</k>
-pehmike, pielus, päänalus, tyyny
-
-pehmustaa</ar>
-<ar><k>custody</k>
-aresti, huosta (hoita), valvonta</ar>
-<ar><k>custom</k>
-käytäntö (tapa), tapa, tottumus</ar>
-<ar><k>customary</k>
-tavanomainen</ar>
-<ar><k>customer</k>
-asiakas</ar>
-<ar><k>customs</k>
-tulli</ar>
-<ar><k>customs officer</k>
-tullinhoitaja</ar>
-<ar><k>customs wharehouse</k>
-pakkahuone</ar>
-<ar><k>cut</k>
-haava, leikkaus, vähennys
-
-keritä, supistaa, veistellä, veistää, vihlaista, viiltäa, leikata, hakata (kiveä ym), hioa (läsi ym), hiottu, katkoa</ar>
-<ar><k>cut a caper</k>
-hypähtää [puhek.]</ar>
-<ar><k>cut a loss</k>
-luopua tappiollisesta [puhek.]</ar>
-<ar><k>cut across</k>
-mennä jnk poikki [puhek.]</ar>
-<ar><k>cut along</k>
-karata tiehensä [puhek.]</ar>
-<ar><k>cut and dried</k>
-täysin valmis [puhek.]</ar>
-<ar><k>cut and run</k>
-livistää [puhek.]</ar>
-<ar><k>cut back</k>
-vähennys</ar>
-<ar><k>cut corners</k>
-oikaista kulmissa, keksiä oikotie [puhek.]</ar>
-<ar><k>cut down</k>
-niukentaa, supistaa, vähentää</ar>
-<ar><k>cut flowers</k>
-irtokukat</ar>
-<ar><k>cut glass</k>
-kristalli</ar>
-<ar><k>cut it</k>
-paeta [puhek.]</ar>
-<ar><k>cut it out</k>
-jo riittää [puhek.]</ar>
-<ar><k>cut loose</k>
-riuhtaista itsensä irti [puhek.]</ar>
-<ar><k>cut off</k>
-hakata (poikki), katkaista</ar>
-<ar><k>cut ones own throat</k>
-mennä omaan ansaansa [puhek.]</ar>
-<ar><k>cut open</k>
-leikata auki [puhek.]</ar>
-<ar><k>cut out</k>
-leikata pois [puhek.]</ar>
-<ar><k>cut price</k>
-hinnanalennus, alihinta</ar>
-<ar><k>cut short</k>
-typistää, keskeyttää äkkiä</ar>
-<ar><k>cut the prices</k>
-alentaa hintoja [puhek.]</ar>
-<ar><k>cut up</k>
-silputa</ar>
-<ar><k>cut up rough</k>
-suuttua [puhek.]</ar>
-<ar><k>cut-flowers</k>
-leikkokukat</ar>
-<ar><k>cute</k>
-söpö</ar>
-<ar><k>cutlery</k>
-hienotakeet</ar>
-<ar><k>cutlet</k>
-kotletti, kyljys</ar>
-<ar><k>cutter</k>
-jyrsin (terä), kutteri, leikkaaja</ar>
-<ar><k>cutting</k>
-pisteliäs (kuv), pistokas</ar>
-<ar><k>cutting machine</k>
-leikkuukone</ar>
-<ar><k>cutting torch</k>
-hotsauspoltin</ar>
-<ar><k>cuttlefish</k>
-mustakala</ar>
-<ar><k>cybernetics</k>
-kybernetiikka</ar>
-<ar><k>cycle</k>
-jakso, jaksoluku, kierto
-
-ajaa polkupyörällä</ar>
-<ar><k>cycle down sequence</k>
-jakson päätös</ar>
-<ar><k>cycle up sequence</k>
-jakson alku</ar>
-<ar><k>cylinder</k>
-lieriö, sylinteri, tela</ar>
-<ar><k>cylinder lock</k>
-sylinterilukko</ar>
-<ar><k>cylindrical</k>
-lieriömäinen</ar>
-<ar><k>cymbal</k>
-symbaali</ar>
-<ar><k>cynic</k>
-kyynikko</ar>
-<ar><k>cynical</k>
-kyynillinen</ar>
-<ar><k>cynicism</k>
-kyynillisyys</ar>
-<ar><k>cypress</k>
-sypressi</ar>
-<ar><k>dabble</k>
-tuhertaa</ar>
-<ar><k>dachshund</k>
-mäyräkoira</ar>
-<ar><k>dad</k>
-isä (lapsen puh), isäukko</ar>
-<ar><k>daddy</k>
-isä (lapsen puh), isäukko</ar>
-<ar><k>daffodil</k>
-keltanarsissi, narsissi</ar>
-<ar><k>dagger</k>
-tikari</ar>
-<ar><k>dahlia</k>
-daalia</ar>
-<ar><k>daily</k>
-päivittäin, jokapäiväinen</ar>
-<ar><k>daily routine</k>
-arkitoimi</ar>
-<ar><k>daily work</k>
-arkityö</ar>
-<ar><k>daintiness</k>
-somuus</ar>
-<ar><k>dainty</k>
-herkku, herkullinen</ar>
-<ar><k>dairy</k>
-meijeri</ar>
-<ar><k>dairy industry</k>
-maitotalous</ar>
-<ar><k>dairy-stock</k>
-lypsykarja</ar>
-<ar><k>dairymaid</k>
-karjakko, meijerikkö</ar>
-<ar><k>daisy</k>
-päivänkakkara</ar>
-<ar><k>dam</k>
-emo, emä, pato, sulku (pato)
-
-padota</ar>
-<ar><k>damage</k>
-tuhota, turmella, vahingoittaa, vaurioittaa, vikuuttaa
-
-vahinko
-
-vaurio</ar>
-<ar><k>damages</k>
-kipurahat, vahingonkorvaus (lak)</ar>
-<ar><k>damn *</k>
-hitto [alat.]</ar>
-<ar><k>damn all</k>
-ei yhtikäs mitään [puhek.]</ar>
-<ar><k>damp</k>
-kostea, nihkeä</ar>
-<ar><k>dampen</k>
-kostuttaa</ar>
-<ar><k>damper</k>
-iskunvaimennin</ar>
-<ar><k>damping</k>
-vaimennus</ar>
-<ar><k>dampness</k>
-kosteus</ar>
-<ar><k>dance</k>
-karkelo, tanssi
-
-karkeloida, tanssia</ar>
-<ar><k>dandelion</k>
-voikukka</ar>
-<ar><k>dandruff</k>
-hilse</ar>
-<ar><k>dandy</k>
-keikari</ar>
-<ar><k>dangerous</k>
-vaarallinen</ar>
-<ar><k>dangerous driver</k>
-autohurjastelija</ar>
-<ar><k>dangle</k>
-kieppua</ar>
-<ar><k>dare</k>
-hirvitä, rohjeta, tohtia, uskaltaa</ar>
-<ar><k>daredevil</k>
-huimapää, uskalikko</ar>
-<ar><k>daring</k>
-huimapäinen, huimapäisyys, uhkarohkea, uhkarohkeus, uskaliaisuus, uskalias, uskallus</ar>
-<ar><k>daring attempt</k>
-huima (yritys)</ar>
-<ar><k>dark</k>
-hämärä, pimeys, pimeä, tumma</ar>
-<ar><k>dark copy</k>
-tumma kopio</ar>
-<ar><k>dark dusting</k>
-mustasävykopio</ar>
-<ar><k>darken</k>
-himmenntää, hämärtää, pimentää, pimittää, tummenta</ar>
-<ar><k>darkness</k>
-pimeys, tummuus</ar>
-<ar><k>darling</k>
-armas, kullanmuru, kulta (kuv), lemmikki, rakas, sydänkäpy</ar>
-<ar><k>darn</k>
-parsia</ar>
-<ar><k>darn it</k>
-pahus, peijakas</ar>
-<ar><k>darts</k>
-tikanheitto, tikkapeli</ar>
-<ar><k>dash</k>
-ampaista, syöksyä</ar>
-<ar><k>dashboard</k>
-kojelauta</ar>
-<ar><k>dashing</k>
-huimapäinen</ar>
-<ar><k>dashspot</k>
-iskunvaimennin</ar>
-<ar><k>data processing</k>
-tietojenkäsittely</ar>
-<ar><k>date</k>
-päivämäärä, taateli, treffit
-
-päivätä</ar>
-<ar><k>date of birth</k>
-syntymäaika</ar>
-<ar><k>date of delivery</k>
-hankintaaika</ar>
-<ar><k>date of issue</k>
-antopäivä</ar>
-<ar><k>date of maturity</k>
-erääntymispäivä</ar>
-<ar><k>date of publication</k>
-ilmestymispäivä</ar>
-<ar><k>dated</k>
-vanhahteva</ar>
-<ar><k>dating from that time</k>
-senaikuinen</ar>
-<ar><k>daub</k>
-töhriä</ar>
-<ar><k>dauber</k>
-tuhertaja</ar>
-<ar><k>daughter</k>
-tytär</ar>
-<ar><k>dawdle</k>
-kuhnailla, vetelehtiä</ar>
-<ar><k>dawdling</k>
-laiskottelu</ar>
-<ar><k>dawn</k>
-aamuhämärä, aamunkoitto, koi (aamun), päivänkoitto, sarastus
-
-sarastaa</ar>
-<ar><k>day</k>
-päivä</ar>
-<ar><k>day after tomorrow</k>
-ylihuomenna</ar>
-<ar><k>day by day</k>
-päivittäin</ar>
-<ar><k>day care</k>
-päivähoito</ar>
-<ar><k>day nursery</k>
-lastenseimi, päiväkoti</ar>
-<ar><k>day off</k>
-vapaapäivä</ar>
-<ar><k>day-dreamer</k>
-haihettelija</ar>
-<ar><k>day-dreaming</k>
-haaveilu</ar>
-<ar><k>day-tripper</k>
-retkeilijä (päivän)</ar>
-<ar><k>daydream</k>
-kuvitelma, unelma</ar>
-<ar><k>daylight</k>
-päivänvalo</ar>
-<ar><k>daylight robbery</k>
-kiskurihinta [puhek.]</ar>
-<ar><k>days of grace</k>
-armonaika</ar>
-<ar><k>daze</k>
-huumaus</ar>
-<ar><k>dazzle</k>
-häikäistä</ar>
-<ar><k>dazzling</k>
-häikäisevä</ar>
-<ar><k>deacon</k>
-diakoni</ar>
-<ar><k>deactivate</k>
-deaktivoida</ar>
-<ar><k>deactivated</k>
-olla lepotilassa</ar>
-<ar><k>deactuate</k>
-saattaa mekaanisesti lepotilaan</ar>
-<ar><k>dead</k>
-hengetön, kuollut</ar>
-<ar><k>dead against</k>
-täysin vastaan [puhek.]</ar>
-<ar><k>dead as mutton</k>
-kuollut kuin kivi [puhek.]</ar>
-<ar><k>dead beat</k>
-tyhjäntoimittaja [puhek.]</ar>
-<ar><k>dead calm</k>
-rasvatyven</ar>
-<ar><k>dead centre</k>
-kuolonkohta [puhek.]</ar>
-<ar><k>dead cycle</k>
-katkojakso</ar>
-<ar><k>dead drunk</k>
-sikahumalassa [puhek.]</ar>
-<ar><k>dead easy</k>
-tosi helppo [puhek.]</ar>
-<ar><k>dead from the neck up</k>
-aivan pimeä [puhek.]</ar>
-<ar><k>dead loss</k>
-mälsä paikka [puhek.]</ar>
-<ar><k>dead on time</k>
-tulla aivan ajallaan [puhek.]</ar>
-<ar><k>dead pull</k>
-hyödytön ponnistus [puhek.]</ar>
-<ar><k>dead silence</k>
-kuolonhiljaisuus</ar>
-<ar><k>dead stop</k>
-pysähtyä äkkiä [puhek.]</ar>
-<ar><k>dead tired</k>
-uupunut</ar>
-<ar><k>dead to rights</k>
-varma [puhek.]</ar>
-<ar><k>dead to the world</k>
-umpiunessa [puhek.]</ar>
-<ar><k>dead weight</k>
-taara, omapaino</ar>
-<ar><k>deaden</k>
-kuolettaa</ar>
-<ar><k>deadly</k>
-kuolettava</ar>
-<ar><k>deadly peril</k>
-hengenvaara</ar>
-<ar><k>deadly sin</k>
-kuolemansynti</ar>
-<ar><k>deaf</k>
-kuuro</ar>
-<ar><k>deaf and dumb</k>
-kuuromykkä</ar>
-<ar><k>deafened</k>
-kuuroutunut</ar>
-<ar><k>deal</k>
-sovittu kauppa, lankku (liik), lehmäkauppa</ar>
-<ar><k>deal with</k>
-käsitellä (kuv)</ar>
-<ar><k>dealer</k>
-jälleenmyyjä, kauppias</ar>
-<ar><k>dealing out</k>
-jakelu</ar>
-<ar><k>dean</k>
-dekaani</ar>
-<ar><k>dear</k>
-kallis</ar>
-<ar><k>dear john</k>
-erokirje [puhek.]</ar>
-<ar><k>dearly</k>
-hellästi</ar>
-<ar><k>death</k>
-kalma, kuolema, surma</ar>
-<ar><k>death-rate</k>
-kuolleisuus</ar>
-<ar><k>death-sentence</k>
-kuolemantuomio</ar>
-<ar><k>deathly pale</k>
-kalmankalpea, kuolonkalpea</ar>
-<ar><k>debate</k>
-väittely
-
-pohtia</ar>
-<ar><k>debate on</k>
-väitellä</ar>
-<ar><k>debauchery</k>
-irstailu</ar>
-<ar><k>debit</k>
-debet</ar>
-<ar><k>debris</k>
-jatteet, roju</ar>
-<ar><k>debt</k>
-velka</ar>
-<ar><k>debt of honour</k>
-kunniavelka</ar>
-<ar><k>debtor</k>
-velallinen</ar>
-<ar><k>debut</k>
-debyytti, ensiesiintyminen</ar>
-<ar><k>debutante</k>
-ensiesiintyjä</ar>
-<ar><k>decade</k>
-vuosikymmen</ar>
-<ar><k>decagon</k>
-kymmenkulmio</ar>
-<ar><k>decanter</k>
-karahvi</ar>
-<ar><k>decathlon</k>
-kymmenottelu (urh)</ar>
-<ar><k>decay</k>
-maatua, mädäntyä, pilaantua
-
-mätäneminen</ar>
-<ar><k>decayed</k>
-laho, mätä</ar>
-<ar><k>decayed state</k>
-lahous</ar>
-<ar><k>deceased</k>
-edesmennyt (vainaja), vainaja, kuollut</ar>
-<ar><k>deceit</k>
-petos, vilppi</ar>
-<ar><k>deceitful</k>
-epärehellinen, kavala, petollinen, pettävä, vilpillinen</ar>
-<ar><k>deceitfulness</k>
-vilpillisyys</ar>
-<ar><k>deceive</k>
-erehdyttää, pettää</ar>
-<ar><k>decent</k>
-kelpo, kunniallinen, kunnollinen, säädyllinen</ar>
-<ar><k>deception</k>
-petos</ar>
-<ar><k>deceptive</k>
-pettävä</ar>
-<ar><k>decide</k>
-päättää, ratkaista</ar>
-<ar><k>decigramme</k>
-desigramma</ar>
-<ar><k>decilitre</k>
-desilitra</ar>
-<ar><k>decimal</k>
-desimaali, kymmenys</ar>
-<ar><k>decimal point</k>
-kymmenyspilkku</ar>
-<ar><k>decimal system</k>
-kymmenjärjestelmä</ar>
-<ar><k>decimetre</k>
-desimetri</ar>
-<ar><k>decision</k>
-päätös</ar>
-<ar><k>decisive</k>
-ratkaiseva</ar>
-<ar><k>deck</k>
-kansi (laivan), laivankansi</ar>
-<ar><k>declaration</k>
-julistus</ar>
-<ar><k>declare</k>
-julistaa, väittää</ar>
-<ar><k>decline</k>
-kieltäytyä</ar>
-<ar><k>decline a request</k>
-evätä (pyyntö)</ar>
-<ar><k>declining</k>
-hylkääminen</ar>
-<ar><k>decompose</k>
-mädännyttää</ar>
-<ar><k>decomposition</k>
-osiin jakaminen</ar>
-<ar><k>decorate</k>
-koristaa, koristella, somistaa</ar>
-<ar><k>decoration</k>
-kunniamerkki</ar>
-<ar><k>decorative</k>
-koristeellinen
-
-koristeellinen</ar>
-<ar><k>decorator</k>
-koristemaalari</ar>
-<ar><k>decoy</k>
-houkutuslintu, syötti (houkutus)</ar>
-<ar><k>decrease</k>
-pienennys
-
-aleta, heiketä, huveta, vähentyä, vähentää, pienentää, pienentyä, laskea</ar>
-<ar><k>decrease of value</k>
-arvonalennus</ar>
-<ar><k>decree</k>
-asetus, säädös</ar>
-<ar><k>decurler</k>
-oikaisulaite</ar>
-<ar><k>decurler rolls</k>
-oikaisurullat</ar>
-<ar><k>dedicate</k>
-pyhittää</ar>
-<ar><k>dedicate to</k>
-vihkiä (tarkoitukseen)</ar>
-<ar><k>dedicated</k>
-antaumuksellinen</ar>
-<ar><k>dedication</k>
-antaumus, vihkimys</ar>
-<ar><k>deduce</k>
-tehdä johtopäätös</ar>
-<ar><k>deduct</k>
-vähentää</ar>
-<ar><k>deduction</k>
-vähennys</ar>
-<ar><k>deed</k>
-asiakirja, teko, työ (tehtävä)</ar>
-<ar><k>deed of purchase</k>
-kauppakirja</ar>
-<ar><k>deenergize</k>
-katkaista virta</ar>
-<ar><k>deep</k>
-syvä, syvällinen</ar>
-<ar><k>deep dish</k>
-kulho</ar>
-<ar><k>deeply</k>
-syvällä, syvään</ar>
-<ar><k>deer</k>
-hirvieläin</ar>
-<ar><k>deer-stalking</k>
-hirvenajo</ar>
-<ar><k>defamatory</k>
-häpäisevä</ar>
-<ar><k>defame</k>
-parjata</ar>
-<ar><k>defeat</k>
-häviö, tappio
-
-voittaa</ar>
-<ar><k>defecation</k>
-ulostus</ar>
-<ar><k>defect</k>
-epäkohta, vika, virhe
-
-loikata (pol)</ar>
-<ar><k>defective</k>
-vajavainen, viallinen</ar>
-<ar><k>defective goods</k>
-hylkytavara</ar>
-<ar><k>defenceless</k>
-suojaton, turvaton</ar>
-<ar><k>defend</k>
-puolustaa</ar>
-<ar><k>defend oneself</k>
-puolustautua</ar>
-<ar><k>defendant</k>
-syytetty, vastaaja</ar>
-<ar><k>defender</k>
-puolustaja</ar>
-<ar><k>defer</k>
-lykätä</ar>
-<ar><k>defiance</k>
-uhittelu, uhma, uhmailu</ar>
-<ar><k>deficiency</k>
-puute, vaje</ar>
-<ar><k>deficient</k>
-vajanainen</ar>
-<ar><k>deficit</k>
-kassavaillinki, rahavaillinki, vajaus</ar>
-<ar><k>define</k>
-määritellä, täsmällistää</ar>
-<ar><k>definite</k>
-lopullinen, määrätty, varma</ar>
-<ar><k>definitely</k>
-varmasti</ar>
-<ar><k>definition</k>
-määritelmä, merkityksen (sanan)</ar>
-<ar><k>deflation</k>
-deflaation</ar>
-<ar><k>deflect</k>
-ohjata toiseen suuntaan</ar>
-<ar><k>deflection</k>
-taipuma</ar>
-<ar><k>deflector</k>
-ohjain</ar>
-<ar><k>deformation</k>
-muodonmuutos</ar>
-<ar><k>deformations</k>
-muodonmuutokset</ar>
-<ar><k>deformed</k>
-epämuotoinen</ar>
-<ar><k>deformity</k>
-epämuodostuma</ar>
-<ar><k>deft</k>
-näppärä</ar>
-<ar><k>defy</k>
-haastaa (otteluun), uhmata</ar>
-<ar><k>degenerate</k>
-degeneroitua</ar>
-<ar><k>degradation</k>
-alennustila</ar>
-<ar><k>degrade</k>
-alentaa arvossa</ar>
-<ar><k>degrading</k>
-alentava</ar>
-<ar><k>degree</k>
-aste, potenssi (mat)
-
-aste</ar>
-<ar><k>deity</k>
-jumalolento</ar>
-<ar><k>dejected</k>
-apea</ar>
-<ar><k>dejectedly</k>
-alakuloisesti</ar>
-<ar><k>dejectedness</k>
-apeus</ar>
-<ar><k>delay</k>
-viivytys, viivyttely, viivästys, vitkastelu, aikailu, hidastus, viive
-
-aikailla, hidastella, pitkittää, viivytellä, viivyttää, viipyä, kitua</ar>
-<ar><k>delegate</k>
-edustaja
-
-valtuuttaa</ar>
-<ar><k>delegation</k>
-lähetystö (henkilöryhmä), valtuuskunta, valtuuttaminen</ar>
-<ar><k>delete</k>
-pyyhkiä pois, poistaa</ar>
-<ar><k>deleted</k>
-poistettu</ar>
-<ar><k>deletion</k>
-poispyyhkiminen, häviämä</ar>
-<ar><k>deliberate</k>
-harkita, pohtia
-
-tahallinen</ar>
-<ar><k>deliberately</k>
-tahallaan, tarkoituksella</ar>
-<ar><k>deliberation</k>
-harkinta</ar>
-<ar><k>delicacy</k>
-makupala</ar>
-<ar><k>delicate</k>
-arkaluonteinen, heikko (hento), hento, herkullinen, hieno (ohut), hienovarainen, siro (hieno)</ar>
-<ar><k>delicate build</k>
-hintelyys</ar>
-<ar><k>delicatessen shop</k>
-leikkeleliike</ar>
-<ar><k>delicatly</k>
-hienosti</ar>
-<ar><k>delicious</k>
-herkullinen</ar>
-<ar><k>delight</k>
-ilo, riemu
-
-ihastuttaa</ar>
-<ar><k>delight in</k>
-iloita</ar>
-<ar><k>delighted</k>
-hyvilleen, iloinen (mielisään)</ar>
-<ar><k>delightful</k>
-hauska, ihana, ihastuttava, suloinen</ar>
-<ar><k>delinquent</k>
-rikoksentekijä</ar>
-<ar><k>delirium</k>
-houre, kuumehoure</ar>
-<ar><k>deliver</k>
-jättää (antaa), toimittaa (liik)</ar>
-<ar><k>deliver a blow</k>
-iskeä</ar>
-<ar><k>deliver a lecture</k>
-esitelmöidä</ar>
-<ar><k>deliverance</k>
-vapahdus</ar>
-<ar><k>delivery</k>
-toimitus, hankinta, jakelu, kotiinkanto, luovutus, postinkanto, synnytys</ar>
-<ar><k>dell</k>
-notko</ar>
-<ar><k>delta</k>
-siosto</ar>
-<ar><k>delude</k>
-erehdyttää</ar>
-<ar><k>delusion</k>
-harha</ar>
-<ar><k>demand</k>
-vaatimus
-
-vaatia
-
-kysyntä</ar>
-<ar><k>demand for</k>
-kysyntä</ar>
-<ar><k>demobilize</k>
-demobilisoida</ar>
-<ar><k>democracy</k>
-kansanvalta</ar>
-<ar><k>democrat</k>
-demokraatti</ar>
-<ar><k>democratic</k>
-demokraattinen, kansanvaltainen</ar>
-<ar><k>democratic ways</k>
-kansanomaisuus</ar>
-<ar><k>demolish</k>
-purkaa (talo ym)</ar>
-<ar><k>demolition</k>
-purkaminen (rakennuksen)</ar>
-<ar><k>demon</k>
-demoni</ar>
-<ar><k>demonstrate</k>
-esittää, osoittaa</ar>
-<ar><k>demonstration</k>
-esittäminen, mielenosoitus</ar>
-<ar><k>demonstrative</k>
-demonstratiivinen (kiel)</ar>
-<ar><k>demonstrator</k>
-mielenosoittaja</ar>
-<ar><k>demoralize</k>
-demoralisoida</ar>
-<ar><k>den</k>
-luola (eläimen)</ar>
-<ar><k>denial</k>
-epäys, kielto, kieltäminen</ar>
-<ar><k>denote</k>
-merkitä (ilmaista)</ar>
-<ar><k>dense</k>
-paksu, sakea (tiheä), sankka, taaja, tiheä</ar>
-<ar><k>denseness</k>
-taajuus, tiheys, tiiviys</ar>
-<ar><k>density</k>
-tiheys, tiiviys</ar>
-<ar><k>dent</k>
-lommo, lovi
-
-pykälä (lovi)</ar>
-<ar><k>dental</k>
-hammasääne (kiel)</ar>
-<ar><k>dental enamel</k>
-hammaskiille</ar>
-<ar><k>denture</k>
-tekohampaat</ar>
-<ar><k>deny</k>
-dementoida, eittää, kieltää (ei myöntää)</ar>
-<ar><k>deny flatly</k>
-kieltää jtk jyrkästi</ar>
-<ar><k>deodorant</k>
-deodorantti</ar>
-<ar><k>depart</k>
-lähteä</ar>
-<ar><k>department</k>
-osasto</ar>
-<ar><k>departure</k>
-lähtö</ar>
-<ar><k>depend on</k>
-riippua (kuv)</ar>
-<ar><k>depend upon</k>
-luottaa (jhk)</ar>
-<ar><k>dependable</k>
-luotettava</ar>
-<ar><k>dependancy</k>
-riippuvuus</ar>
-<ar><k>dependant</k>
-huollettava</ar>
-<ar><k>dependent on</k>
-riippuvainen, vallanalainen</ar>
-<ar><k>depict</k>
-kuvata</ar>
-<ar><k>depleted</k>
-tyhjä, loppuun kulutettu</ar>
-<ar><k>deplorable</k>
-surkea, valitettava</ar>
-<ar><k>deport</k>
-karkottaa (ulkomaalainen)</ar>
-<ar><k>deposit</k>
-esiintymä, säästöönpano, talletus, kerääntymä, kasauma
-
-käsiraha</ar>
-<ar><k>depositor</k>
-säästöönpanija, tallettaja</ar>
-<ar><k>depot</k>
-varikko, varasto</ar>
-<ar><k>depraved</k>
-paheellinen</ar>
-<ar><k>depravity</k>
-turmelus (tapain ym)</ar>
-<ar><k>depreciation</k>
-poisto (liik)</ar>
-<ar><k>depressed</k>
-apea</ar>
-<ar><k>depression</k>
-lamaannus, masennus, matalasuhdanne, painuma, syvennys, talouslama</ar>
-<ar><k>depth</k>
-syvyys</ar>
-<ar><k>deputation</k>
-lähetystö (henkilöryhmä)</ar>
-<ar><k>deputy</k>
-sijainen, varamies, viransijainen</ar>
-<ar><k>deride</k>
-ivata</ar>
-<ar><k>derision</k>
-iva, pilkka</ar>
-<ar><k>derisive</k>
-ilkkuva, ivallinen, pilkallinen</ar>
-<ar><k>derisive laughter</k>
-ivanauru</ar>
-<ar><k>derivation</k>
-johdannos (kiel), johtaminen (kiel)</ar>
-<ar><k>derivative</k>
-johdannainen (kiel)</ar>
-<ar><k>dermatologist</k>
-iholääkäri</ar>
-<ar><k>dermatology</k>
-ihooppi</ar>
-<ar><k>descend</k>
-laskeutua</ar>
-<ar><k>descendant</k>
-jälkeläinen</ar>
-<ar><k>descent</k>
-sukuperä, syntyperä</ar>
-<ar><k>describe</k>
-kertoa (selostaa), kuvailla, kuvata, selostaa</ar>
-<ar><k>description</k>
-kuvaus</ar>
-<ar><k>description of nature</k>
-luonnonkuvaus</ar>
-<ar><k>descriptive</k>
-kuvaava</ar>
-<ar><k>desert</k>
-autiomaa
-
-hylätä (jättää), karata (sot)</ar>
-<ar><k>deserter</k>
-sotilaskarkuri</ar>
-<ar><k>desertion</k>
-hylkääminen</ar>
-<ar><k>deserve</k>
-ansaita (olla jnk arvoinen)</ar>
-<ar><k>deserving</k>
-ansiokas</ar>
-<ar><k>design</k>
-hanke, juoni, kuosi, malli, muotoilu, piirustus, suunnitelma, luonnos
-
-muotoilla, piirtää, suunnitella</ar>
-<ar><k>design load</k>
-mitoituskuormitus</ar>
-<ar><k>designation</k>
-nimitys</ar>
-<ar><k>desirability</k>
-toivottavuus</ar>
-<ar><k>desirable</k>
-suotava, tavoiteltava, toivottava</ar>
-<ar><k>desire</k>
-mieliteko, toivomus
-
-halata, haluta, havitella, himoita</ar>
-<ar><k>desire for</k>
-himo</ar>
-<ar><k>desired</k>
-toivottu</ar>
-<ar><k>desist</k>
-luopua</ar>
-<ar><k>desk</k>
-kirjoituspöytä, pulpetti</ar>
-<ar><k>desolate</k>
-autio, kolkko (autio)</ar>
-<ar><k>desolateness</k>
-jylhyys</ar>
-<ar><k>desolation</k>
-autius</ar>
-<ar><k>despair</k>
-epätoivo, toivottomuus</ar>
-<ar><k>desperate</k>
-epätoivoinen</ar>
-<ar><k>desperately</k>
-toivottamasti</ar>
-<ar><k>desperation</k>
-epätoivo</ar>
-<ar><k>despicable</k>
-halveksittava</ar>
-<ar><k>despise</k>
-halveksia, hylkiä, ylenkatsoa</ar>
-<ar><k>despite</k>
-huolimatta</ar>
-<ar><k>despondency</k>
-epätoivo</ar>
-<ar><k>despot</k>
-despootti, hirmuhallitsija</ar>
-<ar><k>despotism</k>
-hirmuvalta</ar>
-<ar><k>dessert</k>
-jälkiruoka</ar>
-<ar><k>destination</k>
-määräpaikka, osoitepaikka, määränpää</ar>
-<ar><k>destiny</k>
-kohtalo, sallimus</ar>
-<ar><k>destitute</k>
-hädänalainen
-
-hätääkärsivä</ar>
-<ar><k>destitution</k>
-kurjuus (köyhyys)</ar>
-<ar><k>destroy</k>
-hävittää, lopettaa (eläin), raiskata, teilata (kuv), tuhota, tärvellä</ar>
-<ar><k>destroyer</k>
-hävittäjä</ar>
-<ar><k>destruction</k>
-hukka (turmio), hävitys, häviävä, häviö, perikato, turma</ar>
-<ar><k>destructive</k>
-tuhoisa</ar>
-<ar><k>detach</k>
-erottaa (irrottaa), irrottaa, lohkaista (erottaa)</ar>
-<ar><k>detachable</k>
-irrotettava</ar>
-<ar><k>detached</k>
-erillinen, irrallinen</ar>
-<ar><k>detached house</k>
-omakotitalo</ar>
-<ar><k>detack corotron</k>
-irrotuskorotroni</ar>
-<ar><k>detack paper guide</k>
-irrotusohjain</ar>
-<ar><k>detail</k>
-yksityiskohta</ar>
-<ar><k>detailed</k>
-seikkaperäinen, yksityiskohtainen</ar>
-<ar><k>detect</k>
-huomata, havaita</ar>
-<ar><k>detection</k>
-ilmitulo</ar>
-<ar><k>detective</k>
-etsivä</ar>
-<ar><k>detent</k>
-lovi, kolo, ura, pykälä</ar>
-<ar><k>detent arm</k>
-lukitusvarsi</ar>
-<ar><k>deteriorate</k>
-huonontua, huonota</ar>
-<ar><k>deterioration</k>
-huononnus, huononuminen, heikkenenminen</ar>
-<ar><k>determination</k>
-ratkaisu</ar>
-<ar><k>determinative</k>
-determinatiivinen (kiel)</ar>
-<ar><k>determine</k>
-määritellä, määrittää, määrätä, päättää, ratkaista</ar>
-<ar><k>determining</k>
-määräävä</ar>
-<ar><k>deterrent</k>
-pelottelukeino</ar>
-<ar><k>detest</k>
-inhota, vihata</ar>
-<ar><k>detestable</k>
-inhottava</ar>
-<ar><k>detestation</k>
-inho</ar>
-<ar><k>detonation</k>
-jymähdys</ar>
-<ar><k>detonator</k>
-nalli</ar>
-<ar><k>detour</k>
-kiertotie</ar>
-<ar><k>detrimental</k>
-vahingollinen</ar>
-<ar><k>devaluation</k>
-devalvaatio</ar>
-<ar><k>devalue</k>
-devalvoida</ar>
-<ar><k>devastate</k>
-hävittää, tuhota</ar>
-<ar><k>devastation</k>
-hävitys, tuho</ar>
-<ar><k>develop</k>
-kehitellä, kehittää, kehkeytyä</ar>
-<ar><k>developer</k>
-aluerakentaja
-
-kehite(valok.)</ar>
-<ar><k>developer bias</k>
-kehitysjännite</ar>
-<ar><k>developer brush</k>
-kehiteharjakset</ar>
-<ar><k>developer clutch</k>
-kehitysvetokytkin</ar>
-<ar><k>developer dump</k>
-kehitevuoto</ar>
-<ar><k>developer housing</k>
-kehityslaite</ar>
-<ar><k>developer roll</k>
-kehitystela</ar>
-<ar><k>development</k>
-kehittäminen, kehitys</ar>
-<ar><k>deviant</k>
-poikkeava</ar>
-<ar><k>deviate</k>
-poiketa</ar>
-<ar><k>deviation</k>
-poikkeama</ar>
-<ar><k>device</k>
-kilpikuva, koje, laite, vehje</ar>
-<ar><k>devil</k>
-piru, paholainen
-
-perkele</ar>
-<ar><k>devil *</k>
-saatana [alat.]</ar>
-<ar><k>devilish</k>
-pirullinen</ar>
-<ar><k>devise</k>
-keksiä</ar>
-<ar><k>devoted</k>
-antaumuksellinen, harras, uskollinen</ar>
-<ar><k>devotion</k>
-hartaus</ar>
-<ar><k>devotion to</k>
-kiintymys</ar>
-<ar><k>devour</k>
-ahmaista</ar>
-<ar><k>devout</k>
-hurskas (harras)</ar>
-<ar><k>devoutly</k>
-hartaasti</ar>
-<ar><k>dew</k>
-kaste</ar>
-<ar><k>dewdrop</k>
-kastehelmi</ar>
-<ar><k>dexterity</k>
-kätevyys, näppäryys</ar>
-<ar><k>diabetes</k>
-sokeritauti</ar>
-<ar><k>diabetic</k>
-sokeritautinen</ar>
-<ar><k>diabolical</k>
-pirullinen</ar>
-<ar><k>diagnose</k>
-määrittää</ar>
-<ar><k>diagnosis</k>
-diagnoosi (lääk)</ar>
-<ar><k>diagnostic code</k>
-tarkastustunnus</ar>
-<ar><k>diagnostic program</k>
-tarkastusohjelma</ar>
-<ar><k>diagnostics</k>
-koneen tarkastuskäyttö, koestus</ar>
-<ar><k>diagonal</k>
-viisto-, </ar>
-<ar><k>diagonal struts</k>
-diagonaalisauvat</ar>
-<ar><k>diagram</k>
-diagrammi, graafinen (kuvio), kaavio, käyrä, piirros</ar>
-<ar><k>dial</k>
-kellotaulu</ar>
-<ar><k>dialect</k>
-murre</ar>
-<ar><k>diameter</k>
-halkaisija (mat), läpimitta</ar>
-<ar><k>diamond</k>
-ruutukortti, timantti</ar>
-<ar><k>diaphragm</k>
-himmennin (valok), kierukka (ehkäisyväline)</ar>
-<ar><k>diarrhea</k>
-ripuli</ar>
-<ar><k>diary</k>
-päiväkirja, almanakka</ar>
-<ar><k>dias</k>
-koroke (puhuja- ym)</ar>
-<ar><k>diathermy</k>
-diatermia</ar>
-<ar><k>dice</k>
-arpakuutio, noppapeli</ar>
-<ar><k>dick **</k>
-kyrpä [alat.]</ar>
-<ar><k>dicorotron</k>
-dikorotroni</ar>
-<ar><k>dictate</k>
-määrätä, sanella</ar>
-<ar><k>dictation</k>
-sanelu</ar>
-<ar><k>dictator</k>
-diktaattori</ar>
-<ar><k>dictatorship</k>
-diktattuuri</ar>
-<ar><k>dictionary</k>
-sanakirja</ar>
-<ar><k>diddle</k>
-huiputtaa [puhek.], puijata</ar>
-<ar><k>die</k>
-kuolla</ar>
-<ar><k>die down</k>
-heiketä, hiipua</ar>
-<ar><k>diesal-engine</k>
-dieselmoottori</ar>
-<ar><k>diesal-operated</k>
-dieselkäyttoinen</ar>
-<ar><k>diet</k>
-dieetti, ruokavalio</ar>
-<ar><k>differ</k>
-eritä, poiketa (erota), erota</ar>
-<ar><k>difference</k>
-ero, eroavaisuus, erotus</ar>
-<ar><k>difference in age</k>
-ikäerotus</ar>
-<ar><k>difference in kind</k>
-laatuero</ar>
-<ar><k>difference of opinion</k>
-erimielisyys</ar>
-<ar><k>different</k>
-erilainen</ar>
-<ar><k>differentiate</k>
-eriyttää</ar>
-<ar><k>differing</k>
-eriävä (poikkeava)</ar>
-<ar><k>differing in shape</k>
-erimuotoinen</ar>
-<ar><k>difficult</k>
-hankala, pulmallinen, tukala, vaikea, vaivalloinen, vastuksellinen</ar>
-<ar><k>difficulty</k>
-pulma, vaikeus, vastus</ar>
-<ar><k>difficulty in breathing</k>
-hengenahdistus</ar>
-<ar><k>diffidence</k>
-arkailu, arkuus (pelokuus), häveliäisyys</ar>
-<ar><k>diffident</k>
-häveliäs</ar>
-<ar><k>dig</k>
-kaivaa
-
-kaivaa, kuopia, tonkia</ar>
-<ar><k>digestible</k>
-helpostisulava</ar>
-<ar><k>digit</k>
-numero</ar>
-<ar><k>digital display</k>
-näyttöruutu</ar>
-<ar><k>dignitary</k>
-arvohenkilö</ar>
-<ar><k>digress</k>
-poiketa</ar>
-<ar><k>digs</k>
-boksi</ar>
-<ar><k>dilate</k>
-laajentua (fys)</ar>
-<ar><k>dilemma</k>
-kiipeli, pulma, vaikea</ar>
-<ar><k>diligency</k>
-ahkeruus</ar>
-<ar><k>diligent</k>
-ahkera</ar>
-<ar><k>diligently</k>
-ahkerasti</ar>
-<ar><k>dill</k>
-dilli</ar>
-<ar><k>dilute</k>
-miedontaa</ar>
-<ar><k>dim</k>
-himmenntää, pimittää
-
-himmeä, hämyinen, hämärä, sumea</ar>
-<ar><k>dimension</k>
-mittasuhde</ar>
-<ar><k>diminish</k>
-pienentää, vähentyä, vähentää</ar>
-<ar><k>dimly</k>
-hämärästi</ar>
-<ar><k>dimly outlined</k>
-häämöttää</ar>
-<ar><k>dimmer switch</k>
-himmennin</ar>
-<ar><k>dimness</k>
-himmenys</ar>
-<ar><k>dimple</k>
-hymykuoppa, kuoppa (poskessa), leukakuoppa</ar>
-<ar><k>din</k>
-humu (pauhu), jymy, pauhina, pauke, ryminä</ar>
-<ar><k>dine</k>
-syödä (päivällistä)</ar>
-<ar><k>dining car</k>
-ravintolavaunu</ar>
-<ar><k>dining room</k>
-ruokailuhuone</ar>
-<ar><k>dining-room</k>
-ruokasali</ar>
-<ar><k>dinner</k>
-päivällinen</ar>
-<ar><k>dinner-jacket</k>
-smokki</ar>
-<ar><k>dinner-party</k>
-päivälliskutsu</ar>
-<ar><k>dinosaur</k>
-hirmulisko</ar>
-<ar><k>dip</k>
-kastaa, upottaa</ar>
-<ar><k>diphtheria</k>
-kurkkumätä</ar>
-<ar><k>diphthong</k>
-diftongi, kaksoisääntiö</ar>
-<ar><k>diploma</k>
-diplomi, kunniakirja</ar>
-<ar><k>diplomat</k>
-diplomaatti</ar>
-<ar><k>diplomatic</k>
-diplomaattinen</ar>
-<ar><k>dipped light</k>
-lähivalo (auton)</ar>
-<ar><k>dipsomania</k>
-alkoholinhimo</ar>
-<ar><k>direct</k>
-kohdistaa, ohjata, opastaa, suunnata, säätää
-
-suoranainen, välitön</ar>
-<ar><k>direct current</k>
-tasavirta</ar>
-<ar><k>direct hit</k>
-täysosuma</ar>
-<ar><k>direction</k>
-johto, määräys, ohjaus, ohje, toimintaohje, suunta</ar>
-<ar><k>directions</k>
-käyttöohjeet</ar>
-<ar><k>directive</k>
-evästys (kuv)</ar>
-<ar><k>directly</k>
-heti, kohta (heti), suoraan, välittömästi</ar>
-<ar><k>director</k>
-johtaja (johtokunnan jäsen), ohjaaja (teatt)(elok)</ar>
-<ar><k>director general</k>
-pääjohtaja, ylijohtaja</ar>
-<ar><k>directory</k>
-osoitekalenteri</ar>
-<ar><k>dirge</k>
-itkuvirsi</ar>
-<ar><k>dirt</k>
-lika, loka, törky</ar>
-<ar><k>dirtiness</k>
-likaisuus</ar>
-<ar><k>dirty</k>
-kurata, liata, loata
-
-epäsiisti, likainen</ar>
-<ar><k>dirty trick</k>
-konnankoukku</ar>
-<ar><k>disability</k>
-invaliditeetti, vamma</ar>
-<ar><k>disable</k>
-tehdä tehottomaksi, invalisoida</ar>
-<ar><k>disabled person</k>
-invalidi</ar>
-<ar><k>disadvantage</k>
-haitta</ar>
-<ar><k>disadvantageous</k>
-epäedullinen</ar>
-<ar><k>disagreeable</k>
-epämiellyttävä</ar>
-<ar><k>disagreeing</k>
-eripurainen</ar>
-<ar><k>disagreement</k>
-epäsopu, erimielisyys, ristiriita</ar>
-<ar><k>disappear</k>
-hälvetä, hävitä, kadota</ar>
-<ar><k>disappearance</k>
-katoaminen</ar>
-<ar><k>disappointment</k>
-pettymys</ar>
-<ar><k>disapproval</k>
-paheksuminen, paheksunta</ar>
-<ar><k>disapprove of</k>
-paheksua</ar>
-<ar><k>disarmament</k>
-aseistariisunta</ar>
-<ar><k>disarray</k>
-epäjärjestys</ar>
-<ar><k>disassemble</k>
-purkaa</ar>
-<ar><k>disaster</k>
-onnettomuustapaus</ar>
-<ar><k>disastrous</k>
-tuhoisa</ar>
-<ar><k>disband</k>
-kotiuttaa</ar>
-<ar><k>disbelief</k>
-epäusko</ar>
-<ar><k>disc</k>
-kehrä, äänilevy</ar>
-<ar><k>discard</k>
-havittää</ar>
-<ar><k>discharge</k>
-purkaus, vapautus, vuoto
-
-laukaista, purkautua (joki ym)</ar>
-<ar><k>discharge lamp</k>
-purkauslamppu</ar>
-<ar><k>disciplinarian</k>
-kurinpitäjä</ar>
-<ar><k>disciplinary</k>
-kurinpidollinen</ar>
-<ar><k>discipline</k>
-kurittaa, rangaista
-
-kurittaa, rangaista
-
-kuri, kurinpito</ar>
-<ar><k>disciplined</k>
-kurinalainen</ar>
-<ar><k>disclose</k>
-ilmaista, paljastaa</ar>
-<ar><k>disclosure</k>
-ilmaiseminen, paljastaminen</ar>
-<ar><k>discomfort</k>
-epämukavuus</ar>
-<ar><k>disconcert</k>
-hämmäänyttää</ar>
-<ar><k>disconnect</k>
-kytkeä irti, irrottaa</ar>
-<ar><k>disconnected</k>
-epäyhtenäinen, irrallinen, katkonainen</ar>
-<ar><k>disconsolate</k>
-lohduton</ar>
-<ar><k>discontent</k>
-tyytymättömyys</ar>
-<ar><k>discontented</k>
-tyytymätön</ar>
-<ar><k>discontinue</k>
-keskeyttää</ar>
-<ar><k>discontinuous</k>
-jatkumaton</ar>
-<ar><k>discord</k>
-eripuraisuus</ar>
-<ar><k>discordant</k>
-epäsointuinen</ar>
-<ar><k>discotheque</k>
-diskoteekki</ar>
-<ar><k>discount</k>
-alennus</ar>
-<ar><k>discourage</k>
-lannistaa (jkn mieli), masentaa</ar>
-<ar><k>discourse</k>
-esitelmä</ar>
-<ar><k>discourteous</k>
-epäkohtelias, töykeä</ar>
-<ar><k>discover</k>
-havaita (huomata), huomata</ar>
-<ar><k>discovery</k>
-ilmitulo, keksintö, löytö</ar>
-<ar><k>discreet</k>
-tahdikas</ar>
-<ar><k>discrepancy</k>
-eroavaisuus, ristiriita</ar>
-<ar><k>discretion</k>
-mielivalta</ar>
-<ar><k>discriminate</k>
-syrjiä</ar>
-<ar><k>discrimination</k>
-syrjintä</ar>
-<ar><k>discuss</k>
-keskustella</ar>
-<ar><k>discussion</k>
-keskustelu, pohdinta</ar>
-<ar><k>disdain</k>
-halveksia, ylenkatsoa</ar>
-<ar><k>disease</k>
-tauti</ar>
-<ar><k>disease of the brain</k>
-aivotauti</ar>
-<ar><k>disengage</k>
-vapauttaa</ar>
-<ar><k>disengage oneself</k>
-irrottautua</ar>
-<ar><k>disengaged</k>
-jouten</ar>
-<ar><k>disfavour</k>
-epäsuosio</ar>
-<ar><k>disgrace</k>
-epäsuosio, häpeissään</ar>
-<ar><k>disgraceful</k>
-häpeällinen</ar>
-<ar><k>disgracefulness</k>
-häpeällisyys</ar>
-<ar><k>disgruntled</k>
-tyytymätön</ar>
-<ar><k>disguise</k>
-valepuku
-
-naamioida</ar>
-<ar><k>disguised</k>
-valepukuinen</ar>
-<ar><k>disgust at</k>
-inho</ar>
-<ar><k>disgust for</k>
-inho</ar>
-<ar><k>disgusting</k>
-iljettävä, inhottava, tympäisevä</ar>
-<ar><k>dish</k>
-astia (ruoka), ruokalaji, vati</ar>
-<ar><k>dish-washer</k>
-astiainpesukone</ar>
-<ar><k>disharmony</k>
-epäsointu</ar>
-<ar><k>dishearten</k>
-lannistaa (jkn mieli), masentaa</ar>
-<ar><k>dishevelled</k>
-pörröinen</ar>
-<ar><k>dishonest</k>
-epärehellinen</ar>
-<ar><k>dishonesty</k>
-epärehellisyys</ar>
-<ar><k>dishonour</k>
-häpeissään, häpäistä, kunniattomuus</ar>
-<ar><k>dishonourable</k>
-kunniaton</ar>
-<ar><k>disinfect</k>
-desinfioida</ar>
-<ar><k>disinfectant</k>
-desinfioimisaine</ar>
-<ar><k>disinfection</k>
-desinfektio</ar>
-<ar><k>disinherit</k>
-tehdä perinnöttömäksi</ar>
-<ar><k>disintegrate</k>
-rapautua</ar>
-<ar><k>disintegration</k>
-hajaannus, hajoaminen</ar>
-<ar><k>disinterested</k>
-puolueeton</ar>
-<ar><k>disk</k>
-kiekko</ar>
-<ar><k>dislike</k>
-vastenmielisyys</ar>
-<ar><k>disloyal</k>
-epälojaali, uskoton</ar>
-<ar><k>disloyalty</k>
-epälojaalisuus</ar>
-<ar><k>dismal</k>
-ankea, kolkko, surkea</ar>
-<ar><k>dismantle</k>
-purkaa (kone ym)</ar>
-<ar><k>dismissal</k>
-erottaminen (toimesta), poislähettäminen</ar>
-<ar><k>disobedience</k>
-tottelemattomuus</ar>
-<ar><k>disobedient</k>
-tottelematon</ar>
-<ar><k>disorder</k>
-epäjärjestys, epäkunto, häiriö, hämminki, sekaannus, sekasorto</ar>
-<ar><k>disorderly conduct</k>
-hulinointi, ilkivalta, rähinöinti</ar>
-<ar><k>disparage</k>
-väheksyä</ar>
-<ar><k>dispassionate</k>
-intohimoton, kiihkoton</ar>
-<ar><k>dispatch</k>
-laivata, lähettää, lähetys</ar>
-<ar><k>dispel</k>
-hälventää, karkottaa (kuv)</ar>
-<ar><k>dispensation</k>
-erivapautus</ar>
-<ar><k>dispenser</k>
-farmaseutti</ar>
-<ar><k>dispensing roll</k>
-värinsyöttötela</ar>
-<ar><k>disperse</k>
-hajottaa, hälventää</ar>
-<ar><k>dispersion</k>
-hajonta, hälveneminen</ar>
-<ar><k>displacement of population</k>
-väestönsiirto</ar>
-<ar><k>display</k>
-näyttely, näytös, näyttö
-
-näyttää, esittää</ar>
-<ar><k>displeased</k>
-tyytymätön</ar>
-<ar><k>displeasure</k>
-harmi, mielipaha, tyytymättömyys</ar>
-<ar><k>disposable</k>
-kertakäyttö, kertakäytöinen</ar>
-<ar><k>disposal</k>
-purkaminen (pommin ym)</ar>
-<ar><k>disposed</k>
-suosiollinen</ar>
-<ar><k>disposed to</k>
-altis (taipuvainen)</ar>
-<ar><k>disposition</k>
-luonne, luonnonlaatu, mielenlaatu</ar>
-<ar><k>disproportion</k>
-epäsuhde</ar>
-<ar><k>disproportionate</k>
-epäsuhtainen, suhteeton</ar>
-<ar><k>dispute</k>
-väittely
-
-eittää, kiista, kiistellä, kiistää, sanakiista, väitellä</ar>
-<ar><k>disputed</k>
-kiistanalainen</ar>
-<ar><k>disqualification</k>
-jäävääminen</ar>
-<ar><k>disqualified</k>
-esteellinen (jäävi), jäävi, kilpailukelvoton</ar>
-<ar><k>disreputable</k>
-huonomaineinen</ar>
-<ar><k>disrepute</k>
-huonomaineisuus</ar>
-<ar><k>disrespectful</k>
-epäkunnioittava</ar>
-<ar><k>disruption of traffic</k>
-liikennehäiriö</ar>
-<ar><k>dissatisfaction</k>
-epämieltymys, viihtymättömyys</ar>
-<ar><k>dissatisfied</k>
-tyytymätön</ar>
-<ar><k>dissecting-room</k>
-anatomiasali</ar>
-<ar><k>dissenter</k>
-lahkolainen</ar>
-<ar><k>dissimilar</k>
-erilaatuinen, erilainen</ar>
-<ar><k>dissimilarity</k>
-erinäköisyys</ar>
-<ar><k>dissipate</k>
-hajottaa</ar>
-<ar><k>dissolute</k>
-irstas</ar>
-<ar><k>dissolution</k>
-hajaannus, hajoaminen, purkaminen (liiton ym)</ar>
-<ar><k>dissolve</k>
-hajota, liuentaa, liueta, liuottaa</ar>
-<ar><k>dissyllabic</k>
-kaksitavuinen</ar>
-<ar><k>distance</k>
-etäisyys, väli
-
-etäisyys</ar>
-<ar><k>distant</k>
-etäinen, kaukainen, syrjäinen</ar>
-<ar><k>distemper</k>
-liimamaali</ar>
-<ar><k>distend</k>
-laajentua (fys), pullistaa</ar>
-<ar><k>distil</k>
-tislata</ar>
-<ar><k>distilation</k>
-tislaus</ar>
-<ar><k>distiller</k>
-tislaaja</ar>
-<ar><k>distinct</k>
-selvä, selvästi (erotetettu)</ar>
-<ar><k>distinction</k>
-erotus</ar>
-<ar><k>distinctly</k>
-selvästi</ar>
-<ar><k>distinctness</k>
-selkeys</ar>
-<ar><k>distinguish</k>
-erottaa (osata erottaa)</ar>
-<ar><k>distinguish oneself</k>
-kunnostautua</ar>
-<ar><k>distinguished</k>
-etevä</ar>
-<ar><k>distort</k>
-vääristää</ar>
-<ar><k>distorted</k>
-kiero, vino</ar>
-<ar><k>distorted picture</k>
-harhakuva, irvikuva</ar>
-<ar><k>distortion</k>
-vääristymä, kierous</ar>
-<ar><k>distracting</k>
-hämmentävä</ar>
-<ar><k>distraint</k>
-ulosotto</ar>
-<ar><k>distress signal</k>
-hätämerkki</ar>
-<ar><k>distressed</k>
-hädissään, hädänalainen, hätääkärsivä</ar>
-<ar><k>distressing</k>
-huolenalainen</ar>
-<ar><k>distribute</k>
-jaella</ar>
-<ar><k>distribution</k>
-jakautuma, jakelu, jako</ar>
-<ar><k>distribution board</k>
-jakotaulu</ar>
-<ar><k>distributor</k>
-jakaja, jakelija, virranjakaja</ar>
-<ar><k>district</k>
-alue (piiri), kunta, piiri (alue)</ar>
-<ar><k>district court session</k>
-käräjät</ar>
-<ar><k>district heating</k>
-kaukolämmitys</ar>
-<ar><k>distrust</k>
-epäluulo</ar>
-<ar><k>distrustful</k>
-epäilevä, epäluuloinen, luulevainen</ar>
-<ar><k>disturb</k>
-häiritä</ar>
-<ar><k>disturbingly</k>
-häiritsevästi</ar>
-<ar><k>ditch</k>
-oja, kaivanto
-
-ojittaa</ar>
-<ar><k>ditching</k>
-ojitus</ar>
-<ar><k>divan</k>
-leposohva</ar>
-<ar><k>dive</k>
-sukeltaa, syöksyä</ar>
-<ar><k>diver</k>
-sukeltaja</ar>
-<ar><k>diverge</k>
-poiketa</ar>
-<ar><k>divergence</k>
-eroavaisuus, poikkeavuus</ar>
-<ar><k>divergent</k>
-erisuuntaisuus, poikkeava</ar>
-<ar><k>diverging</k>
-erisuuntainen</ar>
-<ar><k>diversion</k>
-hauskutus, huvitus, viihdyke, viihdytys</ar>
-<ar><k>diversity</k>
-monenlaisuus</ar>
-<ar><k>diverter</k>
-suuntain, portti</ar>
-<ar><k>divide</k>
-jakautua, jakaa</ar>
-<ar><k>divide evenly</k>
-tasata</ar>
-<ar><k>divided in opinon</k>
-erimielinen</ar>
-<ar><k>dividend</k>
-jaettava (mat), jakoosuus, osinko</ar>
-<ar><k>divider</k>
-jakaja</ar>
-<ar><k>divisibility</k>
-jaettavuus, jaollisuus</ar>
-<ar><k>divisible by</k>
-jaollinen</ar>
-<ar><k>division</k>
-divisioona, jako, jakolasku, jaosto</ar>
-<ar><k>division into two</k>
-kahtiajako</ar>
-<ar><k>divisor</k>
-jakaja (mat)</ar>
-<ar><k>divorce</k>
-avioero</ar>
-<ar><k>divorced</k>
-eronnut (puolisosta)</ar>
-<ar><k>dizziness</k>
-huimaus, pyörrytys</ar>
-<ar><k>dizzy</k>
-huimava</ar>
-<ar><k>do</k>
-kelvata, suorittaa, tehdä, toimittaa</ar>
-<ar><k>do business</k>
-asioida</ar>
-<ar><k>do carelessly</k>
-hutiloida</ar>
-<ar><k>do damage</k>
-aikaanvahinkoa</ar>
-<ar><k>do damage to</k>
-vikuuttaa</ar>
-<ar><k>do gymnastic execises</k>
-voimistella</ar>
-<ar><k>do not</k>
-älkää, älä</ar>
-<ar><k>do up</k>
-kunnostaa</ar>
-<ar><k>do well</k>
-pärjätä</ar>
-<ar><k>dock</k>
-satama, sulkutelakka, telakka, tokka
-
-telakoida, typistää</ar>
-<ar><k>dock-worker</k>
-satamatyöläinen</ar>
-<ar><k>docker</k>
-satamatyöläinen</ar>
-<ar><k>docking</k>
-telakointi</ar>
-<ar><k>docks</k>
-telakka</ar>
-<ar><k>doctor</k>
-lääkäri, tohtori</ar>
-<ar><k>doctor blade</k>
-puhdistuslevy, irrotinlevy, kaavin</ar>
-<ar><k>doctrine</k>
-oppi</ar>
-<ar><k>document</k>
-asiakirja, originaali, kohde</ar>
-<ar><k>document belt</k>
-valotus-hihna</ar>
-<ar><k>document case</k>
-salkku</ar>
-<ar><k>document clamp</k>
-kohdelevy</ar>
-<ar><k>document cover</k>
-valotuskansi</ar>
-<ar><k>document feeder</k>
-kohteensyöttölaite</ar>
-<ar><k>document glass</k>
-valotuslasi</ar>
-<ar><k>document tray</k>
-kohdealusta</ar>
-<ar><k>documentary film</k>
-dokumenttielokuva</ar>
-<ar><k>dodge</k>
-metku, temppu</ar>
-<ar><k>dog</k>
-koira</ar>
-<ar><k>dog lead</k>
-talutushihna</ar>
-<ar><k>dog sleigh</k>
-ahkio</ar>
-<ar><k>dog team</k>
-koiravaljakko</ar>
-<ar><k>dog-breeder</k>
-koirankasvattaja</ar>
-<ar><k>dog-licence</k>
-koiravero</ar>
-<ar><k>dogma</k>
-oppilause</ar>
-<ar><k>dogmatics</k>
-dogmatiikka, uskonoppi</ar>
-<ar><k>doing</k>
-tekeminen</ar>
-<ar><k>doll</k>
-hempukka, nukke</ar>
-<ar><k>dollar</k>
-dollari</ar>
-<ar><k>dolphin</k>
-delfiini</ar>
-<ar><k>dolt</k>
-tomppeli</ar>
-<ar><k>dome</k>
-kupoli</ar>
-<ar><k>domestic</k>
-kotimainen</ar>
-<ar><k>domestic help</k>
-talousapulainen</ar>
-<ar><k>domestic politics</k>
-sisäpolitiikka</ar>
-<ar><k>domestic trouble</k>
-perhehuolet</ar>
-<ar><k>domesticated</k>
-kesyyntyä</ar>
-<ar><k>domicile</k>
-asuinpaikka, kotipaikka</ar>
-<ar><k>dominate</k>
-dominoida</ar>
-<ar><k>domination</k>
-herruus, valta</ar>
-<ar><k>domineering</k>
-topakka</ar>
-<ar><k>domino</k>
-domino</ar>
-<ar><k>don't come it</k>
-älä yhtään yritä [puhek.]</ar>
-<ar><k>donate</k>
-lahjoittaa</ar>
-<ar><k>donation</k>
-lahjoitus</ar>
-<ar><k>donkey</k>
-aasi</ar>
-<ar><k>donor</k>
-antaja, lahjoittaja</ar>
-<ar><k>doom</k>
-kadotus</ar>
-<ar><k>door</k>
-luukku (uunin), ovi</ar>
-<ar><k>door-bell</k>
-ovikello</ar>
-<ar><k>door-way</k>
-oviaukko</ar>
-<ar><k>doormat</k>
-kynnysmatto</ar>
-<ar><k>dormer windows</k>
-katon pystyikkunat</ar>
-<ar><k>dormitory</k>
-asuntola, makusali</ar>
-<ar><k>dormitory accomodation</k>
-yhteismajoitus</ar>
-<ar><k>dose</k>
-annos (lääkettä)</ar>
-<ar><k>dot</k>
-pilkku, , piste
-
-pilkuttaa</ar>
-<ar><k>dotard</k>
-höperö (vanha)</ar>
-<ar><k>dotted</k>
-pisteviiva, pilkullinen</ar>
-<ar><k>dotted line</k>
-pisteviiva</ar>
-<ar><k>dotty</k>
-hassahtava</ar>
-<ar><k>double</k>
-kahdentaa, kahdistaa, kaksinkertaistaa
-
-kahdenkertainen, kaksinkertainen</ar>
-<ar><k>double branch</k>
-kaksoishaarayhde</ar>
-<ar><k>double chin</k>
-kaksoisleuka</ar>
-<ar><k>double consonant</k>
-kaksoiskerake</ar>
-<ar><k>double life</k>
-kaksoiselämä</ar>
-<ar><k>double-barrelled</k>
-kaksipiippuinen</ar>
-<ar><k>double-bass</k>
-kontrabasso</ar>
-<ar><k>double-dealing</k>
-vilppi</ar>
-<ar><k>double-edged</k>
-kaksiteräinen</ar>
-<ar><k>double-track</k>
-kaksiraiteinen</ar>
-<ar><k>doubling</k>
-kaksinnos</ar>
-<ar><k>doubt</k>
-epäillä</ar>
-<ar><k>doubter</k>
-epäilejä</ar>
-<ar><k>doubtful</k>
-epäillätävä, epäröivä</ar>
-<ar><k>doubting</k>
-epäileminen</ar>
-<ar><k>dough</k>
-taikina</ar>
-<ar><k>dove</k>
-kyyhkynen</ar>
-<ar><k>dovecote</k>
-kyyhkyalakka</ar>
-<ar><k>dovetail</k>
-sinkkaus</ar>
-<ar><k>dowel</k>
-ohjaustappi</ar>
-<ar><k>down</k>
-alas, alaspäin, haituva, haiven (karva), untuva</ar>
-<ar><k>down below</k>
-alhaalla</ar>
-<ar><k>down in the dumps</k>
-aivan maassa [puhek.]</ar>
-<ar><k>down in the mouth</k>
-masentunut [puhek.]</ar>
-<ar><k>down the drain</k>
-roskikseen joutuva [puhek.]</ar>
-<ar><k>down-town section</k>
-kantakaupunki</ar>
-<ar><k>downfall</k>
-häviö (kukistuminen)</ar>
-<ar><k>downhill</k>
-viettävä</ar>
-<ar><k>downhill race</k>
-syöksylasku (urh)</ar>
-<ar><k>downpour</k>
-kaatosade, rankkasade</ar>
-<ar><k>downright</k>
-suorastaan</ar>
-<ar><k>downward slope</k>
-alamäki</ar>
-<ar><k>downward trend</k>
-laskusuhdanne</ar>
-<ar><k>downwards</k>
-alas, alaspäin</ar>
-<ar><k>doze</k>
-horros (kevyt), torkahdus</ar>
-<ar><k>doze off</k>
-torkahtaa</ar>
-<ar><k>dozen</k>
-tusina</ar>
-<ar><k>draft</k>
-asete (liik), tratta (liik), veto</ar>
-<ar><k>draftsman</k>
-piirtäjä</ar>
-<ar><k>drag</k>
-laahustaa, naarata, raahata, retuuttaa, vetää (laahata)
-
-kitka</ar>
-<ar><k>dragline</k>
-ruoppaaja</ar>
-<ar><k>dragon</k>
-lohikäärme</ar>
-<ar><k>dragon-fly</k>
-sudenkorento</ar>
-<ar><k>dragoon</k>
-rakuuna</ar>
-<ar><k>drain</k>
-dreeni, laskuoja, viemäri</ar>
-<ar><k>drain-pipe</k>
-viemäriputki</ar>
-<ar><k>drain-trap</k>
-hajulukko</ar>
-<ar><k>drainage</k>
-kuivatus</ar>
-<ar><k>draining</k>
-kuivatus, ojitus</ar>
-<ar><k>draining board</k>
-kuivaushylly</ar>
-<ar><k>drainpipe</k>
-ränni
-
-viemäriputki</ar>
-<ar><k>drake</k>
-ankka (koiras)</ar>
-<ar><k>drama</k>
-draama, näytelmä</ar>
-<ar><k>dramatic</k>
-draamallinen, dramaattinen</ar>
-<ar><k>dramatize</k>
-dramatisoida</ar>
-<ar><k>draper's shop</k>
-kangaskauppa</ar>
-<ar><k>drapes</k>
-uudin, ikkunaverho</ar>
-<ar><k>drastic</k>
-repäisevä</ar>
-<ar><k>draught</k>
-kulaus, syväys</ar>
-<ar><k>draughts</k>
-tammipeli</ar>
-<ar><k>draughty</k>
-vetoinen</ar>
-<ar><k>draw</k>
-kyhäillä (kirjoittaa), piirtää, piirustaa, vetää</ar>
-<ar><k>draw a conclusion</k>
-tehdä johtopäätös</ar>
-<ar><k>draw a map of</k>
-kartoittaa</ar>
-<ar><k>draw away</k>
-loitota</ar>
-<ar><k>draw breathe</k>
-henkäistä</ar>
-<ar><k>draw farther away</k>
-etääntyä</ar>
-<ar><k>draw in ones horns</k>
-sulaa vähän [puhek.]</ar>
-<ar><k>draw lots</k>
-arpoa</ar>
-<ar><k>draw near</k>
-lähestyä, lähetä</ar>
-<ar><k>draw up</k>
-kyhätä, laatia, pysähtyä</ar>
-<ar><k>drawback</k>
-epäkohta, haitta</ar>
-<ar><k>drawbridge</k>
-laskusilta</ar>
-<ar><k>drawer</k>
-vetolaatikko</ar>
-<ar><k>drawerer</k>
-piirtäjä</ar>
-<ar><k>drawers</k>
-alushousut</ar>
-<ar><k>drawing</k>
-piirustus</ar>
-<ar><k>drawing ink</k>
-tussi</ar>
-<ar><k>drawing of lots</k>
-arvonta</ar>
-<ar><k>drawing up</k>
-laadinta</ar>
-<ar><k>drawing-pin</k>
-painonasta, painonasta</ar>
-<ar><k>drawing-room</k>
-sali, salonki</ar>
-<ar><k>draws</k>
-alushousut</ar>
-<ar><k>dread</k>
-kammota, pelätä</ar>
-<ar><k>dreadful</k>
-hirmuinen, hirveä, kamala, kauhea</ar>
-<ar><k>dreadfully</k>
-hirmuisen</ar>
-<ar><k>dreadfulness</k>
-hirmuisuus, kauheus</ar>
-<ar><k>dream</k>
-unelma, uni
-
-unelmoida</ar>
-<ar><k>dream about</k>
-uneksia</ar>
-<ar><k>dream of</k>
-uneksia</ar>
-<ar><k>dreamer</k>
-haaveilija</ar>
-<ar><k>dreamingly</k>
-haaveelisesti</ar>
-<ar><k>dreamy</k>
-haaveellinen</ar>
-<ar><k>dreariness</k>
-synkkyys</ar>
-<ar><k>dreary</k>
-ankea, kolkko</ar>
-<ar><k>dredge</k>
-ruopata</ar>
-<ar><k>dredging</k>
-ruoppaus</ar>
-<ar><k>dregs</k>
-hylkyjoukko, poro (sakka), rapa, sakka</ar>
-<ar><k>drenched</k>
-läpimärkä</ar>
-<ar><k>dress</k>
-hame (puku), leninki, asu (puku)
-
-pukea, rikastaa, vaatettaa</ar>
-<ar><k>dress coat</k>
-frakki</ar>
-<ar><k>dress oneself</k>
-pukeutua</ar>
-<ar><k>dress up</k>
-koristautua</ar>
-<ar><k>dress-rehearsal</k>
-kenraaliharjoitus</ar>
-<ar><k>dressing</k>
-haavaside</ar>
-<ar><k>dressing gown</k>
-aamutakki</ar>
-<ar><k>dressing room</k>
-pukuhuone</ar>
-<ar><k>dressing-room</k>
-pukuhuone</ar>
-<ar><k>dressmaker</k>
-ompelija</ar>
-<ar><k>dribble</k>
-kuolata</ar>
-<ar><k>dried fish</k>
-kapakala</ar>
-<ar><k>drift</k>
-ajautua, ajelehtia</ar>
-<ar><k>drift of snow</k>
-nietos</ar>
-<ar><k>drift-ice</k>
-ajojää</ar>
-<ar><k>drift-sand</k>
-ajohiekka</ar>
-<ar><k>drifter</k>
-nahjus</ar>
-<ar><k>drifters</k>
-irtolaisväestö</ar>
-<ar><k>driftsand</k>
-lentohiekka</ar>
-<ar><k>drill</k>
-porakone
-
-pora, porata, kairata</ar>
-<ar><k>drilling machine</k>
-porakone</ar>
-<ar><k>drink</k>
-juoma, ryyppyy
-
-juopotella, ryypiskellä</ar>
-<ar><k>drink noisily</k>
-hörppiä</ar>
-<ar><k>drinker</k>
-juopottelija, juoppo</ar>
-<ar><k>drinking vessel</k>
-juomaastia</ar>
-<ar><k>drinking-bout</k>
-juomingit</ar>
-<ar><k>drip</k>
-tiputus
-
-pisaroida, tippua</ar>
-<ar><k>drive</k>
-ajotie, ajoretki, veto
-
-ajaa, kyyditä, ohjata (autoa)</ar>
-<ar><k>drive away</k>
-karkottaa</ar>
-<ar><k>drive chain</k>
-käyttöketju</ar>
-<ar><k>drive clutch</k>
-vetokytkin</ar>
-<ar><k>drive mad</k>
-raivostuttaa</ar>
-<ar><k>drive out</k>
-manata</ar>
-<ar><k>drive shaft</k>
-kardiaaniakseli (auton), vetoakseli</ar>
-<ar><k>drivel</k>
-höpsiä</ar>
-<ar><k>driver</k>
-ajaja, autonajaja, kuljettaja</ar>
-<ar><k>driving belt</k>
-käyttöhihna</ar>
-<ar><k>driving licence</k>
-ajokortti</ar>
-<ar><k>driving speed</k>
-ajonopeus</ar>
-<ar><k>driving test</k>
-ajokoe</ar>
-<ar><k>drizzle</k>
-tihkusade, vihma</ar>
-<ar><k>droll</k>
-hassunkurinen, hullunkurinen (lystikäs)</ar>
-<ar><k>drone</k>
-kuhnuri (zo), laiskuri</ar>
-<ar><k>droop</k>
-painua, vaipua</ar>
-<ar><k>drop</k>
-pudotus
-
-pisara, tippa, aleniminen
-
-aleta, hervota, pudota, pudottaa, tipahtaa, tippua, tiputtaa</ar>
-<ar><k>drop a clanger</k>
-munata [puhek.]</ar>
-<ar><k>drop hammer</k>
-paalujuntta</ar>
-<ar><k>drop of water</k>
-vesipisara</ar>
-<ar><k>dropping</k>
-aleneva, lanta (linnun)</ar>
-<ar><k>dross</k>
-kuona (kuv)</ar>
-<ar><k>drought</k>
-kuivuus (kuiva sää)</ar>
-<ar><k>drove</k>
-lauma</ar>
-<ar><k>drown</k>
-hukkua (veteen), hukuttaa</ar>
-<ar><k>drown oneself</k>
-hukuttautua</ar>
-<ar><k>drowse</k>
-torkkua</ar>
-<ar><k>drowsy</k>
-unelias</ar>
-<ar><k>drudge</k>
-raataa</ar>
-<ar><k>drudgery</k>
-raadanta</ar>
-<ar><k>drug</k>
-päihdeaine, rohto</ar>
-<ar><k>drum</k>
-rumpu</ar>
-<ar><k>drummer</k>
-rumpali</ar>
-<ar><k>drunk</k>
-humalainen, juoppo
-
-humalassa, juovuksissa</ar>
-<ar><k>drunkard</k>
-juomari, juoppo</ar>
-<ar><k>drunken driver</k>
-rattijuoppo</ar>
-<ar><k>drunkenness</k>
-juoppous, juopumus</ar>
-<ar><k>dry</k>
-kuivata, kuivattaa, kuivua
-
-kuiva, kuivakiskoinen</ar>
-<ar><k>dry as dust</k>
-rutikuiva</ar>
-<ar><k>dry cough</k>
-köhinä</ar>
-<ar><k>dry imager</k>
-värijauhe</ar>
-<ar><k>dry rot</k>
-kuiva laho</ar>
-<ar><k>dry up</k>
-kuivettua</ar>
-<ar><k>dry weather</k>
-pouta</ar>
-<ar><k>dry-dock</k>
-kuivatelakka</ar>
-<ar><k>dry-ice</k>
-hiilihappojää</ar>
-<ar><k>dryer</k>
-kuivauslaite</ar>
-<ar><k>drying</k>
-kuivatus</ar>
-<ar><k>drying up</k>
-ehtyminen</ar>
-<ar><k>drying-cloth</k>
-astiapyyhe</ar>
-<ar><k>drying-house</k>
-riihi</ar>
-<ar><k>drying-hurdle</k>
-haasia</ar>
-<ar><k>dryness</k>
-kuivuus</ar>
-<ar><k>dual</k>
-kaksinainen</ar>
-<ar><k>dubious</k>
-epäillätävä</ar>
-<ar><k>duchess</k>
-herttuatar</ar>
-<ar><k>duck</k>
-ankka, sorsa</ar>
-<ar><k>duck a date</k>
-jäädä pois treffeiltä [puhek.]</ar>
-<ar><k>duck shooting</k>
-sorsastus</ar>
-<ar><k>duckling</k>
-sorsanpoika</ar>
-<ar><k>ducky</k>
-kullanmuru</ar>
-<ar><k>duct</k>
-kanava, johdin (anat), tiehyt</ar>
-<ar><k>dud</k>
-katteeton</ar>
-<ar><k>due</k>
-arvonmukainen, langennut, saatava</ar>
-<ar><k>due to</k>
-johtua jstk</ar>
-<ar><k>duel</k>
-kaksintaistelu</ar>
-<ar><k>duet</k>
-duetto (mus)</ar>
-<ar><k>duffle-coat</k>
-nappulatakki</ar>
-<ar><k>dugout</k>
-korsu</ar>
-<ar><k>duke</k>
-herttua</ar>
-<ar><k>dukery</k>
-herttuakunta</ar>
-<ar><k>dull</k>
-hiljainen (liik), himmeä (kiilloton), ikävä, kiilloton, kuivakiskoinen, kumea, laimea (liik), tylsä, vaisu</ar>
-<ar><k>dull day</k>
-pilvinen</ar>
-<ar><k>dull sound</k>
-kumahdus</ar>
-<ar><k>dull-witted</k>
-kovapäinen</ar>
-<ar><k>dullness</k>
-himmenys, hiomattomuus</ar>
-<ar><k>duly</k>
-asianmukaisesti</ar>
-<ar><k>dumb</k>
-mykkä</ar>
-<ar><k>dumb show</k>
-pantomiimi</ar>
-<ar><k>dumbfound</k>
-hölmistyttää, tyrmistyttää, ällistyttää</ar>
-<ar><k>dummy</k>
-tutti
-
-vale-, keinotekoinen</ar>
-<ar><k>dun</k>
-karhuta</ar>
-<ar><k>dunce</k>
-hupsu</ar>
-<ar><k>dung</k>
-lanta, sonta</ar>
-<ar><k>dungarees</k>
-haalari</ar>
-<ar><k>dungeon</k>
-tyrmä</ar>
-<ar><k>dupe</k>
-houkka
-
-huiputtaa</ar>
-<ar><k>duplex</k>
-kaksipuoliskopiointi-, dupleksi-</ar>
-<ar><k>duplicate</k>
-kaksoiskappale, moniste, kopio
-
-monistaa</ar>
-<ar><k>duplicator</k>
-monistuskone</ar>
-<ar><k>durability</k>
-kestävyys</ar>
-<ar><k>durable</k>
-kestävä, vahva (kestävä)</ar>
-<ar><k>duralumin</k>
-duralumiini</ar>
-<ar><k>duration</k>
-kesto</ar>
-<ar><k>dusk</k>
-iltahämy, hämärä</ar>
-<ar><k>dusky</k>
-hämärä</ar>
-<ar><k>dust</k>
-pöly</ar>
-<ar><k>dustbin</k>
-roskalaatikko</ar>
-<ar><k>duster</k>
-pölyriepu</ar>
-<ar><k>dusting pouch</k>
-talkkipussi</ar>
-<ar><k>dusty</k>
-pölyinen</ar>
-<ar><k>dutiful</k>
-kuuliainen</ar>
-<ar><k>duty</k>
-askare, homma, palvelus, päivystys, tehtävä, tullimaksu</ar>
-<ar><k>duty-bound</k>
-velvollinen</ar>
-<ar><k>duty-free</k>
-tulliton, tullivapaa</ar>
-<ar><k>dwarf</k>
-kääpiö</ar>
-<ar><k>dwarfed</k>
-kääpiömäinen</ar>
-<ar><k>dwell</k>
-asustaa</ar>
-<ar><k>dwelling</k>
-asumus, asunto</ar>
-<ar><k>dwelling-house</k>
-asuinrakennus</ar>
-<ar><k>dwelling-place</k>
-asuinsija</ar>
-<ar><k>dwindle</k>
-huveta, kutistua (vähiin)</ar>
-<ar><k>dye</k>
-värjätä</ar>
-<ar><k>dyer</k>
-värjäri</ar>
-<ar><k>dying fire</k>
-hiillos</ar>
-<ar><k>dyke</k>
-lesbo [puhek.]</ar>
-<ar><k>dynamic</k>
-dynaaminen</ar>
-<ar><k>dynamite</k>
-dynamiitti</ar>
-<ar><k>each one</k>
-itsekukin, jokainen (kukin)</ar>
-<ar><k>each time</k>
-joka kerran kun</ar>
-<ar><k>eager</k>
-ahne (halukas), innokas</ar>
-<ar><k>eagerly</k>
-innostuneesti</ar>
-<ar><k>eagerness</k>
-halukkuus, innokkuus, into</ar>
-<ar><k>eagerness to learn</k>
-opinhalu</ar>
-<ar><k>eagle</k>
-kotka</ar>
-<ar><k>eagle-owl</k>
-huuhkaja</ar>
-<ar><k>eaglet</k>
-kotkanpoika</ar>
-<ar><k>ear</k>
-korva, tähkä</ar>
-<ar><k>ear lobe</k>
-korvannipukka</ar>
-<ar><k>ear specialist</k>
-korvalääkäri</ar>
-<ar><k>ear-drum</k>
-tärykalvo</ar>
-<ar><k>ear-splitting</k>
-korviasärkevä</ar>
-<ar><k>ear-wax</k>
-vaikku</ar>
-<ar><k>earl</k>
-kreivi</ar>
-<ar><k>earlier</k>
-aikaisemmin, aikaisempi, ennemmin, entinen (aikaisempi)</ar>
-<ar><k>earliest</k>
-aikaisimmin, ensi (aikaisin)</ar>
-<ar><k>earliness</k>
-aikaisuus</ar>
-<ar><k>early</k>
-aikainen, aikaisin, varhain, varhainen</ar>
-<ar><k>early part of summer</k>
-alkukesä</ar>
-<ar><k>earn</k>
-ansaita</ar>
-<ar><k>earned income</k>
-ansiotulo</ar>
-<ar><k>earnest</k>
-totinen</ar>
-<ar><k>earnestly</k>
-hartaasti</ar>
-<ar><k>earnings</k>
-tuotot</ar>
-<ar><k>earth</k>
-maattaa (tekn)
-
-maajohto, maaperä, multa, maa</ar>
-<ar><k>earth over</k>
-mullata</ar>
-<ar><k>earth tremor</k>
-maanjäristys</ar>
-<ar><k>earthed</k>
-maadoitettu, maatettu</ar>
-<ar><k>earthing</k>
-maadoitus</ar>
-<ar><k>earthly</k>
-maallinen</ar>
-<ar><k>earthquake</k>
-maanjäristys</ar>
-<ar><k>earthworm</k>
-kastemato</ar>
-<ar><k>ease</k>
-huojentaa, keventää, lievittää</ar>
-<ar><k>ease up</k>
-hellittää (päästää), lieventyä</ar>
-<ar><k>easily</k>
-helposti, hevillä</ar>
-<ar><k>easily affected</k>
-herkkätunteinen</ar>
-<ar><k>easily moved to tears</k>
-herkkäitkuinen</ar>
-<ar><k>easily rocked</k>
-kiikkerä</ar>
-<ar><k>easiness</k>
-helppous</ar>
-<ar><k>east coast</k>
-itärannikko</ar>
-<ar><k>east side</k>
-itäpuoli</ar>
-<ar><k>easterly wind</k>
-itätuuli</ar>
-<ar><k>eastern</k>
-idänpuoleinen, itäinen, itämainen</ar>
-<ar><k>eastern frontier</k>
-itäraja</ar>
-<ar><k>eastern part</k>
-itäosa</ar>
-<ar><k>easternmost</k>
-itäisin</ar>
-<ar><k>easy</k>
-helppo, keveä, sujuva</ar>
-<ar><k>easy chair</k>
-laiskanlinna, lepotuoli</ar>
-<ar><k>easy life</k>
-laiskanpäivät</ar>
-<ar><k>easy make</k>
-helppo uhri [puhek.]</ar>
-<ar><k>eat</k>
-syödä</ar>
-<ar><k>eat into</k>
-syöpyä</ar>
-<ar><k>eat ravenously</k>
-ahmia</ar>
-<ar><k>eat well</k>
-herkutella</ar>
-<ar><k>eatable</k>
-syötävä</ar>
-<ar><k>eaves</k>
-katonräystäs, räystäs</ar>
-<ar><k>eavesdropper</k>
-salakuuntelija</ar>
-<ar><k>ebb</k>
-luode (pakovesi), pakovesi</ar>
-<ar><k>ebonite</k>
-eboniitti</ar>
-<ar><k>ebony</k>
-eebenpuu</ar>
-<ar><k>eccentric</k>
-epäkesko, epäkeskinen</ar>
-<ar><k>eccentrical</k>
-epäkeskeinen</ar>
-<ar><k>ecclesiastical</k>
-kirkollinen</ar>
-<ar><k>echo</k>
-kaiku
-
-kaikua</ar>
-<ar><k>echo-sounding</k>
-kaikuluotaus</ar>
-<ar><k>eclipse</k>
-ellipsi</ar>
-<ar><k>eclipse of the moon</k>
-kuunpimennys</ar>
-<ar><k>eclipse of the sun</k>
-auringonpimennys</ar>
-<ar><k>ecological</k>
-ekologinen</ar>
-<ar><k>ecology</k>
-ekologia</ar>
-<ar><k>economic</k>
-kansantaloudellinen, taloudellinen</ar>
-<ar><k>economic policy</k>
-talouspolitiikka</ar>
-<ar><k>economical</k>
-säästäväinen</ar>
-<ar><k>economics</k>
-kansantalous</ar>
-<ar><k>economist</k>
-talousmies</ar>
-<ar><k>economize</k>
-säästellä</ar>
-<ar><k>economy</k>
-talous</ar>
-<ar><k>ecstasy</k>
-hurma, hurmio, huuma (ilon)</ar>
-<ar><k>eczema</k>
-ihottuma</ar>
-<ar><k>edge</k>
-laide, parras, reuna, reunus, syrjä, särmä, terä, äyräs, ääri
-
-syrjätä, laita (sivu)</ar>
-<ar><k>edge banding</k>
-päätyreunus</ar>
-<ar><k>edge fadeout lamp</k>
-reunalamppu</ar>
-<ar><k>edge shutter</k>
-reunaverho</ar>
-<ar><k>edged</k>
-reunainen</ar>
-<ar><k>edging strip</k>
-räystäpellitys</ar>
-<ar><k>edible</k>
-syötävä</ar>
-<ar><k>edible root</k>
-juurikasvi</ar>
-<ar><k>edible roots</k>
-juurekset</ar>
-<ar><k>editing</k>
-leikkaus (elok)</ar>
-<ar><k>edition</k>
-painos</ar>
-<ar><k>editor</k>
-leikkaaja (elok), toimittaja</ar>
-<ar><k>educate</k>
-kouluttaa, valistaa</ar>
-<ar><k>education</k>
-koulutus</ar>
-<ar><k>educational film</k>
-opetuselokuva</ar>
-<ar><k>educationalist</k>
-pedagogi</ar>
-<ar><k>eec</k>
-yhteismarkkinat</ar>
-<ar><k>eel</k>
-ankerias</ar>
-<ar><k>eerie</k>
-aavemainen</ar>
-<ar><k>effect</k>
-vaikutus</ar>
-<ar><k>effective</k>
-tehokas, vaikuttava</ar>
-<ar><k>effectively</k>
-tehokkaasti</ar>
-<ar><k>effectiveness</k>
-tehokkuus, vaikuttavuus</ar>
-<ar><k>efficiency</k>
-hyötysuhde (tekn), tehokkuus</ar>
-<ar><k>efficient</k>
-tehokas</ar>
-<ar><k>efficiently</k>
-tehokkaasti</ar>
-<ar><k>effluent</k>
-jätevesi</ar>
-<ar><k>effort</k>
-yritys</ar>
-<ar><k>effrontery</k>
-häpeämättömyys, hävyttömyys, julkeus</ar>
-<ar><k>egg</k>
-muna</ar>
-<ar><k>egg cell</k>
-munasolu</ar>
-<ar><k>egg on</k>
-yllyttää</ar>
-<ar><k>eggshell</k>
-munankuori</ar>
-<ar><k>egocentric</k>
-itsekeskeinen</ar>
-<ar><k>egoism</k>
-itsekkyys</ar>
-<ar><k>egoistic</k>
-itsekäs</ar>
-<ar><k>eider</k>
-haahka, haahka</ar>
-<ar><k>eiderdown</k>
-haahkapeite</ar>
-<ar><k>eight</k>
-kahdeksan</ar>
-<ar><k>eighteen</k>
-kahdeksantoista</ar>
-<ar><k>eightfold</k>
-kahdeksankertainen</ar>
-<ar><k>eighth</k>
-kahdeksannes, kahdeksas</ar>
-<ar><k>eighty</k>
-kahdeksankymmentä</ar>
-<ar><k>eject motor</k>
-luovutusmoottori</ar>
-<ar><k>eject roll</k>
-luovutusrulla</ar>
-<ar><k>ejector-seat</k>
-heittoistuin</ar>
-<ar><k>elaborate</k>
-kehitellä
-
-huolellinen (viimeistelty)</ar>
-<ar><k>elapse</k>
-kulua (ajasta)</ar>
-<ar><k>elastic</k>
-joustava, kimmoinen, kuminauha, venyvä</ar>
-<ar><k>elasticity</k>
-joustavuus, kimmoisuus</ar>
-<ar><k>elbow</k>
-kyynärpää</ar>
-<ar><k>elbow-room</k>
-liikkumatila</ar>
-<ar><k>elect</k>
-valita (vaalissa)</ar>
-<ar><k>election</k>
-vaalit</ar>
-<ar><k>election campaign</k>
-vaalitaistelu</ar>
-<ar><k>election time</k>
-vaalikausi</ar>
-<ar><k>elector</k>
-vaaliruhtinas, valitsijamies</ar>
-<ar><k>electoral district</k>
-vaalipiiri</ar>
-<ar><k>electric cooker</k>
-sähköliesi</ar>
-<ar><k>electric fan</k>
-sähkötuuletin</ar>
-<ar><k>electric hammer</k>
-sähkövasara</ar>
-<ar><k>electric heating</k>
-sähkölämmitys</ar>
-<ar><k>electric shock</k>
-sähköisku</ar>
-<ar><k>electric train</k>
-sähköjuna</ar>
-<ar><k>electric wire</k>
-sähköjohto</ar>
-<ar><k>electrical appliance</k>
-sähkökoje</ar>
-<ar><k>electrical engineer</k>
-sähköinsinööri</ar>
-<ar><k>electrician</k>
-sähköasentaja, sähkömies</ar>
-<ar><k>electricity</k>
-sähkö</ar>
-<ar><k>electrode</k>
-elektrodi</ar>
-<ar><k>electrolysis</k>
-elektolyysi</ar>
-<ar><k>electron</k>
-elektroni</ar>
-<ar><k>electronics</k>
-elektroniikka</ar>
-<ar><k>electrostatic series</k>
-sähköstaattiset asetukset</ar>
-<ar><k>elegance</k>
-koreus (hienous)</ar>
-<ar><k>elegant</k>
-hieno, kuosikas, tyylikäs, aistikas (tyylikäs)</ar>
-<ar><k>elegantly</k>
-hienosti</ar>
-<ar><k>element</k>
-ainesosa, alkuaine</ar>
-<ar><k>elementary</k>
-alkeis-, perus-</ar>
-<ar><k>elementary course</k>
-alkeiskurssi</ar>
-<ar><k>elementary particle</k>
-alkeishiukkanen</ar>
-<ar><k>elementary school</k>
-kansakoulu</ar>
-<ar><k>elements</k>
-alkeet</ar>
-<ar><k>elephant</k>
-elefantti, norsu</ar>
-<ar><k>elevate</k>
-kohotattaa (nostaa), ylentää</ar>
-<ar><k>elevated</k>
-korkea (kuv), ylävä</ar>
-<ar><k>elevated railway</k>
-ilmarata</ar>
-<ar><k>elevation</k>
-julkisivu, kohotauma</ar>
-<ar><k>elevator</k>
-hissi, nostolaite, nosto-</ar>
-<ar><k>eleven</k>
-yksitoista</ar>
-<ar><k>eleventh</k>
-yhdestoista</ar>
-<ar><k>elf</k>
-keijukainen</ar>
-<ar><k>eligible</k>
-vaalikelpoinen</ar>
-<ar><k>eliminate</k>
-eliminoida, poistaa</ar>
-<ar><k>elimination course</k>
-karsintakurssi</ar>
-<ar><k>elite</k>
-eliitti, parhaimmisto</ar>
-<ar><k>elixir of life</k>
-elämänvesi</ar>
-<ar><k>elk</k>
-hirvi</ar>
-<ar><k>elm</k>
-jalava</ar>
-<ar><k>elocution</k>
-kaunoluku</ar>
-<ar><k>elocutionist</k>
-lausuja</ar>
-<ar><k>elongated</k>
-pitkulainen, pitkänomainen</ar>
-<ar><k>elope</k>
-karata (rakastunut pari)</ar>
-<ar><k>elsewhere</k>
-muualla, toisaalla</ar>
-<ar><k>emancipation</k>
-vapautus</ar>
-<ar><k>embankment</k>
-penger, pengerrys, valli</ar>
-<ar><k>embarass</k>
-saattaa (hämille)</ar>
-<ar><k>embarrassed</k>
-hämi, nolo</ar>
-<ar><k>embarrassment</k>
-hämmennys</ar>
-<ar><k>embassy</k>
-suurlähetystö</ar>
-<ar><k>ember</k>
-hiili (hehkuvat), hiillos</ar>
-<ar><k>embers</k>
-hiili (hehkuvat), hiillos</ar>
-<ar><k>embezzlement</k>
-kavallus</ar>
-<ar><k>embitter</k>
-katkeroittaa</ar>
-<ar><k>emblem</k>
-tunnus</ar>
-<ar><k>embrace</k>
-halata, syleillä</ar>
-<ar><k>embroider</k>
-kirjoa</ar>
-<ar><k>embroidery</k>
-kirjonta, koruompelu</ar>
-<ar><k>embroidery frame</k>
-ompelukehys</ar>
-<ar><k>embryo</k>
-alkio</ar>
-<ar><k>emerald</k>
-smaragdi</ar>
-<ar><k>emerge</k>
-ilmaantua (kuv), tulla (näkyviin)</ar>
-<ar><k>emerge from</k>
-ilmestyä (jstk)</ar>
-<ar><k>emergency brake</k>
-hätäjarru</ar>
-<ar><k>emergency measure</k>
-hätäkeino</ar>
-<ar><k>emigrant</k>
-emigrantti, siirtolainen</ar>
-<ar><k>emigration</k>
-maastamuutto</ar>
-<ar><k>emit</k>
-säteillä</ar>
-<ar><k>emotional</k>
-tunneperäinen, tunteellinen</ar>
-<ar><k>emperor</k>
-keisari</ar>
-<ar><k>emphasis</k>
-korostus</ar>
-<ar><k>emphasize</k>
-korostaa, painottaa, tähdentää</ar>
-<ar><k>emphatic</k>
-painokas, ponnekas</ar>
-<ar><k>emphatically</k>
-ponnekkaasti</ar>
-<ar><k>empire</k>
-keisarikunta</ar>
-<ar><k>employ</k>
-käyttää, työllistää</ar>
-<ar><k>employee</k>
-työntekijä</ar>
-<ar><k>employees</k>
-henkilökunta</ar>
-<ar><k>employer</k>
-työnantaja</ar>
-<ar><k>employment</k>
-työ</ar>
-<ar><k>employment exchange</k>
-työnvälitys</ar>
-<ar><k>empower</k>
-valtuulttaa</ar>
-<ar><k>emptiness</k>
-tyhjyys</ar>
-<ar><k>empty</k>
-tyhjentää
-
-katteeton, tyhjä</ar>
-<ar><k>emptying</k>
-tyhjennys</ar>
-<ar><k>emulsify</k>
-emulgoida</ar>
-<ar><k>emulsifying agent</k>
-emulgaattori</ar>
-<ar><k>emulsion</k>
-emulsio</ar>
-<ar><k>emulsion membrane</k>
-emulsiosively</ar>
-<ar><k>emulsion paint</k>
-emulsiomaali</ar>
-<ar><k>enamel</k>
-emaljoida
-
-emalji</ar>
-<ar><k>enamel paint</k>
-lakkamaali</ar>
-<ar><k>enamelled paper</k>
-liitupaperi</ar>
-<ar><k>encamp</k>
-leiriytyä</ar>
-<ar><k>encampment</k>
-leiri</ar>
-<ar><k>enchant</k>
-lumota</ar>
-<ar><k>enchantment</k>
-hurmaus, ihastus, lumotus</ar>
-<ar><k>encircle</k>
-saartaa, ympäröidä</ar>
-<ar><k>enclose</k>
-aidata, liittää, oheistaa, ympäröidä</ar>
-<ar><k>enclosure</k>
-liite (kirjeeseen), tarha</ar>
-<ar><k>encoder</k>
-kooderi</ar>
-<ar><k>encounter</k>
-kohdata, ottelu, yhteenotto</ar>
-<ar><k>encourage</k>
-rohkaista</ar>
-<ar><k>encouragement</k>
-rohkaisu</ar>
-<ar><k>encumbrance</k>
-rasite</ar>
-<ar><k>encyclopedia</k>
-tietosanakirja</ar>
-<ar><k>end</k>
-loppu, pätkä, pää (loppu), päättyminen
-
-lopettaa, päättää
-
-pääty</ar>
-<ar><k>end in itself</k>
-itsetarkoitus</ar>
-<ar><k>endanger</k>
-vaarantaa</ar>
-<ar><k>endeavour</k>
-pyrintö, pyrkimys
-
-koettaa, pyrkiä, koettaa, yrittää</ar>
-<ar><k>ending</k>
-pääte</ar>
-<ar><k>endless</k>
-loppumaton, loputon, ääretön</ar>
-<ar><k>endocrinology</k>
-endokrinologia</ar>
-<ar><k>endorsement</k>
-hyväksyminen</ar>
-<ar><k>endowment</k>
-säätiö</ar>
-<ar><k>endplay</k>
-päittäisvälys (akselin)</ar>
-<ar><k>endurance</k>
-kestävyys</ar>
-<ar><k>endure</k>
-kestää (sietää), kärsiä (kestää), sietää, sietää</ar>
-<ar><k>enduring</k>
-pysyvä</ar>
-<ar><k>enema syringe</k>
-peräruiske</ar>
-<ar><k>enemy</k>
-vihamies, vihollinen</ar>
-<ar><k>energetic</k>
-rivakka, toimintatarmoinen</ar>
-<ar><k>energise</k>
-kytkeä virta, vetää</ar>
-<ar><k>energy</k>
-energia, tarmo, toimintatarmo</ar>
-<ar><k>energy conservation</k>
-energiansäästö</ar>
-<ar><k>engage</k>
-palkata, pestata, tarttua</ar>
-<ar><k>engaged</k>
-varattu, olla työtilässä, olla kihloittu</ar>
-<ar><k>engaged to be married</k>
-kihlattu</ar>
-<ar><k>engagement</k>
-kihlaus, pestaus, ajanvaraus</ar>
-<ar><k>engagement ring</k>
-kihlasormus</ar>
-<ar><k>engine</k>
-kone, moottori, veturi</ar>
-<ar><k>engine failure</k>
-konevika</ar>
-<ar><k>engineer</k>
-insinööri, konemestari, pioneeri</ar>
-<ar><k>engineering</k>
-koneteollisuus, tekniikka</ar>
-<ar><k>english</k>
-englanninkielinen, englantilainen</ar>
-<ar><k>engrave</k>
-kaivertaa</ar>
-<ar><k>engraver</k>
-kaivertaja</ar>
-<ar><k>engraving</k>
-kaiverrus</ar>
-<ar><k>enhance</k>
-korottaa (hintaa)</ar>
-<ar><k>enigma</k>
-arvoitus</ar>
-<ar><k>enigmatic</k>
-arvoituksellinen</ar>
-<ar><k>enjoy</k>
-nauttia</ar>
-<ar><k>enjoy oneself</k>
-huvitella</ar>
-<ar><k>enjoyable</k>
-miellyttävä, nautinnollinen, nautittava</ar>
-<ar><k>enlarge</k>
-laajentaa, suurentaa, väljentää</ar>
-<ar><k>enlargement</k>
-laajennus, suurennus</ar>
-<ar><k>enlighten</k>
-valistaa</ar>
-<ar><k>enlightenment</k>
-valistus</ar>
-<ar><k>enlist</k>
-värvätä, värväytyä</ar>
-<ar><k>enlistment</k>
-värväys</ar>
-<ar><k>enliven</k>
-elvyttää, elähdyttää, innostaa, vilkastuttaa</ar>
-<ar><k>enoble</k>
-jalostaa</ar>
-<ar><k>enobling</k>
-jalostus</ar>
-<ar><k>enormous</k>
-jättiläiskokoinen, valtava, ääretön</ar>
-<ar><k>enough</k>
-tarpeeksi, riittävästi, kylliksi, riittää</ar>
-<ar><k>enough and to spare</k>
-yllin kyllin</ar>
-<ar><k>enquire</k>
-tiedustella</ar>
-<ar><k>enrapture</k>
-hurmata</ar>
-<ar><k>enrich</k>
-rikastuttaa</ar>
-<ar><k>enrolment</k>
-luettellointi</ar>
-<ar><k>ensure</k>
-turvata, varmistaa, varmistua</ar>
-<ar><k>enter</k>
-näpätä, astua sisään</ar>
-<ar><k>enterpreneur</k>
-yrittäjä</ar>
-<ar><k>enterprise</k>
-aloiteisyys</ar>
-<ar><k>entertain</k>
-hauskuttaa</ar>
-<ar><k>entertaining</k>
-huvittava</ar>
-<ar><k>entertainment duty</k>
-huvivero</ar>
-<ar><k>entertainment expenses</k>
-edustuskulut</ar>
-<ar><k>entertainment industry</k>
-huviala</ar>
-<ar><k>enthusiasm</k>
-innostus</ar>
-<ar><k>enthusiasm about</k>
-innostus</ar>
-<ar><k>enthusiasm for</k>
-innostus</ar>
-<ar><k>enthusiast</k>
-intoilija</ar>
-<ar><k>enthusiastic</k>
-innokas, intomielinen</ar>
-<ar><k>enthusiastic about</k>
-innostunut</ar>
-<ar><k>enthusiastically</k>
-innostuneesti</ar>
-<ar><k>entice</k>
-houkutella, viekoitella, vietellä</ar>
-<ar><k>enticement</k>
-houkutin, viekoitus</ar>
-<ar><k>entire</k>
-ehytlaitainen (bot), kaikki (koko), koko, kokonainen, täydellinen</ar>
-<ar><k>entirely</k>
-aivan (täysin), ihan, kerrassaan, kokonaan, tyyten, täydellisesti, täysin (kokonaan)</ar>
-<ar><k>entitle</k>
-oikeuttaa</ar>
-<ar><k>entitled</k>
-oikeutettu</ar>
-<ar><k>entrance</k>
-eteinen, ilmoittautuminen, pääsy (jhk), tulo-, suu-, syöttö-</ar>
-<ar><k>entrance hall</k>
-eteinen</ar>
-<ar><k>entrench</k>
-vallittaa</ar>
-<ar><k>entrenchment</k>
-vallitus</ar>
-<ar><k>entrust to</k>
-huoma (jättää)</ar>
-<ar><k>entry</k>
-tilierä</ar>
-<ar><k>entry permit</k>
-maahantulolupa</ar>
-<ar><k>enumerate</k>
-luetella</ar>
-<ar><k>envelop</k>
-ympäröidä</ar>
-<ar><k>envelope</k>
-kirjekuori</ar>
-<ar><k>enviable</k>
-kadehdittava</ar>
-<ar><k>envious</k>
-kade, kateellinen</ar>
-<ar><k>environment</k>
-ympäristö</ar>
-<ar><k>envoy</k>
-lähettiläs</ar>
-<ar><k>envy</k>
-kadehtia</ar>
-<ar><k>enzyme</k>
-entsyymi</ar>
-<ar><k>epic</k>
-eepos, eeppinen</ar>
-<ar><k>epidemic</k>
-epidemia, kulkutauti</ar>
-<ar><k>epiglottis</k>
-kurkunkansi</ar>
-<ar><k>epilepsy</k>
-kaatumatauti</ar>
-<ar><k>epileptic</k>
-kaatumatautinen</ar>
-<ar><k>epilogue</k>
-epilogi</ar>
-<ar><k>episode</k>
-episode</ar>
-<ar><k>epsom salts</k>
-karvassuola</ar>
-<ar><k>equal</k>
-tasavertainen, veroinen, yhtä suuri, yhtäläinen</ar>
-<ar><k>equality</k>
-yhdenvertaisuus</ar>
-<ar><k>equally</k>
-tasan, yhtä</ar>
-<ar><k>equation</k>
-yhtälö</ar>
-<ar><k>equator</k>
-päiväntasaaja</ar>
-<ar><k>equilibrium</k>
-tasapaino</ar>
-<ar><k>equip</k>
-varustaa</ar>
-<ar><k>equipment</k>
-varusteet
-
-laitteisto, tamineet, varuste, varustus, välineistö, laite, koje</ar>
-<ar><k>era</k>
-aikakausi</ar>
-<ar><k>erase</k>
-raaputtaa (pois)</ar>
-<ar><k>eraser</k>
-pyyhekumi</ar>
-<ar><k>erasure</k>
-raaputus</ar>
-<ar><k>erect</k>
-pystyttää
-
-pystyttää
-
-pysty</ar>
-<ar><k>erotic</k>
-eroottinen</ar>
-<ar><k>errand boy</k>
-asiapoika, juoksupoika</ar>
-<ar><k>errant</k>
-vaeltava</ar>
-<ar><k>error</k>
-erehdys, hairahdus, kielivirhe, virhe</ar>
-<ar><k>eruption</k>
-purkaus (tulivuoren)</ar>
-<ar><k>escalator</k>
-liukuportaat
-
-rullaportaat</ar>
-<ar><k>escape</k>
-karkaaminen
-
-karata (vankilasta ym), paeta, päästä pakoon</ar>
-<ar><k>escort</k>
-saattaja</ar>
-<ar><k>esophagus</k>
-ruokatorvi</ar>
-<ar><k>especially</k>
-erikoisesti, eritoten, erityisesti, etenkin, varsinkin</ar>
-<ar><k>essay</k>
-ainekirjoitus, essee (tutkielma)</ar>
-<ar><k>essence</k>
-hajuöljy</ar>
-<ar><k>essential</k>
-oleellinen, olennainen, tärkeä, varsinainen</ar>
-<ar><k>essential condition</k>
-perusedellytys</ar>
-<ar><k>essential nature</k>
-oleellisuus</ar>
-<ar><k>essentially</k>
-oleellisesti, olennaisesti</ar>
-<ar><k>establish</k>
-perustaa, todeta, vakaannuttaa</ar>
-<ar><k>established custom</k>
-perimätapa</ar>
-<ar><k>establishment</k>
-laitos</ar>
-<ar><k>estate</k>
-kartano, maatila, tilukset</ar>
-<ar><k>estate car</k>
-farmariauto</ar>
-<ar><k>esteem</k>
-kunnioittaa
-
-arvonanto, kunnioitus</ar>
-<ar><k>esteemed</k>
-arvossapidetty, kunnioitettava</ar>
-<ar><k>estimate</k>
-arvio
-
-arvioida, taksoittaa</ar>
-<ar><k>estimated</k>
-arvioitu</ar>
-<ar><k>estimated value</k>
-arvihinta</ar>
-<ar><k>estimates</k>
-kustannusarviot</ar>
-<ar><k>estimation</k>
-arvio, arviointi</ar>
-<ar><k>estrangement</k>
-vieraantuminen</ar>
-<ar><k>estuary</k>
-delta, joensuu (laaja), siosto</ar>
-<ar><k>etch</k>
-etsata</ar>
-<ar><k>etching</k>
-etsaus</ar>
-<ar><k>eternal</k>
-iankaikkinen, ikuinen, iäinen</ar>
-<ar><k>eternally</k>
-ainiaan, iankaikkisesti, ikuisesti, iäti</ar>
-<ar><k>eternity</k>
-iankaikkisuus, ikuisuus, iäisyys</ar>
-<ar><k>ethical</k>
-eettinen, siveysopillinen</ar>
-<ar><k>ethics</k>
-etiikka (siveysoppi), siveysoppi</ar>
-<ar><k>ethnology</k>
-kansatiede</ar>
-<ar><k>etiquette</k>
-etiketti</ar>
-<ar><k>eunuch</k>
-eunukki, kuohilas</ar>
-<ar><k>euthanasia</k>
-armeliaisuuskuolema, armeliaisuusmurha</ar>
-<ar><k>evacuate</k>
-evakuoida</ar>
-<ar><k>evade</k>
-karttaa, kiertää (lakia ym), vältellä</ar>
-<ar><k>evaluate</k>
-arvioida</ar>
-<ar><k>evaluation</k>
-arvointi</ar>
-<ar><k>evaporate</k>
-haihduttaa, haihtua</ar>
-<ar><k>evaporation</k>
-haihdutus, haihtuminen</ar>
-<ar><k>evasive</k>
-kartteleva</ar>
-<ar><k>eve</k>
-aatto</ar>
-<ar><k>even</k>
-edes (ainakin), jopa (vieläpä), sileä, tasainen, vieläkin, vieläpä</ar>
-<ar><k>even if</k>
-joskin, vaikka</ar>
-<ar><k>even number</k>
-parillinen luku</ar>
-<ar><k>even though</k>
-joskin, vaikka</ar>
-<ar><k>evening</k>
-ilta</ar>
-<ar><k>evening dress</k>
-iltapuku, juhlapuku</ar>
-<ar><k>evening entertainment</k>
-illanvietto</ar>
-<ar><k>evening night</k>
-ehtoo</ar>
-<ar><k>evening school</k>
-työväenopisto</ar>
-<ar><k>evening service</k>
-iltakirkko</ar>
-<ar><k>evenly</k>
-tasaisesti, tasan</ar>
-<ar><k>evenness</k>
-sileys</ar>
-<ar><k>event</k>
-kilpailu (urh), laji (urh), tapahtuma, tapaus, toimintavaihe</ar>
-<ar><k>event code</k>
-toimintavaiheen tunnus</ar>
-<ar><k>events of life</k>
-elämänvaiheet</ar>
-<ar><k>eventually</k>
-lopulta, vihdoin (lopuksi)</ar>
-<ar><k>ever since</k>
-hamasta</ar>
-<ar><k>ever so often</k>
-useinkin</ar>
-<ar><k>everlasting</k>
-iankaikkinen, ikuinen, iäinen</ar>
-<ar><k>everlasting joy</k>
-ikiilo</ar>
-<ar><k>every</k>
-joka (indef pron), jokainen, kaikki (jokainen)</ar>
-<ar><k>every one</k>
-jokainen (kukin)</ar>
-<ar><k>every other</k>
-joka toinen</ar>
-<ar><k>every week</k>
-viikoittain</ar>
-<ar><k>every year</k>
-vuosittain</ar>
-<ar><k>everybody</k>
-kukin</ar>
-<ar><k>everyday</k>
-arkipäiväinen</ar>
-<ar><k>everyday clothes</k>
-arkipuku</ar>
-<ar><k>everyday conditions</k>
-arkiolot</ar>
-<ar><k>everyday food</k>
-arkiruoka</ar>
-<ar><k>everyday life</k>
-arkielämä</ar>
-<ar><k>everyone</k>
-kukin</ar>
-<ar><k>everything</k>
-kaikki</ar>
-<ar><k>everywhere</k>
-joka paikassa, kaikkialla</ar>
-<ar><k>evict</k>
-häätää</ar>
-<ar><k>eviction</k>
-häätö</ar>
-<ar><k>evidence</k>
-ilmaus (merkki), todistus (lak)</ar>
-<ar><k>evident</k>
-ilmeinen</ar>
-<ar><k>evidently</k>
-ileisesti</ar>
-<ar><k>evil deed</k>
-ilkiteko, tihutyö</ar>
-<ar><k>evil-minded</k>
-ilkeämielinen</ar>
-<ar><k>ewe</k>
-emälammas, uuhi</ar>
-<ar><k>ex-</k>
-entinen</ar>
-<ar><k>ex-service man</k>
-rintamamies</ar>
-<ar><k>exact</k>
-tarkka, täsmällinen</ar>
-<ar><k>exacting</k>
-vaatelias</ar>
-<ar><k>exactly</k>
-aivan (ihan), sepä (se), tarkalleen, täsmälleen, täsmällisesti</ar>
-<ar><k>exactness</k>
-tarkkuus, täsmällisyys</ar>
-<ar><k>exaggerate</k>
-liioitella</ar>
-<ar><k>exaggerated attentions</k>
-liehittely</ar>
-<ar><k>exaggeration</k>
-liioittelu, suurentelu</ar>
-<ar><k>exalted</k>
-ylevä</ar>
-<ar><k>examination</k>
-kuulustelu, tarkastus, tentti, tutkimus, tutkinto</ar>
-<ar><k>examine</k>
-kuulustella, tarkastaa, tarkastella, tenttia, tutkia</ar>
-<ar><k>example</k>
-esimerkki, malli, sisältää, esikuva</ar>
-<ar><k>excavate</k>
-kaivaa</ar>
-<ar><k>excavation</k>
-kaivautus
-
-kaivanto</ar>
-<ar><k>excavation work</k>
-kaivutyöt</ar>
-<ar><k>excavator</k>
-kaivukone</ar>
-<ar><k>exceed</k>
-ylittää</ar>
-<ar><k>exceedingly</k>
-erinomaisen, erittäin, perin (ylen), ylen</ar>
-<ar><k>excellence</k>
-erinomaisuus</ar>
-<ar><k>excellent</k>
-erinomainen, kelpo, mainio, oivallinen</ar>
-<ar><k>excellently</k>
-erinomaisesti</ar>
-<ar><k>except</k>
-paitsi</ar>
-<ar><k>except for</k>
-paitsi</ar>
-<ar><k>exception</k>
-poikkeus</ar>
-<ar><k>exceptional</k>
-poikkeusellinen</ar>
-<ar><k>exceptional case</k>
-erikoistapaus (poikkeus), poikkeustapaus</ar>
-<ar><k>excerpt</k>
-poiminto (kirj)</ar>
-<ar><k>excess</k>
-liiallisuus</ar>
-<ar><k>excess weight</k>
-ylipaino</ar>
-<ar><k>excessive</k>
-liiallinen, ylenmääräinen, ylenpalttinen</ar>
-<ar><k>excessiveness</k>
-liiallisuus</ar>
-<ar><k>exchange</k>
-vaihto
-
-vaihtaa</ar>
-<ar><k>exchange fluctuation</k>
-kurssivaihtelu</ar>
-<ar><k>exchange of ideas</k>
-aijatustenvaihto</ar>
-<ar><k>exchange of shots</k>
-laukaustenvaihto</ar>
-<ar><k>exchange of words</k>
-sananvaihto</ar>
-<ar><k>exchange rate</k>
-vaihtokurssi</ar>
-<ar><k>excite</k>
-kiihdyttää, kiihottaa, villitä</ar>
-<ar><k>exciting</k>
-jännittävä (kuv)</ar>
-<ar><k>exclaim</k>
-huuhdahtaa</ar>
-<ar><k>exclamation</k>
-huuhdahdus</ar>
-<ar><k>exclamation mark</k>
-huutomerkki</ar>
-<ar><k>exclusive</k>
-yksinomainen</ar>
-<ar><k>exclusively</k>
-yksinomaan</ar>
-<ar><k>excrement</k>
-uloste</ar>
-<ar><k>excrete</k>
-erittää (fysiol)</ar>
-<ar><k>excretion</k>
-erite, erityis (fysiol)</ar>
-<ar><k>excursion</k>
-retkeily</ar>
-<ar><k>excursionist</k>
-huvimatkailija, retkeilijä</ar>
-<ar><k>excusable</k>
-anteeksiannettava</ar>
-<ar><k>excuse</k>
-anteeksipyyntö, estely, puolustus</ar>
-<ar><k>excuse me</k>
-anteeksi</ar>
-<ar><k>excuse my french</k>
-anteeksi että kiroilen [puhek.]</ar>
-<ar><k>execute</k>
-suorittaa, teloittaa, toimeenpanna</ar>
-<ar><k>execute by hanging</k>
-hirttää</ar>
-<ar><k>execution</k>
-mestaus, teloitus, toimeenpano, toimitus</ar>
-<ar><k>executioner</k>
-pyöveli, teloittaja</ar>
-<ar><k>executive</k>
-johtaja, johtohenkilö, toimeenpaniva</ar>
-<ar><k>executor</k>
-toimeenpanija</ar>
-<ar><k>exemplary</k>
-esikuvallinen, esimerkillinen, mallikelpoinen</ar>
-<ar><k>exempt</k>
-vapauttaa</ar>
-<ar><k>exempt from taxes</k>
-veroton</ar>
-<ar><k>exemption</k>
-erivapautus, vapautus</ar>
-<ar><k>exercise</k>
-harjaannus
-
-harjoittaa</ar>
-<ar><k>exercise bicycle</k>
-kuntopyörä</ar>
-<ar><k>exert</k>
-ponnistaa</ar>
-<ar><k>exert oneself</k>
-pinnistellä</ar>
-<ar><k>exhale</k>
-huokua</ar>
-<ar><k>exhaust</k>
-näännyttää, tyhjentää, uuvuttaa</ar>
-<ar><k>exhaust fumes</k>
-pakokaasu</ar>
-<ar><k>exhaust pipe</k>
-pakoputki</ar>
-<ar><k>exhausted</k>
-uupunut, uuvuksissa</ar>
-<ar><k>exhausting</k>
-väsyttävä</ar>
-<ar><k>exhaustion</k>
-nääntymys, uupumus, uuvutus</ar>
-<ar><k>exhibit</k>
-näyttelyesine</ar>
-<ar><k>exhibition</k>
-näyttely</ar>
-<ar><k>exhibition hall</k>
-messuhalli</ar>
-<ar><k>exile</k>
-maanpakolainen</ar>
-<ar><k>existence</k>
-olemassaolo, olo</ar>
-<ar><k>existing</k>
-käytössä oleva, nykyinen, olemassa</ar>
-<ar><k>exit</k>
-uloskäytävä, jättö-, lähtö-, luovutus-</ar>
-<ar><k>exorcise</k>
-manata</ar>
-<ar><k>expand</k>
-avartaa, laajentaa, laajentua, laajeta, venyttää</ar>
-<ar><k>expanded cork sheet</k>
-paisutettu korkkilevy</ar>
-<ar><k>expanded metal</k>
-metalliverkko</ar>
-<ar><k>expanding</k>
-laajenva</ar>
-<ar><k>expansion</k>
-laajennus, laajenema</ar>
-<ar><k>expansion joint</k>
-liikuntasauma</ar>
-<ar><k>expatriation</k>
-karkotus</ar>
-<ar><k>expect</k>
-odottaa</ar>
-<ar><k>expectant</k>
-odottava</ar>
-<ar><k>expectation</k>
-odotus</ar>
-<ar><k>expected</k>
-odotettu</ar>
-<ar><k>expedient</k>
-keino</ar>
-<ar><k>expel</k>
-karkottaa (koulusta ym)</ar>
-<ar><k>expend</k>
-kuluttaa (rahaa)</ar>
-<ar><k>expenditure</k>
-kustannukset</ar>
-<ar><k>expense</k>
-kulunki, kustannus, rahameno</ar>
-<ar><k>expenses</k>
-kulut</ar>
-<ar><k>expensive</k>
-kallis, kallishintainen</ar>
-<ar><k>experience</k>
-elämys, kokea, kokemus</ar>
-<ar><k>experienced</k>
-kokenut</ar>
-<ar><k>experiment</k>
-koe (kokeilu), kokeilla</ar>
-<ar><k>experimental</k>
-kokeellinen</ar>
-<ar><k>experimentation</k>
-kokeilu</ar>
-<ar><k>experimenter</k>
-kokeilija</ar>
-<ar><k>expert</k>
-asiantuntija, erikoistuntija</ar>
-<ar><k>expert in</k>
-tuntija (jnk)</ar>
-<ar><k>expert knowledge</k>
-asiantuntemus, erikoistuntemus</ar>
-<ar><k>expert opinion</k>
-asiantuntijalausunnot</ar>
-<ar><k>expire</k>
-kuolla, hengittää ulos, kulua loppuun</ar>
-<ar><k>expired</k>
-kulua loppuun</ar>
-<ar><k>explain</k>
-selittää</ar>
-<ar><k>explanation</k>
-selitys</ar>
-<ar><k>explode</k>
-räjähtää, räjäyttää</ar>
-<ar><k>exploitation</k>
-riisto</ar>
-<ar><k>exploiter</k>
-riistäjä</ar>
-<ar><k>explorer</k>
-löytöretkeilija</ar>
-<ar><k>exploring expedition</k>
-löytöretki</ar>
-<ar><k>explosion</k>
-räjähdys</ar>
-<ar><k>explosive</k>
-räjähtävä</ar>
-<ar><k>export</k>
-viedä (maasta)
-
-vienti</ar>
-<ar><k>export ban</k>
-vienttikielto</ar>
-<ar><k>export trade</k>
-vientikauppa</ar>
-<ar><k>expose</k>
-ilmaista (paljastaa), valottaa</ar>
-<ar><k>exposed</k>
-uhanalainen</ar>
-<ar><k>exposure</k>
-paljastus, valotus</ar>
-<ar><k>exposure lamp</k>
-valotuslamppu</ar>
-<ar><k>exposure slit</k>
-valoaukko</ar>
-<ar><k>express</k>
-esiintuoda (lausua), esittää (mainita), ilmaista (lausua), ilmentää, lausua (ilmi)</ar>
-<ar><k>express goods</k>
-pikatavara</ar>
-<ar><k>express publicly</k>
-julki (lausua)</ar>
-<ar><k>express train</k>
-pikajuna</ar>
-<ar><k>expression</k>
-ilmaisu, ilmaus, ilme, sanantapa, sanonta</ar>
-<ar><k>expressionless</k>
-eleetön, ilmeetön</ar>
-<ar><k>expressive</k>
-ilmeikäs</ar>
-<ar><k>expressiveness</k>
-ilmeikkyys</ar>
-<ar><k>expressly</k>
-nimenomaan</ar>
-<ar><k>exquisite</k>
-erinomainen</ar>
-<ar><k>extend</k>
-avartaa, jatkaa (pidentää), jatkua (ullottua), laajentaa, laajentua, levittää (laajentaa), levitä, ojentaa, pidentää, pitkittää, ulottaa, ulottua</ar>
-<ar><k>extended maintenance</k>
-täyshuolto</ar>
-<ar><k>extension</k>
-jatke, jatko (pidennys), laajennus, lisärakennus, pidennys</ar>
-<ar><k>extension flex</k>
-jatkojohto</ar>
-<ar><k>extensive</k>
-aava, avara, laaja, lavea</ar>
-<ar><k>extensively</k>
-laajalti</ar>
-<ar><k>extent</k>
-ala (laajuus), ulottuvuus, verta (määrä)</ar>
-<ar><k>extention</k>
-jatkuminen</ar>
-<ar><k>extention lead</k>
-jatkojohto</ar>
-<ar><k>exterior</k>
-ulko- (yhd), ulkomuoto, ulkopuoli</ar>
-<ar><k>external</k>
-ulkonainen, ulkopuolinen, ulko-</ar>
-<ar><k>external wall</k>
-ulkoseinä</ar>
-<ar><k>external work</k>
-ulkotyö</ar>
-<ar><k>extinguish</k>
-sammuttaa</ar>
-<ar><k>extra</k>
-ylimääräinen</ar>
-<ar><k>extra expense</k>
-lisäkulu</ar>
-<ar><k>extra income</k>
-lisätulo, sivutulot</ar>
-<ar><k>extract</k>
-ote (kirjasta ym), poiminto (kirj), uutos</ar>
-<ar><k>extract from the parish register</k>
-virkatodistus</ar>
-<ar><k>extraordinary</k>
-eriskummallinen, omituinen, poikkeava, tavaton</ar>
-<ar><k>extravagance</k>
-liiallisuus, tuhlaus, tulaavaisuus</ar>
-<ar><k>extravagant</k>
-ylellinen</ar>
-<ar><k>extreme</k>
-perimmäinen, äärimmäinen</ar>
-<ar><k>extremely</k>
-perin (ylen), tuiki (ylen), ylen</ar>
-<ar><k>extremely funny</k>
-hullunkurinen</ar>
-<ar><k>extremely seldom</k>
-ani harvoin</ar>
-<ar><k>exultant</k>
-riemukas</ar>
-<ar><k>eye</k>
-silmä (kutimen)</ar>
-<ar><k>eye specialist</k>
-silmälääkäri</ar>
-<ar><k>eye-readable</k>
-paljain silmin luettava</ar>
-<ar><k>eye-socket</k>
-silmäkuoppa</ar>
-<ar><k>eye-witness</k>
-silminnäkijä</ar>
-<ar><k>eyeball</k>
-silmämuna</ar>
-<ar><k>eyebrow</k>
-kulmakarva</ar>
-<ar><k>eyebrows</k>
-kulmakarva</ar>
-<ar><k>eyelash</k>
-silmäripsi</ar>
-<ar><k>eyelid</k>
-silmäluomi, silmäluomi</ar>
-<ar><k>fable</k>
-eläinsatu</ar>
-<ar><k>fabricate</k>
-sepustaa</ar>
-<ar><k>fabrication water</k>
-raakavesi, prosessivesi</ar>
-<ar><k>facade</k>
-fasadi (etupuoli)</ar>
-<ar><k>face</k>
-kasvot, naama</ar>
-<ar><k>face cream</k>
-ihovoide</ar>
-<ar><k>face massage</k>
-kasvojenhieronta</ar>
-<ar><k>face powder</k>
-ihojauhe</ar>
-<ar><k>face tissue</k>
-kasvopyyhe</ar>
-<ar><k>face tissues</k>
-kasvopyyhket</ar>
-<ar><k>face to face</k>
-silmätyksin</ar>
-<ar><k>face-down</k>
-etusivu alaspäin</ar>
-<ar><k>face-up</k>
-etusivu ylöspäin</ar>
-<ar><k>facilitate</k>
-helpottaa</ar>
-<ar><k>facilities</k>
-välineistö</ar>
-<ar><k>facing brickwork</k>
-julkisivutiili</ar>
-<ar><k>facing each other</k>
-vastakkain</ar>
-<ar><k>fact</k>
-tosiasia</ar>
-<ar><k>factory</k>
-tehdas</ar>
-<ar><k>factory inspector</k>
-ammattientarkastaja</ar>
-<ar><k>factory work</k>
-tehdastyö</ar>
-<ar><k>faculty of thought</k>
-ajatuskyky</ar>
-<ar><k>fade</k>
-haalistua (väreistä), hiipua, himmentä, lakastua</ar>
-<ar><k>fade away</k>
-hälvetä</ar>
-<ar><k>fade-out</k>
-häipyä</ar>
-<ar><k>faded</k>
-haalistunut (väreistä), hailakka</ar>
-<ar><k>faggot</k>
-vanha naisparka, hinttari [puhek.]</ar>
-<ar><k>fail</k>
-epäonnistua, reputtaa, vioittua, joutua epäkuntoon</ar>
-<ar><k>failing</k>
-heikko (luonteinvika)</ar>
-<ar><k>failure</k>
-epäonnistuminen, fiasko, vika, vioittuminen</ar>
-<ar><k>failure of crops</k>
-kato</ar>
-<ar><k>faint</k>
-heikko (ääni ym)</ar>
-<ar><k>faint-hearted</k>
-arka (pelokas), arkamainen</ar>
-<ar><k>faintly</k>
-hämärästi</ar>
-<ar><k>faintness</k>
-heikkous (et äkillinen)</ar>
-<ar><k>fair dos</k>
-reilu jako [puhek.]</ar>
-<ar><k>fair enough</k>
-sopiiko [puhek.]</ar>
-<ar><k>fair sized</k>
-aimo</ar>
-<ar><k>fairly</k>
-jokseenkin, jotakuinkin, jotenkin, jotensakin, kohtalaisen, koko, kutakuinkin, melko, rehellisesti</ar>
-<ar><k>fairly big</k>
-isohko</ar>
-<ar><k>fairly good</k>
-aikahyvä, hyvänlainen, paremmanpuoleinen</ar>
-<ar><k>fairly large</k>
-isohko</ar>
-<ar><k>fairness</k>
-vaalenus</ar>
-<ar><k>fairy</k>
-keijukainen</ar>
-<ar><k>fairy-tale</k>
-satu</ar>
-<ar><k>fairyland</k>
-satumaa</ar>
-<ar><k>faith</k>
-usko</ar>
-<ar><k>faithful</k>
-uskollinen</ar>
-<ar><k>faithfully</k>
-uskollisesti</ar>
-<ar><k>faithfulness</k>
-uskollisuus</ar>
-<ar><k>fake</k>
-huijaus, väärennys</ar>
-<ar><k>fakir</k>
-fakiiri</ar>
-<ar><k>falcon</k>
-haukka</ar>
-<ar><k>fall</k>
-syksy, häviö, kukistuminen, putoaminen, kaatuminen
-
-aleta, joutua, kaatua, kukistua, langeta, pudota, suistua</ar>
-<ar><k>fall about</k>
-nauraa hillittömästi</ar>
-<ar><k>fall apart</k>
-mennä palasiksi</ar>
-<ar><k>fall asleep</k>
-nukahtaa, uinahtaa</ar>
-<ar><k>fall away</k>
-käydä heikoksi</ar>
-<ar><k>fall back</k>
-vetäytyä taaksepäin</ar>
-<ar><k>fall behind</k>
-jäädä jälkeen</ar>
-<ar><k>fall down</k>
-kaatua (suistua)</ar>
-<ar><k>fall due</k>
-erääntyä</ar>
-<ar><k>fall flat</k>
-epäonnistua</ar>
-<ar><k>fall for</k>
-ihastua jkh</ar>
-<ar><k>fall ill</k>
-sairastua</ar>
-<ar><k>fall in</k>
-luhistua</ar>
-<ar><k>fall in love</k>
-rakastua</ar>
-<ar><k>fall in with</k>
-tavata sattumalta</ar>
-<ar><k>fall inert</k>
-hervota</ar>
-<ar><k>fall into decay</k>
-rappeutua</ar>
-<ar><k>fall off</k>
-karista, varista, pudota</ar>
-<ar><k>fall over</k>
-kompastua</ar>
-<ar><k>fall short</k>
-olla saavuttamatta</ar>
-<ar><k>fall short of</k>
-alittaa</ar>
-<ar><k>fall silent</k>
-mykistyä</ar>
-<ar><k>fall to pieces</k>
-hajalle (rikki)</ar>
-<ar><k>fallacious</k>
-pettävä</ar>
-<ar><k>fallen</k>
-langennut</ar>
-<ar><k>fallible</k>
-erehtyväinen</ar>
-<ar><k>falling</k>
-aleneva</ar>
-<ar><k>falling off</k>
-väheneminen</ar>
-<ar><k>fallow</k>
-kesanto</ar>
-<ar><k>fallow dear</k>
-kuusipeura</ar>
-<ar><k>falls</k>
-vesiputous, vesiputous</ar>
-<ar><k>false</k>
-kavala, petollinen, uskoton, vilpillinen, väärä (ei oikea)</ar>
-<ar><k>false alarm</k>
-hälytys (väärä)</ar>
-<ar><k>false beard</k>
-valeparte</ar>
-<ar><k>false lashes</k>
-irtoripset</ar>
-<ar><k>false name</k>
-valenimi</ar>
-<ar><k>false start</k>
-varaslähtö</ar>
-<ar><k>false step</k>
-harhaaskel</ar>
-<ar><k>false tooth</k>
-tekohammas</ar>
-<ar><k>falsehood</k>
-valhe</ar>
-<ar><k>falseness</k>
-vilpillisyys</ar>
-<ar><k>falsification</k>
-väärennys</ar>
-<ar><k>falsify</k>
-väärentää</ar>
-<ar><k>falter</k>
-horjua (kuv)</ar>
-<ar><k>faltering</k>
-häilyvä</ar>
-<ar><k>famed</k>
-tunnettu</ar>
-<ar><k>familiar</k>
-tuttavallinen, tuttu, tutunomainen</ar>
-<ar><k>familiarity</k>
-tuttavallisuus</ar>
-<ar><k>familiarize</k>
-tutustuttaa, perehtyä, tutustua</ar>
-<ar><k>family</k>
-perhe, perhekunta, suku</ar>
-<ar><k>family circle</k>
-perhepiiri</ar>
-<ar><k>family doctor</k>
-kotilääkäri</ar>
-<ar><k>family name</k>
-sukunimi</ar>
-<ar><k>family quarrel</k>
-perheriita</ar>
-<ar><k>family tomb</k>
-perhehauta</ar>
-<ar><k>famine</k>
-nälänhätä</ar>
-<ar><k>famous</k>
-maineikas</ar>
-<ar><k>fan</k>
-tuuletin, ihailija
-
-leyhytellä, löyhytellä, viuhka</ar>
-<ar><k>fanatic</k>
-fanaatikko, fanaattinen, yltiöhurjapää, hurmahenki, kiihkoilija, yltiö</ar>
-<ar><k>fanatical</k>
-hurmahenkinen, kiihkomielinen, yltiöpäinen</ar>
-<ar><k>fancied</k>
-luuloteltu</ar>
-<ar><k>fancies</k>
-houre (kuv)</ar>
-<ar><k>fanciful</k>
-haaveellinen, mielikuvituksellinen</ar>
-<ar><k>fancy</k>
-fantasia, haave, kuvitelma, luulottelu, mielikuvitus</ar>
-<ar><k>fancy goods</k>
-koristeesineet, korutavara</ar>
-<ar><k>fancy needle-work</k>
-koruompelu</ar>
-<ar><k>fanfare</k>
-fanfaari</ar>
-<ar><k>fang</k>
-torahammas</ar>
-<ar><k>fanlight</k>
-yläikkuna</ar>
-<ar><k>fanny *</k>
-tussu [alat.]</ar>
-<ar><k>fanny adams</k>
-ei yhtään mitään [puhek.]</ar>
-<ar><k>fantastic</k>
-fantastinen, mielikuvituksellinen, satumainen</ar>
-<ar><k>fantasy</k>
-fantasia, haave</ar>
-<ar><k>far</k>
-pitkälle, pitkällä, pitkään</ar>
-<ar><k>far away</k>
-etäälle, etäällä, kauas, kaukana, loitolla</ar>
-<ar><k>far east</k>
-kaukoitä</ar>
-<ar><k>far off</k>
-etäälle, etäällä, kaukana, loitolla</ar>
-<ar><k>far-away</k>
-kaukainen</ar>
-<ar><k>far-famed</k>
-kuulu, maankuulu</ar>
-<ar><k>far-reaching</k>
-kauaskantava (kuv), laajakantoinen</ar>
-<ar><k>farce</k>
-farssi, hupailu, ilveily (näytelmä)</ar>
-<ar><k>fare</k>
-ajomaksu, kyytimaksu, matkarahat</ar>
-<ar><k>farewell</k>
-jäähyväiset</ar>
-<ar><k>farm</k>
-farmi, maatila, tila (maa- pieni)</ar>
-<ar><k>farm hand</k>
-renki</ar>
-<ar><k>farm labourer</k>
-muonamies</ar>
-<ar><k>farm-house</k>
-maalaistalo</ar>
-<ar><k>farmer</k>
-farmari, isäntä (maatalon), maamies, maanviljelijä</ar>
-<ar><k>farmhouse</k>
-maatalo</ar>
-<ar><k>farming</k>
-maanviljelys, maatalous</ar>
-<ar><k>farther away</k>
-loitommalla</ar>
-<ar><k>farther down</k>
-alemmaksi, alempana</ar>
-<ar><k>farther east</k>
-idempänä</ar>
-<ar><k>farther off</k>
-edempää</ar>
-<ar><k>farther on</k>
-edemmäksi, edempänä</ar>
-<ar><k>farther up</k>
-ylempänä</ar>
-<ar><k>farthest</k>
-perimmäinen</ar>
-<ar><k>farthest away</k>
-etäisimpänä</ar>
-<ar><k>farthest down</k>
-alimmaksi</ar>
-<ar><k>fascia beam</k>
-julkisivupalkki</ar>
-<ar><k>fascinate</k>
-hurmata, ihastuttaa, kiehtoa, viehättää</ar>
-<ar><k>fascinating</k>
-lumoava</ar>
-<ar><k>fascination</k>
-hurma, hurmaus</ar>
-<ar><k>fascist</k>
-fasisti (pol)</ar>
-<ar><k>fashion</k>
-muoti, tapa
-
-muodostaa, muodostella</ar>
-<ar><k>fashionable</k>
-kuosikas, muodikas</ar>
-<ar><k>fast</k>
-nopea</ar>
-<ar><k>fast man</k>
-elostelija</ar>
-<ar><k>fast-flowing</k>
-vuolas</ar>
-<ar><k>fasten</k>
-kiinnittää
-
-kiinnittää</ar>
-<ar><k>fasten on to</k>
-iskeytyä</ar>
-<ar><k>fastener</k>
-vetoketju</ar>
-<ar><k>fastening</k>
-kiinnike, kiinnitys</ar>
-<ar><k>fastidious</k>
-nirso</ar>
-<ar><k>fat cheque</k>
-suuri shekki</ar>
-<ar><k>fat of pork</k>
-läski</ar>
-<ar><k>fatal</k>
-kohtalokas, kuolettava</ar>
-<ar><k>fatal illness</k>
-kuolemansairaus</ar>
-<ar><k>fatalist</k>
-fatalisti</ar>
-<ar><k>fatalistic</k>
-fatalistinen</ar>
-<ar><k>fatally</k>
-kuolettavasti</ar>
-<ar><k>fate</k>
-elämänkohtalo, kohtalo, sallimus</ar>
-<ar><k>fateful</k>
-kohtalokas</ar>
-<ar><k>father</k>
-isä</ar>
-<ar><k>father-in-law</k>
-appi</ar>
-<ar><k>fatherhood</k>
-istuisyys</ar>
-<ar><k>fatherless</k>
-isätön</ar>
-<ar><k>fatherly</k>
-isällinen</ar>
-<ar><k>fatigue</k>
-uuvuttaa, väsyttää
-
-uupumus, väsyksissä</ar>
-<ar><k>fatigued</k>
-uupunut, väsynyt</ar>
-<ar><k>fatness</k>
-lihavuus</ar>
-<ar><k>fattened calf</k>
-juottovasikka</ar>
-<ar><k>faucet</k>
-hana, vesihana</ar>
-<ar><k>fault</k>
-epäkohta, hairahdus, syy, vika, virhe, toimintahäiriö</ar>
-<ar><k>faultiness</k>
-viallisuus, virheellisyys</ar>
-<ar><k>faultless</k>
-virheetön</ar>
-<ar><k>faulty</k>
-viallinen, virheellinen, väärä (ei oikea)</ar>
-<ar><k>faux pas</k>
-kömmähdys</ar>
-<ar><k>favour</k>
-suosia</ar>
-<ar><k>favourable</k>
-edullinen (suotuisa), suopea, suosiollinen, suotuisa</ar>
-<ar><k>favourably</k>
-suosiollisesti</ar>
-<ar><k>favourite</k>
-lellikki, lemmikki</ar>
-<ar><k>favourite child</k>
-lempilapsi</ar>
-<ar><k>favourite dish</k>
-himoruokka</ar>
-<ar><k>fawn upon</k>
-hännystellä, liehakoida, mielistellä</ar>
-<ar><k>fawner</k>
-liehakoitsija</ar>
-<ar><k>fawning</k>
-mielistelevä</ar>
-<ar><k>fearful</k>
-hirvittävä, pelokas</ar>
-<ar><k>fearless</k>
-pelkäämätön</ar>
-<ar><k>fearlessly</k>
-pelkäämättä</ar>
-<ar><k>feasibility study</k>
-toteutettavuustutkimus</ar>
-<ar><k>feast</k>
-kekkerit, pidot, syöminki</ar>
-<ar><k>feather</k>
-höyhen, sulka</ar>
-<ar><k>feather duster</k>
-huisku (pöly)</ar>
-<ar><k>feature</k>
-piirre</ar>
-<ar><k>features</k>
-kasvojenpiirteet</ar>
-<ar><k>federal government</k>
-liittohallitus</ar>
-<ar><k>federal republic</k>
-liittotasavalta</ar>
-<ar><k>federation</k>
-liitto</ar>
-<ar><k>fee</k>
-maksu, palkkio</ar>
-<ar><k>feeble</k>
-heikko (voimaton), ponneton, vaisu</ar>
-<ar><k>feebleness</k>
-heikkous, laimeus</ar>
-<ar><k>feed</k>
-syöttö
-
-ravita, ruokinta, ruokkia, syöttää</ar>
-<ar><k>feed-in</k>
-syöttö-</ar>
-<ar><k>feed-out</k>
-luovutus-</ar>
-<ar><k>feedback</k>
-palaute</ar>
-<ar><k>feeder</k>
-syöttäjä (urh), syöttölaite</ar>
-<ar><k>feeding</k>
-ruokinta, syöttö</ar>
-<ar><k>feel</k>
-tuntea, tuntua</ar>
-<ar><k>feel a desire for</k>
-himoita</ar>
-<ar><k>feel ashamed</k>
-hävettää</ar>
-<ar><k>feel cheap</k>
-nolottaa</ar>
-<ar><k>feel chilly</k>
-palella</ar>
-<ar><k>feel dizzy</k>
-pyörryttää</ar>
-<ar><k>feel embarrassed</k>
-ujostella</ar>
-<ar><k>feel inclined</k>
-haluta</ar>
-<ar><k>feel like sneezing</k>
-aivastuttaa</ar>
-<ar><k>feel raw</k>
-karmia</ar>
-<ar><k>feel thirsty</k>
-janottaa</ar>
-<ar><k>feel ticklish</k>
-kutkuta</ar>
-<ar><k>feeler gauge</k>
-rakotulkki</ar>
-<ar><k>feeling</k>
-tunne</ar>
-<ar><k>feign</k>
-teeskenellä</ar>
-<ar><k>feldspar</k>
-maasälpä</ar>
-<ar><k>feline</k>
-kissamainen</ar>
-<ar><k>fell</k>
-kaataa (maahan)</ar>
-<ar><k>fell trees</k>
-hakata ( - metsää)</ar>
-<ar><k>felling</k>
-hakkaus (metsän)</ar>
-<ar><k>fellow</k>
-kaveri, mies, toveri, veikko</ar>
-<ar><k>fellowship</k>
-toveruus, yhteys (suhde)</ar>
-<ar><k>felon</k>
-kynsiajos</ar>
-<ar><k>felonious</k>
-henkirikos</ar>
-<ar><k>felony</k>
-rikos</ar>
-<ar><k>felt strip</k>
-huopatiiviste</ar>
-<ar><k>female</k>
-naaras, naishenkilö, naispuolinen
-
-naaras</ar>
-<ar><k>feminine</k>
-feminiini, feminiinien, naisellinen</ar>
-<ar><k>fen</k>
-neva, suo</ar>
-<ar><k>fence</k>
-aita
-
-aita, este (urh)
-
-aidata, miekkailla</ar>
-<ar><k>fence-post</k>
-aidanseiväs</ar>
-<ar><k>fencer</k>
-miekkailija</ar>
-<ar><k>fencing</k>
-aidanpano, aitaaminen, miekkailu</ar>
-<ar><k>fend off</k>
-torjua, väistää</ar>
-<ar><k>fennel</k>
-fenkolimauste</ar>
-<ar><k>ferment</k>
-fermentti (kem), käydä (juoma), käyte</ar>
-<ar><k>fern</k>
-saniainen</ar>
-<ar><k>ferocious</k>
-hurjapäinen, julma</ar>
-<ar><k>ferocity</k>
-hurjapäisyys</ar>
-<ar><k>ferrule</k>
-hela, kenkäin (kepin)</ar>
-<ar><k>ferry</k>
-lautta, lossi
-
-lautata (yli)</ar>
-<ar><k>ferry boat</k>
-lautta</ar>
-<ar><k>ferryman</k>
-lautturi</ar>
-<ar><k>fertile</k>
-hedelmällinen, viljava</ar>
-<ar><k>fertility</k>
-hedelmällisuus, satoisuus</ar>
-<ar><k>fertilize</k>
-hedelmöittää, lannoittaa</ar>
-<ar><k>fertilizer</k>
-lannoite, väkilannoite</ar>
-<ar><k>fervent</k>
-harras</ar>
-<ar><k>fervour</k>
-hartaus, hehku (kuv), into</ar>
-<ar><k>festival</k>
-juhla</ar>
-<ar><k>festival spirit</k>
-juhlatunnelma</ar>
-<ar><k>festivities</k>
-juhlallisuudet</ar>
-<ar><k>fetch</k>
-hakea (noutaa), noutaa</ar>
-<ar><k>fetish</k>
-fetissi (taikaesine)</ar>
-<ar><k>fetters</k>
-kahleet (kuv)</ar>
-<ar><k>feudal</k>
-feodaali</ar>
-<ar><k>fever</k>
-kuume</ar>
-<ar><k>feverish</k>
-kuumeinen</ar>
-<ar><k>few</k>
-harvat, vähän (harvat), muutama</ar>
-<ar><k>fiance</k>
-sulhanen</ar>
-<ar><k>fiasco</k>
-fiasko</ar>
-<ar><k>fib</k>
-hätävalhe, valhe</ar>
-<ar><k>fibre</k>
-kuitu, syy (kuitu)</ar>
-<ar><k>fibre board</k>
-kuitulevy</ar>
-<ar><k>fibreglass sheet</k>
-lasikuitulevyt</ar>
-<ar><k>fickle</k>
-huikentelevainen</ar>
-<ar><k>fiddle</k>
-viulu</ar>
-<ar><k>fidelity</k>
-uskollisuus</ar>
-<ar><k>field</k>
-toimiala, kenttä, keto, pelto, tanner, vainio</ar>
-<ar><k>field of work</k>
-työala</ar>
-<ar><k>field-glasses</k>
-kiikari</ar>
-<ar><k>fierce</k>
-hurjapäinen, äkäinen</ar>
-<ar><k>fiery</k>
-tulinen, tulisuus</ar>
-<ar><k>fifteen</k>
-viisitoista</ar>
-<ar><k>fifteenth</k>
-viidestoista</ar>
-<ar><k>fifth</k>
-viides, viidennes</ar>
-<ar><k>fifthly</k>
-viidenneksi</ar>
-<ar><k>fifty</k>
-viiskymmentä</ar>
-<ar><k>fig</k>
-viikuna</ar>
-<ar><k>fight</k>
-taistelu, tappelu
-
-kahakoida, otella, taistella, tapella</ar>
-<ar><k>fighter</k>
-hävittäjä (ilm), taistelija, tappelija</ar>
-<ar><k>figurative</k>
-kuvaannollinen</ar>
-<ar><k>figure</k>
-hahmo, kuva, kuvio, luku, numero, vartalo</ar>
-<ar><k>figure skating</k>
-taitoluistelu</ar>
-<ar><k>figure-head</k>
-keulakuva</ar>
-<ar><k>figured</k>
-kuviollinen</ar>
-<ar><k>filament</k>
-hehkulanka</ar>
-<ar><k>filch</k>
-kähveltää, näpistellä</ar>
-<ar><k>file</k>
-kansio, mappi, viila, tiedosto
-
-arkistoida, kansioida, viilata</ar>
-<ar><k>filer</k>
-viilaaja</ar>
-<ar><k>files</k>
-arkisto, kortisto</ar>
-<ar><k>filing</k>
-arkisto</ar>
-<ar><k>filing cabinet</k>
-arkistokaappi</ar>
-<ar><k>fill</k>
-täyttää</ar>
-<ar><k>fill up</k>
-täyttää</ar>
-<ar><k>fill with disgust</k>
-iljettää</ar>
-<ar><k>fill with tears</k>
-kyyneltyä</ar>
-<ar><k>fill with wonder</k>
-ihmetyttää, kummatuttaa</ar>
-<ar><k>filled with</k>
-täynnä</ar>
-<ar><k>fillet</k>
-filee, piena, seläke (keitt)</ar>
-<ar><k>fillet weld</k>
-pienahitsi</ar>
-<ar><k>filling</k>
-hampaantäyte, täyte</ar>
-<ar><k>filly</k>
-tammavarsa</ar>
-<ar><k>film</k>
-elokuva, filmi, kalvo, kelmu
-
-filmata, kuvata</ar>
-<ar><k>film cartridge</k>
-filmikasetti</ar>
-<ar><k>film fan</k>
-hullu (elokuva- )</ar>
-<ar><k>film strip</k>
-raina</ar>
-<ar><k>filter</k>
-suodatin, suodin
-
-suodattaa</ar>
-<ar><k>filth</k>
-lika, saasta, saastaisuus, törky</ar>
-<ar><k>filthy</k>
-likainen, saastainen</ar>
-<ar><k>filtration</k>
-suodatus</ar>
-<ar><k>fin</k>
-evä</ar>
-<ar><k>final</k>
-finaali, loppukilpailu
-
-lopullinen, iimeinen
-
-lopullinen</ar>
-<ar><k>final design</k>
-lopullinen suunnitelma</ar>
-<ar><k>final heat</k>
-loppuerä</ar>
-<ar><k>final inspection</k>
-lopputarkastus</ar>
-<ar><k>finally</k>
-lopuksi, lopulta, vihdoin (lopuksi), viimein, viimenkin, vihdoinkin, lopullisesti</ar>
-<ar><k>finance</k>
-finanssi, rahoittaa</ar>
-<ar><k>financial</k>
-rahallinen, taloudellinen</ar>
-<ar><k>financial institution</k>
-rahalaitos</ar>
-<ar><k>financial period</k>
-tilikausi</ar>
-<ar><k>financial worries</k>
-rahahuolet</ar>
-<ar><k>financially</k>
-rahallisesti</ar>
-<ar><k>financier</k>
-finanssimies, rahamies</ar>
-<ar><k>find</k>
-löydös, löytö
-
-löytää, todeta</ar>
-<ar><k>find fault</k>
-vikoilla</ar>
-<ar><k>find fault with</k>
-paheksua</ar>
-<ar><k>find time</k>
-ehtiä, joutaa</ar>
-<ar><k>finding</k>
-löydös</ar>
-<ar><k>fine aggregate</k>
-hiono hiekka</ar>
-<ar><k>fine arts</k>
-kaunotaiteet, kuvaamataiteet</ar>
-<ar><k>fine sand</k>
-hieta</ar>
-<ar><k>fine-looking</k>
-pulska</ar>
-<ar><k>finely</k>
-hienosti</ar>
-<ar><k>finely built</k>
-hienorakenteinen</ar>
-<ar><k>finely dressed</k>
-hieno</ar>
-<ar><k>finger</k>
-sormi</ar>
-<ar><k>finger-print</k>
-sormenjälki</ar>
-<ar><k>finish</k>
-lopettaa
-
-viimeistely (työ)</ar>
-<ar><k>finished</k>
-muotovalmis, päättynyt, valmistettu</ar>
-<ar><k>finished building</k>
-valmis rakennus</ar>
-<ar><k>finisher</k>
-viimeistelyosa</ar>
-<ar><k>finishing coat</k>
-valmiiksimaalaus</ar>
-<ar><k>finishing line</k>
-maaliviiva</ar>
-<ar><k>finite</k>
-finiitti (kiel), äärellinen</ar>
-<ar><k>finned</k>
-evällinen</ar>
-<ar><k>finnish</k>
-suomalainen</ar>
-<ar><k>finnish baseball</k>
-pesäpallo</ar>
-<ar><k>fiord</k>
-vuono</ar>
-<ar><k>fir</k>
-kuusi (puu), mänty</ar>
-<ar><k>fire</k>
-palo, tuli, tulipalo
-
-tulittaa, erottaa</ar>
-<ar><k>fire alarm</k>
-palohälytin</ar>
-<ar><k>fire extinguisher</k>
-sammutin</ar>
-<ar><k>fire hazard</k>
-tulenvaara</ar>
-<ar><k>fire off</k>
-laukaista</ar>
-<ar><k>fire risk</k>
-tulenvaara</ar>
-<ar><k>fire-grate</k>
-arina</ar>
-<ar><k>fireman</k>
-palomies</ar>
-<ar><k>fireplace</k>
-avotakka, takka</ar>
-<ar><k>fireproof</k>
-tulenkestävä</ar>
-<ar><k>fireworks</k>
-ilotulitus</ar>
-<ar><k>firing pin</k>
-iskuri</ar>
-<ar><k>firm</k>
-firma, kauppaliike
-
-luja, tässä
-
-hellittämätön (luja), irtautumaton, järkkymätön, järkähtämätön, kiinteä, luja, tukeva, vahva (luja), vakaa, vakava (luja), vakavarainen, vankka</ar>
-<ar><k>firmly</k>
-hievahtamatta, lujasti, tiukasti (kiinteästi), vankasti</ar>
-<ar><k>firmness</k>
-järkähtämättömyys, kiinteys, lujuus, vakavuus</ar>
-<ar><k>first</k>
-ensi, ensimmäinen, ensin, ensinnäkin, etumainen, ensi-</ar>
-<ar><k>first aid</k>
-ensiapu</ar>
-<ar><k>first born</k>
-esikoinen</ar>
-<ar><k>first name</k>
-ristimänimi</ar>
-<ar><k>first part</k>
-alkupuoli</ar>
-<ar><k>first work</k>
-esikoisteos</ar>
-<ar><k>first-aid kit</k>
-ensiapupakkaus</ar>
-<ar><k>first-class</k>
-priima</ar>
-<ar><k>first-rate</k>
-oivallinen</ar>
-<ar><k>firstly</k>
-ensiksi, ensinnäkin</ar>
-<ar><k>fish plate</k>
-sidepuu</ar>
-<ar><k>fish trap</k>
-katiska</ar>
-<ar><k>fish-bone</k>
-kalanruoto</ar>
-<ar><k>fish-breeding</k>
-kalanistutus, kalanviljely</ar>
-<ar><k>fish-hook</k>
-ongenkoukko</ar>
-<ar><k>fish-pond</k>
-kalalampi</ar>
-<ar><k>fish-trap</k>
-merta</ar>
-<ar><k>fisherman</k>
-kalamies, kalastaja</ar>
-<ar><k>fishery</k>
-kalastus</ar>
-<ar><k>fishing</k>
-kalanpyynti, kalastus</ar>
-<ar><k>fishing industry</k>
-kalatalous</ar>
-<ar><k>fishing net</k>
-kalaverkko</ar>
-<ar><k>fishing rod with a reel</k>
-virveli</ar>
-<ar><k>fishing tackle</k>
-kalanpyydykset, kalastustarvikkeet</ar>
-<ar><k>fishing-line</k>
-ongensiima</ar>
-<ar><k>fishing-rod</k>
-ongenvapa</ar>
-<ar><k>fishmonger</k>
-kalakauppias</ar>
-<ar><k>fishy</k>
-kelju (kiero)</ar>
-<ar><k>fissure</k>
-halkeama (tiet), särö</ar>
-<ar><k>fist</k>
-koura, nyrkki</ar>
-<ar><k>fistula</k>
-avanne (lääk), fisteli (lääk)</ar>
-<ar><k>fit</k>
-asentaa, kelvollinen, sopia, soveltaa, mahtua</ar>
-<ar><k>fit for</k>
-kelpoinen</ar>
-<ar><k>fit out</k>
-varustaa</ar>
-<ar><k>fit to drink</k>
-juotava (drinkable</ar>
-<ar><k>fit to drop</k>
-kuoleman väsynyt [puhek.]</ar>
-<ar><k>fit up</k>
-kalustaa</ar>
-<ar><k>fitness</k>
-kelvollisuus, kuntoisuus</ar>
-<ar><k>fitted sheet</k>
-pussilakana</ar>
-<ar><k>fitter</k>
-asentaja</ar>
-<ar><k>fitting</k>
-koetus (puvun), asennus
-
-arvonmukainen, asianmukainen</ar>
-<ar><k>fittings</k>
-hela (oven ym), sisustus</ar>
-<ar><k>five</k>
-viisi, viitonen</ar>
-<ar><k>fix</k>
-pula
-
-kiinnittää, korjata, laittaa (korjata), määritellä</ar>
-<ar><k>fix the price</k>
-hinnoitella</ar>
-<ar><k>fixed</k>
-irtautumaton, kiinteä, kiintonainen, määrätty, pysyvä</ar>
-<ar><k>fixed mirror</k>
-kuvapeili</ar>
-<ar><k>fixing of prices</k>
-hinnoittelu</ar>
-<ar><k>fixing rail</k>
-kiinnityskisko</ar>
-<ar><k>fixtures</k>
-kalusto (kiinteä)</ar>
-<ar><k>fizz</k>
-kihistä, pihistä</ar>
-<ar><k>flag</k>
-lippu</ar>
-<ar><k>flagon</k>
-leili</ar>
-<ar><k>flagship</k>
-amiraalinlaiva, lippulaiva</ar>
-<ar><k>flagstone</k>
-laakakivi</ar>
-<ar><k>flagstone pavement</k>
-laattakiveys</ar>
-<ar><k>flake</k>
-hiutale</ar>
-<ar><k>flake out</k>
-häipyä [puhek.]</ar>
-<ar><k>flame</k>
-leimu, liekki
-
-leimuta, liekehtiä</ar>
-<ar><k>flame-thrower</k>
-liekinheitin</ar>
-<ar><k>flammable</k>
-helposti syttyvä</ar>
-<ar><k>flange</k>
-yksinkertainen taitos, laippa</ar>
-<ar><k>flanging machine</k>
-reunan taivutuskone</ar>
-<ar><k>flank</k>
-kylki</ar>
-<ar><k>flannel</k>
-flanelli</ar>
-<ar><k>flap</k>
-liehua, retkottaa</ar>
-<ar><k>flap about</k>
-räpistellä</ar>
-<ar><k>flare</k>
-loimu, roihu
-
-leimahtaa</ar>
-<ar><k>flare up</k>
-hulmahtaa (tuli), kimpaantua</ar>
-<ar><k>flash</k>
-leimahdus, välähdys
-
-leimahtaa, liekehtiä, salamoida, säihkyä, vilahtaa, välähtää, vilkkua</ar>
-<ar><k>flash of lightning</k>
-leimahdus, salama</ar>
-<ar><k>flashings</k>
-pellitykset</ar>
-<ar><k>flask</k>
-taskupullo, termospullo</ar>
-<ar><k>flat</k>
-asuntoosake, huoneisto
-
-tasainen, tympeä, väljähtynyt, laakea, lattea, rieska, lape
-
-sileä, tasainen</ar>
-<ar><k>flat broke</k>
-täysin rahaton [puhek.]</ar>
-<ar><k>flat grid</k>
-arina</ar>
-<ar><k>flat roof</k>
-tasakatto</ar>
-<ar><k>flat weld</k>
-suora hitsi</ar>
-<ar><k>flat-fish</k>
-kampela</ar>
-<ar><k>flat-foot</k>
-latuskajalka</ar>
-<ar><k>flat-footed</k>
-lättäjalkainen</ar>
-<ar><k>flatness</k>
-tympeys</ar>
-<ar><k>flatten</k>
-litistää</ar>
-<ar><k>flatter</k>
-imarrella, mairitella</ar>
-<ar><k>flattering</k>
-mielistelevä</ar>
-<ar><k>flattery</k>
-imartelu, mairittelu</ar>
-<ar><k>flatulence</k>
-ilmavaivat</ar>
-<ar><k>flavour</k>
-aromi, maku</ar>
-<ar><k>flavoured</k>
-höysteinen</ar>
-<ar><k>flavouring</k>
-höyste, mauste</ar>
-<ar><k>flaw</k>
-vika</ar>
-<ar><k>flawless</k>
-virheetön</ar>
-<ar><k>flax</k>
-pellava</ar>
-<ar><k>flay</k>
-nylkeä</ar>
-<ar><k>flea</k>
-kirppu</ar>
-<ar><k>flea pit</k>
-kurja asunto [puhek.]</ar>
-<ar><k>fleck</k>
-laikku</ar>
-<ar><k>fledgling</k>
-linnunpoika</ar>
-<ar><k>flee</k>
-paeta</ar>
-<ar><k>fleet</k>
-laivasto</ar>
-<ar><k>fleeting</k>
-ohikiitävä</ar>
-<ar><k>fleshy</k>
-lihallinen</ar>
-<ar><k>flexibility</k>
-taipuisuus, joustavuus</ar>
-<ar><k>flexible</k>
-joustava, jousto</ar>
-<ar><k>flight</k>
-karkaaminen, karkuretki, lento, lentomatka, lentovuoro, lentue, pako</ar>
-<ar><k>flight ticket</k>
-lentolippu</ar>
-<ar><k>flighty</k>
-huikentelevainen</ar>
-<ar><k>flimsiness</k>
-hataruus</ar>
-<ar><k>flimsy</k>
-hatara</ar>
-<ar><k>flinch</k>
-sävähtää</ar>
-<ar><k>fling</k>
-heitto, hipat
-
-heitellä, heittää, huitoa, lingota, paiskata, viskata</ar>
-<ar><k>flint</k>
-pii</ar>
-<ar><k>flip</k>
-näpsäyttää</ar>
-<ar><k>flipper</k>
-eväjalka</ar>
-<ar><k>flirt</k>
-keimailija
-
-keimailla</ar>
-<ar><k>flirt with</k>
-hakkailla (jkta)</ar>
-<ar><k>flirtation</k>
-hakkailu, keimailu</ar>
-<ar><k>flirting</k>
-hakkailu</ar>
-<ar><k>flit</k>
-lehahtaa</ar>
-<ar><k>float</k>
-koho (ongen ym), uimari (tekn)
-
-ajelehtia, kellua, leijailla, liidellä, liitää, uittaa</ar>
-<ar><k>floating bridge</k>
-lauttasilta</ar>
-<ar><k>flock</k>
-hahtuva, lauma</ar>
-<ar><k>flock of birds</k>
-lintuparvi</ar>
-<ar><k>flock of sheep</k>
-lammaslauma</ar>
-<ar><k>flog</k>
-peistä, ruoskia</ar>
-<ar><k>flood</k>
-nousuvesi
-
-peittää veden alle</ar>
-<ar><k>flood lighting</k>
-juhlavalaistus</ar>
-<ar><k>flood-gate</k>
-kanavansulku</ar>
-<ar><k>floodlight</k>
-valonheitin</ar>
-<ar><k>floor</k>
-kerros (rak), lattia, permanto</ar>
-<ar><k>floor layer</k>
-lattiantekijä</ar>
-<ar><k>floor polish</k>
-lattiavaha</ar>
-<ar><k>floor tile</k>
-lattialaatta</ar>
-<ar><k>flop</k>
-mätkähtää</ar>
-<ar><k>flora</k>
-kasvio, kasvisto</ar>
-<ar><k>florist</k>
-kukkakauppa, kukkakauppias</ar>
-<ar><k>flotilla</k>
-laivue</ar>
-<ar><k>flounder</k>
-kampela, rämpiä, räpistellä</ar>
-<ar><k>flour</k>
-jauho (vehnä)</ar>
-<ar><k>flourish</k>
-koukero</ar>
-<ar><k>flourishing</k>
-kukkea</ar>
-<ar><k>floury</k>
-jauhoinen</ar>
-<ar><k>flow</k>
-juoksu
-
-juosta (virrata), valua, virrata
-
-virta
-
-virtaaminen</ar>
-<ar><k>flow in</k>
-kertyä</ar>
-<ar><k>flower</k>
-kukka</ar>
-<ar><k>flower-bed</k>
-kukkamaa</ar>
-<ar><k>flower-pot</k>
-kukkaruukko</ar>
-<ar><k>flowered</k>
-kukallinen</ar>
-<ar><k>flowering</k>
-kukinta</ar>
-<ar><k>flowery</k>
-kukallinen</ar>
-<ar><k>flowing</k>
-juokseva, juoksu</ar>
-<ar><k>flu</k>
-influenssa [puhek.]</ar>
-<ar><k>fluctuate</k>
-heilahdella, vaihdella</ar>
-<ar><k>flue</k>
-hormi, savukanava</ar>
-<ar><k>fluent</k>
-sujuva</ar>
-<ar><k>fluently</k>
-sujuvasti</ar>
-<ar><k>fluffy</k>
-möyheä, pöyheä</ar>
-<ar><k>fluid</k>
-juokseva (nestemäinen)</ar>
-<ar><k>fluke</k>
-onnenpotku [puhek.]</ar>
-<ar><k>flunk</k>
-reputtaa</ar>
-<ar><k>fluorescent lamp</k>
-loistelamppu</ar>
-<ar><k>fluorescent tube</k>
-loisteputki</ar>
-<ar><k>fluoride</k>
-fluori</ar>
-<ar><k>flurry</k>
-hyörinä, vihuri, vilske</ar>
-<ar><k>flush</k>
-huuhdella (wc), punastua
-
-tasakorkea, samassa tasossa oleva
-
-sileä, tasa-</ar>
-<ar><k>flush joint</k>
-tasasauma</ar>
-<ar><k>flushed</k>
-punastunut</ar>
-<ar><k>flushing cistern</k>
-huuhtelusäiliö</ar>
-<ar><k>flute</k>
-huilu</ar>
-<ar><k>flutist</k>
-huiluniekka</ar>
-<ar><k>flux</k>
-juoksutin (mettalin)</ar>
-<ar><k>fly</k>
-kärpänen, onkiperho</ar>
-<ar><k>fly about</k>
-lennellä</ar>
-<ar><k>fly into a rage</k>
-hurjistua, raivostua</ar>
-<ar><k>fly past</k>
-viilettää</ar>
-<ar><k>fly-leaf</k>
-esilehti</ar>
-<ar><k>fly-net</k>
-kärpäshaavi</ar>
-<ar><k>flyer</k>
-lentäjä</ar>
-<ar><k>flying display</k>
-lentonäytös</ar>
-<ar><k>flying fish</k>
-lentokala</ar>
-<ar><k>flying time</k>
-lentoaika</ar>
-<ar><k>foal</k>
-varsa</ar>
-<ar><k>foam</k>
-kuohu, vaahdota, vaahtomuovi</ar>
-<ar><k>foam rubber</k>
-vaahtokumi</ar>
-<ar><k>foaming</k>
-kuohuva, vaaktoinen</ar>
-<ar><k>foamy</k>
-vaaktoinen</ar>
-<ar><k>foe</k>
-vainolainen, vihamies</ar>
-<ar><k>fog</k>
-sumu, usva</ar>
-<ar><k>foggy</k>
-sumuinen, usvainen</ar>
-<ar><k>fold</k>
-laskos, poimu, taite (laskos), taive, särmä
-
-laskostaa</ar>
-<ar><k>folder</k>
-kansio</ar>
-<ar><k>folding</k>
-kokoontyönettävä</ar>
-<ar><k>folding chair</k>
-saranatuoli</ar>
-<ar><k>folding door</k>
-taiteovi</ar>
-<ar><k>folding machine</k>
-särmäyskone</ar>
-<ar><k>foliage</k>
-lehdistö</ar>
-<ar><k>foliage plant</k>
-lehtikasvi</ar>
-<ar><k>folio</k>
-foliokoko</ar>
-<ar><k>folk</k>
-ihmiset</ar>
-<ar><k>folk dance</k>
-tanhu</ar>
-<ar><k>folk song</k>
-kansanlaulu</ar>
-<ar><k>folk-dance</k>
-kansantanhu</ar>
-<ar><k>folk-tale</k>
-kansansatu</ar>
-<ar><k>folklore</k>
-kansanperinne</ar>
-<ar><k>follow</k>
-seurata</ar>
-<ar><k>follower</k>
-seurain</ar>
-<ar><k>following</k>
-seuraava</ar>
-<ar><k>folly</k>
-hulluttelu, hullutus</ar>
-<ar><k>fond</k>
-hellä, rakastava</ar>
-<ar><k>fond of</k>
-perso</ar>
-<ar><k>fondle</k>
-hellitellä, helliä, hyväillä</ar>
-<ar><k>fondling</k>
-lellittely</ar>
-<ar><k>fondness for</k>
-kiintymys</ar>
-<ar><k>font</k>
-kastemalja</ar>
-<ar><k>food grain</k>
-leipävilja</ar>
-<ar><k>food mixer</k>
-yleiskone</ar>
-<ar><k>fool</k>
-hölmö, kaistapää, tollo, tomppeli
-
-huiputtaa, jymäyttää (puijata), petkuttaa</ar>
-<ar><k>foolery</k>
-hassuttelu</ar>
-<ar><k>foolhardiness</k>
-huimapäisyys</ar>
-<ar><k>foolhardy</k>
-huimapäinen, hurjanrohkea</ar>
-<ar><k>foolish</k>
-hassu, hupsu, kaistapäinen, mieletön, tomppelimainen, tyhmä, typerä, ymmärtämätön</ar>
-<ar><k>foolishly</k>
-hasusti</ar>
-<ar><k>foolishness</k>
-hassutus, hullutus, hupuus, tyhmyys, typeryys</ar>
-<ar><k>foot</k>
-jalkaterä, jalkaterä, juuri (vuoren ym)</ar>
-<ar><k>football</k>
-jalkapallo</ar>
-<ar><k>football ground</k>
-jalkapallokenttä</ar>
-<ar><k>football match</k>
-jalkapalloottelu</ar>
-<ar><k>footballer</k>
-jalkapalloilija</ar>
-<ar><k>foothold</k>
-jalansija</ar>
-<ar><k>footing</k>
-jalansija</ar>
-<ar><k>footman</k>
-lakeija</ar>
-<ar><k>footnote</k>
-alaviite</ar>
-<ar><k>footpath</k>
-polku
-
-kävelytie</ar>
-<ar><k>footprint</k>
-jalanjälki, jälki</ar>
-<ar><k>footsore</k>
-jalkavaivainen</ar>
-<ar><k>footstep</k>
-askel (jälki)</ar>
-<ar><k>footstool</k>
-jakkara</ar>
-<ar><k>footway</k>
-jalkakäytävä</ar>
-<ar><k>footwear</k>
-jalkine, jalkineet</ar>
-<ar><k>fop</k>
-keikari</ar>
-<ar><k>for</k>
-sillä, varten</ar>
-<ar><k>for a long time</k>
-kauan</ar>
-<ar><k>for a while</k>
-hetkeksi</ar>
-<ar><k>for all that</k>
-kuitenkin, sentään</ar>
-<ar><k>for all time</k>
-ainiaaksi</ar>
-<ar><k>for always</k>
-ainiaan</ar>
-<ar><k>for ever</k>
-ainiaaksi, iankaiken, iankaikkisesti, iäksi, iäti</ar>
-<ar><k>for free</k>
-ilmaiseksi</ar>
-<ar><k>for life</k>
-elinajaksi, elinaikainen, iäksi</ar>
-<ar><k>for nothing</k>
-ilmaiseksi</ar>
-<ar><k>for once</k>
-kerrankin</ar>
-<ar><k>for that reason</k>
-sentähden, senvuoksi, siksi, sillähän</ar>
-<ar><k>for the most part</k>
-enimmäkseen</ar>
-<ar><k>for the present</k>
-toistaiseksi</ar>
-<ar><k>for the sake of</k>
-jnk takia</ar>
-<ar><k>for the sakeof</k>
-vuoksi (jnk)</ar>
-<ar><k>for the time being</k>
-tilapäisesti, toistaiseksi, väliaikaisesti</ar>
-<ar><k>for them</k>
-heille</ar>
-<ar><k>for us</k>
-meille</ar>
-<ar><k>for various reasons</k>
-eri syistä</ar>
-<ar><k>for what reason</k>
-miksi, minkätähden</ar>
-<ar><k>for you</k>
-teille</ar>
-<ar><k>forbearance</k>
-armahtavaisuus, kärsivällisyys, pitkämielisyys</ar>
-<ar><k>forbidding</k>
-kieltäminen</ar>
-<ar><k>force</k>
-joukko (sot), pakko(väkivalta)
-
-pakottaa, tupata, hyötää
-
-voima</ar>
-<ar><k>forced</k>
-väkinäinen</ar>
-<ar><k>forced feeding</k>
-pakkosyöttö</ar>
-<ar><k>forced landing</k>
-pakkolasku (ilm)</ar>
-<ar><k>forceps</k>
-pihdir (lääk)</ar>
-<ar><k>forces of nature</k>
-luonnonvoima</ar>
-<ar><k>forcible</k>
-voimallinen</ar>
-<ar><k>forcibly</k>
-väkisin</ar>
-<ar><k>forcing</k>
-hyötö</ar>
-<ar><k>ford</k>
-kahlaamo, kahlauspaikka</ar>
-<ar><k>fording place</k>
-kahlauspaikka</ar>
-<ar><k>fore-</k>
-etu-</ar>
-<ar><k>forearm</k>
-kyynärvarsi</ar>
-<ar><k>foreboding</k>
-aavistus</ar>
-<ar><k>forecast</k>
-ennuste
-
-ennustaa</ar>
-<ar><k>foredeck</k>
-keulakansi</ar>
-<ar><k>foregoing</k>
-edellinen</ar>
-<ar><k>foreground</k>
-etuala</ar>
-<ar><k>forehead</k>
-otsa</ar>
-<ar><k>foreign</k>
-ulkomainen, vierasmaalainen</ar>
-<ar><k>foreign country</k>
-ulkomaa</ar>
-<ar><k>foreign exchange</k>
-ulkomaanvaluutta</ar>
-<ar><k>foreign labour</k>
-siirtotyöläiset</ar>
-<ar><k>foreign policy</k>
-ulkopolitiikka</ar>
-<ar><k>foreign trade</k>
-ulkomaankauppa</ar>
-<ar><k>foreigner</k>
-muukalainen (ulkomaalainen), ulkomaalainen, vierasmaalainen</ar>
-<ar><k>foreman</k>
-esimies (työnjohtaja), faktori (kirjap), päällysmies, työnjohtaja
-
-esimies, työnjohtaja</ar>
-<ar><k>foremast</k>
-keulamasto</ar>
-<ar><k>foremost</k>
-ensimmäinen, etumainen</ar>
-<ar><k>forenoon</k>
-aamupäivä</ar>
-<ar><k>forensic medicine</k>
-oikeuslääketiede</ar>
-<ar><k>foresail</k>
-keulapurje</ar>
-<ar><k>foresee</k>
-aavistaa, arvata (aavistaa)</ar>
-<ar><k>forest</k>
-metsä (iso)</ar>
-<ar><k>forest fire</k>
-kulo</ar>
-<ar><k>forest litter</k>
-karikkeet</ar>
-<ar><k>forest-fire</k>
-metsäpalo</ar>
-<ar><k>forester</k>
-metsänvartija</ar>
-<ar><k>forestry</k>
-metsänhoito, metsätiede</ar>
-<ar><k>foretell</k>
-ennustaa</ar>
-<ar><k>forever</k>
-ikuisesti</ar>
-<ar><k>forewarn</k>
-varoittaa</ar>
-<ar><k>forfeit</k>
-menettää (lak)</ar>
-<ar><k>forge</k>
-ahjo, takomo
-
-väärentää, takoa (rautaa)</ar>
-<ar><k>forger</k>
-väärentäjä</ar>
-<ar><k>forgery</k>
-väärennys</ar>
-<ar><k>forget-me-not</k>
-lemmikki (bot)</ar>
-<ar><k>forgetful</k>
-huonomuistinen</ar>
-<ar><k>forging</k>
-taonta</ar>
-<ar><k>forgiveness</k>
-anteeksiantamus</ar>
-<ar><k>forgiving</k>
-anteeksiantava</ar>
-<ar><k>forgivingly</k>
-anteeksiantavasti</ar>
-<ar><k>fork</k>
-haarukka, hanko, tadikko</ar>
-<ar><k>fork of a river</k>
-joenhaara</ar>
-<ar><k>fork out</k>
-pulittaa [puhek.]</ar>
-<ar><k>form</k>
-kaavake, kantamuoto, kunto (urh), lomake, luokka, muoto, hahmo
-
-muodostaa</ar>
-<ar><k>form a conclusion</k>
-tehdä johtopäätös</ar>
-<ar><k>form groups</k>
-ryhmittyä</ar>
-<ar><k>formal</k>
-kaavamainen, muodollinen</ar>
-<ar><k>formalin</k>
-formaliini (kem)</ar>
-<ar><k>formality</k>
-jäykkyys (kuv), kaavamaisuus, muodollisuus</ar>
-<ar><k>formation</k>
-muodostaminen, muodostuma</ar>
-<ar><k>formentation</k>
-haude (lämmin), haudonta</ar>
-<ar><k>formerly</k>
-aikaisemmin</ar>
-<ar><k>formic acid</k>
-muurahaishappo</ar>
-<ar><k>formula</k>
-kaava (mat)</ar>
-<ar><k>forsake</k>
-hylätä (jättää)</ar>
-<ar><k>forsworn</k>
-valapattoinen</ar>
-<ar><k>fort</k>
-linnake</ar>
-<ar><k>fortification</k>
-linnoitus</ar>
-<ar><k>fortify</k>
-linnoittaa</ar>
-<ar><k>fortunate</k>
-hyväonninen, onnellinen</ar>
-<ar><k>fortunately</k>
-onneksi</ar>
-<ar><k>fortune</k>
-onni</ar>
-<ar><k>fortune-hunter</k>
-onnenonkija</ar>
-<ar><k>fortune-teller</k>
-ennustaja, povari</ar>
-<ar><k>forty</k>
-neljäkymmentä</ar>
-<ar><k>forward</k>
-edespäin, esiin, esille, eteenpäin, eteen-</ar>
-<ar><k>forwarding</k>
-huolinta (liik)</ar>
-<ar><k>fossil</k>
-kivettymä</ar>
-<ar><k>fossilize</k>
-kivettyä</ar>
-<ar><k>foster-child</k>
-kasvatti</ar>
-<ar><k>foster-father</k>
-kasvatusisä</ar>
-<ar><k>foul</k>
-saastainen</ar>
-<ar><k>foul smell</k>
-haju (löyhkä)</ar>
-<ar><k>foulness</k>
-saastaisuus</ar>
-<ar><k>foundation</k>
-alusta, perusta, perustus, pohja, säätiö</ar>
-<ar><k>foundation stone</k>
-peruskivi</ar>
-<ar><k>foundations</k>
-perustus</ar>
-<ar><k>founder</k>
-perustaja</ar>
-<ar><k>foundry</k>
-valimo</ar>
-<ar><k>foundry-worker</k>
-valuri</ar>
-<ar><k>fountain</k>
-lähde, suihkulähde</ar>
-<ar><k>fountain-pen</k>
-täytekynä</ar>
-<ar><k>four</k>
-neljä, nelonen</ar>
-<ar><k>fourteen</k>
-neljätoista</ar>
-<ar><k>fowl</k>
-linnustaa</ar>
-<ar><k>fox</k>
-kettu</ar>
-<ar><k>fox-hunting</k>
-ketunajo</ar>
-<ar><k>foxy</k>
-kettumainen</ar>
-<ar><k>foyer</k>
-lämpiö</ar>
-<ar><k>fraction</k>
-jae (kem), murto</ar>
-<ar><k>fracture</k>
-katkeama, luunmurtuma</ar>
-<ar><k>fragile</k>
-hauras</ar>
-<ar><k>fragment</k>
-katkelma, palanen, sirpale, siru</ar>
-<ar><k>fragmentary</k>
-katkonainen</ar>
-<ar><k>fragrance</k>
-tuoksu</ar>
-<ar><k>frail</k>
-hauras (kuv ym), heikko (hento)</ar>
-<ar><k>frame</k>
-puite, karmi, runko
-
-runko, puite, teline, mikrokortin ruutu
-
-kehystää</ar>
-<ar><k>frame handsaw</k>
-jännesaha</ar>
-<ar><k>frame-up</k>
-salahanke</ar>
-<ar><k>frames</k>
-rahmen, kehät</ar>
-<ar><k>framework</k>
-kehä</ar>
-<ar><k>frank</k>
-avomielinen, rehellinen, suorapuheinen</ar>
-<ar><k>frankly</k>
-avoimesti</ar>
-<ar><k>frankness</k>
-avomielisyys, suoruus, vilpittömyys</ar>
-<ar><k>frantic</k>
-hurja (raivokas), raivoisa, vimmattu</ar>
-<ar><k>fraternity</k>
-veljeys</ar>
-<ar><k>fraternize</k>
-veljeillä</ar>
-<ar><k>fraud</k>
-huijari, petkutus, petos, vilppi</ar>
-<ar><k>fraudulence</k>
-vilpillisyys</ar>
-<ar><k>fraudulent</k>
-petollinen, vilpillinen</ar>
-<ar><k>fraudulent bankruptcy</k>
-konkurssirikos</ar>
-<ar><k>frayed</k>
-risainen</ar>
-<ar><k>frayed nerves</k>
-hermostuminen</ar>
-<ar><k>freckle</k>
-kesakko, pisama, teerenpisama</ar>
-<ar><k>freckled</k>
-pisamainen</ar>
-<ar><k>free</k>
-irottaa (solmu ym)
-
-vapaa, esteetön
-
-esteetön, ilmainen, irtonainen (vapaa), joutilas, valtoin, vapaa</ar>
-<ar><k>free and easy</k>
-kursailematon</ar>
-<ar><k>free from ice</k>
-jäätön</ar>
-<ar><k>free from oxygen</k>
-hapeton</ar>
-<ar><k>free of charge</k>
-ilmainen, maksuton</ar>
-<ar><k>free of interest</k>
-koroton (liik)</ar>
-<ar><k>free oneself</k>
-irrottautua</ar>
-<ar><k>free support</k>
-vapaa tuki</ar>
-<ar><k>free time</k>
-joutoaika</ar>
-<ar><k>freedom</k>
-vapaus</ar>
-<ar><k>freedom from care</k>
-huolettomuus</ar>
-<ar><k>freedom from prejudice</k>
-ennakkoluulottomuus</ar>
-<ar><k>freedom of movement</k>
-liikuntavapaus</ar>
-<ar><k>freedom of thought</k>
-ajatuksenvapaus</ar>
-<ar><k>freely</k>
-vapaasti</ar>
-<ar><k>freeze</k>
-jäädytää, jäätyä, jäätää, pakastaa, palelluttaa</ar>
-<ar><k>freezer</k>
-pakastin</ar>
-<ar><k>freezing</k>
-jäädytys</ar>
-<ar><k>freezing of prices</k>
-hintasulku</ar>
-<ar><k>freezing-point</k>
-jäätymistpiste</ar>
-<ar><k>freight</k>
-laivarahti, rahtitavara</ar>
-<ar><k>freighter</k>
-rahtaaja</ar>
-<ar><k>freighting</k>
-rahtaus</ar>
-<ar><k>french door</k>
-ranskalainen ovi</ar>
-<ar><k>french drain</k>
-imeytysosasto</ar>
-<ar><k>frenzied</k>
-vimmattu</ar>
-<ar><k>frenzy</k>
-vimma</ar>
-<ar><k>frequency</k>
-frekvenssi, jaksoluku, taajuus (tekn), yleisyys</ar>
-<ar><k>frequent</k>
-usein</ar>
-<ar><k>frequently</k>
-usein</ar>
-<ar><k>fresco</k>
-kalkkimaalaus</ar>
-<ar><k>fresh air fiend</k>
-hullu (ulkiolu- )</ar>
-<ar><k>fresh water</k>
-makea vesi</ar>
-<ar><k>freshen</k>
-raitistaa</ar>
-<ar><k>freshly</k>
-juuri (äsken)</ar>
-<ar><k>freshman</k>
-fuksi, keltanokka (kuv)</ar>
-<ar><k>freshness</k>
-raikkaus, raittius, tuoreus</ar>
-<ar><k>fresko</k>
-fresko</ar>
-<ar><k>fret</k>
-harmistella, tuskitella</ar>
-<ar><k>fret-saw</k>
-lehtisaha</ar>
-<ar><k>friar</k>
-luostariveli</ar>
-<ar><k>fricassee</k>
-viilokki</ar>
-<ar><k>friction</k>
-kitka</ar>
-<ar><k>fridge</k>
-jääkaappi</ar>
-<ar><k>friend</k>
-ystävä</ar>
-<ar><k>friendliness</k>
-ystävällisyys</ar>
-<ar><k>friendly</k>
-ystävällinen</ar>
-<ar><k>friendship</k>
-ystävyys</ar>
-<ar><k>frieze</k>
-friisi (otsikko)</ar>
-<ar><k>frigate</k>
-fregatti</ar>
-<ar><k>fright</k>
-kauhu, kuvatus, pelko, pelästys, säikähdys</ar>
-<ar><k>frighten</k>
-pelottaa, pelästyttää, säikyttää</ar>
-<ar><k>frightful</k>
-hirmuinen, kamala, kauhea</ar>
-<ar><k>frightfully</k>
-hirmuisen</ar>
-<ar><k>frightfulness</k>
-hirmuisuus</ar>
-<ar><k>frill</k>
-röyhelö</ar>
-<ar><k>frills</k>
-hepenet</ar>
-<ar><k>frimness</k>
-horjumattomuus</ar>
-<ar><k>fringe</k>
-hetale, ripsu</ar>
-<ar><k>fringe benefits</k>
-lisäedut</ar>
-<ar><k>frisk</k>
-hypellä</ar>
-<ar><k>frisky</k>
-raisu</ar>
-<ar><k>frivolous</k>
-kevytmielinen</ar>
-<ar><k>frizzle</k>
-käristää</ar>
-<ar><k>frock</k>
-leninki</ar>
-<ar><k>frock-coat</k>
-lievetakki</ar>
-<ar><k>frog</k>
-sammakko</ar>
-<ar><k>frolic</k>
-ilakoida, kirmata, kisailla</ar>
-<ar><k>frolicking</k>
-kirmailu</ar>
-<ar><k>from</k>
-jstk alkaen</ar>
-<ar><k>from a great distance</k>
-kaukaa</ar>
-<ar><k>from a height</k>
-korkealta</ar>
-<ar><k>from above</k>
-yltä, yläpuolelta</ar>
-<ar><k>from afar</k>
-etäältä, kaukaa</ar>
-<ar><k>from among</k>
-lomitse</ar>
-<ar><k>from another direction</k>
-toisaalta</ar>
-<ar><k>from behind</k>
-takaa, takaapäin</ar>
-<ar><k>from below</k>
-alhaalta, alta</ar>
-<ar><k>from between</k>
-välistä</ar>
-<ar><k>from close range</k>
-läheltä</ar>
-<ar><k>from elsewhere</k>
-muualta</ar>
-<ar><k>from every side</k>
-joka puolelta</ar>
-<ar><k>from far away</k>
-kaukaa</ar>
-<ar><k>from farther down</k>
-alempaa</ar>
-<ar><k>from further away</k>
-kauempää</ar>
-<ar><k>from here</k>
-täältä</ar>
-<ar><k>from it</k>
-siitä</ar>
-<ar><k>from memory</k>
-ulkomuistista</ar>
-<ar><k>from near by</k>
-läheltä</ar>
-<ar><k>from now on</k>
-tästedes</ar>
-<ar><k>from somewhere else</k>
-toisaalta</ar>
-<ar><k>from the back</k>
-takaapäin</ar>
-<ar><k>from the first</k>
-alunperin, alunpitäen</ar>
-<ar><k>from the front</k>
-edestäpäin</ar>
-<ar><k>from the inside</k>
-sisältä</ar>
-<ar><k>from the place</k>
-paikalta</ar>
-<ar><k>from the rear</k>
-takaa</ar>
-<ar><k>from the side</k>
-sivulta</ar>
-<ar><k>from the side of</k>
-vierestä</ar>
-<ar><k>from them</k>
-heiltä</ar>
-<ar><k>from there</k>
-sieltä, tuolta, tuosta</ar>
-<ar><k>from this</k>
-tästä</ar>
-<ar><k>from this place</k>
-täältä</ar>
-<ar><k>from under</k>
-alta</ar>
-<ar><k>from underneath</k>
-altapäin</ar>
-<ar><k>from what place</k>
-mistä</ar>
-<ar><k>from where</k>
-mistä</ar>
-<ar><k>from whom</k>
-keneltä</ar>
-<ar><k>front</k>
-etummainen, etu-, rintama</ar>
-<ar><k>front door</k>
-ulkoovi</ar>
-<ar><k>front facade</k>
-julkisivu</ar>
-<ar><k>front putty</k>
-aluskitti</ar>
-<ar><k>front rank</k>
-eturivi</ar>
-<ar><k>frontage</k>
-julkisivu</ar>
-<ar><k>frontier</k>
-raja (valtiollinen)</ar>
-<ar><k>frost</k>
-halla, pakkanen</ar>
-<ar><k>frosted</k>
-himmeä</ar>
-<ar><k>froth</k>
-vaahdota, vaahto</ar>
-<ar><k>frothy</k>
-vaaktoinen</ar>
-<ar><k>frown</k>
-rypistää (otsaansa)</ar>
-<ar><k>frozen</k>
-routainen</ar>
-<ar><k>frozen food</k>
-pakaste</ar>
-<ar><k>fructose</k>
-hedelmäsokeri</ar>
-<ar><k>fruit juice</k>
-marjamehu</ar>
-<ar><k>fruit machine</k>
-peliautomaatti [puhek.]</ar>
-<ar><k>fruit-growing</k>
-hedelmäviljelys</ar>
-<ar><k>fruiterer</k>
-hedelmäkauppias</ar>
-<ar><k>fruitful</k>
-hedelmällinen (kuv), viljava</ar>
-<ar><k>fruitfulness</k>
-hedelmällisyys</ar>
-<ar><k>fruitless</k>
-hedelmäton (kuv)</ar>
-<ar><k>fruitlessness</k>
-hyödyttömyys</ar>
-<ar><k>frustrate</k>
-tehdä (tyhjäksi)</ar>
-<ar><k>frustration</k>
-pettymys</ar>
-<ar><k>fry</k>
-käristää, paistaa</ar>
-<ar><k>frying-pan</k>
-paistinpannu</ar>
-<ar><k>fucked up ***</k>
-päin persettä [alat.]</ar>
-<ar><k>fucking .. ***</k>
-vittuilla [alat.]</ar>
-<ar><k>fuel</k>
-polttoaine, virike</ar>
-<ar><k>fuel oil</k>
-polttoöljy</ar>
-<ar><k>fugitive</k>
-häipyvä, pakolainen</ar>
-<ar><k>fugue</k>
-fuuga</ar>
-<ar><k>fulfilment</k>
-täyttymys, täytäntö</ar>
-<ar><k>full</k>
-täydellinen, täynnä, täysi, täysinäinen</ar>
-<ar><k>full back</k>
-puolustaja (urh)</ar>
-<ar><k>full blaze</k>
-ilimiliekki</ar>
-<ar><k>full edged</k>
-täyssärmäinen</ar>
-<ar><k>full moon</k>
-täysikuu</ar>
-<ar><k>full of enjoyment</k>
-nautinnollinen</ar>
-<ar><k>full of expression</k>
-ilmeikäs</ar>
-<ar><k>full of life</k>
-eloisa</ar>
-<ar><k>full of vitality</k>
-elinvoimainen</ar>
-<ar><k>full rate carriage</k>
-täysratakelkka</ar>
-<ar><k>full rate mirror</k>
-kohdepeili</ar>
-<ar><k>full stop</k>
-piste (välimerkki)</ar>
-<ar><k>full wave rectifier</k>
-kokoaaltotasasuunnin</ar>
-<ar><k>fullness</k>
-täysinäisyys</ar>
-<ar><k>fully</k>
-aivan (täysin), juuri (täysin), täysin</ar>
-<ar><k>fully attended</k>
-täysilukuinen</ar>
-<ar><k>fumble</k>
-hapuilla, kopeloida, möhliä, tunaroida, haparoida</ar>
-<ar><k>fume</k>
-vihoitella</ar>
-<ar><k>fumigate</k>
-savustaa (huone)</ar>
-<ar><k>fun</k>
-hauskuus (huvi), hupi, huvi, leikki (pila), lysti, pila (leikki)</ar>
-<ar><k>function</k>
-virkatehtävä, toimia, toiminta, toimitus
-
-toiminta, tehtävä</ar>
-<ar><k>functionary</k>
-toimitsija</ar>
-<ar><k>fund</k>
-rahasto</ar>
-<ar><k>fundamental characteristic</k>
-peruspiirre</ar>
-<ar><k>fundamental idea</k>
-perusajatus</ar>
-<ar><k>funds</k>
-kassa, varat</ar>
-<ar><k>funeral</k>
-hautajaiset</ar>
-<ar><k>funeral march</k>
-surumarssi</ar>
-<ar><k>funeral procession</k>
-ruumissaatto</ar>
-<ar><k>funeral sermon</k>
-ruumissaarna</ar>
-<ar><k>fungus</k>
-sieni, home</ar>
-<ar><k>fungus growth</k>
-kääpä</ar>
-<ar><k>funnel</k>
-suppilo</ar>
-<ar><k>funny</k>
-hassunkurinen, kiva, lystikäs, vitsikäs</ar>
-<ar><k>fur</k>
-karvapeite, kattilakivi, turkis, turkki</ar>
-<ar><k>fur cap</k>
-karvalakki</ar>
-<ar><k>furious</k>
-hurja (raivokas), raivoisa, vimmattu</ar>
-<ar><k>furlough</k>
-loma (sot)</ar>
-<ar><k>furnace</k>
-tulipesä, sulatusuuni</ar>
-<ar><k>furnish</k>
-kalustaa, sisustaa (kalustaa), varustaa
-
-kalustaa, sisustaa</ar>
-<ar><k>furnishing</k>
-kalustus</ar>
-<ar><k>furnishings</k>
-sisustus</ar>
-<ar><k>furniture</k>
-huonekaluja, huonekalusto</ar>
-<ar><k>furniture van</k>
-muuttovaunut</ar>
-<ar><k>furrier</k>
-turkkuri</ar>
-<ar><k>furrow</k>
-uurre, vako
-
-uurtaa</ar>
-<ar><k>furrowed</k>
-uurteinen</ar>
-<ar><k>further</k>
-edelleen, enempi, entisestään, enää, vielä (lisäksi)</ar>
-<ar><k>further away</k>
-kauempana</ar>
-<ar><k>further off</k>
-kauemmaksi</ar>
-<ar><k>furthermore</k>
-edelleen, vieläkin (lisäksi), vieläpä (lisäksi)</ar>
-<ar><k>furthest away</k>
-kauimpana</ar>
-<ar><k>fury</k>
-hurjuus, kiihko, raivo, raivokkuus, vimma</ar>
-<ar><k>fuse</k>
-sulake (sähk)</ar>
-<ar><k>fuselage</k>
-runko (lentok)</ar>
-<ar><k>fuser</k>
-kiinityslaite</ar>
-<ar><k>fuser heat rod</k>
-lämpötanko</ar>
-<ar><k>fuser heat roll</k>
-lämpötela</ar>
-<ar><k>fuser heater</k>
-lämpötanko</ar>
-<ar><k>fuser lubricant pump</k>
-öljypumppu</ar>
-<ar><k>fuser lubricant tube</k>
-öljynjatkoputki</ar>
-<ar><k>fuser manifold</k>
-lämpötelan voitelulaite</ar>
-<ar><k>fuser rolls</k>
-kiinnitystelat</ar>
-<ar><k>fusion</k>
-fuusio</ar>
-<ar><k>fuss</k>
-hälinä (turha), touhu, vouhottaa</ar>
-<ar><k>fuss about</k>
-hössöttää [puhek.]</ar>
-<ar><k>fussing</k>
-hätäily</ar>
-<ar><k>futile</k>
-turhanpäiväinen</ar>
-<ar><k>futility</k>
-hyödyttömyys, joutavuus, turhuus</ar>
-<ar><k>future</k>
-tuleva, tulevaisuus, vastaisuus, vastavainen</ar>
-<ar><k>future generation</k>
-jälkipolvi</ar>
-<ar><k>future tense</k>
-futuuri (kiel)</ar>
-<ar><k>gable</k>
-pääty</ar>
-<ar><k>gadfly</k>
-paarma</ar>
-<ar><k>gadget</k>
-koje (vekotin), laite (vekotin), vehje (vekotin), vekotin</ar>
-<ar><k>gaff</k>
-kahveli (mer)</ar>
-<ar><k>gag</k>
-suukapula</ar>
-<ar><k>gaiety</k>
-hilpeys, huikentelevaisuus, iloisuus</ar>
-<ar><k>gain</k>
-hyötyä (voittaa)
-
-voitto (liik)</ar>
-<ar><k>gain weight</k>
-lihoa</ar>
-<ar><k>gainful employment</k>
-ansiotyö</ar>
-<ar><k>gait</k>
-käynti (kävely)</ar>
-<ar><k>gaiter</k>
-säärys</ar>
-<ar><k>gaiters</k>
-nilkkaimet</ar>
-<ar><k>gala dinner</k>
-juhlapäivälliset</ar>
-<ar><k>gala performance</k>
-juhlanäytäntö</ar>
-<ar><k>gale</k>
-myrsky, tuuli (ankara)</ar>
-<ar><k>gall</k>
-hangata, hieroutua</ar>
-<ar><k>gallant</k>
-ritarillinen, uljas</ar>
-<ar><k>gallantry</k>
-uljuus</ar>
-<ar><k>gallbladder</k>
-sappirakko</ar>
-<ar><k>gallery</k>
-galleria, lehteri</ar>
-<ar><k>galley</k>
-kaljaasi</ar>
-<ar><k>gallop</k>
-laukka, neli
-
-laukata</ar>
-<ar><k>gallows</k>
-hirttopaikka</ar>
-<ar><k>gallows-bird</k>
-hirtehinen</ar>
-<ar><k>gallstone</k>
-sappikivi</ar>
-<ar><k>gallup poll</k>
-gallupkysely</ar>
-<ar><k>galosh</k>
-kalossi</ar>
-<ar><k>galvanic</k>
-galvaaninen</ar>
-<ar><k>galvanize</k>
-galvanoida</ar>
-<ar><k>galvanized iron</k>
-sinkitty teräs</ar>
-<ar><k>gamble</k>
-arpapeli, pelata (uhkapeliä)</ar>
-<ar><k>gambler</k>
-peluri</ar>
-<ar><k>gambling</k>
-uhkapeli</ar>
-<ar><k>gambling debt</k>
-pelivelka</ar>
-<ar><k>game</k>
-leikki, metsänriista, peli, pila (leikki), riista</ar>
-<ar><k>game of chess</k>
-sakkipeli</ar>
-<ar><k>games</k>
-kisat</ar>
-<ar><k>gaming club</k>
-peliluola</ar>
-<ar><k>gang</k>
-jengi, rikosjoukkue, kopla (varas- ym), porukka, sakki
-
-porukka, ryhmä</ar>
-<ar><k>gangling</k>
-hontelo</ar>
-<ar><k>gangnail</k>
-hammaslevy</ar>
-<ar><k>gangrene</k>
-kuolio (lääk), kylmänvihat</ar>
-<ar><k>gangway</k>
-laskuporras</ar>
-<ar><k>gap</k>
-väli, rako, loma (väli)</ar>
-<ar><k>gape</k>
-ammottaa, töllistellä, ällistellä</ar>
-<ar><k>garage</k>
-autotalli, huoltamo, huoltoasema, autokorjaamo</ar>
-<ar><k>garbage</k>
-roskat, törky</ar>
-<ar><k>garden</k>
-puutarha</ar>
-<ar><k>garden suburb</k>
-huvilakaupunki</ar>
-<ar><k>garden warbler</k>
-lehtokerttu</ar>
-<ar><k>gardener</k>
-puutarhuri</ar>
-<ar><k>gargle</k>
-kurlata</ar>
-<ar><k>garish</k>
-korea</ar>
-<ar><k>garland</k>
-kukkaseppele, koristeköynnös, seppele</ar>
-<ar><k>garlic</k>
-kynsilaukka</ar>
-<ar><k>garrison</k>
-linnaväki (sot), varuskunta</ar>
-<ar><k>garter</k>
-sukkanauha</ar>
-<ar><k>gas chamber</k>
-kaasukammio</ar>
-<ar><k>gas pipe</k>
-kaasujohto</ar>
-<ar><k>gas-jet</k>
-kaasuliekki</ar>
-<ar><k>gas-mask</k>
-kaasunaamari</ar>
-<ar><k>gas-works</k>
-kaasupaitos</ar>
-<ar><k>gasket</k>
-tiiviste</ar>
-<ar><k>gasoline</k>
-bensiini</ar>
-<ar><k>gasometer</k>
-kaasukello</ar>
-<ar><k>gasp</k>
-henkäistä</ar>
-<ar><k>gasp for breath</k>
-haukkoahenkeään</ar>
-<ar><k>gastric juice</k>
-mahaneste</ar>
-<ar><k>gastric ulcer</k>
-mahahaava</ar>
-<ar><k>gastronome</k>
-gastronomi</ar>
-<ar><k>gate</k>
-portti, vasteet</ar>
-<ar><k>gate-keeper</k>
-portinvartija</ar>
-<ar><k>gateway</k>
-portti</ar>
-<ar><k>gather</k>
-haalia (koota), kertyä, keräillä, kerätä, kerääntyä, kokoontua, koota, kuroa, poimia (keräillä), rypyttää</ar>
-<ar><k>gathering</k>
-keruu, rypytys</ar>
-<ar><k>gauge</k>
-mitta, mittari, tulkki, mittausväline</ar>
-<ar><k>gauze</k>
-harso, sideharso</ar>
-<ar><k>gay</k>
-hilpeä, homoseksualisti, huikentelevainen, iloinen, ilomielinen, rattoisa</ar>
-<ar><k>gay fellow</k>
-hulivili</ar>
-<ar><k>gay life</k>
-huikentelevaisuus</ar>
-<ar><k>gay pranks</k>
-hulluttelu</ar>
-<ar><k>gaze</k>
-pälyillä</ar>
-<ar><k>gaze at</k>
-katsoa, tuijottaa</ar>
-<ar><k>gazelle</k>
-gaselli</ar>
-<ar><k>gear</k>
-hammaspyörä, vaihde (auton ym)</ar>
-<ar><k>gear lever</k>
-vaihdetanko</ar>
-<ar><k>gearbox</k>
-vaihdelaatikko</ar>
-<ar><k>gearing</k>
-pyörästö</ar>
-<ar><k>gelatine</k>
-liivate</ar>
-<ar><k>gelding</k>
-ruuna, valakka</ar>
-<ar><k>gem</k>
-jalokivi</ar>
-<ar><k>gene</k>
-geeni</ar>
-<ar><k>general</k>
-kenraali
-
-kaikinpuolinen, tavallinen, yleinen</ar>
-<ar><k>general anesthesia</k>
-nukutus (lääk)</ar>
-<ar><k>general assembly</k>
-yleiskokous</ar>
-<ar><k>general election</k>
-eduskuntavaalit</ar>
-<ar><k>general index</k>
-aineenmukainen luettelo</ar>
-<ar><k>general knowledge</k>
-yleistiedot</ar>
-<ar><k>general manager</k>
-isännöitsejä, pääjohtaja</ar>
-<ar><k>general strike</k>
-yleislakko</ar>
-<ar><k>generalize</k>
-yleistää</ar>
-<ar><k>generally</k>
-tavallisesti, yleensä, yleisesti, ylipäänsä</ar>
-<ar><k>generate</k>
-tuottaa, kehittää</ar>
-<ar><k>generation</k>
-miespolvi, sukupolvi, sukupolvi</ar>
-<ar><k>generator</k>
-generaattori</ar>
-<ar><k>generosity</k>
-anteliaisuus, jalomielisyys</ar>
-<ar><k>generous</k>
-antelias, aulis, jalomielinen</ar>
-<ar><k>genitive</k>
-genetiivi (kiel)</ar>
-<ar><k>genius</k>
-hengetär, nero</ar>
-<ar><k>genocide</k>
-kansanmurha</ar>
-<ar><k>gentle</k>
-hellävarainen, hempeä, lempeä, leppoissa, säyseä, vieno</ar>
-<ar><k>gentleman</k>
-herra, herrasmies</ar>
-<ar><k>gentleness</k>
-lauhkeus, säyseys, vienous</ar>
-<ar><k>gentlewoman</k>
-herrasnainen</ar>
-<ar><k>gently</k>
-hellävaroin</ar>
-<ar><k>gently sloping</k>
-loiva</ar>
-<ar><k>gents</k>
-miestenhuone [puhek.]</ar>
-<ar><k>genuine</k>
-aito, oikea (aito)</ar>
-<ar><k>geographical</k>
-maatieteellinen</ar>
-<ar><k>geography</k>
-maantiede</ar>
-<ar><k>geologic</k>
-geologinen</ar>
-<ar><k>geologist</k>
-geologi</ar>
-<ar><k>geology</k>
-geologia</ar>
-<ar><k>geometric</k>
-geometrinen</ar>
-<ar><k>geometry</k>
-geometria</ar>
-<ar><k>geranium</k>
-kurjenpolvi (bot), pelargoni</ar>
-<ar><k>german measles</k>
-vihurirokko</ar>
-<ar><k>germinate</k>
-idättää, itää</ar>
-<ar><k>germination</k>
-idätys, itäminen</ar>
-<ar><k>germinative capacity</k>
-itävyys</ar>
-<ar><k>gesticulate</k>
-elehtiä, hosua (käsillään), viittoilla</ar>
-<ar><k>gesticulation</k>
-viittoilu</ar>
-<ar><k>gesture</k>
-ele, kädenliike</ar>
-<ar><k>get</k>
-hankkia, hommata (hankkia), joutua, päästä, saada, saada, saattaa</ar>
-<ar><k>get about</k>
-liikkua paikasta toiseen [puhek.]</ar>
-<ar><k>get ahead</k>
-menestyä, edetä (urallaan) [puhek.]</ar>
-<ar><k>get along</k>
-suoriutua, viihtyä, päästä eteenpäin</ar>
-<ar><k>get angry</k>
-kiukustua, suuttua, vihastua</ar>
-<ar><k>get anxious</k>
-huolestua</ar>
-<ar><k>get anywhere</k>
-hän ei pääse mihinkään [puhek.]</ar>
-<ar><k>get around</k>
-kiertää [puhek.]</ar>
-<ar><k>get at</k>
-päästä jhk käsiksi [puhek.]</ar>
-<ar><k>get away</k>
-lähteä pois [puhek.]</ar>
-<ar><k>get away with</k>
-onnistua jossakin [puhek.]</ar>
-<ar><k>get back</k>
-palata [puhek.]</ar>
-<ar><k>get better</k>
-parantua</ar>
-<ar><k>get by</k>
-päästä ohi [puhek.]</ar>
-<ar><k>get confused</k>
-häkeltyä, hämmentyä</ar>
-<ar><k>get cool</k>
-jäähtyä</ar>
-<ar><k>get cracking</k>
-ryhtyä tositoimiin [puhek.]</ar>
-<ar><k>get crumpled</k>
-rypistyä</ar>
-<ar><k>get damp</k>
-kostua</ar>
-<ar><k>get dirty</k>
-likaantua, tuhraantua</ar>
-<ar><k>get down</k>
-laskeutua (tulla alas)</ar>
-<ar><k>get drunk</k>
-humaltua, juopua, päihtyä</ar>
-<ar><k>get engaged</k>
-kihla</ar>
-<ar><k>get enthusiastic about</k>
-innostua</ar>
-<ar><k>get excited</k>
-innostua (liiaksi), kiihtyä, tulistua</ar>
-<ar><k>get filled with</k>
-täyttyä</ar>
-<ar><k>get flurried</k>
-häkeltyä</ar>
-<ar><k>get inflamed</k>
-tulehtua</ar>
-<ar><k>get into</k>
-päästä [puhek.]</ar>
-<ar><k>get into debt</k>
-velkaantua</ar>
-<ar><k>get into order</k>
-järjestyä</ar>
-<ar><k>get intoxicated</k>
-humaltua</ar>
-<ar><k>get it</k>
-ymmärtää [puhek.]</ar>
-<ar><k>get loose</k>
-höllentyä, höltyä, löyhtyä</ar>
-<ar><k>get lost</k>
-eksyä, hukkua</ar>
-<ar><k>get married</k>
-naida</ar>
-<ar><k>get moist</k>
-kostua</ar>
-<ar><k>get nervous</k>
-hermostua</ar>
-<ar><k>get off</k>
-poistua [puhek.]</ar>
-<ar><k>get off my back</k>
-älä ole inhottava [puhek.]</ar>
-<ar><k>get on</k>
-edistyä, pärjätä, viihtyä, nousta</ar>
-<ar><k>get one's monkey up</k>
-suuttua [puhek.]</ar>
-<ar><k>get ones cards</k>
-saada potkut [puhek.]</ar>
-<ar><k>get out</k>
-päästä ulos</ar>
-<ar><k>get out of</k>
-päästä pois</ar>
-<ar><k>get out of breath</k>
-hengästyä</ar>
-<ar><k>get over</k>
-päästä jnk yli</ar>
-<ar><k>get ready</k>
-laittautua</ar>
-<ar><k>get ready for</k>
-valmistautua</ar>
-<ar><k>get rich</k>
-rikastua</ar>
-<ar><k>get rough</k>
-sierettyä</ar>
-<ar><k>get scorched</k>
-kärventyä</ar>
-<ar><k>get sick of</k>
-tympeytyä</ar>
-<ar><k>get smudged</k>
-nuhraantua</ar>
-<ar><k>get soaked</k>
-liota</ar>
-<ar><k>get soiled</k>
-tuhraantua</ar>
-<ar><k>get squeezed</k>
-likistyä</ar>
-<ar><k>get stiff</k>
-puutua</ar>
-<ar><k>get stuck</k>
-takertua</ar>
-<ar><k>get sunburnt</k>
-päivettyä</ar>
-<ar><k>get tanned</k>
-päivettyä</ar>
-<ar><k>get there</k>
-saapua</ar>
-<ar><k>get thicker</k>
-saeta</ar>
-<ar><k>get thinned</k>
-harventa</ar>
-<ar><k>get thinner</k>
-hoikenta, laihtua</ar>
-<ar><k>get through</k>
-tulla perille</ar>
-<ar><k>get tired</k>
-kyllästyä, työlästyä, väsähtää</ar>
-<ar><k>get to</k>
-joutua</ar>
-<ar><k>get together</k>
-kokoontua</ar>
-<ar><k>get twisted</k>
-kiertyä, punoutua</ar>
-<ar><k>get up</k>
-nousta</ar>
-<ar><k>get used to</k>
-tottua</ar>
-<ar><k>get warm</k>
-lämmetä, lämmitä</ar>
-<ar><k>get wet</k>
-kastua</ar>
-<ar><k>get worried</k>
-huolestua</ar>
-<ar><k>get worse</k>
-huonontua, huonota</ar>
-<ar><k>get-on</k>
-edistyä</ar>
-<ar><k>get-together</k>
-kokoontuminen</ar>
-<ar><k>ghastliness</k>
-kaameus</ar>
-<ar><k>ghastly</k>
-kaamea, kamala, kauhistava</ar>
-<ar><k>ghost</k>
-aave, haamu, kummitus</ar>
-<ar><k>ghostlike</k>
-aavemainen</ar>
-<ar><k>giant</k>
-jättiläinen</ar>
-<ar><k>gibe</k>
-ivasana, letkaus, pilkkasana, pistosana</ar>
-<ar><k>gibing</k>
-ilkkuva</ar>
-<ar><k>giddiness</k>
-huimaus</ar>
-<ar><k>giddy</k>
-huimava</ar>
-<ar><k>gift</k>
-lahja</ar>
-<ar><k>gift voucher</k>
-lahjakortti</ar>
-<ar><k>gifted</k>
-lahjakas</ar>
-<ar><k>gigantic</k>
-jättiläismäinen</ar>
-<ar><k>giggle</k>
-tirskunta
-
-hihttää, kikattaa, tirskua</ar>
-<ar><k>giggling</k>
-hihitys</ar>
-<ar><k>gild</k>
-kullata</ar>
-<ar><k>gills</k>
-kidukset</ar>
-<ar><k>gimmick</k>
-niksi</ar>
-<ar><k>ginger</k>
-inkivääri</ar>
-<ar><k>gingerbread biscuit</k>
-piparkakku</ar>
-<ar><k>gipsy</k>
-mustlainen</ar>
-<ar><k>giraffe</k>
-kirahvi</ar>
-<ar><k>girdle</k>
-liivit (kapeat), vyö</ar>
-<ar><k>girl</k>
-tyttö</ar>
-<ar><k>girl guide</k>
-partiotyttö</ar>
-<ar><k>girl-friend</k>
-heila</ar>
-<ar><k>girl-partner</k>
-daami</ar>
-<ar><k>give</k>
-antaa, esittää (mainita), lahjoittaa, suoda</ar>
-<ar><k>give a jerk</k>
-hypähtää</ar>
-<ar><k>give a jump</k>
-hytkähtää</ar>
-<ar><k>give a laugh</k>
-naurahtaa</ar>
-<ar><k>give a lecture</k>
-esitelmöidä</ar>
-<ar><k>give a scream</k>
-kirkaista</ar>
-<ar><k>give a start</k>
-hätkähtää</ar>
-<ar><k>give an account of</k>
-selostaa</ar>
-<ar><k>give birth</k>
-synnyttää</ar>
-<ar><k>give information about</k>
-informoida</ar>
-<ar><k>give oneself up</k>
-antautua, heittäytyä (antautua)</ar>
-<ar><k>give permission</k>
-sallia</ar>
-<ar><k>give reasons for</k>
-perustella</ar>
-<ar><k>give sustance to</k>
-aineellistaa</ar>
-<ar><k>give the alarm</k>
-hälyttää</ar>
-<ar><k>give trouble</k>
-haitata</ar>
-<ar><k>give up</k>
-jättää (luopua), luopua, luovuttaa</ar>
-<ar><k>give way</k>
-helitä (antaa perään), väistyä, väistää</ar>
-<ar><k>give what for</k>
-haukkua [puhek.]</ar>
-<ar><k>giver</k>
-antaja</ar>
-<ar><k>glacial</k>
-jääkautinen</ar>
-<ar><k>gladden</k>
-ilahduttaa</ar>
-<ar><k>glade</k>
-aho</ar>
-<ar><k>gladly</k>
-halukkaasti, ilomielin, mielellään</ar>
-<ar><k>glance</k>
-katse, silmäys, vilkaisu</ar>
-<ar><k>glance at</k>
-vilkaista</ar>
-<ar><k>gland</k>
-rauhanen</ar>
-<ar><k>glare</k>
-räikeys</ar>
-<ar><k>glaring</k>
-räikeä</ar>
-<ar><k>glass</k>
-lasi, lasillinen, lasinen</ar>
-<ar><k>glass blocks</k>
-lasitiilet</ar>
-<ar><k>glass blower</k>
-lasinpuhaltaja</ar>
-<ar><k>glass pane</k>
-lasiruutu</ar>
-<ar><k>glass rebate</k>
-lasiura</ar>
-<ar><k>glass tile</k>
-lasikattotiili</ar>
-<ar><k>glass wool</k>
-lasivilla</ar>
-<ar><k>glass wool roll</k>
-lasivillamatto</ar>
-<ar><k>glassful</k>
-lasillinen</ar>
-<ar><k>glassware</k>
-lasitavara</ar>
-<ar><k>glassworks</k>
-lasitehdas</ar>
-<ar><k>glassy</k>
-lasimainen</ar>
-<ar><k>glaze</k>
-lasittaa</ar>
-<ar><k>glazed</k>
-kiiltopintainen</ar>
-<ar><k>glazed door</k>
-lasiovi</ar>
-<ar><k>glazed earthenware</k>
-fajanssi</ar>
-<ar><k>glazed tile</k>
-lasitetut seinälaatat, kaakeli</ar>
-<ar><k>glazier</k>
-lasimestari, lasittaja</ar>
-<ar><k>glazing</k>
-lasitus</ar>
-<ar><k>gleam</k>
-hohde, kajastus, välke
-
-hohtaa, kiiltää, tuikkia, välkkyä</ar>
-<ar><k>glib</k>
-kielevä, liukaskielinen</ar>
-<ar><k>glib-tongued</k>
-lipeäkielinen</ar>
-<ar><k>glibness</k>
-kielevyys</ar>
-<ar><k>glide</k>
-liitää, liukua, luisua, solua</ar>
-<ar><k>glider</k>
-liitolentokone, purjekone</ar>
-<ar><k>gliding</k>
-liitolento, purjelento</ar>
-<ar><k>glimmer</k>
-kiilua, kimaltaa, tuikkia, väikkyä, välkkyä</ar>
-<ar><k>glimmering</k>
-kimallus</ar>
-<ar><k>glimpse</k>
-pilkahdus, vilahdus, vilaus</ar>
-<ar><k>glint</k>
-kiilua</ar>
-<ar><k>glisten</k>
-kiiltää</ar>
-<ar><k>glitter</k>
-kiiltää, kimaltaa, väikkyä, välkkyä</ar>
-<ar><k>glittering</k>
-kimallus</ar>
-<ar><k>globe</k>
-karttapallo, maapallo, pallokartta</ar>
-<ar><k>gloom</k>
-synkkyys</ar>
-<ar><k>gloomy</k>
-kolkko</ar>
-<ar><k>glorious</k>
-ihana, kunniakas, loistava (kuv)</ar>
-<ar><k>glory</k>
-ihannus, kunnia</ar>
-<ar><k>gloss</k>
-kiilto</ar>
-<ar><k>glossary</k>
-sanasto</ar>
-<ar><k>glossy</k>
-kiiltopintainen, kiiltävä</ar>
-<ar><k>glove</k>
-hansikas, käsine, sormikas</ar>
-<ar><k>glow</k>
-hehkua, kiilua
-
-rusko</ar>
-<ar><k>glucose</k>
-glykoosi</ar>
-<ar><k>glue</k>
-liima, liimata</ar>
-<ar><k>gluing</k>
-liimaus</ar>
-<ar><k>glum</k>
-nyrpeä</ar>
-<ar><k>glutton</k>
-ahma</ar>
-<ar><k>gluttonous</k>
-ahnas</ar>
-<ar><k>glycerine</k>
-glyseriini</ar>
-<ar><k>gnashing</k>
-hammastenkiristys</ar>
-<ar><k>gnat</k>
-mäkärä, sääski</ar>
-<ar><k>gnaw</k>
-kalvaa, nakertaa</ar>
-<ar><k>gnaw at</k>
-jyrsiä, jäytää</ar>
-<ar><k>go</k>
-kulkea, käydä, lähteä, mennä</ar>
-<ar><k>go astray</k>
-eksyä</ar>
-<ar><k>go away</k>
-poistua</ar>
-<ar><k>go blind</k>
-sokeutua</ar>
-<ar><k>go by</k>
-kulua (ajasta), sivuuttaa</ar>
-<ar><k>go down</k>
-aleta, laskeutua, talttua</ar>
-<ar><k>go fly a kite</k>
-juokse jorpakkoon [puhek.]</ar>
-<ar><k>go for a walk</k>
-lenkki</ar>
-<ar><k>go into ecstasies</k>
-hurmioitua</ar>
-<ar><k>go into raptures</k>
-hurmioitua</ar>
-<ar><k>go limp</k>
-herpaantua</ar>
-<ar><k>go mad</k>
-hullaantua</ar>
-<ar><k>go numb</k>
-puutua</ar>
-<ar><k>go off</k>
-laueta</ar>
-<ar><k>go on</k>
-jatkaa, jatkua (kestää)</ar>
-<ar><k>go out</k>
-juhlia, sammua</ar>
-<ar><k>go through</k>
-kärsiä (kestää)
-
-tarkistaa, käydä läpi</ar>
-<ar><k>go through the motions</k>
-teeskennellä [puhek.]</ar>
-<ar><k>go to blazes</k>
-painu mäkeen [puhek.]</ar>
-<ar><k>go to pieces</k>
-hajalle (rikki)</ar>
-<ar><k>go to sleep</k>
-nukahtaa</ar>
-<ar><k>go to the cleaners</k>
-menettää kaikki rahansa [puhek.]</ar>
-<ar><k>go up</k>
-kohota</ar>
-<ar><k>go with</k>
-saattaa (seurata)</ar>
-<ar><k>go-ahead</k>
-vihreä liikennevalo [puhek.]</ar>
-<ar><k>go-slow</k>
-jarrutuslakko</ar>
-<ar><k>goal</k>
-maali (urh), päämaali, päämäärä, tyrmä</ar>
-<ar><k>goal line</k>
-maaliviiva</ar>
-<ar><k>goalkeeper</k>
-maalivahti</ar>
-<ar><k>goat</k>
-vuohi</ar>
-<ar><k>goatskin</k>
-pukinnahka</ar>
-<ar><k>goblet</k>
-pikari</ar>
-<ar><k>goblin</k>
-peikko</ar>
-<ar><k>god</k>
-jumala</ar>
-<ar><k>god-forsaken</k>
-jumalanhylkäämä</ar>
-<ar><k>goddaughter</k>
-kummitytär</ar>
-<ar><k>godess</k>
-jumalatar</ar>
-<ar><k>godfather</k>
-kummi</ar>
-<ar><k>godless</k>
-jumalaton</ar>
-<ar><k>godly</k>
-jumalinen</ar>
-<ar><k>godmother</k>
-kummi</ar>
-<ar><k>godson</k>
-kummipoika</ar>
-<ar><k>going through</k>
-läpikulkeva</ar>
-<ar><k>goitre</k>
-struuma (lääk)</ar>
-<ar><k>gold</k>
-kulta, kultainen</ar>
-<ar><k>gold-digger</k>
-kullankaivaja</ar>
-<ar><k>gold-washing</k>
-kullanhuuhdonta</ar>
-<ar><k>golden</k>
-kultainen</ar>
-<ar><k>golden age</k>
-loistokausi</ar>
-<ar><k>golden anniversary</k>
-kultahäät</ar>
-<ar><k>goldsmith</k>
-kultaseppä</ar>
-<ar><k>golf</k>
-golf</ar>
-<ar><k>golf club</k>
-golfmaila</ar>
-<ar><k>golf links</k>
-golfkenttä</ar>
-<ar><k>gondola</k>
-gondoli</ar>
-<ar><k>gong</k>
-malmirumpu</ar>
-<ar><k>gonorrhea</k>
-tippuri</ar>
-<ar><k>good</k>
-hyvä, hyvä, kelvollinen, kiltti, kunnollinen</ar>
-<ar><k>good for him</k>
-loisto juttu [puhek.]</ar>
-<ar><k>good for nothing</k>
-epäkelpo</ar>
-<ar><k>good gracious</k>
-auta armias</ar>
-<ar><k>good heavens</k>
-hyvänen aika, pahus</ar>
-<ar><k>good humour</k>
-hyväntuulisuus</ar>
-<ar><k>good looking</k>
-hauskannäköinen, kaunis</ar>
-<ar><k>good make</k>
-hyvätekoinen</ar>
-<ar><k>good manners</k>
-ihmistavat</ar>
-<ar><k>good news</k>
-ilosanoma</ar>
-<ar><k>good side</k>
-ansiopuoli</ar>
-<ar><k>good smell</k>
-tuoksu</ar>
-<ar><k>good style</k>
-tyylikkyys</ar>
-<ar><k>good taste</k>
-aistikkuus</ar>
-<ar><k>good tempered</k>
-hyväluontoinen</ar>
-<ar><k>good-bye</k>
-hyvästi</ar>
-<ar><k>good-for-nothing</k>
-hultiomainen, hulttio, hylkiö, kelvoton, kunnoton, tyhjäntoimittaja, vätys</ar>
-<ar><k>good-humoured</k>
-hyväntuulinen</ar>
-<ar><k>good-looking</k>
-komea (hauskannäköinen)</ar>
-<ar><k>good-mannered</k>
-hyväntapainen</ar>
-<ar><k>good-natured</k>
-kiltti</ar>
-<ar><k>goodness</k>
-hyvyys</ar>
-<ar><k>goodness me</k>
-hyvänen aika</ar>
-<ar><k>goodwill</k>
-hyväntahtoisuus, hyväsuopuus</ar>
-<ar><k>goose</k>
-hanhi</ar>
-<ar><k>goose bumps</k>
-kananliha [puhek.]</ar>
-<ar><k>goose pimples</k>
-kananliha (kuv)</ar>
-<ar><k>gooseberry</k>
-karviaismarja</ar>
-<ar><k>gore</k>
-hurme</ar>
-<ar><k>gorge</k>
-hotkia, kuilu, rotko</ar>
-<ar><k>gorge oneself</k>
-mässätä</ar>
-<ar><k>gorgeous</k>
-hemaiseva, uhkea</ar>
-<ar><k>gory</k>
-hurmeinen</ar>
-<ar><k>gosling</k>
-hanhenpoika</ar>
-<ar><k>gossip</k>
-juoru, juoruakka, juoruta</ar>
-<ar><k>gossip-monger</k>
-juorukello</ar>
-<ar><k>gossipy</k>
-juoruhaluinen</ar>
-<ar><k>gothic type</k>
-fraktuura</ar>
-<ar><k>gourd</k>
-kurpitsa</ar>
-<ar><k>gourmet</k>
-herkkusuu, herkuttelija</ar>
-<ar><k>gout</k>
-kihti, leini</ar>
-<ar><k>govern</k>
-hallita</ar>
-<ar><k>governess</k>
-kotiopettajatar</ar>
-<ar><k>governing body</k>
-johtoelin</ar>
-<ar><k>government</k>
-hallitus, valtio (hallitus), esivalta</ar>
-<ar><k>government loan</k>
-valtionlaina</ar>
-<ar><k>governmental</k>
-hallinnollinen, valtion</ar>
-<ar><k>governor</k>
-kuvernööri, käskynhaltija, maaherra</ar>
-<ar><k>gown</k>
-kaapu, vaippa, viitta (kaapu)</ar>
-<ar><k>grab</k>
-kahmaista, siepata, tarrata</ar>
-<ar><k>grace</k>
-armo, pöytärukous, sulo, sulous, viehkeys</ar>
-<ar><k>graceful</k>
-siro (hieno), viehkeä, sorea</ar>
-<ar><k>gracefulness</k>
-soreus</ar>
-<ar><k>graceless</k>
-suloton</ar>
-<ar><k>gracious</k>
-armollinen</ar>
-<ar><k>grade</k>
-arvoluokka, aste, luokka
-
-lajitella, luokitella, luokittaa</ar>
-<ar><k>gradient</k>
-rinne, nousu</ar>
-<ar><k>grading</k>
-luokitus</ar>
-<ar><k>gradual</k>
-asteittainen, vähittäinen</ar>
-<ar><k>gradually</k>
-asteittain</ar>
-<ar><k>graduate engineer</k>
-diplomiinsinööri</ar>
-<ar><k>graduated glass</k>
-mittalasi</ar>
-<ar><k>graft</k>
-jalostaa (puita), oksastaa</ar>
-<ar><k>grafting</k>
-oksastus, ymppäys</ar>
-<ar><k>grain</k>
-elo (vilja), hiukkanen, jyvä, rae (jyvänen), vilja</ar>
-<ar><k>grain of gold</k>
-kultajyvä</ar>
-<ar><k>grain of sand</k>
-hiekkajyvänen</ar>
-<ar><k>graininess</k>
-rakeisuus</ar>
-<ar><k>gramaphone</k>
-gramofoni</ar>
-<ar><k>grammar</k>
-kielioppi</ar>
-<ar><k>grammatical</k>
-kieliopillinen</ar>
-<ar><k>gramme</k>
-gramma</ar>
-<ar><k>granary</k>
-viljaaitta, jyväaitta, viljaaitta</ar>
-<ar><k>grand</k>
-juhlallinen, komea, loistelias (upea), mukea, suurenmoinen, uhkea</ar>
-<ar><k>grand duke</k>
-suurherttua</ar>
-<ar><k>grand master</k>
-suurmestari</ar>
-<ar><k>grand piano</k>
-flyygeli (mus)</ar>
-<ar><k>granddaughter</k>
-pojantytär, tyttärentytär</ar>
-<ar><k>grandeur</k>
-loisto</ar>
-<ar><k>grandfather</k>
-isoisä, vaari</ar>
-<ar><k>grandfather clock</k>
-kaappikello</ar>
-<ar><k>grandly</k>
-suurenmoisesti</ar>
-<ar><k>grandmother</k>
-isoäiti, mummo (isoäiti)</ar>
-<ar><k>grandpa</k>
-ukki, vaari</ar>
-<ar><k>grandparents</k>
-isovanhemmat</ar>
-<ar><k>grandson</k>
-pojanpoika, tyttärenpoika</ar>
-<ar><k>granite</k>
-granaatti</ar>
-<ar><k>granny</k>
-mummi</ar>
-<ar><k>grant</k>
-apuraha, stipendi
-
-suoda, suostua (jhk)</ar>
-<ar><k>granular</k>
-rakeinen</ar>
-<ar><k>granulated sugar</k>
-kidesokeria</ar>
-<ar><k>granule</k>
-jyvänen, rae (jyvänen)</ar>
-<ar><k>grape</k>
-viinirypäle, viinirypäle</ar>
-<ar><k>grapefruit</k>
-greippi</ar>
-<ar><k>graph</k>
-käyrä</ar>
-<ar><k>graphic</k>
-graafinen, havainnollinen</ar>
-<ar><k>graphite</k>
-grafiitti</ar>
-<ar><k>grapnel</k>
-harkki</ar>
-<ar><k>grasp</k>
-hoksata, kahmaista, kouraista, käsittää, tajuta, tarrata, tarttua, ymmärtää</ar>
-<ar><k>grass</k>
-heinikko, heinä (ruoho), nurmi, ruoho</ar>
-<ar><k>grass thatch</k>
-ruohokatto</ar>
-<ar><k>grasshopper</k>
-heinäsirkka</ar>
-<ar><k>grate</k>
-hierora (rikki)</ar>
-<ar><k>grateful</k>
-kiitollinen</ar>
-<ar><k>grater</k>
-riivinrauta</ar>
-<ar><k>gratification</k>
-tyydytys</ar>
-<ar><k>gratify</k>
-tyydyttää</ar>
-<ar><k>gratitude</k>
-kiitollisuus</ar>
-<ar><k>gratuity</k>
-juomaraha, lahjapalkkio</ar>
-<ar><k>grave</k>
-hauta</ar>
-<ar><k>grave-digger</k>
-haudankaivaja</ar>
-<ar><k>gravel</k>
-hiekka (karkea), sora</ar>
-<ar><k>graveyard</k>
-kalmisto</ar>
-<ar><k>gravity</k>
-arveluttavuus, raskaus</ar>
-<ar><k>grayling</k>
-harjus (zo)</ar>
-<ar><k>graze</k>
-hipaista, laiduntaa, raapaista, sipaista</ar>
-<ar><k>grazing ground</k>
-laidun (laaja)</ar>
-<ar><k>grease</k>
-konerasva, voiteluaine</ar>
-<ar><k>grease trap</k>
-rasvanerotuskaivo</ar>
-<ar><k>greaseproof paper</k>
-pergamiini, voipaperi</ar>
-<ar><k>greasing</k>
-rasvaus, voitelu</ar>
-<ar><k>great</k>
-mahtava, suurenmoinen, suuri</ar>
-<ar><k>great ability</k>
-etevyys</ar>
-<ar><k>great aunt</k>
-isotäti</ar>
-<ar><k>great hall</k>
-juhlasali</ar>
-<ar><k>great occasion</k>
-juhlahetki</ar>
-<ar><k>great power</k>
-suurvalta</ar>
-<ar><k>greater</k>
-suurempi</ar>
-<ar><k>greater amount</k>
-enemmyys</ar>
-<ar><k>greater part</k>
-enemmistö</ar>
-<ar><k>greatest</k>
-suurin</ar>
-<ar><k>greatly</k>
-suuresti</ar>
-<ar><k>greatness</k>
-mahtavuus, suuruus</ar>
-<ar><k>greed</k>
-himo</ar>
-<ar><k>greed for gain</k>
-voitonhimo</ar>
-<ar><k>greedy</k>
-ahnas, ahne, himokas, perso</ar>
-<ar><k>greedy for</k>
-himoinen</ar>
-<ar><k>greedy for power</k>
-vallanhimoinen</ar>
-<ar><k>green</k>
-vihreä</ar>
-<ar><k>green fruit</k>
-raakile</ar>
-<ar><k>greenhouse</k>
-ansari, kasvihuone</ar>
-<ar><k>greenness</k>
-vihreys</ar>
-<ar><k>greet</k>
-tervehtiä</ar>
-<ar><k>greeting</k>
-tervehdys</ar>
-<ar><k>greetings card</k>
-adressi</ar>
-<ar><k>greetings telegram</k>
-korusähke</ar>
-<ar><k>gregarious animal</k>
-laumaeläin</ar>
-<ar><k>grenade</k>
-kranaatti</ar>
-<ar><k>grey</k>
-harmaa</ar>
-<ar><k>grey seal</k>
-halli (hylje)</ar>
-<ar><k>grey-haired</k>
-harmaahapsinen</ar>
-<ar><k>greyhound</k>
-vinttikoira</ar>
-<ar><k>greyish</k>
-harmahtava</ar>
-<ar><k>greyness</k>
-harmaus</ar>
-<ar><k>grid</k>
-ristikko, mittaviivoitus</ar>
-<ar><k>grid line</k>
-mittaviiva</ar>
-<ar><k>grief</k>
-murhe, sureminen, suru</ar>
-<ar><k>grieve</k>
-murehduttaa, murehtia, surettaa, surra</ar>
-<ar><k>grill</k>
-grilli, paahdin
-
-grillata, paahtaa</ar>
-<ar><k>grille</k>
-ristikko</ar>
-<ar><k>grim</k>
-tuikea, tuima</ar>
-<ar><k>grim humour</k>
-hirtehispila</ar>
-<ar><k>grimace</k>
-irvistys, virnistys
-
-virnistellä</ar>
-<ar><k>grimness</k>
-tuimuus</ar>
-<ar><k>grin</k>
-irvistysvirnistys
-
-hymyillä (leveästi), irvistää, virnistellä</ar>
-<ar><k>grind</k>
-hioa, jauhaa, tahkota</ar>
-<ar><k>grind fine</k>
-hienontaa</ar>
-<ar><k>grinder</k>
-hiomakone</ar>
-<ar><k>grinding</k>
-jauhatus</ar>
-<ar><k>grinding-machine</k>
-hiomakone</ar>
-<ar><k>grindstone</k>
-tahkokivi</ar>
-<ar><k>grip</k>
-ote (luja)
-
-kouraista, tarttua</ar>
-<ar><k>grisly</k>
-kaamea, karmea</ar>
-<ar><k>gristle</k>
-rusto</ar>
-<ar><k>grit</k>
-sisu, sora</ar>
-<ar><k>grizzly</k>
-harmahtava</ar>
-<ar><k>groan</k>
-voihkia
-
-huoata (valittaen), vaikeroida, valittaa</ar>
-<ar><k>groin</k>
-nivuset</ar>
-<ar><k>groined slab</k>
-arinalaatta</ar>
-<ar><k>grommet</k>
-läpivientirengas</ar>
-<ar><k>groom</k>
-hevosenhoitaja, ratsupalvelija, tallirenki</ar>
-<ar><k>groove</k>
-naaraspontti, ura, uurre
-
-uurtaa</ar>
-<ar><k>grooved</k>
-uurteinen</ar>
-<ar><k>grooved sheet</k>
-rihlalevy</ar>
-<ar><k>grope</k>
-haparoida, hapuilla</ar>
-<ar><k>grope after</k>
-kopeloida</ar>
-<ar><k>gross</k>
-brutto</ar>
-<ar><k>grossness</k>
-törkeys</ar>
-<ar><k>grotesque</k>
-groteski, irvokas</ar>
-<ar><k>grotto</k>
-luola</ar>
-<ar><k>ground</k>
-maa, maatto-
-
-maa</ar>
-<ar><k>ground colour</k>
-pohjaväri</ar>
-<ar><k>ground floor</k>
-alakerros, alakerta, pohjakerros</ar>
-<ar><k>groundless</k>
-aiheeton, perätön</ar>
-<ar><k>groundlessness</k>
-perättömyys</ar>
-<ar><k>grounds</k>
-poro (kahvin)</ar>
-<ar><k>groundworker</k>
-betonityöntekijä</ar>
-<ar><k>group</k>
-ryhmä
-
-ryhmittyä, ryhmittää</ar>
-<ar><k>group function</k>
-ryhmätoiminto</ar>
-<ar><k>grouping</k>
-ryhmitys</ar>
-<ar><k>grouse</k>
-metsäkana, purnata</ar>
-<ar><k>grove</k>
-lehto</ar>
-<ar><k>grow</k>
-enetä, karttua, kasvaa, kasvattaa, varttua, viljellä</ar>
-<ar><k>grow black</k>
-mustua</ar>
-<ar><k>grow childish</k>
-höpertyä (vanhuuttaan)</ar>
-<ar><k>grow dark</k>
-pimetä</ar>
-<ar><k>grow dim</k>
-himmenntyä</ar>
-<ar><k>grow dull</k>
-lamaantua</ar>
-<ar><k>grow dusky</k>
-hämärtää</ar>
-<ar><k>grow faint</k>
-nääntyä</ar>
-<ar><k>grow firmer</k>
-lujittua</ar>
-<ar><k>grow numb</k>
-kohmettua, puutua</ar>
-<ar><k>grow numb with cold</k>
-köntistyä</ar>
-<ar><k>grow old</k>
-ikääntyä, vanhentua</ar>
-<ar><k>grow shoter</k>
-lyhetä</ar>
-<ar><k>grow stiff</k>
-kohmettua</ar>
-<ar><k>grow tired</k>
-uupua</ar>
-<ar><k>grow up</k>
-kasvaa, varttua</ar>
-<ar><k>grow weaker</k>
-heiketä</ar>
-<ar><k>grower</k>
-kasvattaja, viljelijä</ar>
-<ar><k>growl</k>
-murina
-
-murahtaa, murista, äristä</ar>
-<ar><k>grown-up</k>
-aikaihminen, aikuinen, täysikasvuinen</ar>
-<ar><k>grown-up man</k>
-aikamies</ar>
-<ar><k>growth</k>
-kasvain, kasvu</ar>
-<ar><k>grub</k>
-sapuska, sorkkia (tonkia), tonkia, toukka (kovakuoriaisen)</ar>
-<ar><k>grudge</k>
-kauna, vihankauna</ar>
-<ar><k>gruel</k>
-jauhovelli, kauravelli, velli</ar>
-<ar><k>gruesome</k>
-kaamea, karmea, kolkko (kaamea)</ar>
-<ar><k>gruff</k>
-karski, töykeä, äreä</ar>
-<ar><k>grumble</k>
-jupista, napista, nureksia, nurista, nurkkua, purnata</ar>
-<ar><k>grumbling</k>
-napina, nurina</ar>
-<ar><k>grumpiness</k>
-äreys</ar>
-<ar><k>grumpy</k>
-äreä</ar>
-<ar><k>grunt</k>
-röhkiä</ar>
-<ar><k>guarantee</k>
-taata, takaus, takuu, vakuus</ar>
-<ar><k>guaranteed</k>
-taatu</ar>
-<ar><k>guarantor</k>
-takaaja</ar>
-<ar><k>guard</k>
-suojus, suojustin, vahti, vartija, vartio, 
-
-suojata, suojella, turvata, vartioida</ar>
-<ar><k>guard of honour</k>
-kunniakomppania, kunniavartio</ar>
-<ar><k>guard rail</k>
-suojakaide</ar>
-<ar><k>guardian</k>
-holhooja, kaitsija (vartija)</ar>
-<ar><k>guardroom</k>
-aresti (sot)</ar>
-<ar><k>guards</k>
-kaarti</ar>
-<ar><k>guardsman</k>
-kaartilainen</ar>
-<ar><k>guerilla</k>
-sissi</ar>
-<ar><k>guess</k>
-arvailla, arvata</ar>
-<ar><k>guesswork</k>
-arvailu</ar>
-<ar><k>guest</k>
-vierailija, vieras</ar>
-<ar><k>guest room</k>
-vierashuone</ar>
-<ar><k>guffaw</k>
-hohottaa</ar>
-<ar><k>guidance</k>
-johdatus, ohjaus, apu, opastus</ar>
-<ar><k>guide</k>
-matkaopas, opas, ohjain
-
-ohjata, opastaa</ar>
-<ar><k>guide-book</k>
-matkaopas</ar>
-<ar><k>guideline</k>
-ohje</ar>
-<ar><k>guiding star</k>
-johtotähti</ar>
-<ar><k>guild</k>
-kilta</ar>
-<ar><k>guild system</k>
-ammattilaitos</ar>
-<ar><k>guile</k>
-juonikkuus</ar>
-<ar><k>guillotine</k>
-giljotiini</ar>
-<ar><k>guilt</k>
-syyllisyys</ar>
-<ar><k>guiltless</k>
-syytön</ar>
-<ar><k>guilty</k>
-syyllinen, syynalainen</ar>
-<ar><k>guilty person</k>
-syyllinen</ar>
-<ar><k>guinea pig</k>
-koekaniini</ar>
-<ar><k>guinea-fowl</k>
-helmikana</ar>
-<ar><k>guinea-pig</k>
-marsu</ar>
-<ar><k>guitar</k>
-kitara</ar>
-<ar><k>guitarist</k>
-kitaransoittaja</ar>
-<ar><k>gulf</k>
-juopa, merenlahti, merenlahti</ar>
-<ar><k>gull</k>
-lokki</ar>
-<ar><k>gulp</k>
-kulaus, siemaus
-
-hotkia</ar>
-<ar><k>gulp down</k>
-nielaista, siemaista</ar>
-<ar><k>gum</k>
-ien
-
-liisteröidä, pihka</ar>
-<ar><k>gummed tape</k>
-liimanauha, liitospaperi</ar>
-<ar><k>gums</k>
-ikenet</ar>
-<ar><k>gun</k>
-ampumaase, kivääri, pyssy, tykki</ar>
-<ar><k>gun-carriage</k>
-lavetti</ar>
-<ar><k>gunner</k>
-tykkimies</ar>
-<ar><k>gunpowder</k>
-ruuti</ar>
-<ar><k>gunwale</k>
-laide (laivan)</ar>
-<ar><k>gurgle</k>
-jokeltaa, lorista</ar>
-<ar><k>gush out</k>
-purskua</ar>
-<ar><k>gusset plate</k>
-liitoslevy</ar>
-<ar><k>gusset plates</k>
-liitoslevyt</ar>
-<ar><k>gust</k>
-puuska, tuulispää</ar>
-<ar><k>gust of wind</k>
-tuulenpuuska, vihuri</ar>
-<ar><k>gusty</k>
-puuskainen</ar>
-<ar><k>gut</k>
-suoli</ar>
-<ar><k>guts</k>
-sisu</ar>
-<ar><k>gutsy</k>
-topakka</ar>
-<ar><k>gutter</k>
-katuoja, kattokouru</ar>
-<ar><k>gutter bracket</k>
-kourub kannatin</ar>
-<ar><k>gutters</k>
-räystäkourut</ar>
-<ar><k>guy</k>
-heppu</ar>
-<ar><k>gymnasium</k>
-voimistelusali</ar>
-<ar><k>gymnast</k>
-voimistelija</ar>
-<ar><k>gymnastics</k>
-voimistelu</ar>
-<ar><k>gynacology</k>
-gynakologia, naistenoppi</ar>
-<ar><k>gynecologist</k>
-naistenlääkäri, gynokologi</ar>
-<ar><k>gypsum</k>
-kipsi</ar>
-<ar><k>haberdashery</k>
-lyhyttavarat</ar>
-<ar><k>habit</k>
-tapa, tottumus</ar>
-<ar><k>habitable</k>
-asuttava</ar>
-<ar><k>habitual drunkard</k>
-juoppolalli</ar>
-<ar><k>hackle</k>
-häkilä, häkilöidä</ar>
-<ar><k>hacksaw</k>
-metallisaha</ar>
-<ar><k>haddock</k>
-kolja (zo)</ar>
-<ar><k>haggle</k>
-tinkiä</ar>
-<ar><k>hail</k>
-saalis (kalan)</ar>
-<ar><k>hailstone</k>
-rae</ar>
-<ar><k>hailstorm</k>
-raekuuro</ar>
-<ar><k>hair dye</k>
-hiusväri</ar>
-<ar><k>hair lotion</k>
-hiusvesi</ar>
-<ar><k>hair of the dog</k>
-krapularyyppy</ar>
-<ar><k>hair slide</k>
-hiussolki</ar>
-<ar><k>hair spray</k>
-hiuslakka</ar>
-<ar><k>hair stylist</k>
-kampaaja</ar>
-<ar><k>hair tonic</k>
-hiusvesi</ar>
-<ar><k>hair-cut</k>
-hiusten (leikkuu)</ar>
-<ar><k>hair-dresser</k>
-kähertäjä</ar>
-<ar><k>hair-ribbon</k>
-hiusnauha</ar>
-<ar><k>hair-splitting</k>
-hiuksenhalkominen</ar>
-<ar><k>hairdo</k>
-kampaus</ar>
-<ar><k>hairdresser</k>
-kampaaja</ar>
-<ar><k>hairdresser's</k>
-kampaamo</ar>
-<ar><k>hairiness</k>
-karvaisuus</ar>
-<ar><k>hairless</k>
-karvaton</ar>
-<ar><k>hairstyle</k>
-kampaus</ar>
-<ar><k>hairy</k>
-karvainen</ar>
-<ar><k>half</k>
-puoleksi, puolikas</ar>
-<ar><k>half done</k>
-puolitekoinen</ar>
-<ar><k>half finished</k>
-puolivalmis</ar>
-<ar><k>half rate carriage</k>
-puoliratakelkka</ar>
-<ar><k>half rate mirror</k>
-taittopeili</ar>
-<ar><k>half round gutter</k>
- puolipyöreä räystäkouru</ar>
-<ar><k>half wave rectifier</k>
-puoliaaltotasasuuntain</ar>
-<ar><k>half-breed</k>
-puoliverinen</ar>
-<ar><k>half-brother</k>
-velipuoli</ar>
-<ar><k>half-hearted</k>
-innoton, penseä</ar>
-<ar><k>half-way</k>
-puolitie</ar>
-<ar><k>halibut</k>
-pallas (zo)</ar>
-<ar><k>hall</k>
-halli, sali</ar>
-<ar><k>hallucination</k>
-aistiharha</ar>
-<ar><k>halo</k>
-sädekehä</ar>
-<ar><k>halo guide</k>
-nosto-ohjain, siirto-ohjain</ar>
-<ar><k>halt</k>
-pysähdys, seisahdus, seisake
-
-pysähtyä</ar>
-<ar><k>halter</k>
-hirttonuora, marhaminta, päitset</ar>
-<ar><k>halve</k>
-puolittaa</ar>
-<ar><k>ham</k>
-kinkku, liikkiö, reisipaisti (sian), sianliikkiö</ar>
-<ar><k>hammer</k>
-nuija, nuijia, vasara</ar>
-<ar><k>hammer-throw</k>
-moukarinheitto</ar>
-<ar><k>hammers</k>
-vasarat</ar>
-<ar><k>hammock</k>
-riippumatto, verkkokeinu</ar>
-<ar><k>hamper</k>
-haitata (ehkäistä)</ar>
-<ar><k>hand</k>
-käsi, osoitin (kellon)</ar>
-<ar><k>hand in</k>
-jättää sisään</ar>
-<ar><k>hand in hand</k>
-käsikkäin</ar>
-<ar><k>hand over</k>
-antaa (ojentta), jättää (antaa)</ar>
-<ar><k>hand shake</k>
-kädenpuristus</ar>
-<ar><k>hand-bag</k>
-käsilaukku</ar>
-<ar><k>hand-rail</k>
-käsinoja (kaide)</ar>
-<ar><k>hand-rolled cigarette</k>
-sätkä</ar>
-<ar><k>hand-writing</k>
-käsiala</ar>
-<ar><k>handbag</k>
-käsilaukku</ar>
-<ar><k>handcrank</k>
-käyttää käsikammella</ar>
-<ar><k>handcuffs</k>
-käsiraudat</ar>
-<ar><k>handicap</k>
-tasoitus (urh), vamma</ar>
-<ar><k>handicraft</k>
-kotiteollisuus, käsityö, veisto</ar>
-<ar><k>handicrafts industries</k>
-käsiteollisuus</ar>
-<ar><k>handiness</k>
-kätevyys, näppäryys</ar>
-<ar><k>handle</k>
-kahva, kannike, kädensija, ripa, sanka, varsi, painike
-
-käsitellä (käsin), pidellä</ar>
-<ar><k>handle roughly</k>
-rusikoida</ar>
-<ar><k>handling</k>
-käsittely</ar>
-<ar><k>handover</k>
-luovutus</ar>
-<ar><k>handrail</k>
-kaidepuu, käsijohde</ar>
-<ar><k>handsaw</k>
-käsisaha</ar>
-<ar><k>handshake</k>
-kädenpuristus</ar>
-<ar><k>handsome</k>
-hauskannäköinen, sievoinen, sievä, sorea</ar>
-<ar><k>handsomeness</k>
-soreus</ar>
-<ar><k>handwork</k>
-käsityö</ar>
-<ar><k>handy</k>
-kätevä, käytännöllinen, näppärä, saatavissa</ar>
-<ar><k>hang</k>
-hirttää, riippua, riiputtaa</ar>
-<ar><k>hang around</k>
-maleksia</ar>
-<ar><k>hang back</k>
-vitkastella</ar>
-<ar><k>hang it</k>
-hitto (soikoon)</ar>
-<ar><k>hang loose</k>
-retkottaa</ar>
-<ar><k>hang on</k>
-odottaa [puhek.]</ar>
-<ar><k>hang oneself</k>
-hirttäytyä</ar>
-<ar><k>hang out</k>
-ripustaa</ar>
-<ar><k>hang up</k>
-ripustaa</ar>
-<ar><k>hanger</k>
-koukku (ripustin), lentokonesuoja, ripustin</ar>
-<ar><k>hanging moss</k>
-naava</ar>
-<ar><k>hangover</k>
-kohmelo, krapula</ar>
-<ar><k>hankerchief</k>
-nenäliina</ar>
-<ar><k>haphazard</k>
-umpimähkään</ar>
-<ar><k>hapless</k>
-kovaosainen</ar>
-<ar><k>happen</k>
-sattua, tapahtua</ar>
-<ar><k>happily</k>
-onnellisesti</ar>
-<ar><k>happiness</k>
-onnellisuus</ar>
-<ar><k>happy</k>
-onnellinen</ar>
-<ar><k>happy go lucky</k>
-hulivili</ar>
-<ar><k>happy landings</k>
-kippis [puhek.]</ar>
-<ar><k>happy-go-lucky</k>
-huoleton</ar>
-<ar><k>harass</k>
-ahdistaa, vaivata (kiusata)</ar>
-<ar><k>harbour</k>
-satama, valkama</ar>
-<ar><k>hard</k>
-kova, lujasti, pulmallinen, tuima (ankara), tukala, työläs, vaikea, vaivalloinen</ar>
-<ar><k>hard boiled egg</k>
-kovanahkainen kaveri [puhek.]</ar>
-<ar><k>hard cheese</k>
-huono tuuri [puhek.]</ar>
-<ar><k>hard drinker</k>
-juomari</ar>
-<ar><k>hard drinking</k>
-juoppous</ar>
-<ar><k>hard nosed</k>
-rämäpäinen [puhek.]</ar>
-<ar><k>hard of hearing</k>
-huonokuuloinen, kuulovikainen</ar>
-<ar><k>hard pushed</k>
-vaikeuksissa [puhek.]</ar>
-<ar><k>hard-faced</k>
-kovanaamainen</ar>
-<ar><k>hard-working</k>
-ahkera, työteliäs</ar>
-<ar><k>hardboard</k>
-puolikova kuitulevy</ar>
-<ar><k>hardcore</k>
-sorapohja</ar>
-<ar><k>harden</k>
-karaista, karkaista, koventaa, koveta, kovettaa, paaduttaa</ar>
-<ar><k>harder</k>
-kovemmin</ar>
-<ar><k>hardly</k>
-tuskin</ar>
-<ar><k>hardness</k>
-kovuus</ar>
-<ar><k>hardship</k>
-vastus</ar>
-<ar><k>hardware</k>
-rautatavara</ar>
-<ar><k>hardware store</k>
-rautakauppa</ar>
-<ar><k>hardwood</k>
-lehtipuu, jalopuu</ar>
-<ar><k>hare</k>
-jänis</ar>
-<ar><k>harem</k>
-haaremi</ar>
-<ar><k>harlot</k>
-huora, portto</ar>
-<ar><k>harm</k>
-tehdä (pahaa), vahingoittaa
-
-vahinko, haitta</ar>
-<ar><k>harmful</k>
-haitallinen, turmiollinen, vahingollinen</ar>
-<ar><k>harmfulness</k>
-turmiollisuus</ar>
-<ar><k>harmless</k>
-harmiton, vaaraton, viaton (asia)</ar>
-<ar><k>harmonium</k>
-harmoni</ar>
-<ar><k>harmony</k>
-harmonia, sopu, sopusointi</ar>
-<ar><k>harness</k>
-johtonippu, silat, valjaat</ar>
-<ar><k>harp</k>
-harppu</ar>
-<ar><k>harp on about</k>
-jankuttaa</ar>
-<ar><k>harpoon</k>
-harppuuna
-
-harppunoida</ar>
-<ar><k>harpsichord</k>
-cembalo</ar>
-<ar><k>harrass</k>
-kiusata, hätyyttää</ar>
-<ar><k>harrow</k>
-hara, karhi
-
-harata</ar>
-<ar><k>harsh</k>
-karmea, karski, kitkerä, kova (ankara), töykeä</ar>
-<ar><k>harsh speaking</k>
-tiuskaisu</ar>
-<ar><k>harshness</k>
-karskius, tylyys</ar>
-<ar><k>hart</k>
-hirvi (koiras)</ar>
-<ar><k>harvest</k>
-leikkuu (elon), sadonkorjuu, sato</ar>
-<ar><k>harvest festival</k>
-elojuhla</ar>
-<ar><k>harvester</k>
-elonleikkuukone</ar>
-<ar><k>harvesting</k>
-elonkorjuu</ar>
-<ar><k>hashis</k>
-hasis</ar>
-<ar><k>hasp</k>
-aspi</ar>
-<ar><k>hasten</k>
-jouduttaa, kiirehtiä, kiiruhtaa, rientää</ar>
-<ar><k>hastily</k>
-häthätää, kiireesti</ar>
-<ar><k>hastiness</k>
-hätäisyys</ar>
-<ar><k>hasty</k>
-hätiköity, hätäinen, kiireellinen, malttamaton, äkkinäinen</ar>
-<ar><k>hat</k>
-hattu</ar>
-<ar><k>hatch</k>
-luukku (laivan ym)</ar>
-<ar><k>hatched</k>
-viivoitettu</ar>
-<ar><k>hatchet</k>
-kirves, piilu</ar>
-<ar><k>hate</k>
-vihata</ar>
-<ar><k>hatred</k>
-viha</ar>
-<ar><k>hatter</k>
-hatuntekijä</ar>
-<ar><k>haughty</k>
-kopea, korskea</ar>
-<ar><k>haul</k>
-kuljettaa, vetää (kuormaa)</ar>
-<ar><k>haulage</k>
-kuljetus</ar>
-<ar><k>hauling</k>
-ajo (kuorman), kuljetus</ar>
-<ar><k>haunch</k>
-lonkka</ar>
-<ar><k>haunt</k>
-kummitella</ar>
-<ar><k>have</k>
-omata, omistaa</ar>
-<ar><k>have a craving for</k>
-himoita</ar>
-<ar><k>have a crush on</k>
-ihastua</ar>
-<ar><k>have a fall</k>
-langeta</ar>
-<ar><k>have a loathing for</k>
-inhota</ar>
-<ar><k>have a look</k>
-katsahtaa, kurkistaa</ar>
-<ar><k>have a preventive</k>
-ehkäisevästi</ar>
-<ar><k>have a rest</k>
-levätä</ar>
-<ar><k>have a shave</k>
-ajattaa partansa</ar>
-<ar><k>have admiration for</k>
-ihailla</ar>
-<ar><k>have built</k>
-rakennuttaa</ar>
-<ar><k>have confidence in</k>
-luottaa (jhk)</ar>
-<ar><k>have consideration for</k>
-häikäillä</ar>
-<ar><k>have engraved</k>
-kaiverruttaa</ar>
-<ar><k>have ground</k>
-jauhattaa</ar>
-<ar><k>have inscribed</k>
-kaiverruttaa</ar>
-<ar><k>have it in for</k>
-olla vihainen [puhek.]</ar>
-<ar><k>have knowledge of</k>
-tietää</ar>
-<ar><k>have made</k>
-laitattaa, teettää</ar>
-<ar><k>have mercy</k>
-armahtaa</ar>
-<ar><k>have no success</k>
-epäonnistua</ar>
-<ar><k>have patience</k>
-malttaa</ar>
-<ar><k>have repaired</k>
-korjauttaa</ar>
-<ar><k>have room</k>
-mahtua</ar>
-<ar><k>have scruples about</k>
-häikäillä</ar>
-<ar><k>have someone on</k>
-tehdä kepponen [puhek.]</ar>
-<ar><k>have supper</k>
-illastaa</ar>
-<ar><k>have the face to</k>
-iljetä</ar>
-<ar><k>have the heart to</k>
-hennoa</ar>
-<ar><k>have the impudence to</k>
-juljeta</ar>
-<ar><k>have the strength to</k>
-jaksaa</ar>
-<ar><k>have time</k>
-ehtiä, ennättää, joutaa</ar>
-<ar><k>have to</k>
-täytyy, täytyä</ar>
-<ar><k>have what it takes</k>
-olla pätevä [puhek.]</ar>
-<ar><k>haven</k>
-valkama</ar>
-<ar><k>haversack</k>
-eväslaukku (sotilaan)</ar>
-<ar><k>havoc</k>
-tuho</ar>
-<ar><k>hawk</k>
-haukka</ar>
-<ar><k>hawker</k>
-katukaupustelija</ar>
-<ar><k>hawser</k>
-touvi</ar>
-<ar><k>hawthorn</k>
-orapihlaja</ar>
-<ar><k>hayfever</k>
-heinänuha</ar>
-<ar><k>haymaking</k>
-heinänteko</ar>
-<ar><k>haystack</k>
-heinäruko</ar>
-<ar><k>hazard</k>
-onnenkauppa, riski, uhka, vaara
-
-vaarantaa, uskaltaa</ar>
-<ar><k>hazardous</k>
-vaarallinen</ar>
-<ar><k>haze</k>
-auer, sumu</ar>
-<ar><k>hazel-grouse</k>
-pyy</ar>
-<ar><k>hazy</k>
-autereinen, epäselvä (sekava), hämärä, sumea</ar>
-<ar><k>he has been had</k>
-häntä on jymäytetty [puhek.]</ar>
-<ar><k>head</k>
-johtaja (laitoksen ym), kanta (naulan), kerä(kaalin), kupu, pää, päämies, tähkä
-
-johtaa, otsikoida, asettua etunenään</ar>
-<ar><k>head of the house</k>
-isäntä</ar>
-<ar><k>head office</k>
-pääkonttori</ar>
-<ar><k>head over heels</k>
-suinpäin</ar>
-<ar><k>head scarf</k>
-huivi, pääliina</ar>
-<ar><k>head shrinker</k>
-kallonkutistaja [puhek.]</ar>
-<ar><k>head-office</k>
-pääkonttori</ar>
-<ar><k>head-on collision</k>
-nokkakolari</ar>
-<ar><k>headache</k>
-päänsärky</ar>
-<ar><k>heading</k>
-otsikko, päällekirjoitus, suunta</ar>
-<ar><k>headlight</k>
-etulyhty, ajovalo</ar>
-<ar><k>headlights</k>
-ajovalot</ar>
-<ar><k>headline</k>
-otsikko</ar>
-<ar><k>headlong</k>
-suinpäin</ar>
-<ar><k>headmaster</k>
-koulunjohtaja, rehtori</ar>
-<ar><k>headmistress</k>
-koulunjohtajatar</ar>
-<ar><k>headphone</k>
-kuuloke (rad)</ar>
-<ar><k>headquarters</k>
-päämaja</ar>
-<ar><k>headscarf</k>
-pääliina</ar>
-<ar><k>headstall</k>
-päitset, riimu</ar>
-<ar><k>headstrong</k>
-itsepäinen</ar>
-<ar><k>headway</k>
-edistyminen</ar>
-<ar><k>headword</k>
-hakusana</ar>
-<ar><k>heal</k>
-parantaa</ar>
-<ar><k>healer</k>
-parantaja</ar>
-<ar><k>health insurance</k>
-sairausvakuutus</ar>
-<ar><k>health resort</k>
-kylpylä</ar>
-<ar><k>healthy</k>
-terve, terveellinen</ar>
-<ar><k>heap</k>
-kasa, läjä, röykkiö, autorämä
-
-kasa</ar>
-<ar><k>heap up</k>
-kartuttaa, kasata</ar>
-<ar><k>hear</k>
-kuulla</ar>
-<ar><k>hearer</k>
-kuulija</ar>
-<ar><k>hearing</k>
-korvakuulo, kuulo</ar>
-<ar><k>hearing aid</k>
-kuulokoje</ar>
-<ar><k>hearsay</k>
-kuulema, kuulopuhe, suupuhe</ar>
-<ar><k>hearse</k>
-ruumisauto</ar>
-<ar><k>heart</k>
-hertta (kortti), sydän</ar>
-<ar><k>heart attack</k>
-sydänkohtaus</ar>
-<ar><k>heart failure</k>
-sydänhalvaus</ar>
-<ar><k>heart throb</k>
-sydänystävä [puhek.]</ar>
-<ar><k>heartache</k>
-sydämentuska, sydänsuru</ar>
-<ar><k>heartbeat</k>
-sydämentykytys</ar>
-<ar><k>heartburn</k>
-närästys</ar>
-<ar><k>heartfelt</k>
-sydämellinen</ar>
-<ar><k>hearth</k>
-takka</ar>
-<ar><k>hearthstone</k>
-arinakivi</ar>
-<ar><k>heartless</k>
-sydämetön</ar>
-<ar><k>hearts</k>
-hertta (maa)</ar>
-<ar><k>hearty</k>
-sydämellinen</ar>
-<ar><k>heat</k>
-erä (urh)
-
-lämpö</ar>
-<ar><k>heat insulation</k>
-lämmöneristys</ar>
-<ar><k>heat rod</k>
-lämpötanko</ar>
-<ar><k>heat roll</k>
-lämpötela</ar>
-<ar><k>heat sink</k>
-jäähdytysripa</ar>
-<ar><k>heat treatment</k>
-lämpöhoito</ar>
-<ar><k>heat up</k>
-kuumentaa</ar>
-<ar><k>heat-stroke</k>
-lämpöhalvaus</ar>
-<ar><k>heat-wave</k>
-helleaalto</ar>
-<ar><k>heater</k>
-lämmitin, kamiina</ar>
-<ar><k>heath</k>
-kanervakangas</ar>
-<ar><k>heathen</k>
-pakana</ar>
-<ar><k>heather</k>
-kanerva</ar>
-<ar><k>heave</k>
-kohoilla</ar>
-<ar><k>heaven</k>
-taivas</ar>
-<ar><k>heavenly</k>
-taivaallinen</ar>
-<ar><k>heavily</k>
-kovasti, rankasti, raskaasti</ar>
-<ar><k>heaviness</k>
-jykevyys, raskaus, sikeys</ar>
-<ar><k>heavy</k>
-järeä (tykistö), painava, rankka, raskas, sikeä, tukeva (vahva), työläs, vahva (kestävä)</ar>
-<ar><k>heavy coat</k>
-paksu takki</ar>
-<ar><k>heavy date</k>
-treffit [puhek.]</ar>
-<ar><k>heavy rain</k>
-rankkasade</ar>
-<ar><k>heavy sea</k>
-merenkäynti</ar>
-<ar><k>heavy shower of rain</k>
-saderyöppy</ar>
-<ar><k>heavy-weight class</k>
-raskassarja (urh)</ar>
-<ar><k>hectare</k>
-hehtaari</ar>
-<ar><k>hedge</k>
-pensasaita
-
-pensasaita</ar>
-<ar><k>hedgehog</k>
-siili</ar>
-<ar><k>heel</k>
-kallistuma (laivan), kanta (kengän), kantapää, korko (kengän)</ar>
-<ar><k>heifer</k>
-hieho, mullikka</ar>
-<ar><k>height</k>
-korkeus, pituus (ihmisen ym)</ar>
-<ar><k>heighten</k>
-korottaa (lisätä)</ar>
-<ar><k>heir</k>
-perija, perillinen</ar>
-<ar><k>helicopter</k>
-helikopteri</ar>
-<ar><k>heliport</k>
-helikoperiasema</ar>
-<ar><k>hell</k>
-helvetti</ar>
-<ar><k>hell *</k>
-helvetti [alat.]</ar>
-<ar><k>hell for leather</k>
-hurjaa vauhtia [puhek.]</ar>
-<ar><k>hell to pay</k>
-sättiminen [puhek.]</ar>
-<ar><k>hellish</k>
-helvetillinen</ar>
-<ar><k>hello</k>
-hei</ar>
-<ar><k>hells bells *</k>
-helvetti [alat.]</ar>
-<ar><k>helm</k>
-peräsin, ruori</ar>
-<ar><k>helmet</k>
-kypärä
-
-kypärä</ar>
-<ar><k>helmsman</k>
-peränpitäjä, ruorimies</ar>
-<ar><k>help</k>
-auttaa, avustaa</ar>
-<ar><k>helper</k>
-apulainen, apuri, auttaja, avustaja</ar>
-<ar><k>helpful</k>
-auttavainen, avulias</ar>
-<ar><k>helpfulness</k>
-avuliaisuus</ar>
-<ar><k>helping</k>
-auttaminen</ar>
-<ar><k>helpless</k>
-avuton</ar>
-<ar><k>helplessness</k>
-avuttomuus, epätoivoisuus</ar>
-<ar><k>helter skelter</k>
-kipin kapin</ar>
-<ar><k>hem</k>
-helma, lieve, palle
-
-palttaa</ar>
-<ar><k>hemp</k>
-hamppu</ar>
-<ar><k>hen</k>
-kana</ar>
-<ar><k>hen-coop</k>
-kanakoppi</ar>
-<ar><k>henceforth</k>
-tästedes, vastedes</ar>
-<ar><k>herald</k>
-airut, sanansaattaja</ar>
-<ar><k>heraldry</k>
-vaakunatiede</ar>
-<ar><k>herb</k>
-ruohokasvi, yrtti</ar>
-<ar><k>herd</k>
-lauma</ar>
-<ar><k>herdsman</k>
-paimen</ar>
-<ar><k>here''s mud in your eye</k>
-maljanne [puhek.]</ar>
-<ar><k>hereditary</k>
-perinnöllinen</ar>
-<ar><k>heredity</k>
-perinnöllisyys</ar>
-<ar><k>hermetically</k>
-ilmanpitävästi</ar>
-<ar><k>hernia</k>
-kohju</ar>
-<ar><k>hero</k>
-sankari, urho</ar>
-<ar><k>heroic</k>
-sankarillinen, urhokas</ar>
-<ar><k>heroically</k>
-sankarillisesti</ar>
-<ar><k>heroism</k>
-sankaruus, urhokkuus</ar>
-<ar><k>heron</k>
-haikara, harmaahaikara</ar>
-<ar><k>herself</k>
-itse (pron)</ar>
-<ar><k>hesitant</k>
-epävarma, empivä</ar>
-<ar><k>hesitate</k>
-arkailla, empiä, epäröidä, siekailla</ar>
-<ar><k>hesitating</k>
-empivä, epäröivä</ar>
-<ar><k>hesitation</k>
-arkailu, epäröinti</ar>
-<ar><k>hessian</k>
-juuttikangas</ar>
-<ar><k>heterodox</k>
-eriuskolainen</ar>
-<ar><k>hew</k>
-hakata</ar>
-<ar><k>hewing</k>
-hakkaus</ar>
-<ar><k>hexagon</k>
-kuusikulmio</ar>
-<ar><k>hexagonal</k>
-kuusikulaminen</ar>
-<ar><k>heyday</k>
-loistokausi</ar>
-<ar><k>hiccup</k>
-nikotus</ar>
-<ar><k>hidden</k>
-salainen</ar>
-<ar><k>hidden purpose</k>
-salatarkoitus</ar>
-<ar><k>hide</k>
-kätkeytyä, kätkeä, piileksiä, piilottaa, vuota</ar>
-<ar><k>hide oneself</k>
-lymyillä</ar>
-<ar><k>hideous</k>
-hirvittävä, inhottava</ar>
-<ar><k>hiding-place</k>
-kätkö, piilo, piilopaikka</ar>
-<ar><k>high</k>
-korkea, ylevä, ylhäinen (korkea), ylhäälle</ar>
-<ar><k>high and mighty</k>
-koppava, pöyhkeä</ar>
-<ar><k>high as a kite</k>
-humalassa [puhek.]</ar>
-<ar><k>high beam</k>
-kaukovalot</ar>
-<ar><k>high dive</k>
-kerroshyppy</ar>
-<ar><k>high road</k>
-maantie</ar>
-<ar><k>high seas</k>
-ulappa</ar>
-<ar><k>high tensile bolt</k>
-vetopultti</ar>
-<ar><k>high tension</k>
-suurjännite (sähk)</ar>
-<ar><k>high tide</k>
-merivuoksi</ar>
-<ar><k>high treason</k>
-maanpetos, valtiopetos</ar>
-<ar><k>high up</k>
-korkealla, korkealle, ylhäällä</ar>
-<ar><k>high water</k>
-merivuoksi</ar>
-<ar><k>high-flown</k>
-pateettinen</ar>
-<ar><k>high-gloss enamel</k>
-kiiltävä lakkamaali</ar>
-<ar><k>high-pitched</k>
-kimeä</ar>
-<ar><k>high-spirited</k>
-elämäniloinen</ar>
-<ar><k>high-yielding</k>
-satoisa</ar>
-<ar><k>higher</k>
-ylempi, ylä</ar>
-<ar><k>higher school examination</k>
-ylioppilastutkinto</ar>
-<ar><k>higher up</k>
-ylemmäksi, ylempänä</ar>
-<ar><k>highlander</k>
-vuoristolainen</ar>
-<ar><k>highlands</k>
-ylänkö</ar>
-<ar><k>highlight</k>
-kohokohta (kuv)</ar>
-<ar><k>highly</k>
-suuresti, ylen (sangen)</ar>
-<ar><k>highly dangerous</k>
-hengenvaarallinen</ar>
-<ar><k>highly strung</k>
-liikaherkkä</ar>
-<ar><k>highwayman</k>
-maantierosvo</ar>
-<ar><k>hijack</k>
-kaapata (lentokone)</ar>
-<ar><k>hijacking</k>
-ilmarosvous</ar>
-<ar><k>hike</k>
-jalkamatka</ar>
-<ar><k>hiker</k>
-retkeilijä (jalan)</ar>
-<ar><k>hiking tour</k>
-patikkaretki</ar>
-<ar><k>hill</k>
-kukkula, kumpu, kunnos, mäki, vuori (pieni)</ar>
-<ar><k>hillock</k>
-kumpu</ar>
-<ar><k>hillside</k>
-mäenahde, rinne</ar>
-<ar><k>hilly</k>
-vuorinen</ar>
-<ar><k>hilt</k>
-kahva (miekan)</ar>
-<ar><k>himself</k>
-itse (pron)</ar>
-<ar><k>hind leg</k>
-takajalka</ar>
-<ar><k>hinder</k>
-ehkäistä, estää</ar>
-<ar><k>hinderance</k>
-este</ar>
-<ar><k>hindmost</k>
-perimmäinen, takimmainen</ar>
-<ar><k>hinge</k>
-sarana, nivel</ar>
-<ar><k>hint</k>
-vihje
-
-vihjailla, vihjaista, vihjata</ar>
-<ar><k>hint at</k>
-viittaus</ar>
-<ar><k>hip</k>
-lonkka</ar>
-<ar><k>hip bath</k>
-istumakylpy</ar>
-<ar><k>hip-flask</k>
-taskumatti</ar>
-<ar><k>hip-pocket</k>
-takatasku</ar>
-<ar><k>hipbone</k>
-lonkkaluu</ar>
-<ar><k>hire</k>
-palkata, vuokra (autosta ym)</ar>
-<ar><k>hired girl</k>
-piika</ar>
-<ar><k>hired hand</k>
-renki</ar>
-<ar><k>hired-man</k>
-renki</ar>
-<ar><k>hiss</k>
-kähistä, sihistä, sähinä, sähistä, tuhista</ar>
-<ar><k>hissing</k>
-sihina</ar>
-<ar><k>historical</k>
-historiallinen</ar>
-<ar><k>history</k>
-historia</ar>
-<ar><k>hit</k>
-osuma
-
-kolhaista, lyöda, osua</ar>
-<ar><k>hit hard</k>
-iskeä</ar>
-<ar><k>hit it off</k>
-tulla toimeen jkn kanssa [puhek.]</ar>
-<ar><k>hit song</k>
-iskelmä</ar>
-<ar><k>hoard</k>
-hamstrata, rohmuta</ar>
-<ar><k>hoarding</k>
-ilmoitusteline</ar>
-<ar><k>hoarfrost</k>
-huurre, kuura</ar>
-<ar><k>hoarse</k>
-käheä</ar>
-<ar><k>hoarseness</k>
-käheys</ar>
-<ar><k>hoax</k>
-pilanteko, kepponen</ar>
-<ar><k>hobble</k>
-nilkuttaa</ar>
-<ar><k>hobby</k>
-askartelu, haraste, harrastus, mieliharrastus</ar>
-<ar><k>hobnob</k>
-veljeillä</ar>
-<ar><k>hoe</k>
-kuokka</ar>
-<ar><k>hoist</k>
-nosto</ar>
-<ar><k>hoist block</k>
-nostotalja</ar>
-<ar><k>hold</k>
-kiinnekohta, lastiruuma, ote, ruuma
-
-omata, pidellä, pitää, sisältää, pitää kiinni</ar>
-<ar><k>hold back</k>
-pidätellä, pidättää</ar>
-<ar><k>hold good</k>
-päteä</ar>
-<ar><k>hold hard</k>
-odota [puhek.]</ar>
-<ar><k>hold out</k>
-ojentaa</ar>
-<ar><k>hold your horses</k>
-odottakaa [puhek.]</ar>
-<ar><k>hold-up</k>
-viivytys</ar>
-<ar><k>holder</k>
-haltija, holkki, pidike</ar>
-<ar><k>hole</k>
-kolo, kuoppa, aukko, luola (eläimen), läpi, ontelo, pesä (maanalainen), reikä</ar>
-<ar><k>hole in the ice</k>
-avanto</ar>
-<ar><k>holiday</k>
-loma (kesä- ym)</ar>
-<ar><k>holiday assistant</k>
-lomittaja</ar>
-<ar><k>holiday-maker</k>
-lomailija</ar>
-<ar><k>holiness</k>
-pyhyys</ar>
-<ar><k>hollow</k>
-kolo, onkalo, rotko
-
-ontto
-
-ontto, kumea</ar>
-<ar><k>hollow block</k>
-uraharkko</ar>
-<ar><k>hollow character</k>
-kirjainaukko</ar>
-<ar><k>hollow girder</k>
-kotelopalkki</ar>
-<ar><k>hollow out</k>
-kovertaa</ar>
-<ar><k>holy</k>
-pyhä</ar>
-<ar><k>holy communion</k>
-ehtoollinen (kirk)</ar>
-<ar><k>homage</k>
-kunnianosoitus</ar>
-<ar><k>home</k>
-hoitolaitos, koti, koto</ar>
-<ar><k>home economist</k>
-talousopettaja</ar>
-<ar><k>home help</k>
-kodinhoitaja, kotiapulainen</ar>
-<ar><k>home position</k>
-alkuasento, nolla-asento</ar>
-<ar><k>home stretch</k>
-maalisuora</ar>
-<ar><k>home-coming</k>
-kotiintulo</ar>
-<ar><k>home-made</k>
-kotitekoinen, omatekoinen</ar>
-<ar><k>home-sickness</k>
-kotiikävä</ar>
-<ar><k>homeless</k>
-asunnoton, koditon</ar>
-<ar><k>homelike</k>
-kotoinen</ar>
-<ar><k>homely</k>
-kodikas</ar>
-<ar><k>homestead</k>
-kontu</ar>
-<ar><k>homewards</k>
-kotiinpäin</ar>
-<ar><k>homework</k>
-kotitehtävä</ar>
-<ar><k>homicide</k>
-henkirikos</ar>
-<ar><k>homing pigeon</k>
-kirjekyyhkynen</ar>
-<ar><k>homogeneous</k>
-homogeeninen</ar>
-<ar><k>hone</k>
-kovasin</ar>
-<ar><k>honest</k>
-kunniallinen, rehellinen</ar>
-<ar><k>honesty</k>
-kunniallisuus, rehellisyys</ar>
-<ar><k>honey</k>
-hunaja, kultaseni, mesi</ar>
-<ar><k>honeycomb</k>
-hunajahenno, kenno</ar>
-<ar><k>honeymoon</k>
-häämatka, kuherruskuukausi</ar>
-<ar><k>honeysuckle</k>
-kuusama (bot)</ar>
-<ar><k>honorary consul</k>
-kunniakonsuli</ar>
-<ar><k>honorary member</k>
-kunniajäsen</ar>
-<ar><k>honour</k>
-kunnianosoitus
-
-kunnioittaa, lunastaa (vekseli)</ar>
-<ar><k>honourable</k>
-kunniallinen</ar>
-<ar><k>honoured</k>
-arvoisa, kunnioitettava</ar>
-<ar><k>honours course</k>
-laudatur</ar>
-<ar><k>hood</k>
-hilkka, kuomu</ar>
-<ar><k>hoof</k>
-kavio</ar>
-<ar><k>hook</k>
-haka, hakanen, koukku
-
-koukata</ar>
-<ar><k>hook and line</k>
-onki</ar>
-<ar><k>hooligan</k>
-huligaani</ar>
-<ar><k>hoop</k>
-vanne</ar>
-<ar><k>hoot</k>
-ivahuuto</ar>
-<ar><k>hooter</k>
-höyrypilli, pilli (tehtaan)</ar>
-<ar><k>hop</k>
-hypellä, hyppiä</ar>
-<ar><k>hop pole</k>
-humalasalko</ar>
-<ar><k>hop-garden</k>
-humalisto</ar>
-<ar><k>hope</k>
-toive, toivo
-
-toivoa</ar>
-<ar><k>hoped-for</k>
-toivottu</ar>
-<ar><k>hopeful</k>
-toiveikas</ar>
-<ar><k>hopeless</k>
-toivoton</ar>
-<ar><k>hopelessly</k>
-toivottamasti</ar>
-<ar><k>horizon</k>
-horisontti, näköpiiri</ar>
-<ar><k>horizontal</k>
-vaaka-, poikittais-, vaakasuora</ar>
-<ar><k>horizontal position</k>
-vaakaasento</ar>
-<ar><k>hormone</k>
-hormoni</ar>
-<ar><k>horn</k>
-käyrätorva, sakara (kuun), sarvi, torvi</ar>
-<ar><k>horrible</k>
-hirmuinen, hirvittävä, kauhea</ar>
-<ar><k>horribleness</k>
-hirvittävyys</ar>
-<ar><k>horrid</k>
-hirvittävä</ar>
-<ar><k>horrify</k>
-pöyristyttää</ar>
-<ar><k>horrifying</k>
-pöyristyttävä</ar>
-<ar><k>horror</k>
-kammo, kauhistus, kauhu</ar>
-<ar><k>horror story</k>
-kauhukertomus</ar>
-<ar><k>horse</k>
-hevonen, pukki (teline)</ar>
-<ar><k>horse's mane</k>
-hevosenharja</ar>
-<ar><k>horse-breeding</k>
-hevosjalostus</ar>
-<ar><k>horse-dealer</k>
-hevoskauppias</ar>
-<ar><k>horse-laugh</k>
-hohotus</ar>
-<ar><k>horse-power</k>
-hevosvoima</ar>
-<ar><k>horse-racing</k>
-hevosurheilu</ar>
-<ar><k>horse-radish</k>
-piparjuuri</ar>
-<ar><k>horse-tail</k>
-korte (bot)</ar>
-<ar><k>horsehair</k>
-jouhi</ar>
-<ar><k>horseshoe</k>
-hevosenkenkä</ar>
-<ar><k>horticulture</k>
-kasvitarhanviljely</ar>
-<ar><k>hose</k>
-letku</ar>
-<ar><k>hospitable</k>
-vieraanvarainen</ar>
-<ar><k>hospital</k>
-klinikka, sairaala</ar>
-<ar><k>hospitality</k>
-vieraanvariasuus</ar>
-<ar><k>host</k>
-isäntä (vieraitten), lauma, öylätti</ar>
-<ar><k>host and hostess</k>
-isäntäväki</ar>
-<ar><k>hostess</k>
-emäntä</ar>
-<ar><k>hostile</k>
-vihamielinen</ar>
-<ar><k>hostility</k>
-vihamielisyys, vihollisuus</ar>
-<ar><k>hot number</k>
-seksikäs tyttö [puhek.]</ar>
-<ar><k>hot potato</k>
-vaikea ongelma [puhek.]</ar>
-<ar><k>hot temper</k>
-kiivaus</ar>
-<ar><k>hot water supply</k>
-lämminvesijohdot</ar>
-<ar><k>hot weather</k>
-helle</ar>
-<ar><k>hot-plate</k>
-keittolevy</ar>
-<ar><k>hot-tempered</k>
-tuittupäinen</ar>
-<ar><k>hotbed</k>
-kasvilava</ar>
-<ar><k>hotel</k>
-hotelli</ar>
-<ar><k>hotel proprietor</k>
-hotellinomistaja</ar>
-<ar><k>hothouse plant</k>
-ansarikasvi</ar>
-<ar><k>hotly</k>
-tulisesti</ar>
-<ar><k>hound</k>
-ajokoira</ar>
-<ar><k>hour</k>
-tunti</ar>
-<ar><k>house</k>
-huonekunta, talo</ar>
-<ar><k>house of commons</k>
-alahuone</ar>
-<ar><k>house plant</k>
-huonekasvi</ar>
-<ar><k>household</k>
-huonekunta, perhe, perhekunta</ar>
-<ar><k>household allowance</k>
-talousrahat</ar>
-<ar><k>household appliance</k>
-talouskone</ar>
-<ar><k>household management</k>
-emännyys</ar>
-<ar><k>household use</k>
-kotitarve</ar>
-<ar><k>housekeeper</k>
-emännöitsijä</ar>
-<ar><k>housewife</k>
-emäntä (perheen- ), kotirouva, talonemäntä</ar>
-<ar><k>housing</k>
-runko, teline, kotelo, pesä, kehys, säiliö
-
-asuntokanta</ar>
-<ar><k>housing committee</k>
-vuokralautakunta</ar>
-<ar><k>housing conditions</k>
-asuntoolot</ar>
-<ar><k>housing shortage</k>
-asuntopula</ar>
-<ar><k>hovel</k>
-hökkeli, murju</ar>
-<ar><k>hover</k>
-häälyä, leijailla, lennellä</ar>
-<ar><k>hovercraft</k>
-ilmatyynyalus</ar>
-<ar><k>how are things with you</k>
-mitä kuuluu [puhek.]</ar>
-<ar><k>how curious</k>
-sepä (kummallista)</ar>
-<ar><k>how goes it</k>
-kuinkas pyyhkii [puhek.]</ar>
-<ar><k>how many</k>
-montako</ar>
-<ar><k>however</k>
-kuitenkin, silti, sittenkin</ar>
-<ar><k>howl</k>
-ulvoa, vonkua</ar>
-<ar><k>howling</k>
-parku</ar>
-<ar><k>hub</k>
-keskiö, napa (pyörän)</ar>
-<ar><k>hubbub</k>
-hälinä, rytäkkä</ar>
-<ar><k>huddle</k>
-kyyhöttää</ar>
-<ar><k>hue</k>
-värisävy</ar>
-<ar><k>hug</k>
-syleily
-
-halata, syleillä</ar>
-<ar><k>huge</k>
-huikea (tavaton), valtava, ääretön</ar>
-<ar><k>hugging</k>
-halailu</ar>
-<ar><k>hull</k>
-laivanrunko, runko (laivan ym), silpiä</ar>
-<ar><k>hullabaloo</k>
-hulina, kohu, mökä</ar>
-<ar><k>hum</k>
-sorin
-
-humista, hyrinstä, hyräillä, surista</ar>
-<ar><k>human</k>
-inhimillinen</ar>
-<ar><k>human being</k>
-ihminen</ar>
-<ar><k>human creature</k>
-ihmisolento</ar>
-<ar><k>humane</k>
-humaaninen</ar>
-<ar><k>humanely</k>
-inhimillisesti</ar>
-<ar><k>humaneness</k>
-inhimillisyys</ar>
-<ar><k>humanism</k>
-humanismi</ar>
-<ar><k>humanitarian</k>
-ihmisystävä</ar>
-<ar><k>humanity</k>
-ihmisyys, inhimillisyys</ar>
-<ar><k>humanly</k>
-inhimillisesti</ar>
-<ar><k>humble</k>
-halpa (kuv), nöyrä</ar>
-<ar><k>humble oneself</k>
-nöyrtyä</ar>
-<ar><k>humbug</k>
-humpuuki</ar>
-<ar><k>humid</k>
-kostea</ar>
-<ar><k>humidifier</k>
-ilmankostutin
-
-ilmankostuttaja</ar>
-<ar><k>humidity</k>
-kosteus</ar>
-<ar><k>humiliate</k>
-nöyryyttää</ar>
-<ar><k>humiliation</k>
-nöyryytys</ar>
-<ar><k>humming</k>
-humina, hyrinä, surina</ar>
-<ar><k>humming of a tune</k>
-hyminä (laulun)</ar>
-<ar><k>humming-bird</k>
-kolibri</ar>
-<ar><k>hummock</k>
-mätäs</ar>
-<ar><k>humorous</k>
-humoristinen, leikillinen</ar>
-<ar><k>hump</k>
-kyttyrä</ar>
-<ar><k>hunch</k>
-aavistus, kyttyrä</ar>
-<ar><k>hunchback</k>
-kyttyräselkä</ar>
-<ar><k>hundred</k>
-sata</ar>
-<ar><k>hunger</k>
-nälkä</ar>
-<ar><k>hungry</k>
-nälkäinen</ar>
-<ar><k>hunt</k>
-ajometsästys
-
-metsästää, saalistaa (kuv)</ar>
-<ar><k>hunt down</k>
-etsiä (rikollinen)</ar>
-<ar><k>hunter</k>
-eränkävijä, metsämies, metsästäjä</ar>
-<ar><k>hurdle</k>
-aita (pysty), este (urh)</ar>
-<ar><k>hurdler</k>
-aituri</ar>
-<ar><k>hurdles</k>
-aitajuoksu</ar>
-<ar><k>hurdling</k>
-aitajuoksu</ar>
-<ar><k>hurl</k>
-singota, suistaa, paiskata</ar>
-<ar><k>hurly-burly</k>
-hullunmylly (kuv)</ar>
-<ar><k>hurrah</k>
-eläköön, hurraa</ar>
-<ar><k>hurricane</k>
-hirmumyrsky</ar>
-<ar><k>hurried</k>
-hätäinen, kiireinen, äkkinäinen</ar>
-<ar><k>hurriedly</k>
-äkkipikaa</ar>
-<ar><k>hurry</k>
-hätäillä, jouduttaa, kiidättää, kiirehtiä, kiiruhtaa, rientää</ar>
-<ar><k>hurry on</k>
-hoputtaa</ar>
-<ar><k>hurrying</k>
-hätäily</ar>
-<ar><k>hurt</k>
-koskea (kipeästi), loukata, satuttaa (loukuta), vahingoittaa</ar>
-<ar><k>husband</k>
-aviomies, aviomies</ar>
-<ar><k>hush</k>
-hiljentää (ääntä ym), hyssyttää, tyynnyttää, vaientaa</ar>
-<ar><k>hush up</k>
-vaientaa [puhek.]</ar>
-<ar><k>husk</k>
-akana</ar>
-<ar><k>hussy</k>
-letukka, lutka</ar>
-<ar><k>hustle</k>
-hoputtaa, sysiä, tuuppia</ar>
-<ar><k>hut</k>
-hökkeli, maja, mökki, parakki, tupa, tölli
-
-parakki</ar>
-<ar><k>hyacinth</k>
-hyasintti</ar>
-<ar><k>hybrid</k>
-sekasikiö</ar>
-<ar><k>hydrangea</k>
-hortensia</ar>
-<ar><k>hydraulic</k>
-hydraulinen</ar>
-<ar><k>hydrocarbon</k>
-hiilivety</ar>
-<ar><k>hydrogen</k>
-vety (kem)</ar>
-<ar><k>hyena</k>
-hyeena</ar>
-<ar><k>hygenic</k>
-hygieeninen</ar>
-<ar><k>hygiene</k>
-terveysoppi</ar>
-<ar><k>hymn</k>
-hymni, koraali, virsi</ar>
-<ar><k>hypnosis</k>
-hypnoosi</ar>
-<ar><k>hypnotic</k>
-hypnoottinen</ar>
-<ar><k>hypnotism</k>
-hypnotismi</ar>
-<ar><k>hypochondriac</k>
-luulosairas</ar>
-<ar><k>hypocrite</k>
-teeskentelijä</ar>
-<ar><k>hypothesis</k>
-hypoteesi</ar>
-<ar><k>hypothetical</k>
-hypoteettinen</ar>
-<ar><k>hysteric</k>
-hysteerinen</ar>
-<ar><k>ice</k>
-kuorruttaa (keitt)</ar>
-<ar><k>ice age</k>
-jääkausi</ar>
-<ar><k>ice conditions</k>
-jääsuhteet</ar>
-<ar><k>ice field</k>
-jäätikkö</ar>
-<ar><k>ice fishing</k>
-pilkkionginta</ar>
-<ar><k>ice floe</k>
-jäälautta</ar>
-<ar><k>ice obstruction</k>
-jääeste</ar>
-<ar><k>ice pack</k>
-ahtojää, jääröykkiö</ar>
-<ar><k>ice skate</k>
-luistin</ar>
-<ar><k>ice-breaker</k>
-jäänmurtaja</ar>
-<ar><k>ice-cream</k>
-jäätelö</ar>
-<ar><k>ice-cream cone</k>
-jäätelötikku</ar>
-<ar><k>ice-hockey</k>
-jääkiekkoilu</ar>
-<ar><k>iceberg</k>
-jäävuori</ar>
-<ar><k>iced drink</k>
-jääjuoma</ar>
-<ar><k>icicle</k>
-jääpuikko</ar>
-<ar><k>icing</k>
-kuorrutus</ar>
-<ar><k>icing sugar</k>
-pölysokeri</ar>
-<ar><k>icon</k>
-ikoni</ar>
-<ar><k>icy</k>
-hyinen, jäinen</ar>
-<ar><k>ide</k>
-säynävä (zo)</ar>
-<ar><k>idea</k>
-aate, aatos, ajatus, käsite, käsitys, mielikuva, mielle, miete, päähänpisto, tuuma</ar>
-<ar><k>ideal</k>
-aatteellinen, ihanne, ihanteellinen, täydellinen</ar>
-<ar><k>idealism</k>
-aatteellisuus, idealismi</ar>
-<ar><k>idealist</k>
-idealisti, kaunosielu</ar>
-<ar><k>idealistic</k>
-aatteellinen</ar>
-<ar><k>idealize</k>
-ihannoida</ar>
-<ar><k>identical</k>
-identtinen, sama</ar>
-<ar><k>identification</k>
-tunnistus</ar>
-<ar><k>identify</k>
-identifioida, tunnistaa</ar>
-<ar><k>identity</k>
-henkilöllisyys</ar>
-<ar><k>identity card</k>
-henkilötodistus</ar>
-<ar><k>ideological</k>
-ideologinen</ar>
-<ar><k>ideology</k>
-ideologia</ar>
-<ar><k>idiom</k>
-lauseparsi</ar>
-<ar><k>idiomatic expression</k>
-lauseparsi</ar>
-<ar><k>idiot</k>
-hölmö (kuv), idiootti</ar>
-<ar><k>idiotic</k>
-hupsu</ar>
-<ar><k>idle</k>
-vetelehtiä
-
-joutava, laiska</ar>
-<ar><k>idle motion</k>
-tyhjäkäynti (tekn)</ar>
-<ar><k>idle talk</k>
-kulkupuhe, loru, lörpötys</ar>
-<ar><k>idleness</k>
-laiskuus</ar>
-<ar><k>idler</k>
-laiskuri, tyhjäntoimittaja, kiristyspyörä</ar>
-<ar><k>idler roll</k>
-vappapyörä</ar>
-<ar><k>idling</k>
-tyhjäkäynti (tekn)</ar>
-<ar><k>idolize</k>
-jumaloida</ar>
-<ar><k>idyllic</k>
-idyllinen</ar>
-<ar><k>if</k>
-jos, jospa, ko, kö, mikäli, tokko</ar>
-<ar><k>if not</k>
-ellei, jollei</ar>
-<ar><k>if only</k>
-kunpa</ar>
-<ar><k>iforetelling</k>
-ennustaminen</ar>
-<ar><k>ignition</k>
-sytytys</ar>
-<ar><k>ignominious</k>
-häpeällinen</ar>
-<ar><k>ignorant</k>
-tietämätön</ar>
-<ar><k>ill</k>
-kipeä, sairas</ar>
-<ar><k>ill will</k>
-häijyys, kauna, pahansuopaisuus</ar>
-<ar><k>ill-disposed</k>
-pahansuopa</ar>
-<ar><k>ill-effect</k>
-haittavaikutus</ar>
-<ar><k>ill-fated</k>
-huonoonninen</ar>
-<ar><k>ill-health</k>
-kivulloisuus</ar>
-<ar><k>ill-mannered</k>
-karkeakäytöksinen</ar>
-<ar><k>ill-tempered</k>
-kiukkupäinen, tuittupäinen, äksy, äreä</ar>
-<ar><k>ill-treatment</k>
-rääkkäys</ar>
-<ar><k>illegal</k>
-laiton</ar>
-<ar><k>illegality</k>
-laittomuus</ar>
-<ar><k>illegitimate</k>
-äpärä</ar>
-<ar><k>illicit</k>
-laiton, luvaton</ar>
-<ar><k>illogical</k>
-epälooginen</ar>
-<ar><k>illuminate</k>
-valaista, valottaa</ar>
-<ar><k>illuminated sign</k>
-valomainos</ar>
-<ar><k>illumination</k>
-juhlavalaistus, valaistus</ar>
-<ar><k>illusion</k>
-aistihairahdus, haave, harhakuvitelma, kuvitelma</ar>
-<ar><k>illustrate</k>
-havainnollistaa, kuvittaa</ar>
-<ar><k>illustrated</k>
-kuvallinen, kuvitettu</ar>
-<ar><k>illustrated work</k>
-kuvateos</ar>
-<ar><k>illustration</k>
-kuvitus</ar>
-<ar><k>illustrious</k>
-maineikas</ar>
-<ar><k>image</k>
-(kopiointi)kohteen kuva</ar>
-<ar><k>imagery</k>
-kuvalieli</ar>
-<ar><k>imaginary</k>
-kuvitteellinen, luuloteltu, mielikuvituksellinen</ar>
-<ar><k>imagination</k>
-kuvittelu, luulottelu, mielikuvitus</ar>
-<ar><k>imaginative</k>
-mielikuvituksikas</ar>
-<ar><k>imagine</k>
-kuvitella, luulotella</ar>
-<ar><k>imitate</k>
-jäljitellä, matkia, mukuilla</ar>
-<ar><k>imitation</k>
-jäljitelmä, jäljittely, mukaelma</ar>
-<ar><k>imitation leather</k>
-tekonahka</ar>
-<ar><k>imitation pearl</k>
-valehelmi</ar>
-<ar><k>imitator</k>
-jäljittelijä</ar>
-<ar><k>immaterial</k>
-aineeton, epäolennainen</ar>
-<ar><k>immateriality</k>
-epäolennaisuus</ar>
-<ar><k>immature</k>
-kypsymätön</ar>
-<ar><k>immaturity</k>
-kypsymättömyys</ar>
-<ar><k>immeasurable</k>
-mittamaton</ar>
-<ar><k>immediate</k>
-suoranainen, välitön</ar>
-<ar><k>immediately</k>
-heti, välittömästi</ar>
-<ar><k>immense</k>
-ääretön</ar>
-<ar><k>immerse</k>
-kastaa, upottaa</ar>
-<ar><k>immersion</k>
-upottaminen</ar>
-<ar><k>immigrant</k>
-maahanmuuttaja</ar>
-<ar><k>immigration</k>
-maahanmuutto</ar>
-<ar><k>imminent</k>
-uhkaava</ar>
-<ar><k>immobile</k>
-liikkumaton</ar>
-<ar><k>immobility</k>
-liikkumattomuus</ar>
-<ar><k>immodest</k>
-säädytön</ar>
-<ar><k>immodesty</k>
-säädyttömyys</ar>
-<ar><k>immoral</k>
-epäsiveellinen, moraaliton, siveetön</ar>
-<ar><k>immorality</k>
-haureus, paheellisuus</ar>
-<ar><k>immortal</k>
-kuolematon</ar>
-<ar><k>immortality</k>
-kuolemttomuus</ar>
-<ar><k>immortalize</k>
-ikuistaa</ar>
-<ar><k>immovable</k>
-horjumaton, järkkymätön</ar>
-<ar><k>immovably</k>
-hievahtamatta</ar>
-<ar><k>immune</k>
-immuuni</ar>
-<ar><k>immunity</k>
-immuunius</ar>
-<ar><k>impact</k>
-isku</ar>
-<ar><k>impair</k>
-huonontaa</ar>
-<ar><k>impartial</k>
-puolueeton, tasapuolinen</ar>
-<ar><k>impassable</k>
-läpipääsemätön</ar>
-<ar><k>impatience</k>
-hätäisyys, kärsimättömyys, maltittomuus</ar>
-<ar><k>impatient</k>
-hätäinen, kärsimätön, maltiton, malttamaton</ar>
-<ar><k>impede</k>
-ehkäistä (estää), estää</ar>
-<ar><k>impediment</k>
-este</ar>
-<ar><k>impending</k>
-uhkaava</ar>
-<ar><k>imperative</k>
-imperatiivi, käskytapa (kiel)</ar>
-<ar><k>imperceptible</k>
-huomaamaton</ar>
-<ar><k>imperfect</k>
-epätäydellinen, imperfekti, vajavainen, viallinen</ar>
-<ar><k>imperfection</k>
-vajavaisuus</ar>
-<ar><k>imperial</k>
-keisarillinen</ar>
-<ar><k>impersonate</k>
-henkilöidä</ar>
-<ar><k>impertinence</k>
-nenäkkyys</ar>
-<ar><k>impertinent</k>
-nenäkäs</ar>
-<ar><k>impetuous</k>
-kiihkeä</ar>
-<ar><k>impetus</k>
-virike (kiihoke)</ar>
-<ar><k>imply</k>
-tarkoittaa</ar>
-<ar><k>impolite</k>
-epäkohtelias</ar>
-<ar><k>import</k>
-tuoda maahan
-
-tuonti</ar>
-<ar><k>importance</k>
-tärkeys</ar>
-<ar><k>important</k>
-merkityksellinen, tähdellinen, tärkeä</ar>
-<ar><k>importation</k>
-tuonti</ar>
-<ar><k>impose a fine</k>
-sakottaa</ar>
-<ar><k>imposed load</k>
-hyötykuorma</ar>
-<ar><k>imposing</k>
-komea, mukea, suurenmoinen, upea</ar>
-<ar><k>impossibility</k>
-mahdottomuus</ar>
-<ar><k>impossible</k>
-mahdoton</ar>
-<ar><k>impotence</k>
-kykenemättömyys (sukup)</ar>
-<ar><k>impoverish</k>
-köyhdyttää</ar>
-<ar><k>impregnate</k>
-imeyttää, kyllästää</ar>
-<ar><k>impregnated</k>
-kyllästetty</ar>
-<ar><k>impregnated felt</k>
-kyllästetty raakahuopa</ar>
-<ar><k>impress upon</k>
-juuruttaa (kuv)</ar>
-<ar><k>impression</k>
-jälki (merkki), painatus, painos</ar>
-<ar><k>impressive</k>
-mukea, vaikuttava</ar>
-<ar><k>imprint</k>
-jälki (merkki)</ar>
-<ar><k>imprint on</k>
-juuruttaa (kuv)</ar>
-<ar><k>imprisonment</k>
-vankeus</ar>
-<ar><k>improbable</k>
-epätodennäköinen</ar>
-<ar><k>improper</k>
-sopimaton, säädytön</ar>
-<ar><k>improper fraction</k>
-epämurtoluku</ar>
-<ar><k>improve</k>
-jalostaa (kasveja ym), parantaa, parantua</ar>
-<ar><k>improvement</k>
-edistyminen, parannus, parantuminen</ar>
-<ar><k>improvise</k>
-improvisoida</ar>
-<ar><k>impudence</k>
-häpeämättömyys, hävyttömyys, julkeus, röyhkeys</ar>
-<ar><k>impudent</k>
-hävytön, epäviisas</ar>
-<ar><k>impulse</k>
-hetäte, mielijohde, vaikute</ar>
-<ar><k>impure</k>
-likainen, rietas, saastainen</ar>
-<ar><k>impurity</k>
-saasta</ar>
-<ar><k>in a dignified manner</k>
-arvokkaasti</ar>
-<ar><k>in a faint</k>
-pyörryksissä</ar>
-<ar><k>in a fashion</k>
-tavallaan</ar>
-<ar><k>in a friendly manner</k>
-ystävällisesti</ar>
-<ar><k>in a hurry</k>
-häthätää, hätäpikaa</ar>
-<ar><k>in a lively way</k>
-vilkkaasti</ar>
-<ar><k>in a lower voice</k>
-hiljemmin</ar>
-<ar><k>in a manner</k>
-tavallaan</ar>
-<ar><k>in a manner of speaking</k>
-tavallaan</ar>
-<ar><k>in a mess</k>
-sikinsokin</ar>
-<ar><k>in a minute</k>
-heti</ar>
-<ar><k>in a motherly way</k>
-äidillisesti</ar>
-<ar><k>in a sitting position</k>
-istuallaan</ar>
-<ar><k>in a state of excitement</k>
-kiihdyksissä</ar>
-<ar><k>in a way</k>
-tavallaan</ar>
-<ar><k>in abundance</k>
-runsaasti</ar>
-<ar><k>in accordance with</k>
-mukuinen (jnk), yhdenmukaisesti, yhtäpitävä</ar>
-<ar><k>in advance</k>
-edeltäpäin, entuudestaan, etukäteen</ar>
-<ar><k>in all</k>
-kaikkiaan</ar>
-<ar><k>in all probability</k>
-luultavasti</ar>
-<ar><k>in another direction</k>
-toisaalle</ar>
-<ar><k>in any case</k>
-joka tapauksessa</ar>
-<ar><k>in bad taste</k>
-epäaistikas</ar>
-<ar><k>in bed</k>
-vuoteessa</ar>
-<ar><k>in brief</k>
-lyhyesti</ar>
-<ar><k>in care</k>
-hoitolaitoksessa</ar>
-<ar><k>in case</k>
-jos</ar>
-<ar><k>in common</k>
-yhteinen</ar>
-<ar><k>in consequence of</k>
-johdosta (jnk)</ar>
-<ar><k>in contrast to</k>
-vastoin</ar>
-<ar><k>in debt</k>
-velkainen</ar>
-<ar><k>in detail</k>
-juurtajaksaen, seikkaperäisesti, yksityiskohtaisesti</ar>
-<ar><k>in diameter</k>
-läpimitanen</ar>
-<ar><k>in disguise</k>
-valeasuinen</ar>
-<ar><k>in evening dress</k>
-frakkipukuinen</ar>
-<ar><k>in every respect</k>
-kaikinpuolin</ar>
-<ar><k>in force</k>
-voimassaoleva</ar>
-<ar><k>in front of</k>
-jnk edelle, edellä (prep), edessä</ar>
-<ar><k>in general</k>
-yleensä, yleisesti, ylipäänsä</ar>
-<ar><k>in good condition</k>
-hyväkuntoinen</ar>
-<ar><k>in great numbers</k>
-joukoittain</ar>
-<ar><k>in haste</k>
-kiireesti</ar>
-<ar><k>in heaps</k>
-kasoittain</ar>
-<ar><k>in it</k>
-siinä</ar>
-<ar><k>in low spirits</k>
-alakuloinen</ar>
-<ar><k>in masses</k>
-joukoittain</ar>
-<ar><k>in mourning</k>
-surupukuinen</ar>
-<ar><k>in one direction</k>
-yhtäällä, yhtäänne</ar>
-<ar><k>in order that</k>
-jotta</ar>
-<ar><k>in order to</k>
-jotta</ar>
-<ar><k>in pairs</k>
-parittain</ar>
-<ar><k>in part</k>
-osittain</ar>
-<ar><k>in particular</k>
-erikoisesti, erittäin, etenkin, nimenomaan</ar>
-<ar><k>in place</k>
-paikalla</ar>
-<ar><k>in place of</k>
-jnk asemesta</ar>
-<ar><k>in places</k>
-paikoin</ar>
-<ar><k>in profusion</k>
-runsaasti</ar>
-<ar><k>in progress</k>
-meneillään</ar>
-<ar><k>in proportion to</k>
-suhteellisesti</ar>
-<ar><k>in public</k>
-julkisesti</ar>
-<ar><k>in respect of</k>
-jhk nähden</ar>
-<ar><k>in rich colours</k>
-värikkäästi</ar>
-<ar><k>in season</k>
-juoksuaika (koira)</ar>
-<ar><k>in short</k>
-lyhyesti</ar>
-<ar><k>in silence</k>
-vaitiollen, ääneti</ar>
-<ar><k>in small quantities</k>
-vähittäin</ar>
-<ar><k>in so far as</k>
-mikäli</ar>
-<ar><k>in some way</k>
-jotenkuten</ar>
-<ar><k>in spite of</k>
-huolimatta</ar>
-<ar><k>in that</k>
-siinä, sikäli</ar>
-<ar><k>in that direction</k>
-sinnepäin</ar>
-<ar><k>in that way</k>
-siten</ar>
-<ar><k>in the centre</k>
-keski</ar>
-<ar><k>in the daytime</k>
-päivisin</ar>
-<ar><k>in the direction of</k>
-päin</ar>
-<ar><k>in the end</k>
-lopuksi, lopulta, vihdoin (lopuksi)</ar>
-<ar><k>in the evening</k>
-illalla</ar>
-<ar><k>in the evenings</k>
-iltaisin</ar>
-<ar><k>in the first place</k>
-ensin</ar>
-<ar><k>in the flesh</k>
-ilmielävä</ar>
-<ar><k>in the front</k>
-edessä</ar>
-<ar><k>in the future</k>
-vastedes</ar>
-<ar><k>in the long run</k>
-ajanmittaan, ajanpitkään</ar>
-<ar><k>in the meantime</k>
-sillaikaa</ar>
-<ar><k>in the middle</k>
-keski</ar>
-<ar><k>in the near future</k>
-kohdakkoin</ar>
-<ar><k>in the rear</k>
-perällä</ar>
-<ar><k>in the same manner</k>
-yhtäläisesti</ar>
-<ar><k>in the same way</k>
-samoin</ar>
-<ar><k>in the second place</k>
-toiseksi</ar>
-<ar><k>in the spring</k>
-keväisin, keväällä</ar>
-<ar><k>in the sulks</k>
-jurottaa</ar>
-<ar><k>in the summer</k>
-kesäisin, kesällä</ar>
-<ar><k>in the way</k>
-eteen (tielle)</ar>
-<ar><k>in this</k>
-tässä</ar>
-<ar><k>in this direction</k>
-tännepäin</ar>
-<ar><k>in this manner</k>
-täten</ar>
-<ar><k>in this place</k>
-täkäläinen, täällä</ar>
-<ar><k>in this way</k>
-tällä lailla, näin, täten</ar>
-<ar><k>in time</k>
-ajallaan</ar>
-<ar><k>in turn</k>
-vuoroittain, vuorostaan</ar>
-<ar><k>in two</k>
-halki (kahtia)</ar>
-<ar><k>in two parts</k>
-kahtia, kaksiosainen</ar>
-<ar><k>in twos</k>
-kaksittain</ar>
-<ar><k>in vain</k>
-hukkaan, turhaan</ar>
-<ar><k>in various ways</k>
-erilaisesti</ar>
-<ar><k>in view of</k>
-katsoen, jhk nähden</ar>
-<ar><k>in what way</k>
-millä lailla, miten</ar>
-<ar><k>inability</k>
-kykenemättömyys</ar>
-<ar><k>inaccessible</k>
-luoksepääsemätön</ar>
-<ar><k>inaccuracy</k>
-epätarkkuus, virheellisyys</ar>
-<ar><k>inaccurate</k>
-epätarkka</ar>
-<ar><k>inactivity</k>
-joutilaisuus</ar>
-<ar><k>inadequacy</k>
-riittämättömyys</ar>
-<ar><k>inadequate</k>
-riittämätön</ar>
-<ar><k>inadvertently</k>
-huomaamatta (epähuomiossa)</ar>
-<ar><k>inaudible</k>
-kuulumaton</ar>
-<ar><k>inaugural lecture</k>
-virkaanastujaisesitelmä</ar>
-<ar><k>inauguration</k>
-virkaanasettajaiset</ar>
-<ar><k>inboard</k>
-sisäpää</ar>
-<ar><k>inborn</k>
-synnynnäinen</ar>
-<ar><k>inbred</k>
-synnynnäinen</ar>
-<ar><k>incalculable</k>
-arvaamaton, laskematon</ar>
-<ar><k>incandescant lamp</k>
-hehkulamppu</ar>
-<ar><k>incantation</k>
-loitsu</ar>
-<ar><k>incapable</k>
-avuton, saamaton</ar>
-<ar><k>incapable of</k>
-kykenemätön, kyvytön</ar>
-<ar><k>incapacity</k>
-kykenemättömyys</ar>
-<ar><k>incarnation</k>
-lihaksitulo (usk)</ar>
-<ar><k>incendiary</k>
-tuhopolttaja</ar>
-<ar><k>incentive</k>
-elvyke, kiihoke (kuv), yllyke
-
-kannustava</ar>
-<ar><k>incessant</k>
-herkeämätön, lakkaamaton</ar>
-<ar><k>incessantly</k>
-herkeämättä</ar>
-<ar><k>inch</k>
-tuumamitta</ar>
-<ar><k>incident</k>
-seikka, tapahtuma, välikohtaus</ar>
-<ar><k>incidentally</k>
-satunnaisesti</ar>
-<ar><k>incise</k>
-viiltää</ar>
-<ar><k>incision</k>
-leikkaus, viilto</ar>
-<ar><k>incisive</k>
-iskevä, kärkevä (pureva), pureva</ar>
-<ar><k>incite</k>
-yllyttää</ar>
-<ar><k>incitement</k>
-kiihoke (kuv), virike (kiihoke), yllyke</ar>
-<ar><k>inciter</k>
-yllyttäjä</ar>
-<ar><k>inclination</k>
-kallistuma, taipumus</ar>
-<ar><k>inclined</k>
-altis (taipuvainen), kalteva, vino</ar>
-<ar><k>inclined to</k>
-halukas</ar>
-<ar><k>include</k>
-käsittää (sisltää), sisältää</ar>
-<ar><k>incoherence</k>
-hajanaisuus</ar>
-<ar><k>incoherent</k>
-katkonainen</ar>
-<ar><k>income</k>
-työansio, tulo (raha-), tulot</ar>
-<ar><k>incomparable</k>
-verraton</ar>
-<ar><k>incompetence</k>
-kykenemättömyys, kyvyttömyys</ar>
-<ar><k>incompetent</k>
-esteellinen (jäävi), taitamaton</ar>
-<ar><k>incomplete</k>
-epätäydellinen, vaillinainen</ar>
-<ar><k>incomprehensibility</k>
-käsittämättömyys</ar>
-<ar><k>incomprehensible</k>
-käsittämäton</ar>
-<ar><k>inconsiderate</k>
-ajattelematon, harkitsematon, häikäilemätön</ar>
-<ar><k>inconsiderately</k>
-ajattelemattomasti, häikäilemättä</ar>
-<ar><k>inconsistent</k>
-epäjohdonmukainen</ar>
-<ar><k>inconspicuous</k>
-huomaamaton</ar>
-<ar><k>inconstant</k>
-vaihteleva</ar>
-<ar><k>incontestability</k>
-eittämättömyys</ar>
-<ar><k>incontestable</k>
-kieltämätön, kiistämätön</ar>
-<ar><k>inconvenience</k>
-epämukavuus, haitata, hankaluus, häiriö (haitta), vaivata</ar>
-<ar><k>inconvenient</k>
-epämukava, hankala</ar>
-<ar><k>incorporated</k>
-yhdistetty</ar>
-<ar><k>incorrect</k>
-erheellinen, virheellinen, väärä (ei oikea)</ar>
-<ar><k>incorrectly</k>
-virheellisesti, väärin</ar>
-<ar><k>incorruptible</k>
-lahjomaton</ar>
-<ar><k>increase</k>
-lisäys
-
-enetä, karttua, kartuttaa, kasvaa, kohota, korottaa, lisätä, lisääntyä, yltyä, suurentaa, kasvaa, nousta</ar>
-<ar><k>increase the price</k>
-kallistaa (hintaa)</ar>
-<ar><k>increasing</k>
-enenevä</ar>
-<ar><k>incredible</k>
-epäuskottava, uskomaton</ar>
-<ar><k>incredulous</k>
-epäuskoinen</ar>
-<ar><k>increment</k>
-kasvaa, lisääntyä, edetä</ar>
-<ar><k>incubation period</k>
-itämisaika (taudin)</ar>
-<ar><k>incubator</k>
-keinoemo</ar>
-<ar><k>incurability</k>
-auttamattomuus</ar>
-<ar><k>indecency</k>
-rivous, säädyttömyys</ar>
-<ar><k>indecent</k>
-rietas, rivo, säädytön</ar>
-<ar><k>indecision</k>
-horjuvuus</ar>
-<ar><k>indeed</k>
-johan ( - nyt), jopa (vieläpä), todella, todellakin, tosiaan, tottakai</ar>
-<ar><k>indefinite</k>
-epämääräinen, indefiniitti, määräämätön</ar>
-<ar><k>indelible</k>
-lähtemätön</ar>
-<ar><k>indemnification</k>
-vahingonkorvaus</ar>
-<ar><k>indemnity</k>
-korvaus</ar>
-<ar><k>indent</k>
-pykälöidä</ar>
-<ar><k>indented</k>
-pykäläinen</ar>
-<ar><k>independence day</k>
-itsenäisyyspäivä</ar>
-<ar><k>independent</k>
-itsenäinen, omintakeinen, riippumaton</ar>
-<ar><k>indescribable</k>
-kuvaamaton</ar>
-<ar><k>index</k>
-hakemisto, indeksi</ar>
-<ar><k>index chain</k>
-ohjausketju</ar>
-<ar><k>indian ink</k>
-tussi</ar>
-<ar><k>indian summer</k>
-jälkikesä</ar>
-<ar><k>indicate</k>
-ilmaista (osoittaa), merkitä (ilmaista), osoittaa (ilmaista)</ar>
-<ar><k>indication</k>
-merkki, osoitus</ar>
-<ar><k>indicative</k>
-indikatiivi
-
-osoittava</ar>
-<ar><k>indicator</k>
-ilmaisin, vilkku (auton)</ar>
-<ar><k>indictment</k>
-syyte</ar>
-<ar><k>indifference</k>
-välinpitämättömyys</ar>
-<ar><k>indifferent</k>
-laimea (välinpitämätön), välinpitämätön</ar>
-<ar><k>indifferently</k>
-välinpitämättömästi</ar>
-<ar><k>indignation</k>
-harmistuminen, närkästys</ar>
-<ar><k>indirect</k>
-epäsuora</ar>
-<ar><k>indiscreet</k>
-ajattelematon</ar>
-<ar><k>indispensable</k>
-korvaamaton</ar>
-<ar><k>indisposed</k>
-huonovointinen, pahoinvoipa</ar>
-<ar><k>indisposition</k>
-huonovointisuus</ar>
-<ar><k>indisputability</k>
-epäämättömyys</ar>
-<ar><k>indisputable</k>
-eittämätön, epäämätön, kieltämätön, kiistämätön, vääjäämätön</ar>
-<ar><k>indissoluble</k>
-hajoamaton</ar>
-<ar><k>indistinct</k>
-epäselvä</ar>
-<ar><k>indistinctness</k>
-epäselvyys</ar>
-<ar><k>individual</k>
-henkilökohtainen, yksilö, yksilöllinen, yksittäinen, yksityinen</ar>
-<ar><k>individualistic</k>
-yksilöllinen</ar>
-<ar><k>individuality</k>
-yksilöllisyys</ar>
-<ar><k>individually</k>
-erikseen</ar>
-<ar><k>indivisibility</k>
-jaottomuus</ar>
-<ar><k>indivisible</k>
-jaoton</ar>
-<ar><k>indolent</k>
-laiska, veltto</ar>
-<ar><k>indomitable</k>
-masentumaton</ar>
-<ar><k>indoor</k>
-sisä, sisällä, talossa</ar>
-<ar><k>induce</k>
-saattaa, suostutella</ar>
-<ar><k>induction</k>
-induktio (fys)</ar>
-<ar><k>inductor</k>
-induktori</ar>
-<ar><k>indulge oneself in</k>
-hekumoida</ar>
-<ar><k>indulgence</k>
-ane</ar>
-<ar><k>industrial</k>
-teollinen</ar>
-<ar><k>industrial relations</k>
-työmarkkinasuhteet</ar>
-<ar><k>industrial welfare</k>
-työväensuojelu</ar>
-<ar><k>industrialize</k>
-teollistaa</ar>
-<ar><k>industries</k>
-teollisuus</ar>
-<ar><k>industrious</k>
-ahkera, työteliäs, uuras, uuttera</ar>
-<ar><k>industry</k>
-elinkeino, teollisuus, uutteruus</ar>
-<ar><k>ineffaceable</k>
-katoamaton</ar>
-<ar><k>ineffective</k>
-tehoton</ar>
-<ar><k>inefficiency</k>
-saamattomuus, tehottomuus</ar>
-<ar><k>inefficient</k>
-saamaton</ar>
-<ar><k>ineligible</k>
-vaalikelvoton</ar>
-<ar><k>inert</k>
-eloton, veltto</ar>
-<ar><k>inevitability</k>
-välttömättömyys</ar>
-<ar><k>inevitable</k>
-väistämätön, välttämätön</ar>
-<ar><k>inevitably</k>
-välttämättömästi</ar>
-<ar><k>inexact</k>
-epätsmällinen</ar>
-<ar><k>inexaustible</k>
-ehtymätön (kuv)</ar>
-<ar><k>inexorable</k>
-heltymätön</ar>
-<ar><k>inexpensive</k>
-halpa</ar>
-<ar><k>inexperience</k>
-kokemattomuus</ar>
-<ar><k>inexperienced</k>
-kokematon</ar>
-<ar><k>inexplicable</k>
-selittämätön</ar>
-<ar><k>inexpressive</k>
-ilmeetön</ar>
-<ar><k>infallibility</k>
-erehtymättömyys</ar>
-<ar><k>infallible</k>
-erehtymätön</ar>
-<ar><k>infamous</k>
-häpeällinen, kunniaton, pahamaineinen</ar>
-<ar><k>infamy</k>
-kunniattomuus</ar>
-<ar><k>infant</k>
-imevainen, kapalolapsi, sylilapsi</ar>
-<ar><k>infant prodigy</k>
-ihmelapsi</ar>
-<ar><k>infanticide</k>
-lapsenmurha</ar>
-<ar><k>infantry</k>
-jalkaväki</ar>
-<ar><k>infantryman</k>
-jalkaväensotilas</ar>
-<ar><k>infect</k>
-saastuttaa, tartuttaa</ar>
-<ar><k>infection</k>
-tartunta</ar>
-<ar><k>infectious arthritis</k>
-kuumereuma</ar>
-<ar><k>infer</k>
-tehdä johtopäätös, päätellä</ar>
-<ar><k>inference</k>
-johtopäätös</ar>
-<ar><k>inferior</k>
-alaarvoinen, alamittainen, huonolaatuinen, huonompi</ar>
-<ar><k>inferiority</k>
-alaarvoisuus, heikommuus, huonommuus</ar>
-<ar><k>inferiority complex</k>
-alemkompleksi</ar>
-<ar><k>infernal</k>
-helvetillinen</ar>
-<ar><k>infernal machine</k>
-helvetinkone</ar>
-<ar><k>infertile</k>
-hedelmätön</ar>
-<ar><k>infertility</k>
-hedelmättömyys</ar>
-<ar><k>infinite</k>
-loputon, ääretön</ar>
-<ar><k>infinitive</k>
-infinitiivi</ar>
-<ar><k>infirm</k>
-heikko (voimaton)</ar>
-<ar><k>infirmary</k>
-sairaala</ar>
-<ar><k>inflame</k>
-kiihdyttää</ar>
-<ar><k>inflammable</k>
-syttyväinen, tulenarka</ar>
-<ar><k>inflammation</k>
-tulehdus</ar>
-<ar><k>inflatable</k>
-puhallettava</ar>
-<ar><k>inflation</k>
-inflaatio</ar>
-<ar><k>inflationary</k>
-inflatorinen</ar>
-<ar><k>inflection</k>
-taivutus (kiel)</ar>
-<ar><k>inflict a wound</k>
-haavoittaa</ar>
-<ar><k>inflorescence</k>
-kukinto</ar>
-<ar><k>influence</k>
-suggeroida, vaikuttaa</ar>
-<ar><k>influenza</k>
-influenssa</ar>
-<ar><k>inform</k>
-ilmoittaa, informoida</ar>
-<ar><k>informal dress</k>
-arkipuku</ar>
-<ar><k>informant</k>
-ilmoittaja, tiedonantaja</ar>
-<ar><k>information</k>
-ilianto, ilmoitus (tieto), tiedonanto, tieto (ilmoitus)</ar>
-<ar><k>informer</k>
-ilmiantaja</ar>
-<ar><k>infringe</k>
-rikkoa (loukata)</ar>
-<ar><k>ingenious</k>
-nerokas</ar>
-<ar><k>ingenuity</k>
-nerokkuus</ar>
-<ar><k>ingot</k>
-harkko</ar>
-<ar><k>ingot of silver</k>
-hopeaharkko</ar>
-<ar><k>ingratitude</k>
-kiittämättömyys</ar>
-<ar><k>ingredient</k>
-aines</ar>
-<ar><k>inhabit</k>
-asua</ar>
-<ar><k>inhabitant</k>
-asukas, asujaimisto, väestö</ar>
-<ar><k>inhabitants</k>
-asujaimisto, väestö</ar>
-<ar><k>inhabited</k>
-asuttu</ar>
-<ar><k>inherent</k>
-synnynnäinen</ar>
-<ar><k>inherit</k>
-periä</ar>
-<ar><k>inheritance</k>
-perimys, perintö, peru</ar>
-<ar><k>inheritor</k>
-perija</ar>
-<ar><k>inhibit</k>
-estää</ar>
-<ar><k>inhibition</k>
-esto (psyk)</ar>
-<ar><k>inhuman</k>
-epäinhimillinen</ar>
-<ar><k>inhuman deed</k>
-raakalaisteko</ar>
-<ar><k>inimatable</k>
-jäljittelemätön</ar>
-<ar><k>initial</k>
-alku-, parafoida</ar>
-<ar><k>initial capital</k>
-kantapääoma</ar>
-<ar><k>initial stage</k>
-alkuaste</ar>
-<ar><k>initials</k>
-alkukirjaimet, nimikirjaimet</ar>
-<ar><k>initiate</k>
-aloittaa</ar>
-<ar><k>initiative</k>
-aloite, alullepano</ar>
-<ar><k>initiator</k>
-alkuunpanija</ar>
-<ar><k>inject</k>
-ruiskuttaa (lääk)</ar>
-<ar><k>injection</k>
-ruiske (lääk), ruiskutus (lääk)</ar>
-<ar><k>injure</k>
-loukuta (kuv), tehdä (vääryyttä), vahingoittaa, vaurioittaa, vikuuttaa, vioittaa</ar>
-<ar><k>injurious</k>
-haitallinen, turmiollinen, vahingollinen</ar>
-<ar><k>injury</k>
-haitta (vahinko), vahinko, vamma, vioittuma</ar>
-<ar><k>injustice</k>
-vääryys</ar>
-<ar><k>inland revenue</k>
-aksiisi</ar>
-<ar><k>inland waters</k>
-sisävesi</ar>
-<ar><k>inlet</k>
-poukama</ar>
-<ar><k>inmate</k>
-hoidokki</ar>
-<ar><k>inn</k>
-majatalo</ar>
-<ar><k>innermost</k>
-sisimmäinen</ar>
-<ar><k>innocence</k>
-syyttömyys, viattomuus</ar>
-<ar><k>innocent</k>
-syytön, viaton</ar>
-<ar><k>innovate</k>
-uudistaa</ar>
-<ar><k>inoculate</k>
-istuttaa (tauti)</ar>
-<ar><k>inoculate against</k>
-rokottaa</ar>
-<ar><k>inoffensive</k>
-vaaraton</ar>
-<ar><k>inorganic</k>
-epäorgaaninen</ar>
-<ar><k>input code</k>
-ensiökomponentin tunnus</ar>
-<ar><k>input device</k>
-syöttö-apulaitteet</ar>
-<ar><k>input gate</k>
-syöttövasteet</ar>
-<ar><k>input signal</k>
-tulosignaali</ar>
-<ar><k>input test</k>
-ensiökoestus</ar>
-<ar><k>input tray</k>
-syöttöalusta</ar>
-<ar><k>inquire</k>
-kuulustaa (tiedustella), kysellä (tiedustella), kysyä, tiedustella</ar>
-<ar><k>inquiring</k>
-kysyvä</ar>
-<ar><k>inquiry</k>
-kysely, kysymys</ar>
-<ar><k>inquisition</k>
-inkvisitio</ar>
-<ar><k>inquisitive</k>
-kyselias</ar>
-<ar><k>insane</k>
-hullu, mielenvikainen</ar>
-<ar><k>insanitary</k>
-epähygieeninen</ar>
-<ar><k>insanity</k>
-hulluus, mielenvikaisuus</ar>
-<ar><k>insatiable</k>
-kyllästymätön, kyltymätön</ar>
-<ar><k>inscribe</k>
-kaivertaa</ar>
-<ar><k>inscription</k>
-kaiverrus</ar>
-<ar><k>insect</k>
-hyönteinen, itikka</ar>
-<ar><k>insecticide</k>
-hyönteismyrkky</ar>
-<ar><k>insecure</k>
-epävarma (turvaton)</ar>
-<ar><k>insensible</k>
-tunnoton (tajuton), turta</ar>
-<ar><k>inseparability</k>
-eroamattomuus</ar>
-<ar><k>inseparable</k>
-eroamaton, erottamaton</ar>
-<ar><k>inside</k>
-sisällä, sisäpuolella</ar>
-<ar><k>inside out</k>
-nurin</ar>
-<ar><k>inside wall</k>
-sisäseinä</ar>
-<ar><k>insight</k>
-oivallus</ar>
-<ar><k>insignificance</k>
-arvottomuus, mitättömyys</ar>
-<ar><k>insignificant</k>
-mitätön, tyhjänpäiväinen</ar>
-<ar><k>insinuating</k>
-luihu</ar>
-<ar><k>insinuation</k>
-viittailu</ar>
-<ar><k>insipid</k>
-lattea (kuv), tympeä, väljähtynyt</ar>
-<ar><k>insist</k>
-vaatia, väittää</ar>
-<ar><k>insist upon</k>
-intää</ar>
-<ar><k>insistant</k>
-hellittämätön (luja)</ar>
-<ar><k>insistence</k>
-itsepäisyys</ar>
-<ar><k>insobriety</k>
-juoppous</ar>
-<ar><k>insole</k>
-irtopohja</ar>
-<ar><k>insolence</k>
-röyhkeys</ar>
-<ar><k>insolent</k>
-hävytön, julkea, röyhkeä</ar>
-<ar><k>insoluble</k>
-liukenematon</ar>
-<ar><k>insolvency</k>
-maksukyvyttömyys</ar>
-<ar><k>insolvent</k>
-maksukyvytön</ar>
-<ar><k>insomnia</k>
-unettomuus</ar>
-<ar><k>inspect</k>
-katsastaa, tarkastaa, tarkastella, tarkistaa, tutkia</ar>
-<ar><k>inspection</k>
-katsastus, tarkastus</ar>
-<ar><k>inspection chamber</k>
-tarkastuskaivo</ar>
-<ar><k>inspection eye</k>
-puhdistusputki</ar>
-<ar><k>inspector</k>
-katsastaja, poliisikomissaari, tarkastaja</ar>
-<ar><k>inspector of weights and measures</k>
-vakaaja</ar>
-<ar><k>inspiration</k>
-innoitus, inspiraatio</ar>
-<ar><k>inspire</k>
-innoittaa, innostaa</ar>
-<ar><k>inspiring</k>
-elähdyttävä, innoittava, sytyttävä</ar>
-<ar><k>install</k>
-asentaa, laittaa paikalleen
-
-asentaa</ar>
-<ar><k>installation</k>
-asennus
-
-asennus</ar>
-<ar><k>instalment</k>
-osamaksu (maksuerä)</ar>
-<ar><k>instance</k>
-tapaus</ar>
-<ar><k>instant</k>
-hetki, silmänräpäys</ar>
-<ar><k>instant start switch</k>
-itsekäynnistyskytkin</ar>
-<ar><k>instantaneous</k>
-silmänräpäyksellinen</ar>
-<ar><k>instantly</k>
-heti</ar>
-<ar><k>instead</k>
-jnk sijasta, asemesta, sen sijaan</ar>
-<ar><k>instead of</k>
-jnk asemesta</ar>
-<ar><k>instep</k>
-jalanrinta</ar>
-<ar><k>instep support</k>
-jalkatuki</ar>
-<ar><k>instict</k>
-vaisto</ar>
-<ar><k>instigate</k>
-villitä, yllyttää</ar>
-<ar><k>instigator</k>
-villitsijä, yllyttäjä</ar>
-<ar><k>instinct</k>
-vietti</ar>
-<ar><k>instinct of self-preservation</k>
-itsesuojeluvaisto</ar>
-<ar><k>instinctive</k>
-vaistomainen</ar>
-<ar><k>instinctively</k>
-vaistomaisesti</ar>
-<ar><k>institute</k>
-laitos, opisto</ar>
-<ar><k>institution</k>
-hoitolaitos, laitos</ar>
-<ar><k>instruct</k>
-evästää (kuv), opettaa</ar>
-<ar><k>instruction</k>
-evästys (kuv), ohje, opetus, toimintaohje, määräys
-
-opetus</ar>
-<ar><k>instructions</k>
-käyttöohjeet</ar>
-<ar><k>instructor</k>
-kouluttaja, ohjaaja (neuvoja)</ar>
-<ar><k>instrument</k>
-koje, työkalu</ar>
-<ar><k>instrument panel</k>
-kojelauta</ar>
-<ar><k>insubordinate</k>
-tottelematon, uppiniskainen</ar>
-<ar><k>insubordination</k>
-tottelemattomuus</ar>
-<ar><k>insufficient</k>
-riittämätön</ar>
-<ar><k>insulate</k>
-eristää (tekn)</ar>
-<ar><k>insulated</k>
-eristetty</ar>
-<ar><k>insulation</k>
-eristys (tekkn), eriste</ar>
-<ar><k>insulation brick</k>
-eristysharkot</ar>
-<ar><k>insulation material</k>
-eriste</ar>
-<ar><k>insulator</k>
-eristin</ar>
-<ar><k>insuling</k>
-häpäisevä</ar>
-<ar><k>insult</k>
-häväistys, loukkaus, solvaus
-
-loukuta, solvata</ar>
-<ar><k>insulting</k>
-loukkaava, solvaava</ar>
-<ar><k>insurance</k>
-vakuutus</ar>
-<ar><k>insurance policy</k>
-vakuutuskirja</ar>
-<ar><k>insurance premium</k>
-vakuutusmaksu</ar>
-<ar><k>insure</k>
-vakuuttaa</ar>
-<ar><k>insurrection</k>
-kapina</ar>
-<ar><k>intact</k>
-eheä, koskematon</ar>
-<ar><k>intake pipe</k>
-tulojohto</ar>
-<ar><k>intamacy</k>
-tuttavallisuus</ar>
-<ar><k>integrate</k>
-yhdentää</ar>
-<ar><k>integration</k>
-eheyttäminen</ar>
-<ar><k>integrity</k>
-oikeamielisyys, rehellisyys</ar>
-<ar><k>intellect</k>
-älykäs henkilö</ar>
-<ar><k>intellectual</k>
-henkinen, älyllinen, älyperäinen</ar>
-<ar><k>intellectual gifts</k>
-hengenlahjat</ar>
-<ar><k>intelligence</k>
-äly, älykkyys</ar>
-<ar><k>intelligent</k>
-fiksu, nokkela, ovela, viisas, älykäs, lahjakas</ar>
-<ar><k>intelligently</k>
-älykkäästi</ar>
-<ar><k>intelligibility</k>
-ymmärrettävyys</ar>
-<ar><k>intelligible</k>
-käsitettävä, tajuttava, ymmärrettävä</ar>
-<ar><k>intend</k>
-aikoa</ar>
-<ar><k>intense</k>
-voimaperäinen</ar>
-<ar><k>intensification</k>
-tehostus</ar>
-<ar><k>intensify</k>
-voimaperäistä</ar>
-<ar><k>intensity</k>
-voimaperäisyys, väkevyys</ar>
-<ar><k>intensive</k>
-voimaperäinen</ar>
-<ar><k>intent</k>
-aie</ar>
-<ar><k>intention</k>
-aie, aikomus, tarkoitus</ar>
-<ar><k>intentional</k>
-tahallinen, tarkoituksellinen</ar>
-<ar><k>intentionally</k>
-tahallaan, tarkoituksellisesti</ar>
-<ar><k>inter</k>
-haudata</ar>
-<ar><k>interchange</k>
-eritasoristeys, vaihto</ar>
-<ar><k>interchangeable</k>
-vaihtokelpoinen</ar>
-<ar><k>intercom</k>
-sisäpuhelin</ar>
-<ar><k>interdependancy</k>
-keskinäinen riippuvuus</ar>
-<ar><k>interdocument lamp</k>
-saumalamppu</ar>
-<ar><k>interest</k>
-asianharrastus, harrastus
-
-kiinostaa</ar>
-<ar><k>interest group</k>
-eturyhmä</ar>
-<ar><k>interest in</k>
-innostus</ar>
-<ar><k>interested</k>
-innostunut, kiinnostunut</ar>
-<ar><k>interested in</k>
-innostunut</ar>
-<ar><k>interesting</k>
-kiinnostava, mielenkiintoinen</ar>
-<ar><k>interfere with</k>
-häiritä</ar>
-<ar><k>interference</k>
-sähkömelu, sähköhäiriö, sekaantuminen</ar>
-<ar><k>interimage lamp</k>
-saumalamppu</ar>
-<ar><k>interior</k>
-sisempi, uumenet, sisäpuoli
-
-sisäosa, sisätilat</ar>
-<ar><k>interlock</k>
-varmistus, varmistuskytkin</ar>
-<ar><k>interlocking tile</k>
-urareunatiili</ar>
-<ar><k>interlude</k>
-välinäytös</ar>
-<ar><k>intermediary</k>
-välittäjä</ar>
-<ar><k>intermediate</k>
-välitys-, väli-</ar>
-<ar><k>intermediate switch</k>
-välikytkin</ar>
-<ar><k>interminable</k>
-loputon</ar>
-<ar><k>intermittant</k>
-ajoittainen, katkonainen</ar>
-<ar><k>intern</k>
-internoida</ar>
-<ar><k>internal</k>
-sisällinen, sisä-</ar>
-<ar><k>internal disease</k>
-sisätauti</ar>
-<ar><k>internal wall</k>
-sisäseinä</ar>
-<ar><k>international</k>
-kansainvälinen</ar>
-<ar><k>international match</k>
-maaottelu</ar>
-<ar><k>international word</k>
-sivistyssana</ar>
-<ar><k>interpret</k>
-tulkita</ar>
-<ar><k>interpretation</k>
-tulkinta</ar>
-<ar><k>interpreter</k>
-tulkki</ar>
-<ar><k>interrogate</k>
-kuulustella</ar>
-<ar><k>interrogative</k>
-interrogatiivi, kysymyssana, kysyvä (kiel)</ar>
-<ar><k>interrogative sentence</k>
-kysymyslause</ar>
-<ar><k>interrupt</k>
-keskeyttää</ar>
-<ar><k>interruption</k>
-kesketys</ar>
-<ar><k>intersect</k>
-leikata (geom)</ar>
-<ar><k>intertwine</k>
-punoa (yhteen)</ar>
-<ar><k>interval</k>
-loma (väli), tauko, väli, väliaika</ar>
-<ar><k>intervention</k>
-sekaantuminen, väliintulo</ar>
-<ar><k>interview</k>
-haastattelu
-
-haastatella</ar>
-<ar><k>interviewer</k>
-haastattelija</ar>
-<ar><k>intestine</k>
-suoli</ar>
-<ar><k>intestines</k>
-suolisto</ar>
-<ar><k>intimacy</k>
-likeisyys</ar>
-<ar><k>intimate</k>
-likeinen, tuttavallinen, uskottu</ar>
-<ar><k>intimation</k>
-viittaus</ar>
-<ar><k>intimidation</k>
-pelottelu</ar>
-<ar><k>intolerable</k>
-sietämätön</ar>
-<ar><k>intoxicant</k>
-juovutusjuoma, väkijuoma</ar>
-<ar><k>intoxicate</k>
-humalluttaa, juovuttaa</ar>
-<ar><k>intoxicated</k>
-humala (juopumus)</ar>
-<ar><k>intoxication</k>
-huumaus (kuv), juopumus, päihtymys</ar>
-<ar><k>intransitive</k>
-intransitiivinen</ar>
-<ar><k>intrepid</k>
-uhrea</ar>
-<ar><k>intricate</k>
-konstikas</ar>
-<ar><k>intrigue</k>
-juoni, salajuoni</ar>
-<ar><k>intrigues</k>
-vehkeily</ar>
-<ar><k>intrinsic value</k>
-metalliarvo (rahan)</ar>
-<ar><k>introduce</k>
-esitellä (vieras ym), tutustuttaa</ar>
-<ar><k>introduce oneself</k>
-esittäytyä</ar>
-<ar><k>introducer</k>
-alustaja, esittelijä</ar>
-<ar><k>introduction</k>
-esittely, johdanto</ar>
-<ar><k>intrude</k>
-tungetella</ar>
-<ar><k>intruder</k>
-tungettelija</ar>
-<ar><k>intrusion</k>
-tungettelu</ar>
-<ar><k>intrusive</k>
-tungettelevainen</ar>
-<ar><k>intuition</k>
-intuitio</ar>
-<ar><k>inure</k>
-karaista</ar>
-<ar><k>invalid</k>
-mitätön (kelpaamaton), vaivainen</ar>
-<ar><k>invariably</k>
-aina</ar>
-<ar><k>invasion</k>
-hyökkäys (maahan)</ar>
-<ar><k>invent</k>
-keksiä</ar>
-<ar><k>invention</k>
-keksintö</ar>
-<ar><k>inventor</k>
-keksijä</ar>
-<ar><k>inverted commas</k>
-lainausmerkit</ar>
-<ar><k>inverter</k>
-kääntölaite</ar>
-<ar><k>invest</k>
-sijoittaa</ar>
-<ar><k>investigate</k>
-tutkia</ar>
-<ar><k>investigation</k>
-tutkimus</ar>
-<ar><k>investment</k>
-sijoitus</ar>
-<ar><k>investment house</k>
-sijoitusyhtiö</ar>
-<ar><k>invigorate</k>
-elähdyttää, virkistää, virvoittaa</ar>
-<ar><k>invisible</k>
-näkymätön</ar>
-<ar><k>invisible mending</k>
-taitoparsinta</ar>
-<ar><k>invitation</k>
-kutsu</ar>
-<ar><k>invitation card</k>
-kutsukortti</ar>
-<ar><k>invite</k>
-kutsua (vieraaksi)</ar>
-<ar><k>invoice</k>
-lasku (faktuura)tavaralasku
-
-fakturoida, laskuttaa (liik)</ar>
-<ar><k>involuntary</k>
-tahdoton</ar>
-<ar><k>involve in</k>
-kietoa (kuv)</ar>
-<ar><k>involved</k>
-mutkallinen (kuv), ongelmallinen</ar>
-<ar><k>involvement</k>
-osallistuminen</ar>
-<ar><k>invulnerable</k>
-haavoittumaton</ar>
-<ar><k>iodine</k>
-jodi</ar>
-<ar><k>ionosphere</k>
-ionosfääri</ar>
-<ar><k>irate</k>
-kiukkuinen</ar>
-<ar><k>iris</k>
-kurjenmiekka</ar>
-<ar><k>iron</k>
-silitysrauta
-
-rauta</ar>
-<ar><k>iron bedstead</k>
-rautasänky</ar>
-<ar><k>iron out</k>
-selvittää [puhek.]</ar>
-<ar><k>ironer</k>
-silittäjä</ar>
-<ar><k>ironic</k>
-ivallinen</ar>
-<ar><k>ironically</k>
-ivallisesti</ar>
-<ar><k>ironing</k>
-silitys</ar>
-<ar><k>ironing-board</k>
-silityslauta</ar>
-<ar><k>ironmonger</k>
-rautakauppias, heloittaja</ar>
-<ar><k>ironmonger's shop</k>
-rautakauppa</ar>
-<ar><k>irons</k>
-kahleet</ar>
-<ar><k>ironworks</k>
-rautatehdas</ar>
-<ar><k>irony</k>
-iva</ar>
-<ar><k>irrational</k>
-järjetön</ar>
-<ar><k>irrefutable</k>
-kumoamaton</ar>
-<ar><k>irregular</k>
-epämukainen, epäsäännöllinen, säännötön</ar>
-<ar><k>irregularity</k>
-epäsäänöllisyys</ar>
-<ar><k>irrelevant</k>
-asiaankuulumaton, asiaton</ar>
-<ar><k>irreplaceable</k>
-korvaamaton</ar>
-<ar><k>irreproachable</k>
-moiteeton</ar>
-<ar><k>irresistible</k>
-vastustamaton</ar>
-<ar><k>irresponsibility</k>
-edesvastuuttomuus, holtittomuus</ar>
-<ar><k>irresponsible</k>
-edesvastuuton, vastuuton, huoliton</ar>
-<ar><k>irrigation</k>
-huuhtelu (lääk)</ar>
-<ar><k>irritability</k>
-ärtyvyys</ar>
-<ar><k>irritable</k>
-hermostunut, ärtyinen, ärtyisä, ärtyvä</ar>
-<ar><k>irritant</k>
-ärsyke</ar>
-<ar><k>irritate</k>
-hermostuttaa, närkästyttää, ärsyttää</ar>
-<ar><k>irritated</k>
-kiusaantunut</ar>
-<ar><k>irritation</k>
-ärsytys, ärtymys</ar>
-<ar><k>is likely to</k>
-taitaa (apuverbi)</ar>
-<ar><k>is lost</k>
-on eksyksissä</ar>
-<ar><k>island</k>
-liikenneympyrä, saari</ar>
-<ar><k>islander</k>
-saarelainen</ar>
-<ar><k>isle</k>
-saari</ar>
-<ar><k>isolated</k>
-irrallinen</ar>
-<ar><k>isolated case</k>
-hajatapaus</ar>
-<ar><k>isolation</k>
-eristyneisyys, eristys, yksinäisyys</ar>
-<ar><k>isolation box</k>
-liitäntäkotelo</ar>
-<ar><k>isotope</k>
-isotooppi</ar>
-<ar><k>issue</k>
-painos
-
-antaa (määräys)</ar>
-<ar><k>issue of notes</k>
-anto (setelien)</ar>
-<ar><k>it makes no difference</k>
-yhdentekevä [puhek.]</ar>
-<ar><k>italic</k>
-vinokirja</ar>
-<ar><k>italics</k>
-kursiivi</ar>
-<ar><k>itch</k>
-syyhy
-
-kihelmöidä, kutista, kutkuta, syyhelmä, syyhyttää</ar>
-<ar><k>itching</k>
-kutina</ar>
-<ar><k>item</k>
-osa, tilierä</ar>
-<ar><k>itinary</k>
-järjestys, matkasuunnitelma</ar>
-<ar><k>ivory</k>
-norsunluu</ar>
-<ar><k>ivy</k>
-muratti</ar>
-<ar><k>jabber</k>
-loruta</ar>
-<ar><k>jack</k>
-tunkki, vintturi</ar>
-<ar><k>jackal</k>
-sakaali</ar>
-<ar><k>jackdaw</k>
-naakka</ar>
-<ar><k>jacket</k>
-jakku, nuttu, röijy</ar>
-<ar><k>jade</k>
-nefriittikivi</ar>
-<ar><k>jail</k>
-putka, tyrmä, vankila</ar>
-<ar><k>jam</k>
-tukos, tukkeuma
-
-lukkiintua, likistää</ar>
-<ar><k>jamb</k>
-ikkunanpieli, sivukarmi</ar>
-<ar><k>jangle</k>
-helistellä, kalistella</ar>
-<ar><k>janitor</k>
-vahtimestari (koulun)</ar>
-<ar><k>jar</k>
-lasipurkki, tölkki</ar>
-<ar><k>jargon</k>
-siansaksa</ar>
-<ar><k>jasmine</k>
-jasmiini</ar>
-<ar><k>jaundice</k>
-keltatauti</ar>
-<ar><k>jaunty</k>
-railakas</ar>
-<ar><k>javelin</k>
-keihäs (urh)</ar>
-<ar><k>jaw</k>
-leukapieli</ar>
-<ar><k>jawbone</k>
-leukaluu</ar>
-<ar><k>jaws</k>
-kita</ar>
-<ar><k>jay</k>
-närhi</ar>
-<ar><k>jealous</k>
-kateellinen, mustasukkainen</ar>
-<ar><k>jealousy</k>
-kateellisuus, mustasukkaisuus</ar>
-<ar><k>jeans</k>
-farmarihousut</ar>
-<ar><k>jeep</k>
-maastoauto</ar>
-<ar><k>jeer</k>
-ivahuuto, pilkkahuuto
-
-ivata</ar>
-<ar><k>jeer at</k>
-ilkkua</ar>
-<ar><k>jelly</k>
-hedelmähyytelö, hyytelö</ar>
-<ar><k>jelly sweets</k>
-marmelaati</ar>
-<ar><k>jelly-fish</k>
-maneetti (zo)</ar>
-<ar><k>jemmy</k>
-sorkkarauta</ar>
-<ar><k>jeopardy</k>
-vaara</ar>
-<ar><k>jerk</k>
-heijaste (lääk), kiskoa, nykiä, tempaus, vetäisy
-
-nykäistä, nytkiä</ar>
-<ar><k>jersey</k>
-trikoo</ar>
-<ar><k>jest</k>
-leikinlasku, pila, vitsi
-
-ikamoida, ilvehtiä, vitsailla</ar>
-<ar><k>jester</k>
-ilvehtijä, ilveilijä</ar>
-<ar><k>jesting</k>
-ikamointi</ar>
-<ar><k>jet</k>
-suihku</ar>
-<ar><k>jet plane</k>
-suihkulentokone</ar>
-<ar><k>jetty</k>
-laituri (pieni)</ar>
-<ar><k>jew</k>
-juutalainen</ar>
-<ar><k>jewel</k>
-jalokivi</ar>
-<ar><k>jeweller</k>
-jalokivikauppias</ar>
-<ar><k>jewellery case</k>
-korulipas</ar>
-<ar><k>jewellry</k>
-jalokivikorut</ar>
-<ar><k>jewish</k>
-juutalainen</ar>
-<ar><k>jhot</k>
-helteinen, kiihkeä, kuuma, tulinen</ar>
-<ar><k>jib</k>
-halkaisija (mer)</ar>
-<ar><k>jib crane</k>
-puominosturi</ar>
-<ar><k>jingle</k>
-helinä, kilinä
-
-helistellä, helistä</ar>
-<ar><k>job</k>
-askare, keikka, työpaikka</ar>
-<ar><k>job recovery</k>
-ajokorjaus</ar>
-<ar><k>jocular</k>
-leikillinen</ar>
-<ar><k>jog</k>
-lönkytys
-
-hölkyttää, lönkyttää</ar>
-<ar><k>join</k>
-liitos
-
-jatkaa (tekn), liittyä, liittää, yhdistellä, yhdistää, yhtyä</ar>
-<ar><k>join in marriage</k>
-vihkiä (avioliittoon)</ar>
-<ar><k>joiner</k>
-puuseppä</ar>
-<ar><k>joint</k>
-jäsen (nivel), liitekohta, liitos, nivel</ar>
-<ar><k>joint venture</k>
-yhteisyritys</ar>
-<ar><k>joints</k>
-saumat</ar>
-<ar><k>joke</k>
-pila (leikki), vitsi
-
-vitsailla</ar>
-<ar><k>joker</k>
-leikinlaskija, pilkkakirves, vitsailija</ar>
-<ar><k>joking</k>
-leikillinen, leikinlasku, naljailu</ar>
-<ar><k>jolliness</k>
-hupaisuus</ar>
-<ar><k>jolly</k>
-hauska, hilpeä, hupailuisa, lystikäs, rattoisa</ar>
-<ar><k>jolly good</k>
-kiva</ar>
-<ar><k>jolly nice</k>
-kiva</ar>
-<ar><k>jostle</k>
-tuuppia, tyrkkiä, tönäistä, töykkiä</ar>
-<ar><k>journal</k>
-aikakauskirjalehti, päiväkirja</ar>
-<ar><k>journalism</k>
-sanomalehtiala</ar>
-<ar><k>journalist</k>
-lehtimies</ar>
-<ar><k>journey</k>
-matka
-
-matkailla, matkustaa</ar>
-<ar><k>journey abroad</k>
-ulkomaanmatka</ar>
-<ar><k>jovial</k>
-hilpeä, lupsakka</ar>
-<ar><k>joy flight</k>
-huvilennätys</ar>
-<ar><k>joy of living</k>
-elämänilo</ar>
-<ar><k>joyful</k>
-riemukas</ar>
-<ar><k>joyless</k>
-iloton</ar>
-<ar><k>judge</k>
-tuomari
-
-tuomita</ar>
-<ar><k>judgement</k>
-tuomio</ar>
-<ar><k>judicial</k>
-juridinen, lainopillinen, oikeudellinen</ar>
-<ar><k>judiciousness</k>
-viisaus</ar>
-<ar><k>jug</k>
-kannu</ar>
-<ar><k>jugular gland</k>
-kaularauhanen</ar>
-<ar><k>juice extractor</k>
-mehunpuristin</ar>
-<ar><k>juiciness</k>
-mehevyys</ar>
-<ar><k>juicy</k>
-mehevä, mehukas</ar>
-<ar><k>jumble</k>
-sekasotku</ar>
-<ar><k>jump</k>
-hyppy, hyppäys
-
-hypellä, hyppiä, hypätä, loikata</ar>
-<ar><k>jump all over</k>
-sättiä [puhek.]</ar>
-<ar><k>jump off the deep end</k>
-syöksyä suinpäin [puhek.]</ar>
-<ar><k>jump the queue</k>
-etuilla (jonossa ym)</ar>
-<ar><k>jumped up</k>
-nousukas [puhek.]</ar>
-<ar><k>jumper</k>
-aituri (hevonen), neulepusero</ar>
-<ar><k>jumper wire</k>
-yhdysjohto, oikojohto</ar>
-<ar><k>junction</k>
-liitekohta, risteys, tienristeys, nurkkaliitos</ar>
-<ar><k>jungle</k>
-viidakko</ar>
-<ar><k>juniper</k>
-kataja</ar>
-<ar><k>junk</k>
-dsonkki, kama, romu</ar>
-<ar><k>junkie</k>
-narkomaani</ar>
-<ar><k>juridical</k>
-juridinen</ar>
-<ar><k>jurist</k>
-lainoppinut</ar>
-<ar><k>juror</k>
-lautamies, valamies</ar>
-<ar><k>jury</k>
-valamiehistö</ar>
-<ar><k>juryman</k>
-lautamies, valamies</ar>
-<ar><k>just</k>
-aivan (juuri), hädintuskin, juuri (adv), oikeamielinen, oikeudenmukainen, vanhurskas</ar>
-<ar><k>just a little</k>
-hieman</ar>
-<ar><k>just now</k>
-parhaillaan, äsken</ar>
-<ar><k>just right</k>
-paraiksi</ar>
-<ar><k>just the same</k>
-yhdentekevä</ar>
-<ar><k>justice</k>
-tuomari
-
-kohtuus, oikeamielisyys, oikeus</ar>
-<ar><k>justifiable</k>
-aiheellinen</ar>
-<ar><k>justification</k>
-oikeutus</ar>
-<ar><k>justify</k>
-oikeuttaa</ar>
-<ar><k>jute</k>
-juutti</ar>
-<ar><k>juvenile</k>
-nuori, nuorukainen</ar>
-<ar><k>juvenile lead</k>
-ensirakastaja (teatt)</ar>
-<ar><k>kangaroo</k>
-kenguru</ar>
-<ar><k>keel</k>
-köli</ar>
-<ar><k>keen</k>
-innokas, terävä</ar>
-<ar><k>keen on</k>
-innostunut</ar>
-<ar><k>keeness</k>
-terävyys, into, innokkuus</ar>
-<ar><k>keenness</k>
-terävyys, into, innokkuus</ar>
-<ar><k>keep</k>
-pitää, pysyttää, säilyttää</ar>
-<ar><k>keep a lookout</k>
-tähystää</ar>
-<ar><k>keep apart</k>
-eristäytyä</ar>
-<ar><k>keep asking</k>
-pyydellä</ar>
-<ar><k>keep back</k>
-pidättää, taannuttaa, tukahduttaa</ar>
-<ar><k>keep body and soul together</k>
-hengenpitimiksi</ar>
-<ar><k>keep company with</k>
-seurustella</ar>
-<ar><k>keep house</k>
-emännoidä</ar>
-<ar><k>keep in hiding</k>
-lymyillä</ar>
-<ar><k>keep on</k>
-jatkaa</ar>
-<ar><k>keep ones eyes peeled</k>
-olla varuillaan [puhek.]</ar>
-<ar><k>keep oneself to oneself</k>
-eristäytyä</ar>
-<ar><k>keep secret</k>
-salata</ar>
-<ar><k>keep up</k>
-ylläpitää</ar>
-<ar><k>keep-fit school</k>
-kuntokoulu</ar>
-<ar><k>keeper</k>
-hoitaja</ar>
-<ar><k>keeping up with the Joneses</k>
-elinkilpailu [puhek.]</ar>
-<ar><k>keepsake</k>
-muistoesine</ar>
-<ar><k>kennel</k>
-koirankoppi</ar>
-<ar><k>kept after school</k>
-jälkiistunto</ar>
-<ar><k>kerb</k>
-kivireunus</ar>
-<ar><k>kestrel</k>
-tornihaukka</ar>
-<ar><k>kettledrum</k>
-patarumpu</ar>
-<ar><k>key</k>
-avain, kosketin</ar>
-<ar><k>key counter</k>
-osistusmittari</ar>
-<ar><k>keyboard</k>
-koskettimisto, näppäimistö</ar>
-<ar><k>keyhole</k>
-avaimenreikä</ar>
-<ar><k>kick</k>
-potku
-
-potkaista, potkia</ar>
-<ar><k>kick over the traces</k>
-olla vastahankaan [puhek.]</ar>
-<ar><k>kick-off</k>
-sysäys-</ar>
-<ar><k>kicking plate</k>
-potkulevy</ar>
-<ar><k>kid</k>
-kakara (leik), tenava, vekara
-
-vitsaila</ar>
-<ar><k>kid gloves</k>
-glaseehansikkaat</ar>
-<ar><k>kidding</k>
-pilailu [puhek.]</ar>
-<ar><k>kidnap</k>
-siepata</ar>
-<ar><k>kidney</k>
-munuainen</ar>
-<ar><k>kidney-stone</k>
-munuaiskivi</ar>
-<ar><k>kill</k>
-saalis (metsästäjän), surmata, tappaa</ar>
-<ar><k>killing</k>
-tappo</ar>
-<ar><k>kilogramme</k>
-kilogramma</ar>
-<ar><k>kilometre</k>
-kilometri</ar>
-<ar><k>kilowatt</k>
-kilowatti</ar>
-<ar><k>kind</k>
-hyvä, hyväntahtoinen, kiltti, laatu (laji), laji, suopea, ystävällinen</ar>
-<ar><k>kind-hearted</k>
-hyväsydäminen</ar>
-<ar><k>kindergarten</k>
-lastentarha</ar>
-<ar><k>kindle</k>
-syttyä, sytyttää</ar>
-<ar><k>kindling</k>
-sytyke</ar>
-<ar><k>kindly</k>
-hyväntahtoisesti, suosiollinen, ystävällinen, ystävällisesti</ar>
-<ar><k>kindly disposed</k>
-hyväsuopa</ar>
-<ar><k>kindness</k>
-hyvyys, hyväntahtoisuus, hyväsuopuus, hyväsydämisyys, ystävällisyys</ar>
-<ar><k>kindred spirit</k>
-hengenheimolainen</ar>
-<ar><k>king</k>
-kuningas</ar>
-<ar><k>king of hearts</k>
-herttakunningas</ar>
-<ar><k>kingdom</k>
-kuningaskunta</ar>
-<ar><k>kingship</k>
-kuninkuus</ar>
-<ar><k>kink</k>
-sykkyrä</ar>
-<ar><k>kiosk</k>
-kioski, myyntikoju</ar>
-<ar><k>kipper</k>
-savusilli</ar>
-<ar><k>kiss</k>
-suudelma, suukko, suutelo
-
-suudella</ar>
-<ar><k>kisser</k>
-suu [puhek.]</ar>
-<ar><k>kissing</k>
-suutelu</ar>
-<ar><k>kit</k>
-pakkaus</ar>
-<ar><k>kitchen</k>
-keittiö</ar>
-<ar><k>kitchen garden</k>
-kasvitarha</ar>
-<ar><k>kitchen utensils</k>
-keittiöastiat</ar>
-<ar><k>kite</k>
-leija</ar>
-<ar><k>kitten</k>
-kissanpoikanen, pentu (kissan)</ar>
-<ar><k>knapsack</k>
-kontti, reppu, selkäreppu</ar>
-<ar><k>knave</k>
-lurjus, roisto</ar>
-<ar><k>knavery</k>
-konnantyö</ar>
-<ar><k>knead</k>
-alustaa (taikina)</ar>
-<ar><k>knee</k>
-polvi</ar>
-<ar><k>knee-cap</k>
-polvilumpio</ar>
-<ar><k>knee-joint</k>
-polvinivel</ar>
-<ar><k>kneel down</k>
-polvistua</ar>
-<ar><k>knick-knacks</k>
-koristeesineet</ar>
-<ar><k>knife</k>
-puukottaa
-
-puukko, veitsi</ar>
-<ar><k>knife-edge load</k>
-viivakuorma</ar>
-<ar><k>knight</k>
-ritari
-
-aateloida</ar>
-<ar><k>knit</k>
-neuloa (puikoilla)</ar>
-<ar><k>knitting</k>
-kudin, neule, neulominen</ar>
-<ar><k>knitwear</k>
-trikoo</ar>
-<ar><k>knob</k>
-kahva (nuppi), kyhmy, nuppi</ar>
-<ar><k>knock</k>
-isku, kolhu, kolkutus, koputus
-
-iskeä, kolauttaa, kolhaista, kolkuttaa, koputtaa, nakuttaa, naputtaa</ar>
-<ar><k>knock down</k>
-kaataa (iskemällä)</ar>
-<ar><k>knock for six</k>
-ällistyttää [puhek.]</ar>
-<ar><k>knock it off</k>
-lopeta [puhek.]</ar>
-<ar><k>knock out</k>
-tyrmätä</ar>
-<ar><k>knock someones block off</k>
-lyödä tajuttomaksi [puhek.]</ar>
-<ar><k>knock spots off</k>
-olla parempi [puhek.]</ar>
-<ar><k>knock together</k>
-kyhätä kokoon [puhek.]</ar>
-<ar><k>knock-out</k>
-tyrmäus</ar>
-<ar><k>knockers</k>
-rinnat [puhek.]</ar>
-<ar><k>knocking</k>
-kolkutus, nakutus</ar>
-<ar><k>knocking shop</k>
-ilotalo [puhek.]</ar>
-<ar><k>knoll</k>
-kumpu, kunnos</ar>
-<ar><k>knot</k>
-solmu</ar>
-<ar><k>knotty</k>
-kiperä (kuv), kyhmyinen, vaikea (vakava)</ar>
-<ar><k>know</k>
-osata (tuntea), taitaa (osata), tietää, tuntea (tietää)</ar>
-<ar><k>know-how</k>
-taito [puhek.]</ar>
-<ar><k>knowingly</k>
-tieten</ar>
-<ar><k>knowledge</k>
-tieto</ar>
-<ar><k>knowledge of languages</k>
-kielitaito</ar>
-<ar><k>known</k>
-tietty, tunnettu</ar>
-<ar><k>known to</k>
-tuttu</ar>
-<ar><k>knuckle</k>
-rysty</ar>
-<ar><k>knurled</k>
-pyälletty</ar>
-<ar><k>label</k>
-lappu (hinta- ym), nimilappu, osoitelippu</ar>
-<ar><k>laberynth</k>
-labyrintti</ar>
-<ar><k>labial sound</k>
-huuliäänne (kiel)</ar>
-<ar><k>laboratory</k>
-laboratoria</ar>
-<ar><k>laborious</k>
-isotöinen, suurtöinen, työläs</ar>
-<ar><k>labour</k>
-työvoima</ar>
-<ar><k>labour movement</k>
-työväenliike</ar>
-<ar><k>labour pain</k>
-synnytyskipu</ar>
-<ar><k>labour pains</k>
-synnytystuskat</ar>
-<ar><k>labour party</k>
-työväenpuolue</ar>
-<ar><k>labourer</k>
-työmies</ar>
-<ar><k>lace up</k>
-pauloittaa</ar>
-<ar><k>laceration</k>
-raatelu</ar>
-<ar><k>lack</k>
-kaivata (olla vailla)
-
-puute, puuttuminen</ar>
-<ar><k>lack of care</k>
-hoitamattomuus</ar>
-<ar><k>lack of confidence</k>
-epäluottamus</ar>
-<ar><k>lack of consideration</k>
-ajattelemattomuus, häikäilemättömyys</ar>
-<ar><k>lack of courage</k>
-arkamaisuus</ar>
-<ar><k>lack of judgement</k>
-arvostekyvyttömyys</ar>
-<ar><k>lack of organization</k>
-järjestymättömyys</ar>
-<ar><k>lack of restraint</k>
-hillittömyys</ar>
-<ar><k>lack of talent</k>
-lahjattomuus</ar>
-<ar><k>lack of taste</k>
-aistittomuus</ar>
-<ar><k>lack of time</k>
-ajanpuute</ar>
-<ar><k>lackey</k>
-lakeija</ar>
-<ar><k>lacking in ideas</k>
-köyhäaatteinen</ar>
-<ar><k>lacquer</k>
-lakata
-
-lakka</ar>
-<ar><k>lactic acid</k>
-maitohappo</ar>
-<ar><k>lad</k>
-poika</ar>
-<ar><k>ladder</k>
-silmäpako, tikapuut</ar>
-<ar><k>ladies' room</k>
-naistenhoune</ar>
-<ar><k>ladle</k>
-kauha
-
-ammentaa</ar>
-<ar><k>lady</k>
-nainen</ar>
-<ar><k>lady in waiting</k>
-kamarirouva</ar>
-<ar><k>lady luck</k>
-onnetar</ar>
-<ar><k>lady of the house</k>
-talonemäntä</ar>
-<ar><k>lady's maid</k>
-kamarineiti</ar>
-<ar><k>lady-in-waiting</k>
-hovinainen</ar>
-<ar><k>lady-killer</k>
-naistenhurmaaja [puhek.]</ar>
-<ar><k>lady-partner</k>
-daami</ar>
-<ar><k>ladybird</k>
-leppäkerttu</ar>
-<ar><k>lag</k>
-aikailla, kuhnailla</ar>
-<ar><k>lager</k>
-keskiolut</ar>
-<ar><k>lagoon</k>
-laguuni</ar>
-<ar><k>lair</k>
-luola (eläimen), pesä (maanalainen)</ar>
-<ar><k>lake</k>
-järvi</ar>
-<ar><k>lamb</k>
-karitsa</ar>
-<ar><k>lame</k>
-ontuva, ponneton, rampa</ar>
-<ar><k>lamentation</k>
-itkuvirsi</ar>
-<ar><k>lamina</k>
-suomu</ar>
-<ar><k>laminated timber</k>
-liimapuu</ar>
-<ar><k>lamp</k>
-lamppu, katulyhty, valaisin</ar>
-<ar><k>lamp-post</k>
-lyhtypylväs</ar>
-<ar><k>lamp-shade</k>
-lampuvarjostin</ar>
-<ar><k>lamplight</k>
-lampunvalo</ar>
-<ar><k>lampoon</k>
-häväistyskirjoitus, pilkkaruno</ar>
-<ar><k>lance</k>
-keihäs, peitsi
-
-leikata (puhkaista)</ar>
-<ar><k>lance corporal</k>
-korpraali</ar>
-<ar><k>land</k>
-laskeutua (lentokone)</ar>
-<ar><k>landing</k>
-porrastasanne</ar>
-<ar><k>landing gear</k>
-laskuteline</ar>
-<ar><k>landing stage</k>
-venelaituri</ar>
-<ar><k>landing-net</k>
-kalahaavi, lippo</ar>
-<ar><k>landing-stage</k>
-laituri (uiva)</ar>
-<ar><k>landlady</k>
-vuokraemäntä</ar>
-<ar><k>landlord</k>
-vuokraisäntä, talonisäntä (vuokra-)</ar>
-<ar><k>landmark</k>
-virstanpylväs</ar>
-<ar><k>landowner</k>
-maanomistaja</ar>
-<ar><k>landscape</k>
-maisema</ar>
-<ar><k>landscape architect</k>
-maisema-arkkitehti</ar>
-<ar><k>landslide</k>
-maanvieremä</ar>
-<ar><k>lane</k>
-ajokaista, ajokaista, kuja</ar>
-<ar><k>language</k>
-kieli (puhuttu)</ar>
-<ar><k>language rom</k>
-kieli-rom</ar>
-<ar><k>languid</k>
-laimea (veltto), veltto</ar>
-<ar><k>languish</k>
-riutua</ar>
-<ar><k>lanky</k>
-hintelä, hontelo</ar>
-<ar><k>lantern</k>
-lyhty</ar>
-<ar><k>lap</k>
-helma (syli), syli (helma)</ar>
-<ar><k>lapel</k>
-käänne (puvun), rintakäänne</ar>
-<ar><k>laplander</k>
-lappalainen</ar>
-<ar><k>laplander's hut</k>
-kota</ar>
-<ar><k>lapwing</k>
-töyhtöhyyppä</ar>
-<ar><k>larch</k>
-lehtikuusi</ar>
-<ar><k>larder</k>
-ruokasäiliö</ar>
-<ar><k>large</k>
-iso, kookas, laaja, suuri (iso)</ar>
-<ar><k>large intestine</k>
-paksusuoli</ar>
-<ar><k>large-checked</k>
-isoruutuinen</ar>
-<ar><k>large-sized</k>
-isokokoinen</ar>
-<ar><k>largeness</k>
-suuruus</ar>
-<ar><k>largest</k>
-suurin</ar>
-<ar><k>lark</k>
-kiuru, kuje, leivo</ar>
-<ar><k>larking</k>
-pelleily</ar>
-<ar><k>larva</k>
-toukka</ar>
-<ar><k>larynx</k>
-kurkunpää</ar>
-<ar><k>lascivious</k>
-hekumallinen</ar>
-<ar><k>lash</k>
-läimäys (piiskan), sivallus
-
-peistä</ar>
-<ar><k>lasso</k>
-suopunki</ar>
-<ar><k>last</k>
-jatkua (kestää), kestää, säilyä
-
-viime, viimeinen</ar>
-<ar><k>lasting</k>
-kestävä, pysyvä</ar>
-<ar><k>lastly</k>
-viimeksi</ar>
-<ar><k>latch</k>
-lukko, säppi, salpa</ar>
-<ar><k>latch-key child</k>
-avainlapsi</ar>
-<ar><k>late</k>
-myöhä, myöhäinen, myöhään</ar>
-<ar><k>late summer</k>
-syyskesä</ar>
-<ar><k>lately</k>
-hiljakkoin, äskettäin</ar>
-<ar><k>latent</k>
-latentti, piilevä</ar>
-<ar><k>later</k>
-jälkeenpäin, myöhempi</ar>
-<ar><k>later in the evening</k>
-illemmällä</ar>
-<ar><k>later on</k>
-myöhemmin, sittemmin</ar>
-<ar><k>latex</k>
-maitiasneste</ar>
-<ar><k>lath</k>
-lista (rak), piena, rima, säle</ar>
-<ar><k>lathe</k>
-sorvi</ar>
-<ar><k>lathe lines</k>
-säleet</ar>
-<ar><k>lather</k>
-saippuoida, vaahdota (saippua)</ar>
-<ar><k>latter</k>
-jälkimmäinen</ar>
-<ar><k>latter part</k>
-jälkipuolisko</ar>
-<ar><k>lattice girder</k>
-ristikkopalkki</ar>
-<ar><k>laugh</k>
-nauraa</ar>
-<ar><k>laughing gas</k>
-ilokaasu</ar>
-<ar><k>launch</k>
-laukaista (ohjus ym)</ar>
-<ar><k>launching pad</k>
-laukaisualusta</ar>
-<ar><k>laundry</k>
-kodinhoitohuone, pesula</ar>
-<ar><k>laurel</k>
-laakeri</ar>
-<ar><k>laurel wreath</k>
-laakeriseppele</ar>
-<ar><k>lavatory</k>
-klosetti, käymälä</ar>
-<ar><k>lavender</k>
-laventeli</ar>
-<ar><k>law</k>
-lainopillinen, laki</ar>
-<ar><k>law of nature</k>
-luonnonlaki</ar>
-<ar><k>law-abiding</k>
-lainkuuliainen</ar>
-<ar><k>lawbreaker</k>
-lainrikkoja</ar>
-<ar><k>lawful</k>
-laillinen</ar>
-<ar><k>lawfulness</k>
-laillisuus</ar>
-<ar><k>lawn</k>
-nurmikko, ruohokenttä</ar>
-<ar><k>lawn-mower</k>
-ruohokone</ar>
-<ar><k>lawsuit</k>
-oikeusjuttu, käräjäjuttu, oikeudenkäynti, prosessi (läk)</ar>
-<ar><k>lawyer</k>
-asianajaja, lakimies</ar>
-<ar><k>lay</k>
-maallikko
-
-asettaa, laskea (asettaa)</ar>
-<ar><k>lay eggs</k>
-munia</ar>
-<ar><k>lay off</k>
-lomauttaa</ar>
-<ar><k>lay preacher</k>
-maallikkosaarnaaja</ar>
-<ar><k>lay stress on</k>
-korostaa, tähdentää</ar>
-<ar><k>lay the table</k>
-kattaa (pöytä)</ar>
-<ar><k>lay waste</k>
-autioittaa</ar>
-<ar><k>layabout</k>
-irtolainen, renttu, vetelehtijä</ar>
-<ar><k>layer</k>
-kerros, päällyste</ar>
-<ar><k>layman</k>
-maallikko</ar>
-<ar><k>layout</k>
-asemapiirustus</ar>
-<ar><k>laziness</k>
-laiskuus</ar>
-<ar><k>lazy</k>
-laiska</ar>
-<ar><k>lead</k>
-sähköjohto, etu-, pääosa (teatt)
-
-lyijy
-
-johdattaa, johtaa, johto, ohjata, viedä (johtaa)</ar>
-<ar><k>lead a loose life</k>
-elostella, irstailla</ar>
-<ar><k>lead a wild life</k>
-hurjastella</ar>
-<ar><k>lead astray</k>
-eksyttää, hairahduttaa</ar>
-<ar><k>lead by the hand</k>
-taluttaa</ar>
-<ar><k>lead edge</k>
-etureuna</ar>
-<ar><k>lead edge mark</k>
-etureunajälki</ar>
-<ar><k>lead edge washout</k>
-etureunahäipymä</ar>
-<ar><k>lead to</k>
-aiheuttaa (johtaa)</ar>
-<ar><k>leader</k>
-johtaja, ohjaaja</ar>
-<ar><k>leadership</k>
-esimiehyys, johto, päällikkyys</ar>
-<ar><k>leading</k>
-johtaminen</ar>
-<ar><k>leading article</k>
-pääkirjoitus</ar>
-<ar><k>leading lady</k>
-primadonna</ar>
-<ar><k>leading role</k>
-pääosa (teatt)</ar>
-<ar><k>leaf</k>
-lehteillä, lehti</ar>
-<ar><k>leafless</k>
-lehdetön</ar>
-<ar><k>leaflet</k>
-brosyyri, esitlehti, lentolehti, esite</ar>
-<ar><k>leafy</k>
-lehtevä</ar>
-<ar><k>league</k>
-liitto</ar>
-<ar><k>leak</k>
-vuoto
-
-vuoto
-
-vuotaa</ar>
-<ar><k>leakage</k>
-vuoto</ar>
-<ar><k>lean</k>
-nojata, nojautua</ar>
-<ar><k>lean concrete</k>
-laiha betoni</ar>
-<ar><k>lean-to</k>
-vaja</ar>
-<ar><k>leaning</k>
-kallistuminen (kuv), kaltevuus
-
-kallellaan oleva, vino</ar>
-<ar><k>leanness</k>
-laihuus</ar>
-<ar><k>leap</k>
-hyppy, hyppäys, loikkaus, harppaus
-
-hypätä, loikata, loikkia</ar>
-<ar><k>leap year</k>
-karkausvuosi</ar>
-<ar><k>leap year day</k>
-karkauspäivä</ar>
-<ar><k>learn</k>
-opetella, oppia</ar>
-<ar><k>learn manners</k>
-ihmistyä</ar>
-<ar><k>learned</k>
-oppinut</ar>
-<ar><k>learner</k>
-harjoittelija, aloittelijä</ar>
-<ar><k>lease</k>
-vuokra (maasta), vuokrasopimus
-
-vuokrata</ar>
-<ar><k>leave</k>
-loma (sot), lupa
-
-hylätä (jättää), jättää, lähteä, poistua</ar>
-<ar><k>leave in charge</k>
-huoma (jättää)</ar>
-<ar><k>leave of absence</k>
-loma (virkavapaus), virkavapaus</ar>
-<ar><k>leave off</k>
-lakata</ar>
-<ar><k>leave to</k>
-jättää (perintönä)</ar>
-<ar><k>leaving certificate</k>
-erotodistus</ar>
-<ar><k>leaving no trace</k>
-jäljettömiin</ar>
-<ar><k>leavings</k>
-jätteet (tähteet)</ar>
-<ar><k>lecture</k>
-esitelmä, luento
-
-luennoida, läksyttää</ar>
-<ar><k>lecturer</k>
-esitelmöitsijä, lehtori (yliop), luennoitsija</ar>
-<ar><k>ledge</k>
-reunus, uloke</ar>
-<ar><k>ledger</k>
-pääkirja</ar>
-<ar><k>leech</k>
-iilimato</ar>
-<ar><k>leek</k>
-purjosipuli</ar>
-<ar><k>left</k>
-jäljelle, jäljellä, tallella, vasen</ar>
-<ar><k>left behind</k>
-jäljelle (jäädä), jälkeenjättämä</ar>
-<ar><k>left over</k>
-jäljelle (tähteeksi), ylijäänyt</ar>
-<ar><k>leg</k>
-jalka, kinttu, koipi, lahje (housun), sääri</ar>
-<ar><k>leg of mutton</k>
-lammaspaisti</ar>
-<ar><k>legacy</k>
-jälkilahjoitus, perintö</ar>
-<ar><k>legal</k>
-laillinen, lainopillinen, oikeudellinen</ar>
-<ar><k>legal language</k>
-lakikieli</ar>
-<ar><k>legal term</k>
-lakisana</ar>
-<ar><k>legality</k>
-laillisuus</ar>
-<ar><k>legation</k>
-lähetystö</ar>
-<ar><k>legend</k>
-legenda, taru, selitys</ar>
-<ar><k>legion</k>
-legioona</ar>
-<ar><k>legislation</k>
-lainsäädäntö</ar>
-<ar><k>legislative</k>
-lainsäädännnöllinen</ar>
-<ar><k>legislator</k>
-lainlaatija, lainsäätäjä</ar>
-<ar><k>legitimacy</k>
-laillisuus</ar>
-<ar><k>legitimate</k>
-laillistaa
-
-laillinen (oikea)</ar>
-<ar><k>leisurely</k>
-hidas</ar>
-<ar><k>lemon</k>
-sitruuna</ar>
-<ar><k>lemonade</k>
-limonaati</ar>
-<ar><k>lend</k>
-antaa lainaksi, lainata</ar>
-<ar><k>lend a hand</k>
-auttaa</ar>
-<ar><k>lender</k>
-lainanantaja, luotonantaja</ar>
-<ar><k>lending</k>
-antolainaus, lainaus, luotonanto</ar>
-<ar><k>length</k>
-pituus</ar>
-<ar><k>length distortion</k>
-pituusvirhe</ar>
-<ar><k>lengthen</k>
-jatkaa (pidentää), pidentää, pidetä, pitkittää</ar>
-<ar><k>lengthways</k>
-pitkittäin</ar>
-<ar><k>lengthwise</k>
-pituussuunnassa, pitkittäin</ar>
-<ar><k>lengthy</k>
-pitkällinen</ar>
-<ar><k>leniency</k>
-lempeys, lievyys</ar>
-<ar><k>lenient</k>
-lievä (rangaistus ym)</ar>
-<ar><k>lens</k>
-linssi</ar>
-<ar><k>lens mask</k>
-linssin valomaski</ar>
-<ar><k>lens motor</k>
-linssimoottori</ar>
-<ar><k>lens shade</k>
-linssin himmennin</ar>
-<ar><k>lentil</k>
-virvilä</ar>
-<ar><k>leopard</k>
-leopardi</ar>
-<ar><k>leprosy</k>
-lepra, spitaalitauti</ar>
-<ar><k>less</k>
-miinus, vähemmän, vähempi</ar>
-<ar><k>lessen</k>
-laimentaa, vähentää</ar>
-<ar><k>lesson</k>
-läksy, läksytys, opetustunti, oppitunti, koulutehtävä, tunti (opetus-)</ar>
-<ar><k>let</k>
-antaa (sallia), laskea (päästää), sallia</ar>
-<ar><k>let down</k>
-laskea (alas)</ar>
-<ar><k>let fall</k>
-pudottaa</ar>
-<ar><k>let go</k>
-hellittää (antaa perään), hellittää (päästää), laskea (irti), päästää</ar>
-<ar><k>let know</k>
-ilmoittaa (jklle jtk)</ar>
-<ar><k>let loose</k>
-irralleen</ar>
-<ar><k>let out a yell</k>
-hihkaister</ar>
-<ar><k>lethal</k>
-kuolettava</ar>
-<ar><k>lethargic</k>
-unelias</ar>
-<ar><k>lethargy</k>
-horros</ar>
-<ar><k>letter</k>
-kirjain, kirje</ar>
-<ar><k>letter of attorney</k>
-valtakirja</ar>
-<ar><k>letter of credit</k>
-kreditiivi, matkakreditiivi</ar>
-<ar><k>letter-box</k>
-postiluukku</ar>
-<ar><k>letting of blood</k>
-suonenisku</ar>
-<ar><k>lettuce</k>
-lehtisalaatti</ar>
-<ar><k>level</k>
-laakea, lakea, tasainen, vaakasuora
-
-taso</ar>
-<ar><k>level-crossing</k>
-tasoylikäytävä</ar>
-<ar><k>levelling</k>
-vaaitus, vaaitseminen, tasoitus</ar>
-<ar><k>lever</k>
-nostokanki, varsi, vipu</ar>
-<ar><k>lever bolt</k>
-pitkäsalpa</ar>
-<ar><k>lever gear door</k>
-bosto-ovi</ar>
-<ar><k>lewd</k>
-haureellinen, rietas, rivo</ar>
-<ar><k>lewdness</k>
-haureellisuus, haureus</ar>
-<ar><k>liability</k>
-sitoumus</ar>
-<ar><k>liable to excise</k>
-aksiisinalainen</ar>
-<ar><k>liar</k>
-valehtelija</ar>
-<ar><k>libel</k>
-herjauskirjoitus, häväistyskirjoitus</ar>
-<ar><k>libellous</k>
-herjaava</ar>
-<ar><k>liberal</k>
-antelias, aulis, jalomielinen</ar>
-<ar><k>liberation</k>
-vapautus</ar>
-<ar><k>librarian</k>
-kirjastonhoitaja</ar>
-<ar><k>library</k>
-kirjasto</ar>
-<ar><k>licence</k>
-erikoislupa, lisenssi, käyttölupa, lupakirja, lupa</ar>
-<ar><k>licentious</k>
-irstas</ar>
-<ar><k>lichen</k>
-jäkälä</ar>
-<ar><k>lick</k>
-nuoleminen
-
-nuolaista, nuoleminen</ar>
-<ar><k>lid</k>
-kansi</ar>
-<ar><k>lie</k>
-valhe
-
-maata, valehdella, virua</ar>
-<ar><k>lieutenant</k>
-luutnantti</ar>
-<ar><k>life</k>
-elo, elämä, henki (elämä), ikä (elämä)</ar>
-<ar><k>life guard</k>
-henkivartio</ar>
-<ar><k>life-belt</k>
-pelastusvyö</ar>
-<ar><k>life-buoy</k>
-pelastusrengas</ar>
-<ar><k>life-giving</k>
-elähdyttävä</ar>
-<ar><k>life-like</k>
-ilmielävä</ar>
-<ar><k>life-line</k>
-pelastusköysi</ar>
-<ar><k>life-saving</k>
-meripelastus</ar>
-<ar><k>lifeless</k>
-eloton, hengetön</ar>
-<ar><k>lifelessness</k>
-elottomuus, hengettömyys</ar>
-<ar><k>lifelong</k>
-elinaikainen, elinkautinen</ar>
-<ar><k>lifetime</k>
-elinaika, elinikä, ihmisikä</ar>
-<ar><k>lift</k>
-nosto-
-
-hissi
-
-hissi, hissi, kyyti
-
-nostaa</ar>
-<ar><k>lift up</k>
-kohotattaa (nostaa)</ar>
-<ar><k>lifting apparatus</k>
-nostokoje</ar>
-<ar><k>lifts</k>
-hissit</ar>
-<ar><k>ligament</k>
-jänneside</ar>
-<ar><k>light</k>
-valo, valaistus, loiste
-
-syttyä
-
-kepeä, keveä, kevyt, kuohkea, köykäinen, lievä, vaalea, valoisa, viritä</ar>
-<ar><k>light anaesthesia</k>
-huumaus (lääk)</ar>
-<ar><k>light colour</k>
-vaalenus</ar>
-<ar><k>light copy</k>
-vaalea kopio</ar>
-<ar><k>light dusting</k>
-valkosävykopio</ar>
-<ar><k>light emitting diode</k>
-valodiodi, led</ar>
-<ar><k>light entertainment</k>
-viihde</ar>
-<ar><k>light fitting</k>
-valaisinkaluste</ar>
-<ar><k>light infantryman</k>
-jääkäri</ar>
-<ar><k>light reading</k>
-ajankirjallisuus</ar>
-<ar><k>light sleeper</k>
-herkkäuninen</ar>
-<ar><k>light source</k>
-valolähde</ar>
-<ar><k>light up</k>
-valaista</ar>
-<ar><k>light-hearted</k>
-huoleton</ar>
-<ar><k>lighten</k>
-huojentaa, keventää</ar>
-<ar><k>lighter</k>
-lotja, proomu, sytytin (savukkeen)</ar>
-<ar><k>lighthouse</k>
-majakka</ar>
-<ar><k>lighthouse keeper</k>
-majakanvartija</ar>
-<ar><k>lighting</k>
-valaisin, valaistus</ar>
-<ar><k>lighting fixture</k>
-valaistuslaite</ar>
-<ar><k>lightness</k>
-keveys, lievyys, vaalenus</ar>
-<ar><k>lightning</k>
-salama</ar>
-<ar><k>lightship</k>
-majakkalaiva</ar>
-<ar><k>like</k>
-kaltainen, kuin, kuten, näköinen, yhdennäköinen</ar>
-<ar><k>like a bat out of hell</k>
-karmeaa vauhtia [puhek.]</ar>
-<ar><k>like blazes</k>
-hitosti</ar>
-<ar><k>like that</k>
-sellainen, sentapainen, tuollainen</ar>
-<ar><k>like the clappers</k>
-mieletöntä vauhtia [puhek.]</ar>
-<ar><k>like this</k>
-näin, tälläinen</ar>
-<ar><k>likelihood</k>
-todennäköisyys</ar>
-<ar><k>likely</k>
-luultava, todennäköinen, todennäköisesti, uskottava</ar>
-<ar><k>likeness</k>
-näköisyys</ar>
-<ar><k>likewise</k>
-niin ikään, niinikään, samoin</ar>
-<ar><k>liking</k>
-mieltymys</ar>
-<ar><k>lilac</k>
-sireeni (bot)</ar>
-<ar><k>lilly of the valley</k>
-kielo</ar>
-<ar><k>lily</k>
-lilja</ar>
-<ar><k>limb</k>
-jäsen (raaja), raaja</ar>
-<ar><k>limber up</k>
-verrytellä</ar>
-<ar><k>lime</k>
-kalkita (maata), kalkki, lehmus</ar>
-<ar><k>lime wash</k>
-kalkkimaali</ar>
-<ar><k>limit</k>
-raja, rajoitus, ääri
-
-rajoittaa, supistää</ar>
-<ar><k>limitation</k>
-rajoitus</ar>
-<ar><k>limited</k>
-rajoitettu</ar>
-<ar><k>limited company</k>
-osakeyhtiö</ar>
-<ar><k>limp</k>
-nilkuttaa, ontua
-
-hervoton</ar>
-<ar><k>limping</k>
-ontuminen</ar>
-<ar><k>linden</k>
-lehmus</ar>
-<ar><k>line</k>
-toimiala, jono, ketju (sot), köysi (mer), linja, nuora, raide, rivi, säe, viiva
-
-viivoittaa</ar>
-<ar><k>line filter</k>
-linjasuodin</ar>
-<ar><k>line fuse</k>
-pääsulake</ar>
-<ar><k>line of work</k>
-työala</ar>
-<ar><k>line voltage</k>
-verkkojännite</ar>
-<ar><k>line with boards</k>
-laudoittaa</ar>
-<ar><k>lineage</k>
-sukuperä</ar>
-<ar><k>linen</k>
-liinavaate, palttina</ar>
-<ar><k>liner</k>
-linjalaiva</ar>
-<ar><k>lines</k>
-viivat</ar>
-<ar><k>linger</k>
-hidastella, kitua, viipyä</ar>
-<ar><k>lingering</k>
-pitkällinen</ar>
-<ar><k>linguist</k>
-kielentuntija</ar>
-<ar><k>linguistic</k>
-kielellinen</ar>
-<ar><k>linguistic studies</k>
-kieliopinnot</ar>
-<ar><k>lining</k>
-vuori (sisuste), vuoraus</ar>
-<ar><k>link</k>
-yhdysvarsi, nivel
-
-yhdistää</ar>
-<ar><k>linkage</k>
-varsisto</ar>
-<ar><k>linked to</k>
-kytkeytyä (kuv)</ar>
-<ar><k>linnet</k>
-hemppo</ar>
-<ar><k>linoleum</k>
-korkkimatto, linoli
-
-muovimatto</ar>
-<ar><k>lintel</k>
-kamana</ar>
-<ar><k>lion</k>
-jalopeura, leijona</ar>
-<ar><k>lip</k>
-huuli, reuna</ar>
-<ar><k>lip salve</k>
-huulivoide</ar>
-<ar><k>lip-stick</k>
-huulipuikko, huulipuna</ar>
-<ar><k>liqueur</k>
-likööri</ar>
-<ar><k>liquid</k>
-nestemainen, neste
-
-nestemäinen
-
-neste</ar>
-<ar><k>liquid food</k>
-liemiruoka</ar>
-<ar><k>liquid fuel</k>
-polttoneste</ar>
-<ar><k>liquid gas</k>
-nestekaasu</ar>
-<ar><k>liquidate</k>
-likvidoida</ar>
-<ar><k>liquor</k>
-viina</ar>
-<ar><k>liquorice</k>
-lakritsi</ar>
-<ar><k>lisp</k>
-sammallus</ar>
-<ar><k>list</k>
-kallistuma (laivan), lista, luettelo</ar>
-<ar><k>listen to</k>
-kuunnella</ar>
-<ar><k>listener</k>
-kuulija, kuuntelija</ar>
-<ar><k>listening</k>
-kuuntelu</ar>
-<ar><k>listing</k>
-luettellointi</ar>
-<ar><k>literal</k>
-kirjaimellinen, sananmukainen</ar>
-<ar><k>literally</k>
-sanamukaisesti</ar>
-<ar><k>literary</k>
-kirjallinen</ar>
-<ar><k>literature</k>
-kirjallisuus</ar>
-<ar><k>litre</k>
-litra</ar>
-<ar><k>littered</k>
-raskainen</ar>
-<ar><k>little</k>
-pieni, pikku, vähä, vähän</ar>
-<ar><k>little by little</k>
-vähitellen</ar>
-<ar><k>little one</k>
-pienokainen</ar>
-<ar><k>liturgy</k>
-liturgia</ar>
-<ar><k>live</k>
-asua, elellä, elää</ar>
-<ar><k>live coals</k>
-hiillos</ar>
-<ar><k>live like a lord</k>
-herrastella</ar>
-<ar><k>livelihood</k>
-elanto, toimeentulo</ar>
-<ar><k>liveliness</k>
-eloisuus, elävyys, pirteys, virkeys</ar>
-<ar><k>lively</k>
-eloisa, elävä (vilkas), pirteä, terhakka, vilkas, virkeä</ar>
-<ar><k>liven up</k>
-piristää</ar>
-<ar><k>liver</k>
-maksa</ar>
-<ar><k>livery</k>
-liveri</ar>
-<ar><k>livestock</k>
-karja</ar>
-<ar><k>livestock rearing</k>
-karjanhoito</ar>
-<ar><k>living</k>
-elävä, ilmielävä, elollinen, eläminen</ar>
-<ar><k>living room</k>
-olohuone</ar>
-<ar><k>living-room</k>
-asuinhuone, olohuone, pirtti</ar>
-<ar><k>lizard</k>
-lisko, sisilisko</ar>
-<ar><k>llama</k>
-laama (zo)</ar>
-<ar><k>load</k>
-kuorma, lasti
-
-kuormata, kuormittaa, ladata, lastata, panostaa, sälyttää
-
-paino</ar>
-<ar><k>loadbearing</k>
-kantava
-
-kantava</ar>
-<ar><k>loading</k>
-kuormaus, kuormitus, lastaus, lataus (aseen)</ar>
-<ar><k>loading door</k>
-täyttöluukku</ar>
-<ar><k>loaf</k>
-leipä</ar>
-<ar><k>loafer</k>
-maleksija, tyhjäntoimittaja, vetelehtijä</ar>
-<ar><k>loan</k>
-laina, lainaus
-
-lainata</ar>
-<ar><k>loathe</k>
-inhota, inhottaa</ar>
-<ar><k>loathing for</k>
-inho</ar>
-<ar><k>loathsome</k>
-iljettävä, inhottava</ar>
-<ar><k>lobby</k>
-käytävä, aula</ar>
-<ar><k>lobster</k>
-hummeri</ar>
-<ar><k>local</k>
-paikallinen, täkäläinen</ar>
-<ar><k>local authority</k>
-kunta</ar>
-<ar><k>local colour</k>
-paikallisleima (kuv)</ar>
-<ar><k>local council</k>
-kunnallinen</ar>
-<ar><k>local government</k>
-kunnallishallinto</ar>
-<ar><k>local government council</k>
-kunnanvaltuusto</ar>
-<ar><k>local government officer</k>
-kunnanvirkailija</ar>
-<ar><k>local-government act</k>
-kunnallisasetus</ar>
-<ar><k>locality</k>
-paikka (seutu), paikkakunta, sijainti</ar>
-<ar><k>locate</k>
-paikantaa</ar>
-<ar><k>location</k>
-asema, sijainti, paikka</ar>
-<ar><k>lock</k>
-kihara, kutri, lukko, kanavansulku, suortuva
-
-lukita</ar>
-<ar><k>lock-jaw</k>
-jäykkäkouristus</ar>
-<ar><k>lock-up</k>
-putka</ar>
-<ar><k>locker</k>
-arkku (merimiehen - urh)</ar>
-<ar><k>lockgate</k>
-sulkuportti</ar>
-<ar><k>locking</k>
-lukitus-, lukko-</ar>
-<ar><k>locks</k>
-lukot</ar>
-<ar><k>locksmith</k>
-lukkoseppä</ar>
-<ar><k>locomotive</k>
-veturi</ar>
-<ar><k>lodge</k>
-metäsätysmaja</ar>
-<ar><k>lodger</k>
-asukki, vuokralainen</ar>
-<ar><k>lodging</k>
-asumus</ar>
-<ar><k>lodgings</k>
-majapaikka</ar>
-<ar><k>loft</k>
-luhti, ullakko, vintti (ullakko)</ar>
-<ar><k>loftiness</k>
-ylevyys</ar>
-<ar><k>lofty</k>
-korkea (kuv), ylevä, ylhäinen (korkea)</ar>
-<ar><k>log</k>
-halko, hirsi, pölkky, tukki, päiväkirjä</ar>
-<ar><k>log cabin</k>
-kämppä</ar>
-<ar><k>log-book</k>
-laivapäiväkirja</ar>
-<ar><k>log-cabin</k>
-hirsimaja</ar>
-<ar><k>log-rolling</k>
-lehmäkauppa</ar>
-<ar><k>logarithm</k>
-logaritmi</ar>
-<ar><k>logging</k>
-hakkaus (metsän), hakkuu, tukkityö</ar>
-<ar><k>logging site</k>
-metsätyömaa</ar>
-<ar><k>logical</k>
-ajatuksellinen, looginen</ar>
-<ar><k>loin</k>
-lanne</ar>
-<ar><k>loins</k>
-kuve</ar>
-<ar><k>loiter</k>
-kuhnailla, maleksia, vetelehtiä, hidastella</ar>
-<ar><k>loiterer</k>
-laiskuri, maleksija, tyhjäntoimittaja</ar>
-<ar><k>loll</k>
-loikoilla, lojua</ar>
-<ar><k>loneliness</k>
-yksinäisyys</ar>
-<ar><k>lonely</k>
-yksinäinen</ar>
-<ar><k>long</k>
-ikävöidä
-
-kauan, pitkä, pitkällinen, jnk pituinen</ar>
-<ar><k>long ago</k>
-ammoin</ar>
-<ar><k>long duration</k>
-pitkällisyys</ar>
-<ar><k>long faced</k>
-surullinen [puhek.]</ar>
-<ar><k>long for</k>
-halata (haluta), kaihota, kaivata</ar>
-<ar><k>long in the tooth</k>
-iäkkäänpuoleinen [puhek.]</ar>
-<ar><k>long jump</k>
-pituushyppy</ar>
-<ar><k>long live</k>
-eläköön</ar>
-<ar><k>long tailed duck</k>
-alli</ar>
-<ar><k>long time no see</k>
-ei ole tavattu aikoihin [puhek.]</ar>
-<ar><k>long-distance lorry</k>
-kiitolinja-auto</ar>
-<ar><k>long-distance train</k>
-kaukojuna</ar>
-<ar><k>long-sighted</k>
-pitkänäköinen</ar>
-<ar><k>long-suffering</k>
-pitkämielinen</ar>
-<ar><k>long-term</k>
-pitkäaikainen</ar>
-<ar><k>longing</k>
-kaiho, kaihoisa, kaipaus</ar>
-<ar><k>longish</k>
-pitkähkö</ar>
-<ar><k>longitudinal section</k>
-halkileikkaus, pituusleikkaus</ar>
-<ar><k>loo</k>
-klosetti, vessa</ar>
-<ar><k>look</k>
-ilme, katse, silmäys, ulkomuoto, vilkaisu
-
-näyttää (olla näköinen), tähystellä, katsoa, katsella</ar>
-<ar><k>look a fool</k>
-näyttää typerältä</ar>
-<ar><k>look after</k>
-pitää huolta, hoitaa, huolehtia</ar>
-<ar><k>look alive</k>
-pidä kiirettä [puhek.]</ar>
-<ar><k>look at</k>
-katsella, katsoa</ar>
-<ar><k>look black</k>
-näyttää synkältä [puhek.]</ar>
-<ar><k>look daggers at</k>
-katsoa murhaavasti jtk [puhek.]</ar>
-<ar><k>look down on</k>
-halveksia</ar>
-<ar><k>look down upon</k>
-halveksia</ar>
-<ar><k>look for</k>
-hakea, etsiä</ar>
-<ar><k>look in on</k>
-käydä katsomassa</ar>
-<ar><k>look into</k>
-tutkia</ar>
-<ar><k>look out</k>
-varoa</ar>
-<ar><k>look slimmer</k>
-hoikentaa</ar>
-<ar><k>look up</k>
-etsiä (kirjasta)</ar>
-<ar><k>look upon as</k>
-katsoa</ar>
-<ar><k>look who's talking</k>
-siinä on paraskin puhuja [puhek.]</ar>
-<ar><k>look-out</k>
-vahti</ar>
-<ar><k>looking-glass</k>
-peili</ar>
-<ar><k>lookout</k>
-tähystys, tähystäjä</ar>
-<ar><k>loom</k>
-kutomakone
-
-häämöttää, kajastaa, kangastaa</ar>
-<ar><k>loop</k>
-lenkki, polveke, silmukka</ar>
-<ar><k>loophole</k>
-porsaanreikä</ar>
-<ar><k>loose</k>
-höllä, irrallaan, irrallinen, irstas, irtaimiston, irti, irtonainen, kuohkea, löyhä, löysä, möyheä, valtoin, vapaa, väljä</ar>
-<ar><k>loose collar</k>
-irtokaulus</ar>
-<ar><k>loose living</k>
-elostelu</ar>
-<ar><k>loosen</k>
-hellittää, hellitä, höllentää, höltyä, irrota, irrottaa, irtautua, kirvoittaa, löyhentää, möyhentää (maata), väljentää</ar>
-<ar><k>looseness</k>
-höllyys</ar>
-<ar><k>loosening</k>
-höltyminen</ar>
-<ar><k>loot</k>
-rosvota</ar>
-<ar><k>looting</k>
-rosvous</ar>
-<ar><k>lop-eared</k>
-luppakorva</ar>
-<ar><k>lordly</k>
-ylväs</ar>
-<ar><k>lorry</k>
-kuormaauto</ar>
-<ar><k>lose</k>
-hukata, hävitä (pelissä ym), kadottaa, menettää</ar>
-<ar><k>lose its strength</k>
-laimeta</ar>
-<ar><k>lose one's footing</k>
-liukastua</ar>
-<ar><k>lose one's temper</k>
-tulistua</ar>
-<ar><k>lose one's way</k>
-eksyä</ar>
-<ar><k>lose oneself</k>
-harhaantua</ar>
-<ar><k>lose strength</k>
-heiketä, raueta</ar>
-<ar><k>lose weight</k>
-laihtua</ar>
-<ar><k>losing one's way</k>
-eksyminen</ar>
-<ar><k>loss</k>
-hukka (tappio), häviö (tappio), tappio, vahinko, menetys</ar>
-<ar><k>loss of blood</k>
-verenhukka</ar>
-<ar><k>loss of time</k>
-ajanhukka</ar>
-<ar><k>lost property office</k>
-löytötavaratoimisto</ar>
-<ar><k>lot</k>
-kohtalo, tontti</ar>
-<ar><k>lottery</k>
-arpajaiset</ar>
-<ar><k>lottery prize</k>
-arpajaisvoitto</ar>
-<ar><k>lottery ticket</k>
-arpa, arpalippu</ar>
-<ar><k>lotus</k>
-lootus</ar>
-<ar><k>loud</k>
-kova (äänestä), kovaääninen, äänekäs</ar>
-<ar><k>loud-speaker</k>
-kaiutin</ar>
-<ar><k>louder</k>
-kovemmin</ar>
-<ar><k>loudly</k>
-äänekkäästi</ar>
-<ar><k>loudness</k>
-äänekkyys</ar>
-<ar><k>lounge</k>
-olohuone</ar>
-<ar><k>louse</k>
-täi</ar>
-<ar><k>lout</k>
-moukka, renttu, roikale</ar>
-<ar><k>lovable</k>
-rakstettava</ar>
-<ar><k>love</k>
-rakastaa
-
-kultaseni, lempi, lempiä, rakkaus</ar>
-<ar><k>love of fine clothes</k>
-korenhalu</ar>
-<ar><k>love potion</k>
-lemmenjuoma</ar>
-<ar><k>love song</k>
-lemmenlaulu</ar>
-<ar><k>love-affair</k>
-lemmenseikkailu, rakkausjuttu</ar>
-<ar><k>love-making</k>
-lemmiskely, rakastelu</ar>
-<ar><k>loveably</k>
-herttainen</ar>
-<ar><k>loveliness</k>
-hempeys, ihannus, kauneus, suloisuus</ar>
-<ar><k>lovely</k>
-ihana, ihannus, ihastuttava, suloinen, viehättävä</ar>
-<ar><k>lover</k>
-rakastaja</ar>
-<ar><k>low</k>
-alava, alhaalla, alhainen, huokea, matala</ar>
-<ar><k>low condition</k>
-alakuntoisuus</ar>
-<ar><k>low speed</k>
-hidas</ar>
-<ar><k>low tension</k>
-pienjännite (sähk)</ar>
-<ar><k>low tide</k>
-luode (pakovesi), matalavesi, pakovesi</ar>
-<ar><k>low tone</k>
-alaääni</ar>
-<ar><k>low water</k>
-luode (pakovesi)</ar>
-<ar><k>low-lying land</k>
-alanko</ar>
-<ar><k>low-necked</k>
-avokaulainen</ar>
-<ar><k>lower</k>
-laskea (alas)</ar>
-<ar><k>lower class</k>
-alaluokka</ar>
-<ar><k>lower down</k>
-alemmaksi, alempana</ar>
-<ar><k>lower edge</k>
-alareuna</ar>
-<ar><k>lower end</k>
-alapää</ar>
-<ar><k>lower extremities</k>
-alaraajat</ar>
-<ar><k>lower eye lid</k>
-alaluomi</ar>
-<ar><k>lower floor</k>
-alakerros</ar>
-<ar><k>lower half</k>
-alapuolisko</ar>
-<ar><k>lower jaw</k>
-alaleuka</ar>
-<ar><k>lower lip</k>
-alahuuli</ar>
-<ar><k>lower paid</k>
-alempipalkkainen</ar>
-<ar><k>lower part</k>
-alaosa</ar>
-<ar><k>lower portion</k>
-alaosa</ar>
-<ar><k>lower position</k>
-alemmuus</ar>
-<ar><k>lower side</k>
-alapuoli</ar>
-<ar><k>lowest</k>
-alin, alinna</ar>
-<ar><k>lowland</k>
-alamaa</ar>
-<ar><k>loyal</k>
-lojaali, solidaarinen, uskollinen</ar>
-<ar><k>lozenge</k>
-pastilli</ar>
-<ar><k>lubricant</k>
-voiteluaine</ar>
-<ar><k>lubricate</k>
-voidella</ar>
-<ar><k>lubrication</k>
-voitelu</ar>
-<ar><k>lucid</k>
-havainnollinen</ar>
-<ar><k>lucky</k>
-onnekas, onnellinen</ar>
-<ar><k>lucky fellow</k>
-onnenpoika</ar>
-<ar><k>lucky stroke</k>
-onnenpotkaus</ar>
-<ar><k>ludicrous</k>
-hassunkurinen, hullunkurinen (lystikäs), nauretteva</ar>
-<ar><k>lug</k>
-retuuttaa</ar>
-<ar><k>luggage</k>
-matkatavarat</ar>
-<ar><k>lukewarm</k>
-haalea, laimea (välinpitämätön), penseä</ar>
-<ar><k>lullaby</k>
-kehtolaulu</ar>
-<ar><k>lumbago</k>
-noidannuoli</ar>
-<ar><k>lumber yard</k>
-lautatarha</ar>
-<ar><k>lumberjack</k>
-tukkijätkä, metsätyömies, tukkilainen</ar>
-<ar><k>lumberman</k>
-tukkijätkä</ar>
-<ar><k>luminated ceiling</k>
-valokatto</ar>
-<ar><k>luminous</k>
-itsevalaiseva</ar>
-<ar><k>luminous tube</k>
-loisteputket</ar>
-<ar><k>lump</k>
-kimpale, kokkare, kuhmu, möhkäle, möykky, pahka, pukama</ar>
-<ar><k>lump of sugar</k>
-sokeripala</ar>
-<ar><k>lunatic</k>
-hullu, mielisairas</ar>
-<ar><k>lunch</k>
-lounas</ar>
-<ar><k>lunch break</k>
-lounastauko</ar>
-<ar><k>lunch-box</k>
-eväslaukku</ar>
-<ar><k>luncheon</k>
-lounas</ar>
-<ar><k>lung</k>
-keuhko</ar>
-<ar><k>lung cancer</k>
-keuhkosyöpä</ar>
-<ar><k>lure</k>
-houkutin, syötti, viehe
-
-viekoitella</ar>
-<ar><k>lurk</k>
-vaania</ar>
-<ar><k>lurk about</k>
-hiiviskellä</ar>
-<ar><k>lurking</k>
-hiipivä</ar>
-<ar><k>lush</k>
-vahmas</ar>
-<ar><k>lust</k>
-hekuma</ar>
-<ar><k>lustre</k>
-hohde, kiilto, kiiltävyys, loiste, säihky</ar>
-<ar><k>lustreless</k>
-himmeä (kiilloton), kiilloton</ar>
-<ar><k>luxuriance</k>
-hehkeys (uhkeus), vehmaus</ar>
-<ar><k>luxuriant</k>
-vahmas</ar>
-<ar><k>luxurious</k>
-ylellinen</ar>
-<ar><k>luxury</k>
-loisto (ylellisyys)</ar>
-<ar><k>luxury car</k>
-loistoauto</ar>
-<ar><k>luxury yacht</k>
-huvipursi</ar>
-<ar><k>lye</k>
-lipeä</ar>
-<ar><k>lynch</k>
-lynkata</ar>
-<ar><k>lynx</k>
-ilves</ar>
-<ar><k>lyre</k>
-lyyra</ar>
-<ar><k>lyric poet</k>
-lyyrikko</ar>
-<ar><k>lyric poetry</k>
-lyriikka</ar>
-<ar><k>macaroni</k>
-makaroni</ar>
-<ar><k>machine</k>
-kone</ar>
-<ar><k>machine clock</k>
-koneen ajastin, konekello</ar>
-<ar><k>machinery</k>
-koneisto, koneet</ar>
-<ar><k>mackerel</k>
-makrilli</ar>
-<ar><k>mackintosh</k>
-sadetakki</ar>
-<ar><k>mad</k>
-hassu, hourupäinen, hullu, raivoisa, vihainen</ar>
-<ar><k>mad about</k>
-hullaantunut</ar>
-<ar><k>mad on</k>
-hullaantunut</ar>
-<ar><k>madcap</k>
-hulivili, hulluttelija, hurjapää, hurjastelija, kaistapää, villikko</ar>
-<ar><k>made of glass</k>
-lasinen</ar>
-<ar><k>madly</k>
-mielettömästi</ar>
-<ar><k>madness</k>
-hulluus</ar>
-<ar><k>maelstrom</k>
-kurimus</ar>
-<ar><k>magazine</k>
-aikakauskirjalehti, makasiini (kiväärin)</ar>
-<ar><k>maggot</k>
-mato (toukka), toukka (juustossa ym)</ar>
-<ar><k>magic flute</k>
-taikahuilu</ar>
-<ar><k>magic wand</k>
-taikasauva</ar>
-<ar><k>magician</k>
-loitsija, noita, poppamies, taikuri, velho</ar>
-<ar><k>magnet</k>
-magneetti</ar>
-<ar><k>magnetic</k>
-magneettinen</ar>
-<ar><k>magnetic catch</k>
-magneettisalpa</ar>
-<ar><k>magnetism</k>
-magneettisuus</ar>
-<ar><k>magneto</k>
-magneetto</ar>
-<ar><k>magnification</k>
-suurennus</ar>
-<ar><k>magnificence</k>
-loisto</ar>
-<ar><k>magnificent</k>
-komea, loistava (kuv), suurenmoinen, uhkea, upea</ar>
-<ar><k>magnify</k>
-suurennella, suurentaa</ar>
-<ar><k>magnitude</k>
-suuruus</ar>
-<ar><k>magpie</k>
-harakka</ar>
-<ar><k>maid of honour</k>
-hovineiti</ar>
-<ar><k>maiden</k>
-impi</ar>
-<ar><k>maiden name</k>
-tyttönimi</ar>
-<ar><k>mail order</k>
-postimyynti</ar>
-<ar><k>maim</k>
-ruhjoa</ar>
-<ar><k>main</k>
-silpoa, tärkein, pää</ar>
-<ar><k>main building</k>
-päärakennus</ar>
-<ar><k>main circuit breaker</k>
-virrankatkaisin eli ylivirtasuoja</ar>
-<ar><k>main drive belt</k>
-päävetohihna</ar>
-<ar><k>main drive motor</k>
-päämoottori</ar>
-<ar><k>main entrance</k>
-pääovi</ar>
-<ar><k>main feature</k>
-pääpiirre</ar>
-<ar><k>main part</k>
-pääosa</ar>
-<ar><k>main point</k>
-pääasia</ar>
-<ar><k>main principal</k>
-pääasiallisin</ar>
-<ar><k>main principle</k>
-pääperiaate</ar>
-<ar><k>main purpose</k>
-päätarkoitus</ar>
-<ar><k>main reason</k>
-pääsyy</ar>
-<ar><k>main road</k>
-maantie</ar>
-<ar><k>main street</k>
-valtakatu</ar>
-<ar><k>main subject</k>
-pääaine</ar>
-<ar><k>main thing</k>
-pääasia</ar>
-<ar><k>mainland</k>
-manner</ar>
-<ar><k>mainsail</k>
-isopurje</ar>
-<ar><k>mainspring</k>
-käyttöjousi</ar>
-<ar><k>maintain</k>
-pitää (säilyttää), pysyttää, ylläpitää</ar>
-<ar><k>maintenance</k>
-elatus, ylläpito</ar>
-<ar><k>maintenance money</k>
-elatusapu</ar>
-<ar><k>maintenance of</k>
-järjestyksenpito</ar>
-<ar><k>maize</k>
-maissi</ar>
-<ar><k>major</k>
-duuri (mus), majuri, täysiikäainen (lak)</ar>
-<ar><k>majority</k>
-enemmistö, valtaosa</ar>
-<ar><k>make</k>
-automerkki, tavaramerkki, laji (merkki), tunnusmerkki
-
-keittää (kahvi), laittaa, tehdä, suorittaa, valmistaa</ar>
-<ar><k>make a beeline for</k>
-menna suorinta tietä jhk [puhek.]</ar>
-<ar><k>make a blunder</k>
-munata</ar>
-<ar><k>make a clatter</k>
-helskyttää</ar>
-<ar><k>make a fortune</k>
-rikastua</ar>
-<ar><k>make a mess of</k>
-liata</ar>
-<ar><k>make a mistake</k>
-erehtyä</ar>
-<ar><k>make a noise</k>
-elämöidä, hälistä, kolista, kopistella, mekastaa, meluta</ar>
-<ar><k>make a rattle</k>
-helskyttää</ar>
-<ar><k>make a sarcastic remark</k>
-letkauttaa</ar>
-<ar><k>make a show</k>
-komeilla</ar>
-<ar><k>make a yawn</k>
-haukotuttaa</ar>
-<ar><k>make acquainted with</k>
-perehdyttää (jhk)</ar>
-<ar><k>make amends for</k>
-hyvittää</ar>
-<ar><k>make an attack</k>
-rynnätä</ar>
-<ar><k>make an effort</k>
-ponnistaa, yrittää</ar>
-<ar><k>make angry</k>
-suuttaa, vihoittaa</ar>
-<ar><k>make anxious</k>
-huolestuttaa</ar>
-<ar><k>make ashamed</k>
-hävettää</ar>
-<ar><k>make believe</k>
-uskotella, uskottelu</ar>
-<ar><k>make blunt</k>
-tylpistää</ar>
-<ar><k>make breathless</k>
-hengästyttää</ar>
-<ar><k>make bright</k>
-kirkastaa</ar>
-<ar><k>make clear</k>
-havainnollistaa</ar>
-<ar><k>make clearer</k>
-selventää</ar>
-<ar><k>make comparisons</k>
-vertailla</ar>
-<ar><k>make cool</k>
-kylmentää</ar>
-<ar><k>make crooked</k>
-vääristää</ar>
-<ar><k>make cry</k>
-itkettää</ar>
-<ar><k>make deeper</k>
-syventää</ar>
-<ar><k>make dizzy</k>
-huimata</ar>
-<ar><k>make drink</k>
-juottaa</ar>
-<ar><k>make drunk</k>
-humalluttaa, juovuttaa</ar>
-<ar><k>make dull</k>
-tylsentää </ar>
-<ar><k>make easier</k>
-helpottaa</ar>
-<ar><k>make even</k>
-tasoittaa</ar>
-<ar><k>make experiments</k>
-kokeilla</ar>
-<ar><k>make faces at</k>
-irvistää</ar>
-<ar><k>make familiar with</k>
-totuttaa</ar>
-<ar><k>make fat</k>
-lihottaa</ar>
-<ar><k>make firmer</k>
-lujittaa</ar>
-<ar><k>make flutter</k>
-liehuttaa</ar>
-<ar><k>make fun of</k>
-ikamoida, pilailla</ar>
-<ar><k>make furious</k>
-raivostuttaa</ar>
-<ar><k>make good</k>
-hyvittää</ar>
-<ar><k>make harder</k>
-koventaa</ar>
-<ar><k>make haste</k>
-kiirehtiä, kiiruhtaa</ar>
-<ar><k>make heavier</k>
-koventaa</ar>
-<ar><k>make hot</k>
-hehkuttaa</ar>
-<ar><k>make inquires after</k>
-kuulustaa (tiedustella)</ar>
-<ar><k>make interested</k>
-innostuttaa</ar>
-<ar><k>make jam</k>
-hillota</ar>
-<ar><k>make known</k>
-ilmoittaa (jklle jtk), julkistaa, kuuluttaa, tiedottaa</ar>
-<ar><k>make laugh</k>
-naurattaa</ar>
-<ar><k>make level</k>
-tasoittaa</ar>
-<ar><k>make lighter</k>
-vaalentaa</ar>
-<ar><k>make lively</k>
-vilkastuttaa</ar>
-<ar><k>make loose</k>
-höllentää, väljentää</ar>
-<ar><k>make love</k>
-lemmiskellä, lempiä, rakastella</ar>
-<ar><k>make love to</k>
-hakkailla (jkta)</ar>
-<ar><k>make merry</k>
-ilakoida</ar>
-<ar><k>make more efficient</k>
-tehostaa</ar>
-<ar><k>make much of</k>
-liehitellä</ar>
-<ar><k>make numb</k>
-turruttaa</ar>
-<ar><k>make off</k>
-livistää</ar>
-<ar><k>make one's appearance</k>
-esiintyä, ilmaantua</ar>
-<ar><k>make oneself scarce</k>
-laputtaa</ar>
-<ar><k>make progress</k>
-edistyä</ar>
-<ar><k>make public</k>
-julkaista</ar>
-<ar><k>make run</k>
-juoksuttaa</ar>
-<ar><k>make sign to</k>
-viittoa</ar>
-<ar><k>make slender</k>
-hoikentaa</ar>
-<ar><k>make smaller</k>
-pienentää</ar>
-<ar><k>make smile</k>
-hymyilyttää</ar>
-<ar><k>make someone sit up</k>
-hämmästyttävää [puhek.]</ar>
-<ar><k>make sprout</k>
-idättää</ar>
-<ar><k>make steeper</k>
-jyrkentää</ar>
-<ar><k>make stiff</k>
-jäykistää</ar>
-<ar><k>make thicker</k>
-tihentää</ar>
-<ar><k>make thinner</k>
-harventaa, laihduttaa</ar>
-<ar><k>make time with</k>
-flirttailla [puhek.]</ar>
-<ar><k>make uneasy</k>
-huolettaa</ar>
-<ar><k>make up</k>
-ehostaa (meikata), sepustaa, täydentää</ar>
-<ar><k>make up for</k>
-hyvittää</ar>
-<ar><k>make use of</k>
-käyttää</ar>
-<ar><k>make whole</k>
-eheyttää</ar>
-<ar><k>make worse</k>
-huonontaa, pahentaa</ar>
-<ar><k>make younger</k>
-nuorentaa</ar>
-<ar><k>make-believe</k>
-teeskentely</ar>
-<ar><k>make-up</k>
-ehostus, ihomaali</ar>
-<ar><k>maker</k>
-tekijä, valmistaja</ar>
-<ar><k>makeshift</k>
-hätävara</ar>
-<ar><k>malady</k>
-tauti</ar>
-<ar><k>male</k>
-koiras, mieshenkilö, miespuolinen, uros
-
-uros</ar>
-<ar><k>malevolent</k>
-häijynilkinen, ilkeämielinen</ar>
-<ar><k>malformed</k>
-rujo</ar>
-<ar><k>malfunction</k>
-vika, toimintahäiriö</ar>
-<ar><k>malice</k>
-häijyys, höijynilkisyys, ilkeys, ilkeämielisyys, pahanilkisyys</ar>
-<ar><k>malicious</k>
-häijy, häijynilkinen, ilkeä, pahanilkinen</ar>
-<ar><k>maliciously</k>
-ilkeästi</ar>
-<ar><k>malignant</k>
-pahanlaatuinen (lääk)</ar>
-<ar><k>mallard</k>
-sorsa</ar>
-<ar><k>malleable iron</k>
-meltorauta</ar>
-<ar><k>mallet</k>
-krokettinuija</ar>
-<ar><k>mallow</k>
-malva (bot)</ar>
-<ar><k>malt</k>
-mallas</ar>
-<ar><k>maltreat</k>
-pidellä pahoin</ar>
-<ar><k>mammal</k>
-nisäkäs</ar>
-<ar><k>mammoth</k>
-mammutti</ar>
-<ar><k>man</k>
-herra, mies, pelinappula</ar>
-<ar><k>man-made fibre</k>
-tekokuiti</ar>
-<ar><k>manage</k>
-hoitaa (johtaa), pärjätä, suoriutua</ar>
-<ar><k>manage the household</k>
-emännoidä</ar>
-<ar><k>managed to escape</k>
-karku (päästä -un)</ar>
-<ar><k>management</k>
-hallinto, hoito, isännyys, johto (liikkeen ym), johtaminen</ar>
-<ar><k>manager</k>
-johtaja (liikkeen), seimi, päällikkö</ar>
-<ar><k>manageress</k>
-johtajatar</ar>
-<ar><k>managerial position</k>
-johtava (asema)</ar>
-<ar><k>managing director</k>
-toimitusjohtaja</ar>
-<ar><k>mandarin</k>
-mandariini</ar>
-<ar><k>mandatory</k>
-pakollinen</ar>
-<ar><k>mandolin</k>
-mandoliini</ar>
-<ar><k>mane</k>
-harja (hevosen)</ar>
-<ar><k>manganese</k>
-mangaani</ar>
-<ar><k>mangle</k>
-mankeli
-
-mankeloida, runnella</ar>
-<ar><k>manhole</k>
-tarkastusluukku</ar>
-<ar><k>manhood</k>
-miehuudenikä, miehuus</ar>
-<ar><k>mania</k>
-kiihko</ar>
-<ar><k>manicure</k>
-kynsienhoito</ar>
-<ar><k>manifest</k>
-ilmeinen</ar>
-<ar><k>manifestation</k>
-ilmaisu</ar>
-<ar><k>manifesto</k>
-julistuskirja, manifesti</ar>
-<ar><k>manipulate</k>
-käsitellä (käsin)</ar>
-<ar><k>mankind</k>
-ihmiskunta</ar>
-<ar><k>manliness</k>
-miehekkyys, miehuus</ar>
-<ar><k>manly</k>
-miehekäs, miehuullinen, miesmainen</ar>
-<ar><k>mannequin</k>
-mannekiini</ar>
-<ar><k>manner</k>
-maneeri, tapa</ar>
-<ar><k>manners</k>
-esiintymistapa (seurustelu), käytös, käytöstapa</ar>
-<ar><k>manoeuvre</k>
-manööveri</ar>
-<ar><k>manoeuvres</k>
-sotaharjoitus</ar>
-<ar><k>manor house</k>
-aateliskartano, herraskartano</ar>
-<ar><k>mansard roof</k>
-taite-, mansardikatto</ar>
-<ar><k>manslaughter</k>
-kuolemantuottamus</ar>
-<ar><k>mantle</k>
-vaippa (tekn)</ar>
-<ar><k>manual</k>
-käsin-, käsi-</ar>
-<ar><k>manufacture</k>
-valmistaa</ar>
-<ar><k>manufacturer</k>
-tahtailija, valmistaja</ar>
-<ar><k>manufacturing plant</k>
-jaloslaitos</ar>
-<ar><k>manure</k>
-lannoittaa</ar>
-<ar><k>manuring</k>
-lannoitus</ar>
-<ar><k>manuscript</k>
-käsikirjoitus</ar>
-<ar><k>many</k>
-moni, monta, paljon, usea</ar>
-<ar><k>map</k>
-kartta
-
-kartoittaa</ar>
-<ar><k>maple</k>
-vaahtera</ar>
-<ar><k>mar</k>
-pilata (turmella), vahingoittaa</ar>
-<ar><k>marathon race</k>
-maratonjuoksu</ar>
-<ar><k>marble</k>
-marmoroida
-
-marmori, marmorinen</ar>
-<ar><k>march</k>
-marssia</ar>
-<ar><k>mare</k>
-tamma</ar>
-<ar><k>marge</k>
-margariini [puhek.]</ar>
-<ar><k>margerine</k>
-margariini</ar>
-<ar><k>margin</k>
-reunus, syrjä, liikkumavara, , marginaali
-
-kate</ar>
-<ar><k>margin for reduction</k>
-tinkimisvara</ar>
-<ar><k>marginal</k>
-marginaali</ar>
-<ar><k>marigold</k>
-kehäkukka</ar>
-<ar><k>marijuana</k>
-marihuana</ar>
-<ar><k>marine animal</k>
-merieläin</ar>
-<ar><k>marine insurance</k>
-merivakuutus</ar>
-<ar><k>marines</k>
-merijalkaväki</ar>
-<ar><k>marionette</k>
-sätkynukke</ar>
-<ar><k>marital</k>
-avio</ar>
-<ar><k>mark</k>
-arvosana (koulussa), jälki (merkki), markka, merkki, piirto, piiru, tunnus
-
-merkata, merkitä, </ar>
-<ar><k>mark out</k>
-viitoittaa</ar>
-<ar><k>marked</k>
-jyrkkäpiirteinen
-
-huomattava (selvästi)</ar>
-<ar><k>markedly</k>
-huomattavasti</ar>
-<ar><k>market</k>
-tori, markkinat, menekki
-
-markkinoida</ar>
-<ar><k>market garden</k>
-kauppapuutarha</ar>
-<ar><k>market share</k>
-markkinaosuus</ar>
-<ar><k>market stall</k>
-markkinakoju</ar>
-<ar><k>market survey</k>
-markkinakatsaus</ar>
-<ar><k>market town</k>
-kauppala</ar>
-<ar><k>market value</k>
-markkinaarvo</ar>
-<ar><k>market-place</k>
-kauppatori, tori</ar>
-<ar><k>marketing</k>
-markkinointi</ar>
-<ar><k>marksman</k>
-ampuja</ar>
-<ar><k>marl</k>
-merkeli</ar>
-<ar><k>marmalade</k>
-appelsiinihillo, appelsiinimarmelaadi</ar>
-<ar><k>marmot</k>
-murmeli</ar>
-<ar><k>marquee</k>
-teltta (suuri)</ar>
-<ar><k>marquis</k>
-markiisi</ar>
-<ar><k>marriage</k>
-avio, avioliitto</ar>
-<ar><k>marriage of convenience</k>
-järkiavioliitto</ar>
-<ar><k>married</k>
-naimisissa</ar>
-<ar><k>married couple</k>
-pariskunta</ar>
-<ar><k>married woman</k>
-rouva</ar>
-<ar><k>marrow</k>
-ydin</ar>
-<ar><k>marrowbone</k>
-ydinluu</ar>
-<ar><k>marry</k>
-naida, naittaa, vihkiä (avioliittoon)</ar>
-<ar><k>marsh</k>
-neva, suo</ar>
-<ar><k>marshal</k>
-marsalkka</ar>
-<ar><k>marshland</k>
-suomaa</ar>
-<ar><k>marshy</k>
-soinen</ar>
-<ar><k>martial law</k>
-sotalaki</ar>
-<ar><k>martyr</k>
-marttyyri</ar>
-<ar><k>marvel</k>
-ihme
-
-ihmetellä</ar>
-<ar><k>marvelous</k>
-ihana, ihmeellinen</ar>
-<ar><k>marzipan</k>
-marsipaani</ar>
-<ar><k>mascot</k>
-maskotti</ar>
-<ar><k>masculine</k>
-maskuliini, miehekäs, miehinen, miespuolinen</ar>
-<ar><k>mash</k>
-mäski, sose</ar>
-<ar><k>mashed potatoes</k>
-perunasose</ar>
-<ar><k>mask</k>
-naamari, naamio</ar>
-<ar><k>masked ball</k>
-naamiaiset</ar>
-<ar><k>mason</k>
-muurari</ar>
-<ar><k>masonry</k>
-muuraus</ar>
-<ar><k>mass</k>
-joukko, massa, messu</ar>
-<ar><k>mass movement</k>
-joukkoliike</ar>
-<ar><k>mass of ice</k>
-jääröykkiö</ar>
-<ar><k>mass of people</k>
-väkijoukko</ar>
-<ar><k>massacre</k>
-joukkomurha, verilöyly</ar>
-<ar><k>massage</k>
-hieronta, hieroa (lääk)</ar>
-<ar><k>massage-machine</k>
-hieromakoje</ar>
-<ar><k>masseur</k>
-hieroja</ar>
-<ar><k>massive</k>
-jykevä</ar>
-<ar><k>mast</k>
-masto</ar>
-<ar><k>master</k>
-herra (isäntä), isäntä, laivuri, mestari, valtias</ar>
-<ar><k>master and mistress</k>
-isäntäväki</ar>
-<ar><k>master key</k>
-yleisavain</ar>
-<ar><k>master of law</k>
-varatuomari</ar>
-<ar><k>masterly</k>
-mestarillinen</ar>
-<ar><k>masterpiece</k>
-mestariteos</ar>
-<ar><k>mastery</k>
-mestaruus</ar>
-<ar><k>masticate</k>
-pureskella</ar>
-<ar><k>match</k>
-ottelu, peli (ottelu), tulitikku</ar>
-<ar><k>mate</k>
-kaveri, perämies, toveri, veikko
-
-paritella, parittaa</ar>
-<ar><k>material</k>
-aine</ar>
-<ar><k>material benefit</k>
-aineellinen etu</ar>
-<ar><k>material noun</k>
-ainesana</ar>
-<ar><k>materialism</k>
-aineellisuus, materialismi</ar>
-<ar><k>materialist</k>
-materialisti, materialistinen</ar>
-<ar><k>materialize</k>
-aineellistua, toteutua</ar>
-<ar><k>materials</k>
-tarvikkeet</ar>
-<ar><k>maternal</k>
-äidillinen</ar>
-<ar><k>maternal uncle</k>
-eno</ar>
-<ar><k>maternity</k>
-äitiys</ar>
-<ar><k>maternity hospital</k>
-synnytyslaitos</ar>
-<ar><k>mathematical</k>
-matemaatinen</ar>
-<ar><k>mathematician</k>
-matemaatikko</ar>
-<ar><k>mathematics</k>
-matematiikka</ar>
-<ar><k>matinee</k>
-matinea, päivänäytäntö</ar>
-<ar><k>mating call</k>
-kutsuääni (eläimen)</ar>
-<ar><k>mating time</k>
-kiimaaika</ar>
-<ar><k>matrimonial</k>
-aviollinen</ar>
-<ar><k>matrix</k>
-muotti (tekn)</ar>
-<ar><k>matron</k>
-johtajatar (sairaalan)</ar>
-<ar><k>matter</k>
-asia</ar>
-<ar><k>matter of honour</k>
-kunniaasia</ar>
-<ar><k>matter of taste</k>
-makuasia</ar>
-<ar><k>mattress</k>
-patja</ar>
-<ar><k>mature</k>
-erääntyä, kypsentää, kypsyttää, kypsyä
-
-kypsä, langennut (vekseli)</ar>
-<ar><k>maul</k>
-murjoa, runnella, rusikoida</ar>
-<ar><k>maxim</k>
-elämänohje</ar>
-<ar><k>maximum</k>
-enimmäismäärä, maksimimäärä</ar>
-<ar><k>may</k>
-lienee, saada (apuv), saattaa (kyetä), toukokuu</ar>
-<ar><k>maybe</k>
-ehkä, kai, kenties</ar>
-<ar><k>mayonnaise</k>
-majoneesi</ar>
-<ar><k>mayor</k>
-pormestari</ar>
-<ar><k>maze</k>
-labyrintti, sokkelo</ar>
-<ar><k>meadow</k>
-heinikko (niitty), niitty</ar>
-<ar><k>meal</k>
-ateria, jauho</ar>
-<ar><k>meal-time</k>
-ruokaaika</ar>
-<ar><k>mean</k>
-merkitä, tarkoittaa
-
-alhainen (kuv), halpamainen, katala, pikkumainen, saita</ar>
-<ar><k>meander</k>
-koukerrella</ar>
-<ar><k>meaning</k>
-merkitys</ar>
-<ar><k>meaningful</k>
-mielekäs</ar>
-<ar><k>meanness</k>
-kataluus, saituus</ar>
-<ar><k>means</k>
-apukeino, keino, varat, välikappale, väline</ar>
-<ar><k>means of earnings</k>
-ansiomahdollisuus</ar>
-<ar><k>meanwhile</k>
-sillaikaa</ar>
-<ar><k>measure</k>
-mitta, mittakaava, toimenpide
-
-mitata
-
-mitata</ar>
-<ar><k>measurement</k>
-mitta, mittaus</ar>
-<ar><k>measurements</k>
-mitat</ar>
-<ar><k>measuring unit</k>
-mittayksikkö</ar>
-<ar><k>meat</k>
-liha</ar>
-<ar><k>meat ball</k>
-lihapyörykkä</ar>
-<ar><k>meat course</k>
-lihalaji</ar>
-<ar><k>meat pie</k>
-lihapiirakka</ar>
-<ar><k>meat wagon</k>
-ambulanssi [puhek.]</ar>
-<ar><k>mechanic</k>
-asentaja, koneseppä, mekaanikko</ar>
-<ar><k>mechanical</k>
-koneellinen, mekaaninen</ar>
-<ar><k>mechanical engineer</k>
-koneinsinööri</ar>
-<ar><k>mechanical pulp</k>
-puuhioke</ar>
-<ar><k>mechanical pulp mill</k>
-puuhiomo</ar>
-<ar><k>mechanically</k>
-koneellisesti</ar>
-<ar><k>mechanics</k>
-mekaniikka</ar>
-<ar><k>mechanize</k>
-koneellista, mekanisoida</ar>
-<ar><k>medal</k>
-ansiomerkki, mitali</ar>
-<ar><k>meddle</k>
-sekaantua</ar>
-<ar><k>mediation</k>
-välitys</ar>
-<ar><k>mediator</k>
-välimies, välittäjä</ar>
-<ar><k>medical</k>
-lääketieteellinen</ar>
-<ar><k>medical aid</k>
-lääkärinapu</ar>
-<ar><k>medical profession</k>
-lääkärikunta</ar>
-<ar><k>medical service</k>
-lääkintähuolto</ar>
-<ar><k>medicate</k>
-lääkitä</ar>
-<ar><k>medication</k>
-lääkehoito, lääkitys</ar>
-<ar><k>medicinal</k>
-lääkinnällinen</ar>
-<ar><k>medicinal plant</k>
-lääkekasvi</ar>
-<ar><k>medicine-man</k>
-poppamies</ar>
-<ar><k>meditate</k>
-mietiskellä</ar>
-<ar><k>meditation</k>
-mietiskely</ar>
-<ar><k>medium</k>
-kohtalainen</ar>
-<ar><k>meek</k>
-säyseä</ar>
-<ar><k>meekness</k>
-lauhkeus</ar>
-<ar><k>meet</k>
-kohdata, kokoontua, lunastaa (vekseli), tavata</ar>
-<ar><k>meet with</k>
-kohdata (sattumalta), kokea</ar>
-<ar><k>meeting</k>
-kohtaus, kokous</ar>
-<ar><k>megaphone</k>
-huutotorvi</ar>
-<ar><k>melancholia</k>
-synkkämiellisyys (lääk)</ar>
-<ar><k>melancholic</k>
-raskasmielinen</ar>
-<ar><k>melancholy</k>
-alakuloinen, murheellinen, synkkämielinen</ar>
-<ar><k>mellow</k>
-kuohkea</ar>
-<ar><k>melodious</k>
-melodinen</ar>
-<ar><k>melody</k>
-laulu, sävelmä</ar>
-<ar><k>melon</k>
-meloni</ar>
-<ar><k>melt</k>
-sulaa, sulattaa</ar>
-<ar><k>melting</k>
-sulava</ar>
-<ar><k>melting-pot</k>
-upokas</ar>
-<ar><k>member</k>
-jäsen</ar>
-<ar><k>member of a party</k>
-puoluelainen</ar>
-<ar><k>member of parliament</k>
-edustaja (kansan- ), kansanedustaja</ar>
-<ar><k>membership</k>
-jäsenmäärä, jäsenyys</ar>
-<ar><k>membership card</k>
-jäsenkortti</ar>
-<ar><k>membership fee</k>
-jäsenmaksu</ar>
-<ar><k>membrane</k>
-kalvo (anat bot)</ar>
-<ar><k>memo pad</k>
-muistilehtiö</ar>
-<ar><k>memorable</k>
-muistettava</ar>
-<ar><k>memorable day</k>
-merkkipäivä</ar>
-<ar><k>memorandum</k>
-promemoria</ar>
-<ar><k>memorial</k>
-muistomerkki</ar>
-<ar><k>memory</k>
-muisti</ar>
-<ar><k>men</k>
-miehistö, miesväki</ar>
-<ar><k>men's outfitters</k>
-herrainvaatektimo</ar>
-<ar><k>menace</k>
-uhkaus
-
-uhata</ar>
-<ar><k>menacing</k>
-uhkaava</ar>
-<ar><k>mend</k>
-korjata (parsia ym), laittaa (korjata), paikata</ar>
-<ar><k>meningitis</k>
-aivokalvontulehdus</ar>
-<ar><k>menses</k>
-kuukautiset</ar>
-<ar><k>mental</k>
-henkinen, psyykkinen, sielullinen</ar>
-<ar><k>mental disturbance</k>
-mielenhäiriö</ar>
-<ar><k>mental effort</k>
-ajatusponnistelu</ar>
-<ar><k>mental health</k>
-mielenterveys</ar>
-<ar><k>mental image</k>
-mielikuva</ar>
-<ar><k>mental-activity</k>
-ajatustoiminta</ar>
-<ar><k>mentally deficient</k>
-vajaamielinen</ar>
-<ar><k>mention</k>
-mainita</ar>
-<ar><k>mentioned above</k>
-edellämainittu</ar>
-<ar><k>mentioned before</k>
-mainittu</ar>
-<ar><k>mentioned below</k>
-allamainittu</ar>
-<ar><k>menu</k>
-ruokalista</ar>
-<ar><k>mercantile</k>
-kaupallinen</ar>
-<ar><k>merchant</k>
-kauppias</ar>
-<ar><k>merchant ship</k>
-kauppalaiva</ar>
-<ar><k>merchantable grade</k>
-kauppalaatu</ar>
-<ar><k>merciful</k>
-armahtavainen, armelias, laupias</ar>
-<ar><k>mercifulness</k>
-armeliaisuus</ar>
-<ar><k>merciless</k>
-armoton</ar>
-<ar><k>mercury</k>
-elohopea</ar>
-<ar><k>mere</k>
-pelkkä</ar>
-<ar><k>mere nothing</k>
-joutava asia</ar>
-<ar><k>merely</k>
-ainoastaan, pelkästään, vain</ar>
-<ar><k>merge</k>
-fuusioida</ar>
-<ar><k>merger</k>
-fuusio (liik)</ar>
-<ar><k>meridian</k>
-meridiaani</ar>
-<ar><k>merit</k>
-ansio (siveellinen)
-
-ansaita (olla jnk arvoinen)</ar>
-<ar><k>mermaid</k>
-merenneito</ar>
-<ar><k>merriment</k>
-hilpeys, ilottelu, riemu</ar>
-<ar><k>merry</k>
-hilpeä, iloinen</ar>
-<ar><k>merry-go-round</k>
-karuselli</ar>
-<ar><k>merry-making</k>
-huvittelu, ilakointi</ar>
-<ar><k>merrymaking</k>
-ilonpito</ar>
-<ar><k>mesh</k>
-silmikko
-
-verkko</ar>
-<ar><k>mess</k>
-pula (pulma), sekamelska
-
-liata, sotkea</ar>
-<ar><k>mess room</k>
-messi</ar>
-<ar><k>mess up</k>
-loata</ar>
-<ar><k>message</k>
-saarna, sanoma, viesti</ar>
-<ar><k>messenger</k>
-airut, lähetti (toimistossa), sanansaattaja, sanantuoja</ar>
-<ar><k>messiah</k>
-messias</ar>
-<ar><k>metabolism</k>
-aineenvaihdunta</ar>
-<ar><k>metal</k>
-metalli, metallinen</ar>
-<ar><k>metal industry</k>
-metalliteollisuus</ar>
-<ar><k>metal lath</k>
-metallisälekkö</ar>
-<ar><k>metaphor</k>
-kielikuva</ar>
-<ar><k>metaphorical</k>
-kuvaannollinen, vertauksellinen</ar>
-<ar><k>meteor</k>
-meteori</ar>
-<ar><k>meteorogical</k>
-ilmatieteellinen</ar>
-<ar><k>meteorogical observation</k>
-säähavainto</ar>
-<ar><k>meteorologist</k>
-meteorologi</ar>
-<ar><k>meteorology</k>
-ilmatiede, sääoppi</ar>
-<ar><k>meter</k>
-mittari</ar>
-<ar><k>method</k>
-menetelmä, tapa</ar>
-<ar><k>method of contraception</k>
-ehkäisykeino</ar>
-<ar><k>methylated spirits</k>
-polttosprii</ar>
-<ar><k>metre</k>
-metri</ar>
-<ar><k>metric system</k>
-metrijärjestelmä</ar>
-<ar><k>metronome</k>
-tahtikello</ar>
-<ar><k>metropolis</k>
-suurkaupunki</ar>
-<ar><k>mew</k>
-naukua</ar>
-<ar><k>mica</k>
-katinkulta, kiille</ar>
-<ar><k>micro-organism</k>
-pieneliö</ar>
-<ar><k>micro-wave oven</k>
-mikroaaltouuni</ar>
-<ar><k>microphone</k>
-mikrofoni</ar>
-<ar><k>microscope</k>
-mikroskooppi</ar>
-<ar><k>midday</k>
-puolipäivä</ar>
-<ar><k>middle</k>
-keskikohta, puoliväli</ar>
-<ar><k>middle aged spread</k>
-keski-iän pulskistuminen [puhek.]</ar>
-<ar><k>middle ages</k>
-keskiaika</ar>
-<ar><k>middle-aged</k>
-keskiikäinen</ar>
-<ar><k>middleman</k>
-välittäjä</ar>
-<ar><k>middling</k>
-hyvänlainen</ar>
-<ar><k>midnight</k>
-puoliyö</ar>
-<ar><k>midriff</k>
-pallea</ar>
-<ar><k>midsummer</k>
-juhannus</ar>
-<ar><k>midwife</k>
-kätilö</ar>
-<ar><k>might</k>
-mahti, voima (mahti)
-
-ehkä</ar>
-<ar><k>mighty</k>
-mahtava, voimallinen</ar>
-<ar><k>mignonette</k>
-resede (bot)</ar>
-<ar><k>migraine</k>
-migreeni</ar>
-<ar><k>mild</k>
-lauha, lauhkea, lempeä, leppeä, leppoissa, leuto, lievä, vieno</ar>
-<ar><k>mild steel</k>
-teräs</ar>
-<ar><k>mildew</k>
-home, härmä (bot)</ar>
-<ar><k>mildness</k>
-lauhkeus, lempeys, leutous, vienous</ar>
-<ar><k>mile</k>
-maili</ar>
-<ar><k>milestone</k>
-virstanpylväs</ar>
-<ar><k>militant</k>
-militantti, sotainen</ar>
-<ar><k>military academy</k>
-kadettikoulu</ar>
-<ar><k>military rank</k>
-sotilasarvo</ar>
-<ar><k>military service</k>
-asepalvelus, sotapalvelus</ar>
-<ar><k>milk</k>
-maito</ar>
-<ar><k>milk-can</k>
-maitokannu</ar>
-<ar><k>milker</k>
-lypsylehmä</ar>
-<ar><k>milking</k>
-lypsy</ar>
-<ar><k>milking machine</k>
-lypsykone</ar>
-<ar><k>milkmaid</k>
-karjakko</ar>
-<ar><k>mill</k>
-mylly, tehdas</ar>
-<ar><k>miller</k>
-mylläri</ar>
-<ar><k>millet</k>
-hirssi</ar>
-<ar><k>milliner</k>
-modisti</ar>
-<ar><k>milling</k>
-jauhatus</ar>
-<ar><k>milling machine</k>
-jyrsin</ar>
-<ar><k>milling-machine</k>
-jyrsinkone (tekn)</ar>
-<ar><k>millstone</k>
-jauhinkivi</ar>
-<ar><k>milt</k>
-kalanmaiti, maiti, perna</ar>
-<ar><k>mimic</k>
-jäljittelijä</ar>
-<ar><k>mimicry</k>
-jäljittely</ar>
-<ar><k>mince</k>
-hakata (hienoksi)</ar>
-<ar><k>minced meat</k>
-jauheliha</ar>
-<ar><k>mincing machine</k>
-lihamylly</ar>
-<ar><k>mind</k>
-mieli, psyyke, sielu (mieli)
-
-välittää (huolia)</ar>
-<ar><k>mind-reader</k>
-ajatustenlukija</ar>
-<ar><k>mine</k>
-kaivos, miina
-
-miinoittaa
-
-minun</ar>
-<ar><k>mine-field</k>
-miinavyöhyke</ar>
-<ar><k>mine-shaft</k>
-kaivoskuilu</ar>
-<ar><k>miner</k>
-kaivosmies</ar>
-<ar><k>mineral</k>
-mineraali</ar>
-<ar><k>mineral spring</k>
-kivennäislähde</ar>
-<ar><k>mineral water</k>
-kivennäisvesi, virvoitusjuoma</ar>
-<ar><k>mineral wool</k>
-mineraalivilla</ar>
-<ar><k>miniature</k>
-miniatyyri, pienoiskoko</ar>
-<ar><k>minibus</k>
-pienoisbussi</ar>
-<ar><k>minimal</k>
-minimaalinen</ar>
-<ar><k>minimum</k>
-minimi</ar>
-<ar><k>mining area</k>
-kaivosalue</ar>
-<ar><k>minister</k>
-ministeri</ar>
-<ar><k>ministry</k>
-ministeriö</ar>
-<ar><k>mink</k>
-minkki, vesikko</ar>
-<ar><k>mink coat</k>
-minkkiturkki</ar>
-<ar><k>minor</k>
-nuori (lak)
-
-vähäinen</ar>
-<ar><k>minor point</k>
-pikkuseikka, sivuasia, sivuseikka</ar>
-<ar><k>minority</k>
-alaikäisyys, vähemmistö</ar>
-<ar><k>mint</k>
-minttu, rahapaja</ar>
-<ar><k>minus</k>
-miinus</ar>
-<ar><k>minute</k>
-minuutti, pieni</ar>
-<ar><k>minutes</k>
-pöytäkirja</ar>
-<ar><k>miracle</k>
-ihmetyö</ar>
-<ar><k>mirage</k>
-kangastus</ar>
-<ar><k>mire</k>
-kura, lieju, muta</ar>
-<ar><k>mirror</k>
-kuvastin, peili
-
-kuvastaa</ar>
-<ar><k>mirth</k>
-hilpeys</ar>
-<ar><k>miry</k>
-liejuinen</ar>
-<ar><k>misadjustment</k>
-säätövirhe</ar>
-<ar><k>misappropriation</k>
-kavallus</ar>
-<ar><k>miscarriage</k>
-keskenmeno</ar>
-<ar><k>mischief-maker</k>
-kiusantekijä</ar>
-<ar><k>mischievous</k>
-ilkivaltainen, pahankurinen, veikeä</ar>
-<ar><k>misconception</k>
-väärinkäsitys</ar>
-<ar><k>miser</k>
-saituri</ar>
-<ar><k>miserable</k>
-kurja, rähjä (kurja), surkea (kurja), vaivainen, viheliäinen</ar>
-<ar><k>miserly</k>
-itara, saita</ar>
-<ar><k>misery</k>
-kurjuus</ar>
-<ar><k>misfeed</k>
-syöttöhäiriö, virhesyöttö</ar>
-<ar><k>misfortune</k>
-onnettomuus</ar>
-<ar><k>misgiving</k>
-epäily (arvelu)</ar>
-<ar><k>mishap</k>
-kommellus</ar>
-<ar><k>mislead</k>
-eksyttää, erehdyttää, harhaannuttaa</ar>
-<ar><k>misleading</k>
-eksyttävä, erehdyttävä, erheellinen, harhaanjohtava</ar>
-<ar><k>misrepresentation</k>
-vääristely</ar>
-<ar><k>miss</k>
-neiti (nimen edessä)
-
-ikävöidä, kaivata, heitää ym ohi</ar>
-<ar><k>miss the mark</k>
-ampua harhaan</ar>
-<ar><k>missile</k>
-heittoase, ohjus, raketti</ar>
-<ar><k>missing</k>
-hävinnyt (kadonnut), kodoksiin, puuttuva</ar>
-<ar><k>mission</k>
-elämäntehtävä</ar>
-<ar><k>missionary</k>
-lähetyssaarnaaja</ar>
-<ar><k>missionary work</k>
-lähetystyö</ar>
-<ar><k>missorting</k>
-koontahäiriö, koontavirhe</ar>
-<ar><k>mistake</k>
-erehdys, harhaaskel, kielivirhe, virhe (erehdys)</ar>
-<ar><k>mister right</k>
-unelmien mies [puhek.]</ar>
-<ar><k>mistletoe</k>
-misteli (bot)</ar>
-<ar><k>mistress</k>
-jalkavaimo, rakastajatar</ar>
-<ar><k>misty</k>
-sumea, sumuinen, usvainen, utuinen</ar>
-<ar><k>misunderstanding</k>
-väärinkäsitys</ar>
-<ar><k>misuse</k>
-väärinkäyttö</ar>
-<ar><k>mite</k>
-punkki</ar>
-<ar><k>mitigate</k>
-lieventää (rangaistusta)</ar>
-<ar><k>mitre</k>
-hiippa</ar>
-<ar><k>mitten</k>
-kinnas, lapanen, rukkanen</ar>
-<ar><k>mix</k>
-alustaa (taikina), hämmentää, sotkea, sekoittaa</ar>
-<ar><k>mixed</k>
-sekalainen</ar>
-<ar><k>mixed breed</k>
-sekarotu</ar>
-<ar><k>mixed up</k>
-sekaisin</ar>
-<ar><k>mixer</k>
-sekoitin, vatkain (sähkö)</ar>
-<ar><k>mixture</k>
-sekoitus, seos</ar>
-<ar><k>moan</k>
-uikuttaa, vaikeroida, valittaa, voihkia, voivotella</ar>
-<ar><k>moaning</k>
-voivotus</ar>
-<ar><k>moat</k>
-vesihauta</ar>
-<ar><k>mob</k>
-roskaväki</ar>
-<ar><k>mobile</k>
-liikkuva</ar>
-<ar><k>mobility</k>
-liikkuvaisuus</ar>
-<ar><k>mock</k>
-ilkkua, pilkata</ar>
-<ar><k>mocker</k>
-ilkkuja, irvihammas, ivaaja, pilkkaaja</ar>
-<ar><k>mockery</k>
-iva, pilkka</ar>
-<ar><k>mocking</k>
-ilkkuva, ivallinen, pilkallinen</ar>
-<ar><k>mode</k>
-muoto, tapa</ar>
-<ar><k>mode of action</k>
-toimintatapa</ar>
-<ar><k>model</k>
-esikuva (malli), kaava, malli (tait ym)
-
-muovailla</ar>
-<ar><k>model aeroplane</k>
-lennokki</ar>
-<ar><k>moderate</k>
-kohtalainen, kohtuullinen, vaimentaa</ar>
-<ar><k>moderation</k>
-kohtuus, maltillisuus, vaimennus</ar>
-<ar><k>modern</k>
-ajanmukainen, nykyaikainen, uudenaikainen</ar>
-<ar><k>modest</k>
-häveliäs, vaatimaton</ar>
-<ar><k>modesty</k>
-häveliäisyys</ar>
-<ar><k>modification</k>
-muutos, muutostyö, muunnos</ar>
-<ar><k>modify</k>
-muuttaa, korjata</ar>
-<ar><k>module</k>
-laite, osisto, moduuli</ar>
-<ar><k>moist</k>
-kostea, nihkeä, tuore (kostea)</ar>
-<ar><k>moisten</k>
-kostuttaa</ar>
-<ar><k>moisture</k>
-kosteus
-
-kosteus</ar>
-<ar><k>molar</k>
-poskihammas, takahammas</ar>
-<ar><k>mole</k>
-luomi (ihossa), maamyyrä (zo), maamyyrä</ar>
-<ar><k>molecule</k>
-molekyyli</ar>
-<ar><k>molest</k>
-ahdistella, hätyytellä, hätyyttää</ar>
-<ar><k>molevolence</k>
-pahansuopaisuus</ar>
-<ar><k>molevolent</k>
-pahansuopa</ar>
-<ar><k>molten</k>
-sula</ar>
-<ar><k>molten bitumen</k>
-kuuma bitumi</ar>
-<ar><k>moment</k>
-hetki, silmänräpäys, tuokio</ar>
-<ar><k>moment of leisure</k>
-lomahetki</ar>
-<ar><k>momentarily</k>
-hetkellisesti</ar>
-<ar><k>momentary</k>
-hetkellinen, lyhytaikainen</ar>
-<ar><k>momento</k>
-muistoesine</ar>
-<ar><k>monarch</k>
-hallitsija, yksinvaltias</ar>
-<ar><k>monarchy</k>
-yksinvalta</ar>
-<ar><k>monastery</k>
-munkkiluostari</ar>
-<ar><k>monetary</k>
-rahallinen</ar>
-<ar><k>money for old rope</k>
-helposti ansaittu raha [puhek.]</ar>
-<ar><k>monitor</k>
-järjestäjä (koulussa)</ar>
-<ar><k>monk</k>
-luostariveli, munkki</ar>
-<ar><k>monkey</k>
-apina</ar>
-<ar><k>monkey suit</k>
-juhlauniformu [puhek.]</ar>
-<ar><k>monkey wrench</k>
-vaihtoavain</ar>
-<ar><k>monkey-wrench</k>
-jakoavain</ar>
-<ar><k>monogamy</k>
-yksiaviosuus</ar>
-<ar><k>monoplane</k>
-yksitaso</ar>
-<ar><k>monopoly</k>
-monopoli</ar>
-<ar><k>monotonous</k>
-yksitoikkoinen</ar>
-<ar><k>monotony</k>
-yksitoikkoisuus</ar>
-<ar><k>monsoon</k>
-monsuuni</ar>
-<ar><k>monster</k>
-epäsikiö, hirviö</ar>
-<ar><k>monster petition</k>
-joukkoanomus</ar>
-<ar><k>monstrous</k>
-hirvimäinen</ar>
-<ar><k>month</k>
-kuukausi</ar>
-<ar><k>monthly</k>
-kuukausittain, kuukautinen</ar>
-<ar><k>monument</k>
-muistopatsas</ar>
-<ar><k>mood</k>
-mieli, mieliala</ar>
-<ar><k>moody</k>
-huonotuulinen</ar>
-<ar><k>moon</k>
-kuu</ar>
-<ar><k>moonlight</k>
-kuutamo</ar>
-<ar><k>moonshine</k>
-kuutamo, pontikka</ar>
-<ar><k>moor</k>
-nummi</ar>
-<ar><k>mop</k>
-köysiluuta, pyyhkiä</ar>
-<ar><k>mop of hair</k>
-kuontalo</ar>
-<ar><k>moped</k>
-mopo</ar>
-<ar><k>moral</k>
-moraalinen, siveellinen</ar>
-<ar><k>morality</k>
-siveellisyys</ar>
-<ar><k>morals</k>
-moraali, siveellisyys</ar>
-<ar><k>morass</k>
-hete</ar>
-<ar><k>more</k>
-enemmän, enempi, enää, vielä (lisäksi)</ar>
-<ar><k>more like it</k>
-parempi [puhek.]</ar>
-<ar><k>more profitably</k>
-edullisemmin</ar>
-<ar><k>more slowly</k>
-hiljemmin</ar>
-<ar><k>more than</k>
-yli</ar>
-<ar><k>more than enough</k>
-yltäkyllin</ar>
-<ar><k>moreover</k>
-edelleen</ar>
-<ar><k>morning</k>
-aamu, aamupäivä, huomen (aamu)</ar>
-<ar><k>morning after</k>
-krapula</ar>
-<ar><k>morning coat</k>
-saketti</ar>
-<ar><k>morning worship</k>
-aamuhartaus</ar>
-<ar><k>moron</k>
-heikkomielinen</ar>
-<ar><k>morose</k>
-juro</ar>
-<ar><k>morphia</k>
-morfiini</ar>
-<ar><k>morphine</k>
-morfiini</ar>
-<ar><k>morsel</k>
-suupala</ar>
-<ar><k>mortal</k>
-kuolettava</ar>
-<ar><k>mortal agony</k>
-kuolontuska</ar>
-<ar><k>mortal blow</k>
-kuolinisku</ar>
-<ar><k>mortal terror</k>
-hengenhätä</ar>
-<ar><k>mortal wound</k>
-kuolinhaava</ar>
-<ar><k>mortality</k>
-kuolleisuus</ar>
-<ar><k>mortally</k>
-kuolettavasti</ar>
-<ar><k>mortally sick</k>
-kuolemansairas</ar>
-<ar><k>mortar</k>
-huhmar, kalkkilaasti, kranaatinheitin
-
-laasti</ar>
-<ar><k>mortgage</k>
-hypoteekki, kiinnitys (lak)</ar>
-<ar><k>mortgage loan</k>
-kiinnelaina</ar>
-<ar><k>mortice and tenon</k>
-tappiliitos</ar>
-<ar><k>mortice chisel</k>
-taltta</ar>
-<ar><k>mortice lock</k>
-upotettava lukko</ar>
-<ar><k>mortuary</k>
-ruumishuone</ar>
-<ar><k>mosquito</k>
-hyttynen</ar>
-<ar><k>moss</k>
-sammal, sammalikko</ar>
-<ar><k>most</k>
-enimmän, enin, eniten, useimmat</ar>
-<ar><k>most commonly</k>
-enimmäkseen</ar>
-<ar><k>most distant</k>
-etäisimpänä</ar>
-<ar><k>most frequently</k>
-useimmin</ar>
-<ar><k>most of all</k>
-enin kaikkista, kaikkein (- enimmän)</ar>
-<ar><k>most often</k>
-useimmin</ar>
-<ar><k>mostly</k>
-enimmäkseen, parhaastaan</ar>
-<ar><k>motel</k>
-motelli</ar>
-<ar><k>moth</k>
-yöperhonen</ar>
-<ar><k>mother</k>
-kantaäiti (kuv), äiti</ar>
-<ar><k>mother ship</k>
-emälaiva</ar>
-<ar><k>mother tongue</k>
-äidinkieli</ar>
-<ar><k>mother-in-law</k>
-anoppi</ar>
-<ar><k>mother-of-pearl</k>
-helmiäinen</ar>
-<ar><k>motherhood</k>
-äitiys</ar>
-<ar><k>motherly</k>
-äidillinen</ar>
-<ar><k>mothers ruin</k>
-gini [puhek.]</ar>
-<ar><k>motion</k>
-liike</ar>
-<ar><k>motionless</k>
-liikkumaton</ar>
-<ar><k>motive</k>
-motiivi, vaikutin
-
-liikkeellepaneva</ar>
-<ar><k>motor</k>
-moottori</ar>
-<ar><k>motor vehicle examiner</k>
-autonkatsastaja</ar>
-<ar><k>motor-cycle</k>
-mootoripyörä</ar>
-<ar><k>motoring</k>
-autoilu</ar>
-<ar><k>motoring offence</k>
-liikennerikkomus</ar>
-<ar><k>motorist</k>
-autoilija</ar>
-<ar><k>motorway</k>
-mootoritie</ar>
-<ar><k>mottle</k>
-laikku</ar>
-<ar><k>mottled grey</k>
-harmaankirjava</ar>
-<ar><k>motto</k>
-mielilause, tunnuslause</ar>
-<ar><k>mould</k>
-muovailla, muovata, valaa
-
-home</ar>
-<ar><k>mould fungus</k>
-homesieni</ar>
-<ar><k>moulder</k>
-maatua</ar>
-<ar><k>moulding</k>
-lista (rak), piena</ar>
-<ar><k>mouldy</k>
-homehtunut</ar>
-<ar><k>moulting</k>
-sulkasato</ar>
-<ar><k>mount</k>
-ratsu
-
-asentaa, koota</ar>
-<ar><k>mountain</k>
-tunturi, vuori</ar>
-<ar><k>mountain climbing</k>
-vuoristokiipeily</ar>
-<ar><k>mountain goat</k>
-kauris</ar>
-<ar><k>mountain ridge</k>
-vuorenharja</ar>
-<ar><k>mountaineer</k>
-vuoristokiipeilijä, vuoristolainen</ar>
-<ar><k>mountaineering</k>
-vuoristokiipeily</ar>
-<ar><k>mountainous</k>
-vuorinen</ar>
-<ar><k>mountainous country</k>
-vuoristo</ar>
-<ar><k>mountains</k>
-vuoristo</ar>
-<ar><k>mounting</k>
-kiinnitys-</ar>
-<ar><k>mourn</k>
-surettaa, surra</ar>
-<ar><k>mouse-trap</k>
-hiirenpyydys</ar>
-<ar><k>moustache</k>
-huuliparta, viikset</ar>
-<ar><k>mouth</k>
-suu</ar>
-<ar><k>mouth of a river</k>
-joensuu</ar>
-<ar><k>mouth-organ</k>
-huuliharppu</ar>
-<ar><k>mouth-wash</k>
-suuvesi</ar>
-<ar><k>mouthpiece</k>
-imuke</ar>
-<ar><k>movable</k>
-liikkuva</ar>
-<ar><k>movable partition</k>
-irtoseinä</ar>
-<ar><k>movables</k>
-irtaimisto</ar>
-<ar><k>move</k>
-siirto
-
-ehdottaa, hievahtaa, liikahtaa, liikkua, liikutella, liikuttaa, muuttaa, siirtyä, siirtää</ar>
-<ar><k>move about</k>
-liikehtiä, liikuskella</ar>
-<ar><k>move on</k>
-edetä</ar>
-<ar><k>movement</k>
-liike</ar>
-<ar><k>movie</k>
-elokuva</ar>
-<ar><k>mow</k>
-niittää</ar>
-<ar><k>mower</k>
-niittokone</ar>
-<ar><k>mowing</k>
-niitto</ar>
-<ar><k>mowing machine</k>
-niittokone</ar>
-<ar><k>muck</k>
-sonta</ar>
-<ar><k>mucous</k>
-limainen</ar>
-<ar><k>mucous membrane</k>
-limakalvo</ar>
-<ar><k>mucus</k>
-lima</ar>
-<ar><k>mud</k>
-kura, lieju, loka, muta, rapa (kura)</ar>
-<ar><k>mud hut</k>
-savimaja</ar>
-<ar><k>muddiness</k>
-kuraisuus, sameus</ar>
-<ar><k>muddle</k>
-sekamelska</ar>
-<ar><k>muddled</k>
-höperö, sekava</ar>
-<ar><k>muddy</k>
-kurainen, liejuinen, lokainen</ar>
-<ar><k>mudguard</k>
-kurasuojus, lokasuojus</ar>
-<ar><k>muff</k>
-käsipuuhka, muhvi, puuhka</ar>
-<ar><k>muffle</k>
-hiljentää (ääntä ym), vaimentaa</ar>
-<ar><k>muffled</k>
-vaimea (ääni)</ar>
-<ar><k>mug</k>
-muki, seideli</ar>
-<ar><k>mugging</k>
-ryöstö</ar>
-<ar><k>mule</k>
-muuli</ar>
-<ar><k>mulled wine</k>
-glögi</ar>
-<ar><k>multi-coloured</k>
-kirjava</ar>
-<ar><k>multi-purpose</k>
-monikäyttö</ar>
-<ar><k>multi-storey building</k>
-kerrostalo</ar>
-<ar><k>multifeed</k>
-multisyöttö, monisyöttö</ar>
-<ar><k>multiple</k>
-monenkertainen</ar>
-<ar><k>multiple collision</k>
-ketjukolari</ar>
-<ar><k>multiplication</k>
-kertolasku</ar>
-<ar><k>multiply</k>
-lisääntyä</ar>
-<ar><k>multitude</k>
-joukko</ar>
-<ar><k>mumble</k>
-supina
-
-höpistä, mumista, mutista, supista</ar>
-<ar><k>mummy</k>
-muumio, äiti (laps. puh)</ar>
-<ar><k>mumps</k>
-sikotauti</ar>
-<ar><k>munch</k>
-mutustaa</ar>
-<ar><k>mundane</k>
-maallinen</ar>
-<ar><k>municipal</k>
-kunnallinen</ar>
-<ar><k>municipal council</k>
-kunnanvaltuusto</ar>
-<ar><k>municipality</k>
-kaupunkikunta, kunta</ar>
-<ar><k>murder</k>
-murha
-
-murhata</ar>
-<ar><k>murderer</k>
-murhaaja</ar>
-<ar><k>murmur</k>
-sorina, surina, mumina
-
-humista, jupista, napista, sopertaa, suhista</ar>
-<ar><k>murmuring</k>
-humina, hyminä</ar>
-<ar><k>muscle</k>
-lihas</ar>
-<ar><k>muscular</k>
-jäntevä, lihaksinen</ar>
-<ar><k>muscular action</k>
-lihastoiminta</ar>
-<ar><k>muscular fibre</k>
-lihassäie</ar>
-<ar><k>muscular strength</k>
-lihasvoima</ar>
-<ar><k>muscular system</k>
-lihaksisto</ar>
-<ar><k>muscular tissue</k>
-lihaskudos</ar>
-<ar><k>museum</k>
-museo</ar>
-<ar><k>mushroom</k>
-herkkusieni, herkkusieni</ar>
-<ar><k>musical</k>
-laulunäytelmä
-
-musikaalinen</ar>
-<ar><k>musical instrument</k>
-soitin</ar>
-<ar><k>musician</k>
-soittaja</ar>
-<ar><k>musk</k>
-myski</ar>
-<ar><k>musketeer</k>
-muskettisoturi</ar>
-<ar><k>muslin</k>
-musliini</ar>
-<ar><k>mussel</k>
-näkinkenkä, simpukka (zo)</ar>
-<ar><k>must</k>
-täytyy</ar>
-<ar><k>mustard</k>
-sinappi</ar>
-<ar><k>mustiness</k>
-ummehtuneisuus</ar>
-<ar><k>musty</k>
-homehtunut, ummehtunut</ar>
-<ar><k>mutilate</k>
-runnella, silpoa</ar>
-<ar><k>mutter</k>
-jupista, mumista, mutista, sopertaa</ar>
-<ar><k>muttering</k>
-soperrus</ar>
-<ar><k>mutual</k>
-kahdenpuoleinen, keskinäinen, molemminpuolinen</ar>
-<ar><k>muzzle</k>
-kuoko, kuonokoppa, turpa</ar>
-<ar><k>my goodness</k>
-hyvänen aika</ar>
-<ar><k>myrtle</k>
-myrtti</ar>
-<ar><k>myself</k>
-itse (pron)</ar>
-<ar><k>mysterious</k>
-salaperäinen</ar>
-<ar><k>mystery</k>
-mysteeri</ar>
-<ar><k>mystic</k>
-mystikko</ar>
-<ar><k>mystical</k>
-mystillinen</ar>
-<ar><k>mythology</k>
-mytologia</ar>
-<ar><k>nag</k>
-jankuttaa, nalkuttaa, näykkiä</ar>
-<ar><k>nail</k>
-kynsi, naula
-
-naulata, naulita</ar>
-<ar><k>nail cleaner</k>
-kynsirauta</ar>
-<ar><k>nail file</k>
-kynsiviila</ar>
-<ar><k>nail polish</k>
-kynsilakka</ar>
-<ar><k>naive</k>
-naiivi</ar>
-<ar><k>naked</k>
-alaston, paljas</ar>
-<ar><k>nakedness</k>
-alastomuus</ar>
-<ar><k>name</k>
-nimi, nimitys
-
-nimetä, nimittää</ar>
-<ar><k>nameday</k>
-nimipäivä</ar>
-<ar><k>nameless</k>
-nimetön</ar>
-<ar><k>namely</k>
-nimittäin</ar>
-<ar><k>namesake</k>
-kaima</ar>
-<ar><k>nannygoat</k>
-vuohi</ar>
-<ar><k>nap</k>
-torkahdus</ar>
-<ar><k>nape</k>
-niska</ar>
-<ar><k>nape of the neck</k>
-niska</ar>
-<ar><k>narcissus</k>
-narsissi</ar>
-<ar><k>narcotic</k>
-huume</ar>
-<ar><k>narrate</k>
-kertoa</ar>
-<ar><k>narration</k>
-kerronta</ar>
-<ar><k>narrative</k>
-kertomus, tarina</ar>
-<ar><k>narrow</k>
-ahdas, kaita, kapea, kaventaa, suippo</ar>
-<ar><k>narrow gauge</k>
-kapea raide</ar>
-<ar><k>narrow pass</k>
-kapeikko</ar>
-<ar><k>narrow-minded</k>
-ahdasmielinen</ar>
-<ar><k>narrow-mindedness</k>
-ahdasmielisyys</ar>
-<ar><k>narrowly</k>
-hädintuskin, töintuskin</ar>
-<ar><k>narrowness</k>
-ahtaus, kapeus</ar>
-<ar><k>nasal</k>
-nenääänne</ar>
-<ar><k>nasal voice quality</k>
-honotus</ar>
-<ar><k>nasturtium</k>
-krassi</ar>
-<ar><k>nasty</k>
-kurja</ar>
-<ar><k>nation</k>
-kansakunta</ar>
-<ar><k>nation-wide</k>
-valtakunnallinen</ar>
-<ar><k>national</k>
-kansallinen, valtakunnallinen</ar>
-<ar><k>national anthem</k>
-kansallislaulu</ar>
-<ar><k>national board of health</k>
-lääkintöhallitus</ar>
-<ar><k>national debt</k>
-valtionvelka</ar>
-<ar><k>national service</k>
-asevelvollisuus</ar>
-<ar><k>national spirit</k>
-kansallismielisyys</ar>
-<ar><k>nationalist</k>
-kansalliskiihkoilija, kansallismielinen</ar>
-<ar><k>nationality</k>
-kansallisuus</ar>
-<ar><k>native</k>
-kotimainen, syntyperäinen, alkuasukas</ar>
-<ar><k>native city</k>
-syntymäkaupunki</ar>
-<ar><k>native country</k>
-isänmaa, synnyinmaa</ar>
-<ar><k>native of</k>
-kotoisin</ar>
-<ar><k>natural</k>
-koristelematon (kuv), luonnollinen, luontainen, luonteva</ar>
-<ar><k>natural cure</k>
-luontaishoito</ar>
-<ar><k>natural gas</k>
-maakaasu</ar>
-<ar><k>natural healing</k>
-luonnonparannus</ar>
-<ar><k>natural history</k>
-luonnonhistoria</ar>
-<ar><k>natural phenomenon</k>
-luonnonilmiö</ar>
-<ar><k>natural product</k>
-luonnontuote</ar>
-<ar><k>natural rubber</k>
-kautsu</ar>
-<ar><k>natural state</k>
-luonnontila</ar>
-<ar><k>natural wealth</k>
-luonnonrikkaus</ar>
-<ar><k>naturalize</k>
-kansalaistaa</ar>
-<ar><k>naturally</k>
-luonnollisesti, luonnostaan, tietenkin</ar>
-<ar><k>naturalness</k>
-luonnollisuus</ar>
-<ar><k>naughty</k>
-häijy (lapsesta), tuhma</ar>
-<ar><k>nausea</k>
-pahoinvointi</ar>
-<ar><k>nauseate</k>
-iljettää</ar>
-<ar><k>nauseating</k>
-ellottava, tympäisevä</ar>
-<ar><k>nauseous</k>
-iljettävä</ar>
-<ar><k>nauseousness</k>
-iljettävyys</ar>
-<ar><k>nautical mile</k>
-meripeninkulma</ar>
-<ar><k>navel</k>
-napa (anat)</ar>
-<ar><k>navigate</k>
-ohjata (laivaa)</ar>
-<ar><k>navigation</k>
-laivakulku, merenkulku, meriliikenne, purjehdus</ar>
-<ar><k>navigator</k>
-merenkulkija</ar>
-<ar><k>navy</k>
-meriväki, sotalaivasto</ar>
-<ar><k>near</k>
-liki, läheinen, lähelle, lähetä, lähellä</ar>
-<ar><k>near by</k>
-viereinen</ar>
-<ar><k>near each other</k>
-lähekkäin</ar>
-<ar><k>near to</k>
-jnk luona</ar>
-<ar><k>near-sighted</k>
-likinäköinen</ar>
-<ar><k>nearest</k>
-lähinnä</ar>
-<ar><k>nearly</k>
-melkein</ar>
-<ar><k>nearness</k>
-läheisyys</ar>
-<ar><k>neat</k>
-huolellinen (siisti), siisti, sirotekoinen</ar>
-<ar><k>neatly made</k>
-sirotekoinen</ar>
-<ar><k>neatness</k>
-sirous, somuus</ar>
-<ar><k>nebula</k>
-tähtisumu</ar>
-<ar><k>necessarily</k>
-välttämättä</ar>
-<ar><k>necessary</k>
-välttämätön, tarpeellinen</ar>
-<ar><k>necessity</k>
-pakko (tarve)</ar>
-<ar><k>neck</k>
-kaula</ar>
-<ar><k>neck of land</k>
-kannas</ar>
-<ar><k>necking</k>
-halailu, lemmiskely</ar>
-<ar><k>necklace</k>
-kaulakoru</ar>
-<ar><k>neckline</k>
-kaulaaukko</ar>
-<ar><k>nectar</k>
-mesi</ar>
-<ar><k>need</k>
-tarve
-
-kaivata (tarvita), tarvita</ar>
-<ar><k>needing help</k>
-avuntarvitsija</ar>
-<ar><k>needle</k>
-neula</ar>
-<ar><k>needless</k>
-huolimaton, joutava, tarpeeton, turha</ar>
-<ar><k>needlework</k>
-ompelu</ar>
-<ar><k>needy</k>
-hädänalainen, köyhä</ar>
-<ar><k>negative</k>
-kielteinen, kieltävä, negatiivinen</ar>
-<ar><k>neglect</k>
-laiminlyödä</ar>
-<ar><k>neglected</k>
-laiminlyöty</ar>
-<ar><k>neglectful</k>
-leväperäinen</ar>
-<ar><k>negligence</k>
-huolimattomuus, laiminlyönti, leväperäisyys, välinpitämättömyys</ar>
-<ar><k>negligent</k>
-huolimaton (leväperäinen), leväperäinen</ar>
-<ar><k>negotiate</k>
-neuvotella</ar>
-<ar><k>negotiation</k>
-neuvottelu</ar>
-<ar><k>negotiator</k>
-neuvottelija</ar>
-<ar><k>negro</k>
-neekeri</ar>
-<ar><k>neice</k>
-sisarentytär</ar>
-<ar><k>neigh</k>
-hirnua</ar>
-<ar><k>neighbour</k>
-lähimmäinen, naapuri</ar>
-<ar><k>neighbourhood</k>
-läheisyys, naapuristo, tienoo</ar>
-<ar><k>neither</k>
-eikä, ei kumpikaan</ar>
-<ar><k>neon sign</k>
-neonvalo</ar>
-<ar><k>nephew</k>
-sisarenpoika, veljenpoika</ar>
-<ar><k>nerve</k>
-hermo</ar>
-<ar><k>nervous</k>
-hermostollinen</ar>
-<ar><k>nervous breakdown</k>
-hermoramahdus</ar>
-<ar><k>nervous system</k>
-hermosto</ar>
-<ar><k>nest</k>
-pesä</ar>
-<ar><k>nesting-time</k>
-pesimisaika</ar>
-<ar><k>net</k>
-haavi, netto, verkko</ar>
-<ar><k>nettle</k>
-nokkonen</ar>
-<ar><k>nettle-rash</k>
-nokkoskuume</ar>
-<ar><k>network</k>
-verkko, verkosto</ar>
-<ar><k>neuralgia</k>
-hermosärky</ar>
-<ar><k>never</k>
-ei koskaan, ei lainkaan</ar>
-<ar><k>never no more</k>
-ei enää ikinä [puhek.]</ar>
-<ar><k>never-ending</k>
-loppumaton</ar>
-<ar><k>nevertheless</k>
-kuitenkin, kumminkin</ar>
-<ar><k>new</k>
-uusi</ar>
-<ar><k>new moon</k>
-uusikuu</ar>
-<ar><k>new-fangled</k>
-uudenaikainen</ar>
-<ar><k>newcomer</k>
-tulokas</ar>
-<ar><k>newly</k>
-juuri (äsken)</ar>
-<ar><k>newly-made</k>
-vastatehty</ar>
-<ar><k>newness</k>
-uutuus</ar>
-<ar><k>news</k>
-kuulumiset, sanoma, uutinen, uutiset</ar>
-<ar><k>news item</k>
-uutinen</ar>
-<ar><k>news-stand</k>
-lehtimyymälä</ar>
-<ar><k>newsagent</k>
-sanomalehtimyymälä</ar>
-<ar><k>newscast</k>
-uutiskatsaus</ar>
-<ar><k>newspaper</k>
-sanomalehti, sanomalehti</ar>
-<ar><k>next</k>
-ensi (tuleva), lähinnä</ar>
-<ar><k>next of kin</k>
-lähiomaiset</ar>
-<ar><k>next time</k>
-ensikerralla</ar>
-<ar><k>next to each other</k>
-vierekkäin</ar>
-<ar><k>nib</k>
-kynänterä</ar>
-<ar><k>nibble</k>
-järsiä</ar>
-<ar><k>nice</k>
-herttainen, miellyttävä, mukava, sievoinen, soma</ar>
-<ar><k>nice smell</k>
-tuoksu</ar>
-<ar><k>nicely</k>
-miellyttävästi, mukavasti</ar>
-<ar><k>niche</k>
-seinäsyvennys</ar>
-<ar><k>nick</k>
-pykälä (lovi)</ar>
-<ar><k>nickel</k>
-nikkeli</ar>
-<ar><k>nickel-plate</k>
-nikkeloida</ar>
-<ar><k>nickname</k>
-liikanimi, lisänimi, pilkkanimi</ar>
-<ar><k>nicotine</k>
-nikotiini</ar>
-<ar><k>niece</k>
-sisarentytär</ar>
-<ar><k>niggardly</k>
-visu</ar>
-<ar><k>night</k>
-yö</ar>
-<ar><k>night school</k>
-iltakoulu</ar>
-<ar><k>night-dress</k>
-yöpuku</ar>
-<ar><k>nightingale</k>
-satakieli</ar>
-<ar><k>nightly</k>
-yöllinen, öinen</ar>
-<ar><k>nightmare</k>
-painajainen</ar>
-<ar><k>nil</k>
-nolla</ar>
-<ar><k>nimble</k>
-ketterä, nopsa</ar>
-<ar><k>nimbleness</k>
-ketteryys</ar>
-<ar><k>nine</k>
-yhdeksikkö, yhdeksän</ar>
-<ar><k>nineteen</k>
-yhdeksäntoista</ar>
-<ar><k>ninety</k>
-yhdeksänkymmentä</ar>
-<ar><k>nip</k>
-nipistää</ar>
-<ar><k>nipple</k>
-nänni</ar>
-<ar><k>nitrate</k>
-nitraatti</ar>
-<ar><k>nitric acid</k>
-typpihappo</ar>
-<ar><k>nitrogen</k>
-typpi (kem)</ar>
-<ar><k>nitrous oxide</k>
-ilokaasu</ar>
-<ar><k>no doubt</k>
-epäilemättä</ar>
-<ar><k>no oil painting</k>
-ei mikään kaunotar [puhek.]</ar>
-<ar><k>no one</k>
-ei kukaan</ar>
-<ar><k>no way</k>
-ei mitään mahdollisuutta [puhek.]</ar>
-<ar><k>nobility</k>
-aatelisarvo, aatelisto</ar>
-<ar><k>noble</k>
-jalo, ylhäinen</ar>
-<ar><k>noble birth</k>
-aateli, jalosukuisuus</ar>
-<ar><k>noble family</k>
-aatelissuku</ar>
-<ar><k>noble gas</k>
-jalokaasu</ar>
-<ar><k>noble-minded</k>
-jalomielinen</ar>
-<ar><k>nobleman</k>
-aatelismies</ar>
-<ar><k>nobleness</k>
-jalous, ylevyys</ar>
-<ar><k>noblewoman</k>
-aatelisnainen</ar>
-<ar><k>nobody</k>
-ei kukaan</ar>
-<ar><k>nobody's</k>
-ei kenenkään</ar>
-<ar><k>nocturnal</k>
-yöllinen, öinen</ar>
-<ar><k>nod</k>
-nyökkäys
-
-nuokkua, nyökyttää, nyökätä</ar>
-<ar><k>node</k>
-nystermä, pahka</ar>
-<ar><k>nodular</k>
-kyhmyinen</ar>
-<ar><k>nodule</k>
-kyhmy (anat), nystermä</ar>
-<ar><k>noisiness</k>
-äänekkyys</ar>
-<ar><k>noisy</k>
-hälisevä, kovaääninen, meluava, meluisa, äänekäs</ar>
-<ar><k>nomad</k>
-paimentolainen</ar>
-<ar><k>nominal</k>
-nimellinen</ar>
-<ar><k>nomination</k>
-ehdollepano</ar>
-<ar><k>non volatile memory</k>
-pysyväismuisti</ar>
-<ar><k>non-alcoholic</k>
-alkoholiton</ar>
-<ar><k>non-aligned</k>
-liittoutumaton</ar>
-<ar><k>non-caring</k>
-huoleton</ar>
-<ar><k>non-commissioned officer</k>
-aliupseeri</ar>
-<ar><k>non-commissioned officers</k>
-alipäällystö</ar>
-<ar><k>non-existent</k>
-olematon</ar>
-<ar><k>non-smoker</k>
-tupakoimaton</ar>
-<ar><k>non-violent</k>
-väkivallaton</ar>
-<ar><k>nonconformist</k>
-eriuskolainen, lahkolainen</ar>
-<ar><k>none</k>
-ei mikään</ar>
-<ar><k>nonsense</k>
-hölynpöly, johan ( - nyt), pöty</ar>
-<ar><k>nonsensical</k>
-järjetön (mieletön)</ar>
-<ar><k>nonvolatile</k>
-haihtumaton</ar>
-<ar><k>nook</k>
-loukko, sopukka, soppi</ar>
-<ar><k>noon</k>
-puolipäivä</ar>
-<ar><k>nordic</k>
-pohjoismainen</ar>
-<ar><k>nordic country</k>
-pohjoismaa</ar>
-<ar><k>norm</k>
-normi</ar>
-<ar><k>normal</k>
-normaali</ar>
-<ar><k>north</k>
-pohjoinen, pohjola</ar>
-<ar><k>north pole</k>
-pohjoisnapa</ar>
-<ar><k>north-east</k>
-koillinen</ar>
-<ar><k>north-west</k>
-luode, luoteinen</ar>
-<ar><k>northern</k>
-pohjoinen, pohjoismainen</ar>
-<ar><k>northernmost</k>
-pohjoisin</ar>
-<ar><k>nose</k>
-kuoko, nenä</ar>
-<ar><k>nosh up</k>
-hyvä ateria [puhek.]</ar>
-<ar><k>nostril</k>
-sierain</ar>
-<ar><k>not</k>
-ei, en</ar>
-<ar><k>not all there</k>
-hassahtava</ar>
-<ar><k>not allowed</k>
-luvaton</ar>
-<ar><k>not arranged</k>
-järjestämätön</ar>
-<ar><k>not at all</k>
-ei lainkaan</ar>
-<ar><k>not at one</k>
-erimielinen</ar>
-<ar><k>not bright</k>
-huonopäinen</ar>
-<ar><k>not clear</k>
-epäselvä</ar>
-<ar><k>not commenced</k>
-alkamaton</ar>
-<ar><k>not covered</k>
-katteeton</ar>
-<ar><k>not dangerous</k>
-vaaraton</ar>
-<ar><k>not dense</k>
-harva</ar>
-<ar><k>not full</k>
-vajaa</ar>
-<ar><k>not half</k>
-kovasti [puhek.]</ar>
-<ar><k>not in the least</k>
-ei lainkaan</ar>
-<ar><k>not in use</k>
-käyttämätön</ar>
-<ar><k>not later than</k>
-viimeistään</ar>
-<ar><k>not legally competent</k>
-jäävi</ar>
-<ar><k>not long ago</k>
-hiljan, hiljattain</ar>
-<ar><k>not made public</k>
-julkaisematon</ar>
-<ar><k>not on your nelly</k>
-ei ikinä [puhek.]</ar>
-<ar><k>not pointed</k>
-kärjetön</ar>
-<ar><k>not properly</k>
-kelvottomasti</ar>
-<ar><k>not quite well</k>
-alakuntoinen</ar>
-<ar><k>not repaired</k>
-korjaamaton</ar>
-<ar><k>not straight</k>
-kieroinen</ar>
-<ar><k>not sure</k>
-epävarma</ar>
-<ar><k>not talented</k>
-lahjaton</ar>
-<ar><k>not to scale</k>
-ilman mittakaavaa</ar>
-<ar><k>not to worry</k>
-älä sure [puhek.]</ar>
-<ar><k>not uniform</k>
-epämukainen</ar>
-<ar><k>not valid</k>
-mitätön (kelpaamaton)</ar>
-<ar><k>not-to-be-forgotten</k>
-ikimuistetettava</ar>
-<ar><k>notable</k>
-huomattava (etevä), merkittävä</ar>
-<ar><k>notably</k>
-eritoten</ar>
-<ar><k>notary</k>
-notaari</ar>
-<ar><k>notch</k>
-ura
-
-lovi, pykälä (lovi), uuros
-
-pykälöidä</ar>
-<ar><k>notched</k>
-pykäläinen</ar>
-<ar><k>note</k>
-havaita (huomata), kirjelippu, merkintä, muistiinpano, nuotti
-
-huomata</ar>
-<ar><k>note-book</k>
-muistikirja</ar>
-<ar><k>notebook</k>
-vihko</ar>
-<ar><k>noted</k>
-tunnettu</ar>
-<ar><k>noteworthy</k>
-huomattava (etevä), merkittävä</ar>
-<ar><k>noteworthy event</k>
-merkkitapaus</ar>
-<ar><k>nothing</k>
-ei mikään</ar>
-<ar><k>nothing but</k>
-pelkkä</ar>
-<ar><k>notice</k>
-ilmoitus, julistus, kuulutus
-
-huomata, havaita, panna merkille, havaita</ar>
-<ar><k>notice board</k>
-ilmoitustaulu</ar>
-<ar><k>noticeable</k>
-huomattava</ar>
-<ar><k>noticeably</k>
-huomattavasti</ar>
-<ar><k>notification</k>
-ilmoitus, tiedoksianto, tiedotus</ar>
-<ar><k>notify</k>
-ilmoittaa (jklle jtk), tiedottaa</ar>
-<ar><k>notifying</k>
-ilmoittaminen</ar>
-<ar><k>notion</k>
-ajatus, päähänpisto</ar>
-<ar><k>notoriety</k>
-huonomaineisuus</ar>
-<ar><k>notorious</k>
-huonomaineinen</ar>
-<ar><k>nought</k>
-nolla</ar>
-<ar><k>noun</k>
-nimisana (kiel), substantiivi</ar>
-<ar><k>nourish</k>
-ravita</ar>
-<ar><k>nourishing</k>
-ravitseva</ar>
-<ar><k>nourishment</k>
-ravinto, ravitsemus</ar>
-<ar><k>novel</k>
-romaani, uusi</ar>
-<ar><k>novelty</k>
-uutuus</ar>
-<ar><k>novice</k>
-noviisi</ar>
-<ar><k>now and then</k>
-toisinaan</ar>
-<ar><k>nowadays</k>
-nyttemmin</ar>
-<ar><k>noxious</k>
-turmiollinen, vahingollinen</ar>
-<ar><k>nozzle</k>
-suu (aseen ym), suukappale, suulake, suutin</ar>
-<ar><k>nuclear power station</k>
-atomivoimala</ar>
-<ar><k>nuclear weapon</k>
-ydinase</ar>
-<ar><k>nucleus</k>
-tuma</ar>
-<ar><k>nudge</k>
-tönäisy
-
-tökätä</ar>
-<ar><k>nudger</k>
-työntö-, esisyöttö-</ar>
-<ar><k>nuisance</k>
-kiusa, kiusankappale, riesa</ar>
-<ar><k>nullify</k>
-kumota</ar>
-<ar><k>numb</k>
-hervoton, turta</ar>
-<ar><k>number</k>
-indeksiluku, luku, lukumäärä, numero
-
-numeroida</ar>
-<ar><k>numerous</k>
-lukuisa</ar>
-<ar><k>nun</k>
-nunna</ar>
-<ar><k>nurse</k>
-lapsenhoitaja, sairaanhoitaja
-
-hoitaa (hoivata), hoivata, imettää</ar>
-<ar><k>nurse-maid</k>
-lapsentyttö</ar>
-<ar><k>nursery</k>
-lastenhuone, taimisto</ar>
-<ar><k>nursery school</k>
-lastentarha</ar>
-<ar><k>nursing</k>
-hoito (lapsen ym), sairaanhoito</ar>
-<ar><k>nut</k>
-mutteri, pähkinä, ruuvimutteri</ar>
-<ar><k>nutmeg</k>
-muskotti</ar>
-<ar><k>nutrient</k>
-ravinne</ar>
-<ar><k>nuts</k>
-pöhkö</ar>
-<ar><k>o-ring</k>
-o-rengas, kitkarengas, pyöröhihna</ar>
-<ar><k>oak</k>
-tammi</ar>
-<ar><k>oar</k>
-airo</ar>
-<ar><k>oarlock</k>
-hankain</ar>
-<ar><k>oarsman</k>
-soutaja</ar>
-<ar><k>oasis</k>
-keidas</ar>
-<ar><k>oath</k>
-vala</ar>
-<ar><k>oatmeal</k>
-kaurajauho</ar>
-<ar><k>oats</k>
-kaura</ar>
-<ar><k>obedience</k>
-kuuliaisuus, tottelevaisuus</ar>
-<ar><k>obedience of the law</k>
-lainkuuliaisuus</ar>
-<ar><k>obedient</k>
-kuuliainen</ar>
-<ar><k>obesity</k>
-liikalihavuus</ar>
-<ar><k>obey</k>
-noudattaa, totella</ar>
-<ar><k>obituary</k>
-kuolinilmoitus, muistosanat</ar>
-<ar><k>object</k>
-esine, kohde
-
-esittää vastaan</ar>
-<ar><k>objection</k>
-huomautus</ar>
-<ar><k>objective</k>
-kohde (sot), tavoite</ar>
-<ar><k>obligation</k>
-velvoitus, sitoumus</ar>
-<ar><k>oblige</k>
-velvoittaa</ar>
-<ar><k>obliged</k>
-velvollinen</ar>
-<ar><k>oblique</k>
-viisto, vino</ar>
-<ar><k>oblique angled</k>
-vinokulmainen</ar>
-<ar><k>obliqueness</k>
-viistous, vinous</ar>
-<ar><k>oblivion</k>
-unohdus</ar>
-<ar><k>oblong</k>
-pitkulainen, pitkänomainen</ar>
-<ar><k>oblong slot</k>
-pitkulainen aukko</ar>
-<ar><k>obnoxious</k>
-vastenmielinen</ar>
-<ar><k>obscene</k>
-rietas, rivo, siveetön</ar>
-<ar><k>obscenity</k>
-säädyttömyys, rivous</ar>
-<ar><k>obscure</k>
-himmenntää, pimittää
-
-himmeä, hämäräperäinen</ar>
-<ar><k>obscurity</k>
-himmenys, pimeys, hämäräperäisyys</ar>
-<ar><k>observation</k>
-havainto (huomio), huominen (havainto), tähystys</ar>
-<ar><k>observatory</k>
-tähtitorni</ar>
-<ar><k>observe</k>
-havaita, huomata, huomioida, noudattaa, seurata (noudattaa), tarkkailla</ar>
-<ar><k>observer</k>
-havainnoitsija, huomioitsija, tarkkailija, tähystäjä</ar>
-<ar><k>obstacle</k>
-este</ar>
-<ar><k>obstetrician</k>
-synnytyslääkäri</ar>
-<ar><k>obstinacy</k>
-härkäpäisyys, itsepäisyys</ar>
-<ar><k>obstinate</k>
-härkäpäinen, itsepäinen</ar>
-<ar><k>obstinately</k>
-itsepäisesti</ar>
-<ar><k>obstruct</k>
-ehkäistä (estää), estää, tukkia</ar>
-<ar><k>obstruction</k>
-este, estäminen, jarrutus (kuv), sulku (este), tukkeuma</ar>
-<ar><k>obstructionist</k>
-jarruttaja (kuv)</ar>
-<ar><k>obtain</k>
-saada, hankkia, saavuttaa</ar>
-<ar><k>obtainable</k>
-saatavissa</ar>
-<ar><k>obtrusion</k>
-tungettelu</ar>
-<ar><k>obtrusive</k>
-tungettelevainen</ar>
-<ar><k>obtuse-angle</k>
-tylppäkulamainen</ar>
-<ar><k>obvious</k>
-ilmeinen, selvä (ilmeinen, silminnähtävä</ar>
-<ar><k>obviously</k>
-ileisesti</ar>
-<ar><k>occasion</k>
-tilaisuus</ar>
-<ar><k>occasional</k>
-tilapäinen</ar>
-<ar><k>occasionally</k>
-ajoittain, satunnaisesti, toisinaan</ar>
-<ar><k>occlusion</k>
-tukos (lääk)</ar>
-<ar><k>occupancy</k>
-hallinta (lak)</ar>
-<ar><k>occupant</k>
-haltija</ar>
-<ar><k>occupation</k>
-ammattiala, ammatti, elinkeino, miehitys, toimi, valtaus</ar>
-<ar><k>occupational</k>
-ammatillinen</ar>
-<ar><k>occupational accident</k>
-työtapaturma</ar>
-<ar><k>occupational therapy</k>
-toimintaterapia</ar>
-<ar><k>occupy</k>
-askarruttaa, asua, vallata</ar>
-<ar><k>occur</k>
-esiintyä (sattua), sattua, tapahtua</ar>
-<ar><k>occurrence</k>
-tapahtuma</ar>
-<ar><k>occurring at intervals</k>
-ajoittainen</ar>
-<ar><k>ocean</k>
-valtameri</ar>
-<ar><k>oceanography</k>
-merentutkimus</ar>
-<ar><k>ochre</k>
-okra</ar>
-<ar><k>octagon</k>
-kahdeksankulmio</ar>
-<ar><k>octagonal</k>
-kahdeksankulmainen</ar>
-<ar><k>octane</k>
-oktaani</ar>
-<ar><k>octave</k>
-oktaavi (mus)</ar>
-<ar><k>octopus</k>
-mustakala</ar>
-<ar><k>odd</k>
-eriskummallinen, kummallinen, omituinen, outo, pariton</ar>
-<ar><k>odd job</k>
-tilapäistyö</ar>
-<ar><k>odd number</k>
-pariton luku</ar>
-<ar><k>oddness</k>
-kummallisuus, outous</ar>
-<ar><k>odds</k>
-tasoitus (urh)</ar>
-<ar><k>odds and ends</k>
-lyhyttavarat</ar>
-<ar><k>odivinity</k>
-jumaluus</ar>
-<ar><k>odourless</k>
-hajuton</ar>
-<ar><k>of a certain kind</k>
-eräänlainen</ar>
-<ar><k>of age</k>
-täysiikäinen</ar>
-<ar><k>of all sizes</k>
-kaikenkokoinen</ar>
-<ar><k>of bad reputation</k>
-huonomaineinen</ar>
-<ar><k>of course</k>
-luonnollisesti, tietenkin, tietysti, tottakai</ar>
-<ar><k>of course not</k>
-tietenkään</ar>
-<ar><k>of current interest</k>
-ajankohtainen</ar>
-<ar><k>of different size</k>
-erisuuruinen</ar>
-<ar><k>of different sizes</k>
-erikokoinen</ar>
-<ar><k>of good reputation</k>
-hyvämaineinen</ar>
-<ar><k>of high rank</k>
-korkeaarvoinen</ar>
-<ar><k>of ice</k>
-jäinen</ar>
-<ar><k>of it</k>
-siitä</ar>
-<ar><k>of itself</k>
-itsestään</ar>
-<ar><k>of late</k>
-hiljakkoin, äskettäin</ar>
-<ar><k>of lower rank</k>
-alempiarvoinen</ar>
-<ar><k>of many kinds</k>
-monenlainen</ar>
-<ar><k>of no use</k>
-hyödytön</ar>
-<ar><k>of no value</k>
-arvoton</ar>
-<ar><k>of noble family</k>
-aatelinen, jalosukuinen</ar>
-<ar><k>of noble nature</k>
-jaloluontoinen</ar>
-<ar><k>of one's own accord</k>
-itsestään</ar>
-<ar><k>of pensionable age</k>
-eläkeikäinen</ar>
-<ar><k>of slender build</k>
-heikkorakenteinen</ar>
-<ar><k>of small means</k>
-vähävarainen</ar>
-<ar><k>of some sort</k>
-jonkinlainen</ar>
-<ar><k>of state</k>
-valtiollinen</ar>
-<ar><k>of that</k>
-siitä</ar>
-<ar><k>of that age</k>
-senikäinen</ar>
-<ar><k>of that kind</k>
-sellainen</ar>
-<ar><k>of that time</k>
-senaikuinen</ar>
-<ar><k>of the same kind</k>
-yhdenlainen, yhtäläinen</ar>
-<ar><k>of the same opinion</k>
-samanmielinen</ar>
-<ar><k>of them</k>
-heistä</ar>
-<ar><k>of this</k>
-tästä</ar>
-<ar><k>of this kind</k>
-tälläinen</ar>
-<ar><k>of three kinds</k>
-kolmenlainen</ar>
-<ar><k>of two kinds</k>
-kahdenlaatuinen</ar>
-<ar><k>of use</k>
-käyttökelpoinen</ar>
-<ar><k>of various sizes</k>
-erikokoinen</ar>
-<ar><k>of which</k>
-joiden</ar>
-<ar><k>of yesterday</k>
-eilinen</ar>
-<ar><k>off colour</k>
-heikottaa [puhek.]</ar>
-<ar><k>offal</k>
-jätteet (tähteet)</ar>
-<ar><k>offence</k>
-loukkaus, pahennus, rike, rikkomus</ar>
-<ar><k>offend</k>
-loukuta (solvuta), närkästyttää, vihoittaa</ar>
-<ar><k>offender</k>
-syyllinen</ar>
-<ar><k>offer</k>
-tarjous
-
-tarjota</ar>
-<ar><k>offer for sale</k>
-kaupata</ar>
-<ar><k>offhand</k>
-suoralta (kädeltä)</ar>
-<ar><k>office</k>
-konttori, toimisto, virasto, virka</ar>
-<ar><k>officers</k>
-päällystö</ar>
-<ar><k>official</k>
-virkamies
-
-virallinen</ar>
-<ar><k>official business</k>
-virkaasia</ar>
-<ar><k>official character</k>
-virallisuus</ar>
-<ar><k>official employee</k>
-virkailija</ar>
-<ar><k>official letter</k>
-virkakirje</ar>
-<ar><k>official matter</k>
-virkaasia</ar>
-<ar><k>official position</k>
-virkaasema</ar>
-<ar><k>official rank</k>
-virkaarvo</ar>
-<ar><k>offprint</k>
-eripainos</ar>
-<ar><k>offset</k>
-siirtoputki
-
-limittää
-
-laakapaino</ar>
-<ar><k>offset motor</k>
-limitysmoottori</ar>
-<ar><k>offside</k>
-paitsio (urh)</ar>
-<ar><k>often</k>
-useasti, usein</ar>
-<ar><k>often enough</k>
-useinkin</ar>
-<ar><k>oh dear</k>
-ai, voi</ar>
-<ar><k>oh no</k>
-eihän toki</ar>
-<ar><k>oh yes</k>
-tottakai</ar>
-<ar><k>oil</k>
-öljy</ar>
-<ar><k>oil paint</k>
-öljymaali</ar>
-<ar><k>oil well</k>
-öljylähde</ar>
-<ar><k>oil-cloth</k>
-vahakangas</ar>
-<ar><k>oil-fire central heating</k>
-öljylämmitys</ar>
-<ar><k>old</k>
-entisaikainen, muinainen, vanha</ar>
-<ar><k>old fool</k>
-höperö (vanha)</ar>
-<ar><k>old man</k>
-ukko, vanhus, äijä</ar>
-<ar><k>old people's home</k>
-vahainkoti</ar>
-<ar><k>old stock</k>
-jäännöserä</ar>
-<ar><k>old woman</k>
-akka, eukko, muija, mummo, ämmä</ar>
-<ar><k>olden times</k>
-entisaika</ar>
-<ar><k>olfactory nerve</k>
-hajuhermo</ar>
-<ar><k>olive</k>
-oliivi</ar>
-<ar><k>omelet</k>
-omletti</ar>
-<ar><k>omelette</k>
-munakas</ar>
-<ar><k>omen</k>
-enne, ennusmerkki</ar>
-<ar><k>ominous</k>
-enteellinen, pahaenteinen</ar>
-<ar><k>omlette</k>
-munakas</ar>
-<ar><k>on Thursdays</k>
-torstaisin</ar>
-<ar><k>on a visit</k>
-kyläillä, vieraisilla</ar>
-<ar><k>on account of</k>
-johdosta (jnk), varten, vuoksi (jnk)</ar>
-<ar><k>on bad terms</k>
-epäsopuinen</ar>
-<ar><k>on behalf of</k>
-vuoksi (puolesta)</ar>
-<ar><k>on credit</k>
-velaksi</ar>
-<ar><k>on foot</k>
-jalan, jalkaisin, jalkapatikassa</ar>
-<ar><k>on hand</k>
-esillä, saatavissa</ar>
-<ar><k>on heat</k>
-juoksuaika (koira)</ar>
-<ar><k>on no account</k>
-ei suinkaan</ar>
-<ar><k>on offer</k>
-tarjolla</ar>
-<ar><k>on one side</k>
-kallellaan</ar>
-<ar><k>on one's back</k>
-selällään</ar>
-<ar><k>on one's feet</k>
-olla jalkeilla</ar>
-<ar><k>on one's shoulders</k>
-harteilla</ar>
-<ar><k>on purpose</k>
-tahallaan</ar>
-<ar><k>on sundays</k>
-pyhäisin, sunnuntaisin</ar>
-<ar><k>on the contrary</k>
-päinvastoin</ar>
-<ar><k>on the left</k>
-vasemmalla</ar>
-<ar><k>on the make</k>
-rikollisissa puuhissa [puhek.]</ar>
-<ar><k>on the move</k>
-liikkeellä</ar>
-<ar><k>on the penalty bench</k>
-jäähyllä (urh)</ar>
-<ar><k>on the port side</k>
-vasemmalla (mer)</ar>
-<ar><k>on the side</k>
-sivulla, sivussa</ar>
-<ar><k>on the whole</k>
-ylipäänsä</ar>
-<ar><k>on top of</k>
-jnk päälle, päällä (jnk -)</ar>
-<ar><k>on view</k>
-esillä (nähtävänä)</ar>
-<ar><k>on week-days</k>
-arkisin</ar>
-<ar><k>on-time</k>
-ajallaan</ar>
-<ar><k>on/off switch</k>
-virtakytkin</ar>
-<ar><k>once more</k>
-jälleen, taas (kerta vielä), taaskin, uudelleen</ar>
-<ar><k>once-and-for-all</k>
-kertakaikkinen</ar>
-<ar><k>one after another</k>
-jäljekkäin, peräkkäin</ar>
-<ar><k>one and a half</k>
-puolitoista</ar>
-<ar><k>one at a time</k>
-yksitellen</ar>
-<ar><k>one by one</k>
-yksitellen</ar>
-<ar><k>one of the boys</k>
-mukava poika [puhek.]</ar>
-<ar><k>one of them</k>
-heikäläinen</ar>
-<ar><k>one of us</k>
-meikäläinen</ar>
-<ar><k>one of you</k>
-teikäläinen</ar>
-<ar><k>one of your people</k>
-teikäläinen</ar>
-<ar><k>one on top of another</k>
-päällekkäin</ar>
-<ar><k>one or the other</k>
-jompikumpi</ar>
-<ar><k>one too many</k>
-yksi ryyppy liikaa [puhek.]</ar>
-<ar><k>one way switch</k>
-kytkin</ar>
-<ar><k>one-sided</k>
-yksipuolinen</ar>
-<ar><k>one-way</k>
-yksisuuntainen, yksisuunta-</ar>
-<ar><k>onion</k>
-sipuli</ar>
-<ar><k>onlooker</k>
-katselija</ar>
-<ar><k>only</k>
-ainoa, ainoastaan, pelkästään, suinkin (vain), vain, vielä (lisäksi), yksi (ainoa)</ar>
-<ar><k>only just</k>
-töintuskin</ar>
-<ar><k>only son</k>
-ainoa poika</ar>
-<ar><k>onset voltage</k>
-varausjännite</ar>
-<ar><k>ooze</k>
-kihota, tihkua</ar>
-<ar><k>ooze out</k>
-herua (tihkua)</ar>
-<ar><k>opal</k>
-opaali</ar>
-<ar><k>open</k>
-aava, aloittaa, aukaista, aukea, avata, lakea (aava)
-
-auki, avoin, avonainen, julkinen</ar>
-<ar><k>open circuit</k>
-avoin piiri</ar>
-<ar><k>open joint</k>
-avosauma</ar>
-<ar><k>open lake</k>
-järvenselkä</ar>
-<ar><k>open place</k>
-aukeama, aukio</ar>
-<ar><k>open rebellion</k>
-ilmikapina</ar>
-<ar><k>open sandwich</k>
-voileipä</ar>
-<ar><k>open sea</k>
-avomeri, ulappa</ar>
-<ar><k>open water</k>
-avovesi</ar>
-<ar><k>open web girder</k>
-avouumapalkki</ar>
-<ar><k>opening</k>
-aukko, avaus, suu (aukko)</ar>
-<ar><k>opening address</k>
-alkajaispuhe</ar>
-<ar><k>opening ceremony</k>
-alkajaiset, avajaiset</ar>
-<ar><k>opening speaker</k>
-alustaja</ar>
-<ar><k>openly</k>
-avoimesti</ar>
-<ar><k>opera</k>
-ooppera</ar>
-<ar><k>operate</k>
-käyttää, toimia, leikata (lääk)</ar>
-<ar><k>operation</k>
-käyttö, leikkaus (lääk), toiminta</ar>
-<ar><k>opinion</k>
-arvelu, mielipide</ar>
-<ar><k>opium</k>
-oopiumi</ar>
-<ar><k>opponent</k>
-vastapelaaja, vastustaja</ar>
-<ar><k>opportunity</k>
-tilaisuus</ar>
-<ar><k>oppose</k>
-vastustaa</ar>
-<ar><k>opposite</k>
-vastakkainen, vastapäinen, päinvastainen</ar>
-<ar><k>opposite each other</k>
-vastakkain</ar>
-<ar><k>opposite of</k>
-vastakohta</ar>
-<ar><k>opposite side</k>
-vastapuoli</ar>
-<ar><k>opposition</k>
-oppositio, vastarinta, vastustus</ar>
-<ar><k>oppress</k>
-ahdistaa, sortaa</ar>
-<ar><k>oppression</k>
-ahdistus</ar>
-<ar><k>oppressor</k>
-sortaja</ar>
-<ar><k>optical</k>
-optinen</ar>
-<ar><k>optical illusion</k>
-harhanäky</ar>
-<ar><k>optical path</k>
-optinen rata</ar>
-<ar><k>optical phenomenon</k>
-valoilmiö</ar>
-<ar><k>optician</k>
-optikko</ar>
-<ar><k>optics</k>
-optiikka, valooppi</ar>
-<ar><k>optimist</k>
-optimisti</ar>
-<ar><k>optimistic</k>
-optimistinen</ar>
-<ar><k>optimum</k>
-optimi, paras, edullisin</ar>
-<ar><k>option</k>
-valinnanvara, vaihtoehto</ar>
-<ar><k>optional</k>
-valinnainen, vapaavalintainen</ar>
-<ar><k>or else</k>
-muuten</ar>
-<ar><k>oral</k>
-suullinen</ar>
-<ar><k>orally</k>
-suullisesti</ar>
-<ar><k>orang-outang</k>
-oranki (zo)</ar>
-<ar><k>orange</k>
-appelsiini</ar>
-<ar><k>orange-peel</k>
-appelsiininkuori, pomeranssikuori</ar>
-<ar><k>orchard</k>
-hedelmäpuutarha</ar>
-<ar><k>orchestra</k>
-orkesteri, soittokunta</ar>
-<ar><k>orchestral conductor</k>
-kapellimestari</ar>
-<ar><k>orchid</k>
-kämmekkä (bot), orkidea</ar>
-<ar><k>ordeal</k>
-koettelmus</ar>
-<ar><k>order</k>
-tilaus
-
-järjestys, kunto (tila), käsky, lahko (luonn), tilaus
-
-tilata, komentaa, käskeä, määrätä</ar>
-<ar><k>order about</k>
-komennella</ar>
-<ar><k>order for payment</k>
-maksumääräys</ar>
-<ar><k>order of importance</k>
-arvojärjestys</ar>
-<ar><k>orderly</k>
-lähetti (sot)
-
-järjestyksellinen</ar>
-<ar><k>ordinal</k>
-järjestyluku</ar>
-<ar><k>ordinary</k>
-tavallinen</ar>
-<ar><k>organ</k>
-elin, urut</ar>
-<ar><k>organ music</k>
-urkujensoitto</ar>
-<ar><k>organ of smell</k>
-hajuelin</ar>
-<ar><k>organic</k>
-elimellinen, elollinen, orgaaninen</ar>
-<ar><k>organism</k>
-elimistö</ar>
-<ar><k>organist</k>
-urkujensoittaja, urkuri</ar>
-<ar><k>organization chart</k>
-organisaatiokaavio</ar>
-<ar><k>organize</k>
-järjestellä, järjestyä, järjestäytyä</ar>
-<ar><k>organized</k>
-järjestynyt</ar>
-<ar><k>organizer</k>
-järjestelijä, järjestäjä</ar>
-<ar><k>organizing</k>
-järjestely</ar>
-<ar><k>orgasm</k>
-eljö</ar>
-<ar><k>orient</k>
-itämaat</ar>
-<ar><k>oriental</k>
-itämaalainen
-
-itämainen</ar>
-<ar><k>orienteer</k>
-suunnistaa (urh)</ar>
-<ar><k>orienteering</k>
-suunnistus (urh)</ar>
-<ar><k>origin</k>
-alku (synty), alku-, alkuperä, syntyperä</ar>
-<ar><k>original</k>
-originaali, kopiointikohde
-
-alkuperäinen, omaperäinen</ar>
-<ar><k>original form</k>
-kantamuoto</ar>
-<ar><k>original state</k>
-alkutila</ar>
-<ar><k>originality</k>
-alkuperäisyys, omaperäisyys, omintakeisuus</ar>
-<ar><k>originally</k>
-alkuaan, alkuperäisesti</ar>
-<ar><k>originator</k>
-aiheuttaja, alkaja, alkuunpanija</ar>
-<ar><k>ornament</k>
-koriste, koristus, koru</ar>
-<ar><k>ornithologist</k>
-lintutieteilijä</ar>
-<ar><k>ornithology</k>
-lintutiede</ar>
-<ar><k>orphan</k>
-orpo</ar>
-<ar><k>orphanage</k>
-orpokoti</ar>
-<ar><k>orthodox</k>
-oikeaoppinen</ar>
-<ar><k>oscillate</k>
-heilahdella (fys)</ar>
-<ar><k>osier</k>
-paju</ar>
-<ar><k>osprey</k>
-kalasääski</ar>
-<ar><k>ostensible</k>
-näennäinen</ar>
-<ar><k>ostentation</k>
-komeilu, koreilu</ar>
-<ar><k>ostrich</k>
-strutsi (zo)</ar>
-<ar><k>otherwise</k>
-muulla tavalla, muuten, toisin</ar>
-<ar><k>otter</k>
-saukko</ar>
-<ar><k>ought to</k>
-pitäisi</ar>
-<ar><k>ounce</k>
-unssi</ar>
-<ar><k>ourselves</k>
-itse (pron)</ar>
-<ar><k>oust</k>
-syrjäyttää</ar>
-<ar><k>out in the open</k>
-helmassa</ar>
-<ar><k>out of focus</k>
-epäterävä</ar>
-<ar><k>out of malice</k>
-ilkeyksissään</ar>
-<ar><k>out of one's mind</k>
-hourupäinen</ar>
-<ar><k>out of order</k>
-epäkuntoinen</ar>
-<ar><k>out of proportion</k>
-epäsuhtainen, suhteeton</ar>
-<ar><k>out of reach</k>
-saavuttamaton</ar>
-<ar><k>out of spite</k>
-ilkeyksissään</ar>
-<ar><k>out of step</k>
-epätahti</ar>
-<ar><k>out-flank</k>
-koukata (sot)</ar>
-<ar><k>out-of-the-way</k>
-syrjäinen</ar>
-<ar><k>out-of-the-way location</k>
-syrjäisyys</ar>
-<ar><k>out-patient department</k>
-poliklinikka</ar>
-<ar><k>outboard motor</k>
-perämoottori</ar>
-<ar><k>outburst</k>
-purkaus (raju)</ar>
-<ar><k>outcome</k>
-tulos</ar>
-<ar><k>outdoor activities</k>
-ulkoilu</ar>
-<ar><k>outdoor work</k>
-ulkotyö</ar>
-<ar><k>outer</k>
-ulko- (yhd), ulkopuolinen</ar>
-<ar><k>outfit</k>
-laitteisto, tamineet, varuste</ar>
-<ar><k>outing</k>
-retkeily, huviretki</ar>
-<ar><k>outlet</k>
-ulosotto (sähk), valopiste (sähk), pistorasia</ar>
-<ar><k>outline</k>
-hahmo (ääriviivat)
-
-hahmotella, kaavailla, suunnitella</ar>
-<ar><k>outlook</k>
-näkemys, näköala (kuv)</ar>
-<ar><k>outlook on life</k>
-elämänkatsomus</ar>
-<ar><k>outpost</k>
-etuvartio</ar>
-<ar><k>output</k>
-teho (koneen), tuotanto</ar>
-<ar><k>output code</k>
-toisiokomponentin tunnus</ar>
-<ar><k>output device</k>
-luovutus-apulaitteet</ar>
-<ar><k>output signal</k>
-lähtösignaali</ar>
-<ar><k>output transport</k>
-luovutuskuljetin</ar>
-<ar><k>output tray</k>
-luovutusalusta</ar>
-<ar><k>outrage</k>
-ilkivalta, tihutyö, ilkivaltaisuus</ar>
-<ar><k>outrageous</k>
-ilkivaltainen</ar>
-<ar><k>outset</k>
-alku</ar>
-<ar><k>outside</k>
-ulkopuolinen, ulkopuoli</ar>
-<ar><k>outsider</k>
-sivullinen, ulkopuolinen</ar>
-<ar><k>outspoken</k>
-suorapuheinen</ar>
-<ar><k>outstanding</k>
-huomattava (etevä), merkittävä</ar>
-<ar><k>outstanding man</k>
-merkkimies</ar>
-<ar><k>outstanding work</k>
-merkkiteos</ar>
-<ar><k>outward</k>
-ulkonainen</ar>
-<ar><k>outwards</k>
-ulospäin</ar>
-<ar><k>oval</k>
-pitkänpyöreä, soikea, soikio</ar>
-<ar><k>ovary</k>
-munasarja</ar>
-<ar><k>oven</k>
-paistinuuni</ar>
-<ar><k>over and above</k>
-lisäksi kaupanpäällisiksi [puhek.]</ar>
-<ar><k>over and over again</k>
-uudestaan</ar>
-<ar><k>over bid</k>
-tarjota enemmän kuin [puhek.]</ar>
-<ar><k>over bold</k>
-uhkarohkea [puhek.]</ar>
-<ar><k>over brimming</k>
-ylitsevuotava [puhek.]</ar>
-<ar><k>over busy</k>
-tulinen kiire [puhek.]</ar>
-<ar><k>over buy</k>
-ostaa liikaa [puhek.]</ar>
-<ar><k>over coat</k>
-päällystakki [puhek.]</ar>
-<ar><k>over confident</k>
-ylen itsevarma [puhek.]</ar>
-<ar><k>over eat</k>
-ylensyödä [puhek.]</ar>
-<ar><k>over hear</k>
-sattua kuulemaan [puhek.]</ar>
-<ar><k>over laden</k>
-ylikuormitettu [puhek.]</ar>
-<ar><k>over land</k>
-maitse [puhek.]</ar>
-<ar><k>over leaf</k>
-seuraavalla sivulla [puhek.]</ar>
-<ar><k>over load</k>
-ylikuormittaa [puhek.]</ar>
-<ar><k>over modest</k>
-turhankaino [puhek.]</ar>
-<ar><k>over sensitive</k>
-yliherkkä [puhek.]</ar>
-<ar><k>over shadow</k>
-heittää varjonsa [puhek.]</ar>
-<ar><k>over sleep</k>
-nukkua yli [puhek.]</ar>
-<ar><k>over spend</k>
-kuluttaa liikaa [puhek.]</ar>
-<ar><k>over statement</k>
-liioitteleva ilmaus [puhek.]</ar>
-<ar><k>over step the mark</k>
-mennä liian pitkälle [puhek.]</ar>
-<ar><k>over there</k>
-tuolla, tuonne</ar>
-<ar><k>over time</k>
-ylityö</ar>
-<ar><k>over-</k>
-iki- (ylen)</ar>
-<ar><k>over-due</k>
-myöhässä</ar>
-<ar><k>over-eating</k>
-ylensyöminen</ar>
-<ar><k>over-exertion</k>
-liikarasitus</ar>
-<ar><k>over-production</k>
-liikatuotanto</ar>
-<ar><k>over-sensitive</k>
-liikaherkkä</ar>
-<ar><k>overall</k>
-työtakki
-
-kokonais-</ar>
-<ar><k>overall length</k>
-kokonaispituus</ar>
-<ar><k>overall view</k>
-yleiskuva</ar>
-<ar><k>overalls</k>
-haalari
-
-haalari</ar>
-<ar><k>overbearing</k>
-kopea</ar>
-<ar><k>overcoat</k>
-päällystakki</ar>
-<ar><k>overdevelopment</k>
-ylikehitys</ar>
-<ar><k>overdo</k>
-liioitella</ar>
-<ar><k>overdraft</k>
-pankkitilin ylitys (tilin)</ar>
-<ar><k>overdue</k>
-erääntynyt</ar>
-<ar><k>overestimate</k>
-yliarvioida</ar>
-<ar><k>overestimation</k>
-yliarviointi</ar>
-<ar><k>overflow pipe</k>
-ylivuotoputki</ar>
-<ar><k>overhaul</k>
-kunnostaa</ar>
-<ar><k>overhead line</k>
-ilmajohto</ar>
-<ar><k>overheads</k>
-kustannukset</ar>
-<ar><k>overheating</k>
-ylikuumeneminen</ar>
-<ar><k>overindulgence</k>
-hemmottelu</ar>
-<ar><k>overjoyed</k>
-ikiihastunut</ar>
-<ar><k>overlapping tile</k>
-limitiili</ar>
-<ar><k>overload</k>
-liikakuormitus, ylikuormitus
-
-ylikuormittaa</ar>
-<ar><k>overloading</k>
-ylikuormitus</ar>
-<ar><k>overlook</k>
-sivuuttaa</ar>
-<ar><k>overlord</k>
-yliherra</ar>
-<ar><k>overparticular</k>
-turhantarkka</ar>
-<ar><k>overpayment</k>
-liikamaksu</ar>
-<ar><k>overpopulation</k>
-ylikansoitus</ar>
-<ar><k>overpowering</k>
-ylivoimainen</ar>
-<ar><k>overrate</k>
-yliarvioida</ar>
-<ar><k>override</k>
-ohitus (automaattisen ohjausjärjes.)</ar>
-<ar><k>overseas</k>
-merentakainen</ar>
-<ar><k>overseer</k>
-työnjohtaja, vouti</ar>
-<ar><k>overshoe</k>
-päällyskenkä</ar>
-<ar><k>oversight</k>
-epähuomio, erehdys, huomaamattomuus</ar>
-<ar><k>oversize</k>
-normaalia suurempi, suur-</ar>
-<ar><k>overstrain</k>
-liikarasitus</ar>
-<ar><k>overtake</k>
-ohittaa (auto)</ar>
-<ar><k>overtaking</k>
-ohitus</ar>
-<ar><k>overthrow</k>
-kumous
-
-kukistaa (kaataa), mullistaa</ar>
-<ar><k>overtime work</k>
-ylityö</ar>
-<ar><k>overtravel</k>
-jälkiliike</ar>
-<ar><k>overture</k>
-alkusoitto</ar>
-<ar><k>overturn</k>
-kaataa, kaatua</ar>
-<ar><k>overturned</k>
-kumollaan</ar>
-<ar><k>overweight</k>
-liikapaino, ylipainoinen</ar>
-<ar><k>ovule</k>
-siemen (bot)</ar>
-<ar><k>owing to</k>
-johdosta (jnk)</ar>
-<ar><k>owl</k>
-pöllö</ar>
-<ar><k>own</k>
-omata, omistaa</ar>
-<ar><k>owner</k>
-haltija, omistaja</ar>
-<ar><k>oxide</k>
-oksidi</ar>
-<ar><k>oxidization</k>
-hapetus</ar>
-<ar><k>oxidize</k>
-hapettaa (kem)</ar>
-<ar><k>oyster</k>
-osteri</ar>
-<ar><k>ozone blower</k>
-otsonipuhallin</ar>
-<ar><k>pace</k>
-askel, tahti (nopeus)
-
-astella</ar>
-<ar><k>pack</k>
-pakka
-
-latoa (päällekkäin), pakata, sulloa, sulloutua, tiivistää (tekn)</ar>
-<ar><k>pack full</k>
-ahtaa (täyteen)</ar>
-<ar><k>pack of cards</k>
-korttipakka</ar>
-<ar><k>pack of wolves</k>
-susilauma</ar>
-<ar><k>pack-ice</k>
-ahtojää</ar>
-<ar><k>package</k>
-kolli, käärö (paketti), pakkaus, paketti</ar>
-<ar><k>packet</k>
-paketti</ar>
-<ar><k>packing</k>
-pakkaus, tiiviste, tiivistys (tekn)</ar>
-<ar><k>pad</k>
-pehmike
-
-pehmustaa</ar>
-<ar><k>padding</k>
-pehmuste, toppaus, kiilaus</ar>
-<ar><k>paddle</k>
-lapa, siipi, mela
-
-meloa</ar>
-<ar><k>paddle wheel</k>
-tasain</ar>
-<ar><k>paddock</k>
-laidun (pieni)</ar>
-<ar><k>padlock</k>
-etulukko, munalukko, riippulukko</ar>
-<ar><k>pads</k>
-tukikiilat</ar>
-<ar><k>page</k>
-hovipoika, sivu (kirjan)</ar>
-<ar><k>page boy</k>
-hotellipoika</ar>
-<ar><k>pail</k>
-kiulu, sanko, ämpäri</ar>
-<ar><k>pain in the neck</k>
-hermoille käyvä ihminen [puhek.]</ar>
-<ar><k>painful</k>
-piinallinen, tuskallinen</ar>
-<ar><k>painless</k>
-kivuton, tuskaton</ar>
-<ar><k>painstaking</k>
-uuttera</ar>
-<ar><k>paint</k>
-maalata
-
-maali</ar>
-<ar><k>painter</k>
-maalari, taidemaalari</ar>
-<ar><k>painting</k>
-taulu (maalaus)</ar>
-<ar><k>pair</k>
-pari</ar>
-<ar><k>pair of trousers</k>
-housut</ar>
-<ar><k>pal</k>
-kaveri, toveri</ar>
-<ar><k>palace</k>
-palatsi</ar>
-<ar><k>palace chapel</k>
-linnankirkko</ar>
-<ar><k>palatable</k>
-maukas</ar>
-<ar><k>palatial</k>
-linnamainen</ar>
-<ar><k>pale</k>
-hailakka, kalpea, kalvakka, kelmeä, vaalea, valju (kalpea)</ar>
-<ar><k>pale grey</k>
-hallava</ar>
-<ar><k>paleness</k>
-kalpeus, vaalenus</ar>
-<ar><k>paling</k>
-aita (pysty)</ar>
-<ar><k>pallbearer</k>
-kantaja (hautajaisissa)</ar>
-<ar><k>pallete</k>
-laastilauts</ar>
-<ar><k>pallid</k>
-kalpea, valju (kalpea)</ar>
-<ar><k>pallor</k>
-kalpeus</ar>
-<ar><k>palm</k>
-kämmen, palmu</ar>
-<ar><k>palmist</k>
-kädestäkatsoja</ar>
-<ar><k>palmistry</k>
-kädestäkatsominen</ar>
-<ar><k>pamper</k>
-hemmotella, lellitellä</ar>
-<ar><k>pampering</k>
-lellittely</ar>
-<ar><k>pamphlet</k>
-pamfletti</ar>
-<ar><k>pan</k>
-alusta, allas, pannu</ar>
-<ar><k>pancake</k>
-räiskäle</ar>
-<ar><k>pancreas</k>
-haima (anat)</ar>
-<ar><k>pane</k>
-ruutu (ikkuna- ym)</ar>
-<ar><k>pane of glass</k>
-lasiruutu</ar>
-<ar><k>panel radiator</k>
-levypatteri</ar>
-<ar><k>panic</k>
-pakokauhu, paniikki</ar>
-<ar><k>panic stop</k>
-äkkipysäytys</ar>
-<ar><k>panning for gold</k>
-huuhdella (kullan)</ar>
-<ar><k>pansy</k>
-orvokki (puutarha ym)</ar>
-<ar><k>pant</k>
-huohottaa, läähättää</ar>
-<ar><k>panther</k>
-pantteri</ar>
-<ar><k>panti-hose</k>
-sukkahousut</ar>
-<ar><k>panties</k>
-pikkuhousut</ar>
-<ar><k>panting</k>
-läähätys</ar>
-<ar><k>pantomime</k>
-elenäytelmä</ar>
-<ar><k>pantry</k>
-ruokakomero</ar>
-<ar><k>paper board</k>
-kartonki</ar>
-<ar><k>paper clip</k>
-paperiliitin, liitin</ar>
-<ar><k>paper feed</k>
-paperinsyöttö</ar>
-<ar><k>paper money</k>
-seteliraha</ar>
-<ar><k>paper tray</k>
-paperialusta</ar>
-<ar><k>paper-perforator</k>
-lävistin</ar>
-<ar><k>paperhanger</k>
-tapetoija</ar>
-<ar><k>paperweight</k>
-kirjepainin</ar>
-<ar><k>parachute</k>
-laskuvarjo</ar>
-<ar><k>parade</k>
-komeilu, paraati
-
-komeilla, prameilla</ar>
-<ar><k>paradise</k>
-paratiisi</ar>
-<ar><k>paraffin</k>
-parafiini</ar>
-<ar><k>paragraph</k>
-kappale (tekstissä), lainkohta</ar>
-<ar><k>parallel</k>
-yhdensuuntainen, rinnakkainen</ar>
-<ar><k>paralyse</k>
-halvata, lamauttaa</ar>
-<ar><k>paralysed</k>
-halvaantunut</ar>
-<ar><k>paranoiac</k>
-vainohullu</ar>
-<ar><k>parapet</k>
-kaide (sillan), rintamuuri</ar>
-<ar><k>parasite</k>
-loinen</ar>
-<ar><k>parcel</k>
-käärö (paketti), paketti, postipaketti</ar>
-<ar><k>parchment</k>
-pergamentti</ar>
-<ar><k>pardonable</k>
-anteeksiannettava</ar>
-<ar><k>pardoner</k>
-anekauppias</ar>
-<ar><k>parellel</k>
-rinnakkainen</ar>
-<ar><k>parentage</k>
-sukuperä</ar>
-<ar><k>parenthesis</k>
-sulkumerkki</ar>
-<ar><k>parents</k>
-vanhemmat</ar>
-<ar><k>pariotic</k>
-isänmaallinen</ar>
-<ar><k>parish</k>
-pitäjä</ar>
-<ar><k>parity</k>
-tasa (arvoisuus)</ar>
-<ar><k>park</k>
-puisto
-
-pysäköidä</ar>
-<ar><k>park attendant</k>
-puistonvartija</ar>
-<ar><k>park keeper</k>
-kaitsija (puiston)</ar>
-<ar><k>park-keeper</k>
-puistonvartija</ar>
-<ar><k>parking</k>
-pysäköinti</ar>
-<ar><k>parliament</k>
-eduskunta</ar>
-<ar><k>parliament building</k>
-eduskuntatalo</ar>
-<ar><k>parodoxical</k>
-paradoksaalinen</ar>
-<ar><k>parody</k>
-ivamukailu, parodia</ar>
-<ar><k>parquet</k>
-parketti</ar>
-<ar><k>parrot</k>
-papukaija</ar>
-<ar><k>parry</k>
-väistää</ar>
-<ar><k>parsley</k>
-persilja</ar>
-<ar><k>parsnip</k>
-palsternakka</ar>
-<ar><k>parson</k>
-kirkkoherra, pastori</ar>
-<ar><k>part</k>
-osa, osuus, rooli, lisäosa, lisälaite, lisä-, 
-
-eritä, erota, erottaa</ar>
-<ar><k>part payment</k>
-osamaksu</ar>
-<ar><k>part-time</k>
-osaaika</ar>
-<ar><k>partial</k>
-osittainen, puolueellinen, osa-, vajaa</ar>
-<ar><k>partial deafness</k>
-huonokuuloisuus</ar>
-<ar><k>partiality</k>
-puolueellisuus</ar>
-<ar><k>partially</k>
-osittain</ar>
-<ar><k>participate</k>
-osallistua</ar>
-<ar><k>participation</k>
-osallistuminen, osanotto</ar>
-<ar><k>participator</k>
-osanottoja</ar>
-<ar><k>particle</k>
-aineosanen, apusana (kiel), hitunen, hiukkanen, osanen</ar>
-<ar><k>particle board</k>
-lastuvillalevy</ar>
-<ar><k>particular</k>
-erikoisseikka, erityinen</ar>
-<ar><k>particularly</k>
-erikoisesti, eritoten, olletikin, semminkin, vallankin, varsinkaan, varsinkin</ar>
-<ar><k>parting</k>
-ero, erottaminen, jakaus, jäähyväiset</ar>
-<ar><k>parting farewell</k>
-hyväjättö</ar>
-<ar><k>partition</k>
-lohkoa, väliseinä</ar>
-<ar><k>partly</k>
-osittain</ar>
-<ar><k>partner</k>
-liikekumppani, osakas, kumppani</ar>
-<ar><k>partnership</k>
-osakkuus</ar>
-<ar><k>partridge</k>
-peltokana</ar>
-<ar><k>party</k>
-hipat, kemut, osallinen, osapuoli, puolue, huviseura, seurue</ar>
-<ar><k>party concerned</k>
-asianomainen</ar>
-<ar><k>party congress</k>
-puoluekokous</ar>
-<ar><k>pass</k>
-passi, syöttö (urh)
-
-kulua (ajasta), kuluttaa (aikaa), ohittaa, viettää (kuluttaa), mennä ohi</ar>
-<ar><k>pass a dividend</k>
-jättää osinko maksamatta [puhek.]</ar>
-<ar><k>pass away</k>
-kuolla</ar>
-<ar><k>pass by</k>
-sivuuttaa, kulkea ohi</ar>
-<ar><k>pass for</k>
-tehdä jnk virkaa</ar>
-<ar><k>pass judgement</k>
-langettaa (tuomio)</ar>
-<ar><k>pass on</k>
-antaa (edelleen), edetä, antaa seuraavalle</ar>
-<ar><k>pass out</k>
-pyörtyä</ar>
-<ar><k>pass round</k>
-panna kiertämään</ar>
-<ar><k>pass the buck</k>
-vierittää vastuu jkn niskoille [puhek.]</ar>
-<ar><k>pass through</k>
-läpikäydä</ar>
-<ar><k>pass up</k>
-päästää käsistään</ar>
-<ar><k>passable</k>
-auttava (joltinen), kohtalainen, laatuunkäypä, välttävä</ar>
-<ar><k>passage</k>
-kulkuväylä, käytävä, lainkohta, läpikulku, merimatka, välikkö, väylä, ylikulku</ar>
-<ar><k>passage through</k>
-läpipääsy</ar>
-<ar><k>passenger</k>
-matkustaja (juna- laiva- ym)</ar>
-<ar><k>passer-by</k>
-ohikulkija, sivukulkija</ar>
-<ar><k>passing</k>
-ohimenevä</ar>
-<ar><k>passionate</k>
-intohimoinen, kiihkeä</ar>
-<ar><k>passionately</k>
-intohimoisesti, tulisesti</ar>
-<ar><k>passive</k>
-passiivi, passiivinen</ar>
-<ar><k>passport</k>
-passi</ar>
-<ar><k>past</k>
-entisyys, mennyt (aika), ohi, sivuitse, menneisyys</ar>
-<ar><k>past help</k>
-auttamaton</ar>
-<ar><k>past one's prime</k>
-elähtänyt</ar>
-<ar><k>past tense</k>
-imperfekti</ar>
-<ar><k>paste</k>
-liisteri, tahdas, tahna
-
-liisteröidä</ar>
-<ar><k>paste-up</k>
-asemointiarkki</ar>
-<ar><k>pastel</k>
-piirustusliitu
-
-pastelli</ar>
-<ar><k>pasteurize</k>
-pastöroida</ar>
-<ar><k>pastime</k>
-ajankulu</ar>
-<ar><k>pastor</k>
-pappi, pastori</ar>
-<ar><k>pastries</k>
-leivonnaiset</ar>
-<ar><k>pastry</k>
-leivos, piirakka, piiras</ar>
-<ar><k>pastry board</k>
-leivinlauta</ar>
-<ar><k>pasturage</k>
-laidun</ar>
-<ar><k>pasture</k>
-laiduntaa</ar>
-<ar><k>pat</k>
-nokare, taputus</ar>
-<ar><k>pat of butter</k>
-voikimpale</ar>
-<ar><k>patch</k>
-laikku, lappu (paikka), tilkku
-
-paikata</ar>
-<ar><k>patch generator</k>
-tarkegeneraattori</ar>
-<ar><k>patch of land</k>
-maatilkku</ar>
-<ar><k>patent</k>
-patentti</ar>
-<ar><k>patent leather</k>
-kiiltonahka</ar>
-<ar><k>paternal</k>
-isällinen</ar>
-<ar><k>paternity</k>
-istuisyys</ar>
-<ar><k>path</k>
-polku, rata</ar>
-<ar><k>pathless</k>
-tietön</ar>
-<ar><k>pathologist</k>
-patologi</ar>
-<ar><k>pathology</k>
-patologia</ar>
-<ar><k>paticipant</k>
-osallinen</ar>
-<ar><k>patient</k>
-potilas
-
-kärsivällinen</ar>
-<ar><k>patio</k>
-takapiha</ar>
-<ar><k>patriot</k>
-isänmaanystävä</ar>
-<ar><k>patriotism</k>
-isänmaallisuus, isänmaanrakkaus</ar>
-<ar><k>patrol</k>
-partio (sot), vartio
-
-partioida</ar>
-<ar><k>patron</k>
-mesenaatti, suojelija</ar>
-<ar><k>patronize</k>
-suosia</ar>
-<ar><k>pattern</k>
-esikuva (malli), kaava, kuosi, kuviointi, malli</ar>
-<ar><k>patterned</k>
-kuviollinen</ar>
-<ar><k>patterned glass</k>
-kuviolasi</ar>
-<ar><k>pause</k>
-paussi, tauko</ar>
-<ar><k>pave</k>
-kivetä</ar>
-<ar><k>pavement</k>
-jalkakäytävä, katukäytävä, kiveys</ar>
-<ar><k>pavilion</k>
-paviljonki</ar>
-<ar><k>paving</k>
-kadunlasku, katukiveys, kiveys
-
-pihalaatoitus</ar>
-<ar><k>paving slab</k>
-pihalaatta</ar>
-<ar><k>paving stone</k>
-katukivi</ar>
-<ar><k>paw</k>
-tassu
-
-käpälä, lääppiä</ar>
-<ar><k>pawn</k>
-pantti
-
-pantata</ar>
-<ar><k>pay</k>
-lunastaa (vekseli), maksaa</ar>
-<ar><k>pay a short visit</k>
-käväistä</ar>
-<ar><k>pay court to</k>
-liehitellä</ar>
-<ar><k>pay for</k>
-kustantaa</ar>
-<ar><k>pay off</k>
-lopputili (antaa)</ar>
-<ar><k>pay the cost of</k>
-kustantaa</ar>
-<ar><k>pay through the nose</k>
-joutua maksamaan kohtuuttomasti [puhek.]</ar>
-<ar><k>pay-as-you-earn</k>
-ennakonpidätys (vero)</ar>
-<ar><k>pay-day</k>
-tilipäivä</ar>
-<ar><k>payable</k>
-erääntynyt</ar>
-<ar><k>paydesk</k>
-kassa</ar>
-<ar><k>paying</k>
-kannattava</ar>
-<ar><k>payload</k>
-hyötykuorma</ar>
-<ar><k>payment</k>
-maksu</ar>
-<ar><k>payment in kind</k>
-luontoisetu</ar>
-<ar><k>payment programme</k>
-maksuerätaulukko</ar>
-<ar><k>payoffice</k>
-kassa</ar>
-<ar><k>pea</k>
-herne</ar>
-<ar><k>pea-pod</k>
-hernenpalko</ar>
-<ar><k>peace of mind</k>
-mielenrauha</ar>
-<ar><k>peace treaty</k>
-rauhansopimus</ar>
-<ar><k>peaceable</k>
-sopuisa</ar>
-<ar><k>peaceful</k>
-rauhaisa, rauhallinen, rauhanomainen</ar>
-<ar><k>peach</k>
-persikka</ar>
-<ar><k>peacock</k>
-riikinkukko</ar>
-<ar><k>peak</k>
-huippu, lippa</ar>
-<ar><k>peak quotation</k>
-huippukurssi</ar>
-<ar><k>peaked cap</k>
-lippalakki</ar>
-<ar><k>peal of thunder</k>
-jyrähdys</ar>
-<ar><k>peanut</k>
-maapähkinä</ar>
-<ar><k>pear</k>
-päärynä</ar>
-<ar><k>pearl</k>
-helmi</ar>
-<ar><k>pearl barley</k>
-ohraryynit</ar>
-<ar><k>pearl-fishery</k>
-helmenpyynti</ar>
-<ar><k>peasant</k>
-maatyöläinen, talonpoika</ar>
-<ar><k>peat mull</k>
-turvemulta</ar>
-<ar><k>pebble</k>
-pikkukivi</ar>
-<ar><k>pebbles</k>
-singeli</ar>
-<ar><k>peck</k>
-nokkia</ar>
-<ar><k>peculiar</k>
-eriskummallinen, ominainen, outo</ar>
-<ar><k>peculiar characteristics</k>
-erikoisleima</ar>
-<ar><k>peculiarity</k>
-erikoisuus, merkillisyys</ar>
-<ar><k>pedagogic</k>
-kasvatusopillinen</ar>
-<ar><k>pedagogy</k>
-kasvatusoppi, pedagogiikka</ar>
-<ar><k>pedestal</k>
-jalusta</ar>
-<ar><k>pedestrian</k>
-jalankulkija
-
-jalankulkija</ar>
-<ar><k>pedestrian crossing</k>
-suojatie</ar>
-<ar><k>pediatrician</k>
-lastenlääkäri</ar>
-<ar><k>pedigree</k>
-jalorotuinen (koira ym)</ar>
-<ar><k>pedigree animal</k>
-rotueläin</ar>
-<ar><k>pedigree book</k>
-kantakirja</ar>
-<ar><k>pedlar</k>
-kulkukauppias</ar>
-<ar><k>peel</k>
-kuoria</ar>
-<ar><k>peel off</k>
-hilseillä, kesiä</ar>
-<ar><k>peep</k>
-kurkistaa, pilkistää, tirkistellä, tirkistää</ar>
-<ar><k>peer</k>
-kurkistaa, pälyillä, tirkistellä, tirkistää</ar>
-<ar><k>peevish</k>
-kärtyinen</ar>
-<ar><k>peformance</k>
-esitys (näytös)</ar>
-<ar><k>peg</k>
-nappula, pultti, pyykkipoika, vaarna</ar>
-<ar><k>pegasus</k>
-runoratsu</ar>
-<ar><k>pelican</k>
-pelikaani (zo)</ar>
-<ar><k>pelt with stones</k>
-kivittää</ar>
-<ar><k>pelvis</k>
-lantio</ar>
-<ar><k>pen</k>
-karsina, kynä</ar>
-<ar><k>pen-friend</k>
-kirjeentoveri</ar>
-<ar><k>pen-pal</k>
-kirjeentoveri</ar>
-<ar><k>penal</k>
-rangaistava</ar>
-<ar><k>penalty</k>
-sakko</ar>
-<ar><k>penalty point</k>
-virhepiste</ar>
-<ar><k>pencil</k>
-lyijykynä</ar>
-<ar><k>pendant</k>
-koru (riipus)</ar>
-<ar><k>pendulum</k>
-heiluri</ar>
-<ar><k>penetrate</k>
-imeytyä (tunkeutua)</ar>
-<ar><k>penetrating</k>
-läpitunkeva</ar>
-<ar><k>penguin</k>
-pingviini (zo)</ar>
-<ar><k>penholder</k>
-kynänvarsi</ar>
-<ar><k>penicillin</k>
-penisilliini</ar>
-<ar><k>peninsula</k>
-niemimaa</ar>
-<ar><k>penis</k>
-kalu (siitin), siitin</ar>
-<ar><k>penitence</k>
-katumus</ar>
-<ar><k>penknife</k>
-kynäveitsi</ar>
-<ar><k>penniless</k>
-rutiköyhä</ar>
-<ar><k>penny</k>
-penni</ar>
-<ar><k>pension</k>
-eläke</ar>
-<ar><k>pensioner</k>
-eläkeläinen</ar>
-<ar><k>pentagon</k>
-viisikulmio</ar>
-<ar><k>pentathlon</k>
-viisiottelu</ar>
-<ar><k>peony</k>
-pioni</ar>
-<ar><k>people</k>
-kansa, väki</ar>
-<ar><k>people of good family</k>
-herrasväki</ar>
-<ar><k>people on the loose</k>
-irtolaisväestö</ar>
-<ar><k>people's college</k>
-kansankorkeakoulu</ar>
-<ar><k>people's republic</k>
-kansantasavalta</ar>
-<ar><k>pepper</k>
-pippuri</ar>
-<ar><k>peppermint</k>
-piparminttu</ar>
-<ar><k>perambulator</k>
-lapsenvaunut</ar>
-<ar><k>perceive</k>
-aistia, havaita, huomata, oivaltaa</ar>
-<ar><k>percent</k>
-prosentti</ar>
-<ar><k>percentage</k>
-prosentti</ar>
-<ar><k>perceptible</k>
-huomattava, tuntuva</ar>
-<ar><k>perceptibly</k>
-huomattavasti, tuntuvasti</ar>
-<ar><k>perception</k>
-aistimus, havainto</ar>
-<ar><k>perceptive faculty</k>
-havaintokyky</ar>
-<ar><k>perch</k>
-istahtaa (lintu ym), istua (lintu)</ar>
-<ar><k>percussion cap</k>
-nalli</ar>
-<ar><k>percussion instrument</k>
-lyömäsoitin</ar>
-<ar><k>perfect</k>
-täydellistää
-
-perfekti, täydellinen, täydellinen, täysi (täydellinen)</ar>
-<ar><k>perfectly</k>
-aivan (täysin), kerrassaan, täydellisesti</ar>
-<ar><k>perfectness</k>
-täydellisyys</ar>
-<ar><k>perforated</k>
-reikäinen</ar>
-<ar><k>perforated brick</k>
-reikätiili</ar>
-<ar><k>perform</k>
-suorittaa, tehdä (temppuja), toimittaa</ar>
-<ar><k>performance</k>
-näytäntö, suoritus</ar>
-<ar><k>performer</k>
-esiintyjä</ar>
-<ar><k>performing</k>
-toimitus</ar>
-<ar><k>perfume</k>
-hajuvesi</ar>
-<ar><k>perhaps</k>
-ehkä, kai, kenties</ar>
-<ar><k>peril</k>
-vaara</ar>
-<ar><k>perilous</k>
-vaarallinen</ar>
-<ar><k>perimeter beam</k>
-kehäpalkki</ar>
-<ar><k>period</k>
-aikakausi, ajanjakso, kausi, lausejakso, opetustunti, piste (välimerkki)</ar>
-<ar><k>period of application</k>
-hakuaika</ar>
-<ar><k>period of decline</k>
-laskukausi</ar>
-<ar><k>period of life</k>
-ikäkausi</ar>
-<ar><k>period of notice</k>
-irtisanomisaika</ar>
-<ar><k>periodic</k>
-aikakautinen</ar>
-<ar><k>periodic maintenance</k>
-määräishuolto</ar>
-<ar><k>periodical</k>
-aikakauskirjalehti
-
-jaksoittainen</ar>
-<ar><k>periodically</k>
-jaksoittain</ar>
-<ar><k>periods</k>
-kuukautiset</ar>
-<ar><k>peripheral</k>
-kehällinen</ar>
-<ar><k>perish</k>
-menehtyä</ar>
-<ar><k>perishable</k>
-katoava</ar>
-<ar><k>perjured</k>
-valapattoinen</ar>
-<ar><k>perky</k>
-virkeä</ar>
-<ar><k>perm</k>
-kestokampaus</ar>
-<ar><k>permanence</k>
-jatkuvuus</ar>
-<ar><k>permanent</k>
-pysyvä, vakinainen (pysyvä), vakituinen</ar>
-<ar><k>permanent memory</k>
-kiinteäsisältöinen lukumuisti</ar>
-<ar><k>permanent wave</k>
-kestokampaus</ar>
-<ar><k>permissible</k>
-luvallinen, sallittu</ar>
-<ar><k>permissible load</k>
-sallittu kuormitus</ar>
-<ar><k>permission</k>
-lupa, suostumus</ar>
-<ar><k>permit</k>
-lupa
-
-sallia</ar>
-<ar><k>permitted</k>
-sallittu</ar>
-<ar><k>perpendicular</k>
-kohtisuora</ar>
-<ar><k>perpetual</k>
-ainainen, alinomainen, alituinen, ikuinen</ar>
-<ar><k>perpetual motion</k>
-ikiliikkuja</ar>
-<ar><k>perpetually</k>
-alinomaa</ar>
-<ar><k>perpetuate</k>
-ikuistaa</ar>
-<ar><k>perplex</k>
-hämmäänyttää</ar>
-<ar><k>perplexed</k>
-ymmällä</ar>
-<ar><k>perplexity</k>
-hämmennys</ar>
-<ar><k>perseverance</k>
-sisu, sitkeys</ar>
-<ar><k>persevering</k>
-hellittämätön</ar>
-<ar><k>persistence</k>
-itsepintaisuus, sitkeys</ar>
-<ar><k>persistent</k>
-itsepintainen, hellittämätön</ar>
-<ar><k>person</k>
-henki (henkilö), henkilö, ihminen (henkilö), persoona</ar>
-<ar><k>person attending a course</k>
-kurssilainen</ar>
-<ar><k>personal</k>
-henkilökohtainen, henkilöllinen, persoonallinen</ar>
-<ar><k>personal call</k>
-henkilöpuhelu</ar>
-<ar><k>personal pronoun</k>
-persoonapronomini</ar>
-<ar><k>personality</k>
-luonne, persoonallisuus</ar>
-<ar><k>personally</k>
-henkilökohtaisesti</ar>
-<ar><k>personification</k>
-henkilöitymä</ar>
-<ar><k>personify</k>
-henkilöidä</ar>
-<ar><k>personnel</k>
-henkilökunta</ar>
-<ar><k>perspective</k>
-perspektiivi</ar>
-<ar><k>perspex</k>
-pleksilasi</ar>
-<ar><k>perspire</k>
-hikoilla, hiota</ar>
-<ar><k>perspiring</k>
-hiestynyt</ar>
-<ar><k>persuade</k>
-houkutella (kehotella), suostutella, suostuttaa</ar>
-<ar><k>persuasion</k>
-suostuttelu</ar>
-<ar><k>persuasive</k>
-suostutteleva</ar>
-<ar><k>pertinent</k>
-asiaankuuluva</ar>
-<ar><k>perverseness</k>
-takaperoisuus</ar>
-<ar><k>pessimistic</k>
-pessimistinen</ar>
-<ar><k>pest</k>
-tuholainen</ar>
-<ar><k>pestilence</k>
-rutto</ar>
-<ar><k>pet</k>
-lellikki, lemmikkieläin
-
-hellitellä, hyväillä</ar>
-<ar><k>pet name</k>
-lempinimi</ar>
-<ar><k>petal</k>
-terälehti (bot)</ar>
-<ar><k>petition</k>
-pyyntö (anomus)</ar>
-<ar><k>petitioner</k>
-anoja</ar>
-<ar><k>petrol</k>
-bensiini</ar>
-<ar><k>petticoat</k>
-alushame</ar>
-<ar><k>petticoat dress</k>
-liivihame</ar>
-<ar><k>petticoat rule</k>
-akkavalta</ar>
-<ar><k>petty larceny</k>
-näpistely (lak)</ar>
-<ar><k>petulent</k>
-kärtyinen</ar>
-<ar><k>pew</k>
-kirkonpenkki</ar>
-<ar><k>pharaoh</k>
-faroa</ar>
-<ar><k>pharmaceutical</k>
-farmaseuttinen</ar>
-<ar><k>pharmacologist</k>
-farmakologi</ar>
-<ar><k>pharmacology</k>
-lääkeoppi</ar>
-<ar><k>pharmacy</k>
-farmasia</ar>
-<ar><k>pharynx</k>
-nielu (anat)</ar>
-<ar><k>phase</k>
-vaihe</ar>
-<ar><k>pheasant</k>
-fasaani</ar>
-<ar><k>phenol</k>
-fenoli</ar>
-<ar><k>phenomenal</k>
-ilmiömäinen</ar>
-<ar><k>phenomenon</k>
-ilmiö</ar>
-<ar><k>philanthropist</k>
-filantrooppi, ihmisystävä</ar>
-<ar><k>philological research</k>
-kielentutkimus</ar>
-<ar><k>philologist</k>
-filogi, kielentutkija</ar>
-<ar><k>philology</k>
-filogia, kielitiede</ar>
-<ar><k>philosopher</k>
-filosofi</ar>
-<ar><k>philosophize</k>
-järkeillä</ar>
-<ar><k>philosophy</k>
-filosofia</ar>
-<ar><k>philosophy of life</k>
-elämänviisaus</ar>
-<ar><k>phlegm</k>
-lima</ar>
-<ar><k>phlegmatic</k>
-flegmaattinen, hidasluontoinen</ar>
-<ar><k>phone</k>
-puhelin</ar>
-<ar><k>phonetic</k>
-foneettinen (kiel), äänteenmukainen</ar>
-<ar><k>phonetic symbol</k>
-äännemerkki</ar>
-<ar><k>phonetically</k>
-äänteenmukaisesti</ar>
-<ar><k>phonetics</k>
-fonetiikka (kiel), äänneoppi</ar>
-<ar><k>phosphate</k>
-fosfaatti (kem)</ar>
-<ar><k>phosphorus</k>
-fosfori (kem)</ar>
-<ar><k>photo</k>
-valokuva</ar>
-<ar><k>photocopy</k>
-valokkopio</ar>
-<ar><k>photograph</k>
-valokuva
-
-valokuvata</ar>
-<ar><k>photographer</k>
-valokuvaaja</ar>
-<ar><k>photography</k>
-valokuvaus</ar>
-<ar><k>phrase</k>
-fraasi (puhetapa), lauseparsi, lausetapa, sanakäänne, sanontatapa</ar>
-<ar><k>physical</k>
-fysikaalinen, ruumillinen</ar>
-<ar><k>physical exercise</k>
-liikunta</ar>
-<ar><k>physical impediment</k>
-luonnoneste</ar>
-<ar><k>physical science</k>
-luonnonoppi</ar>
-<ar><k>physically</k>
-ruumillisesti</ar>
-<ar><k>physician</k>
-lääkäri</ar>
-<ar><k>physics</k>
-fysiikka</ar>
-<ar><k>physiological</k>
-fysiologinen</ar>
-<ar><k>physiologist</k>
-fysiologi</ar>
-<ar><k>physiology</k>
-fysiologia</ar>
-<ar><k>physiotherapist</k>
-lääkintävoimistelija</ar>
-<ar><k>pick</k>
-kaivaa (hampaita ym), kaivella, noukkia, nyppiä, valikoida, valita</ar>
-<ar><k>pick a lock</k>
-tiirikoida [puhek.]</ar>
-<ar><k>pick and choose</k>
-valikoida [puhek.]</ar>
-<ar><k>pick apart</k>
-repiä kappaleiksi [puhek.]</ar>
-<ar><k>pick at</k>
-nalkuttaa jklle [puhek.]</ar>
-<ar><k>pick berries</k>
-marjastaa</ar>
-<ar><k>pick off</k>
-nyhtää irti [puhek.]</ar>
-<ar><k>pick off baffle</k>
-irrotuslevy</ar>
-<ar><k>pick on</k>
-kiusata [puhek.]</ar>
-<ar><k>pick out</k>
-valita, poimia</ar>
-<ar><k>pick over</k>
-käydä läpi [puhek.]</ar>
-<ar><k>pick someones brain</k>
-varastaa jkn ideat [puhek.]</ar>
-<ar><k>pick up</k>
-elpyä (toipua), oppia, poimia</ar>
-<ar><k>pick up roll</k>
-poimintatela</ar>
-<ar><k>pickaxe</k>
-hakku</ar>
-<ar><k>picket duty</k>
-vartiopalvelu</ar>
-<ar><k>pickled cucumber</k>
-etikkakurkku, suolakurkku</ar>
-<ar><k>pickles</k>
-pikkelsi</ar>
-<ar><k>pickpocket</k>
-taskuvaras</ar>
-<ar><k>picnic</k>
-huviretki</ar>
-<ar><k>picture</k>
-elokuva, kuva, taulu</ar>
-<ar><k>picture frame</k>
-taulunkehys</ar>
-<ar><k>pie</k>
-paistos, piirakka, piiras</ar>
-<ar><k>piece</k>
-kappale, kimpale, lappu, pala, palanen, pelinappula</ar>
-<ar><k>piece of bread</k>
-leivänpala</ar>
-<ar><k>piece of furniture</k>
-huonekalu</ar>
-<ar><k>piece of music</k>
-sävelmä</ar>
-<ar><k>piece-work</k>
-urakkatyö</ar>
-<ar><k>pier</k>
-laituri, pilari</ar>
-<ar><k>pierce</k>
-puhkaisu</ar>
-<ar><k>piercing</k>
-kimeä</ar>
-<ar><k>pietist</k>
-herännäinen</ar>
-<ar><k>piety</k>
-hurskaus, uskonnollisuus</ar>
-<ar><k>pig</k>
-porsas, sika</ar>
-<ar><k>pig-headed</k>
-härkäpäinen, jukuripäinen</ar>
-<ar><k>pig-iron</k>
-harkkorauta</ar>
-<ar><k>pigeon</k>
-kyyhkynen</ar>
-<ar><k>pigeon-hole</k>
-lokero (kaapin)</ar>
-<ar><k>pigsty</k>
-sikolätti</ar>
-<ar><k>pigtail</k>
-hiussaparo</ar>
-<ar><k>pike</k>
-peitsi</ar>
-<ar><k>pike-perch</k>
-kuha</ar>
-<ar><k>pile</k>
-kasa, läjä (pinottu), paalu, pinkka, pino, rykelmä, röykkiö</ar>
-<ar><k>pile cap</k>
-paaluhattu</ar>
-<ar><k>pile it on</k>
-panna reippaasti omiaan [puhek.]</ar>
-<ar><k>pile of firewood</k>
-halkopino</ar>
-<ar><k>pile up</k>
-kartuttaa, kasata, latoa (kasaan)</ar>
-<ar><k>pile-driver</k>
-juntta</ar>
-<ar><k>pile-up</k>
-ketjukolari</ar>
-<ar><k>piledriver</k>
-paalujuntta</ar>
-<ar><k>piles</k>
-peräpukamat</ar>
-<ar><k>pilfer</k>
-kähveltää, näpistellä</ar>
-<ar><k>pilferer</k>
-näpistelija</ar>
-<ar><k>pill</k>
-pilleri, ehkäisypilleri</ar>
-<ar><k>pill-box</k>
-bunkkeri</ar>
-<ar><k>pillage</k>
-rosvous</ar>
-<ar><k>pillar</k>
-pilari, pylväs</ar>
-<ar><k>pillow</k>
-päänalus, vuodetyyny</ar>
-<ar><k>pillow case</k>
-tyynyliina</ar>
-<ar><k>pilot</k>
-lentäjä, luotsata, luotsi</ar>
-<ar><k>pilotage</k>
-luotsaus</ar>
-<ar><k>piloting</k>
-luotsaus</ar>
-<ar><k>pimple</k>
-finni, nyppy (ihossa), näppy</ar>
-<ar><k>pin</k>
-keila, nappula, nuppineula, puikko, pultti, nasta, tappi, pistike</ar>
-<ar><k>pinafore</k>
-esiliina</ar>
-<ar><k>pincers</k>
-hohtimet</ar>
-<ar><k>pinch</k>
-puristus-
-
-kähveltää, nipistää, pihistää, vohkia</ar>
-<ar><k>pincushion</k>
-neulatyyny</ar>
-<ar><k>pine</k>
-mänty, honka</ar>
-<ar><k>pine away</k>
-riutua</ar>
-<ar><k>pine for</k>
-kaihota</ar>
-<ar><k>pine wood</k>
-männikkö</ar>
-<ar><k>pine-marten</k>
-näätä</ar>
-<ar><k>pineapple</k>
-ananas</ar>
-<ar><k>pinworm</k>
-kihomato</ar>
-<ar><k>pioneer</k>
-tienraivaaja, uranuurtaja
-
-raivata (kuv)</ar>
-<ar><k>pioneer nation</k>
-edelläkansa</ar>
-<ar><k>pious</k>
-hurskas</ar>
-<ar><k>pipe</k>
-johto (vesi- ym), piippu, putki (johto), torvi (anat)</ar>
-<ar><k>pipe clip</k>
-kiinnike</ar>
-<ar><k>pipe collar</k>
-putken tyvirengas</ar>
-<ar><k>pipe tongs</k>
-putkipihdit</ar>
-<ar><k>pipe vice</k>
-putkiruuvipenkki</ar>
-<ar><k>pipewrench</k>
-putkipihdit</ar>
-<ar><k>piping</k>
-putkisto</ar>
-<ar><k>pirate</k>
-merirosvo</ar>
-<ar><k>piss off</k>
-antaa vetää [alat.]</ar>
-<ar><k>pissed off</k>
-kurkkuaan myöten täynnä [alat.]</ar>
-<ar><k>pistil</k>
-emi (bot)</ar>
-<ar><k>pistol</k>
-pistooli</ar>
-<ar><k>piston</k>
-mäntä (tekn)</ar>
-<ar><k>pit</k>
-kaivos, kuoppa</ar>
-<ar><k>pit prop</k>
-kaivospölkky</ar>
-<ar><k>pit sand</k>
-luonnonkiekka</ar>
-<ar><k>pit-shaft</k>
-kaivoskuilu</ar>
-<ar><k>pitch</k>
-pystyttää (teltta)</ar>
-<ar><k>pitched roof</k>
-yksitaitteinen katto</ar>
-<ar><k>pitcher</k>
-kannu</ar>
-<ar><k>pitchfork</k>
-hanko</ar>
-<ar><k>pitfall</k>
-sudenkuoppa</ar>
-<ar><k>pithead</k>
-kaivosaukko</ar>
-<ar><k>pitiful</k>
-säälittävä</ar>
-<ar><k>pitiless</k>
-armoton, säälimätön</ar>
-<ar><k>pitilessly</k>
-säälimättömästi</ar>
-<ar><k>pitting</k>
-pistesyöpymä (rummun)</ar>
-<ar><k>pity</k>
-armahtaa, sääliä
-
-sääli</ar>
-<ar><k>pivot</k>
-sarana, nivel, laakeritappi</ar>
-<ar><k>pivot window</k>
-keskisaranaikkuna</ar>
-<ar><k>placard</k>
-juliste</ar>
-<ar><k>place</k>
-kohta, paikka, paikkakunta
-
-asettaa, sijoittaa, panna, laittaa</ar>
-<ar><k>place in front</k>
-edusta</ar>
-<ar><k>place of birth</k>
-syntymäpaikka</ar>
-<ar><k>place of refuge</k>
-pakopaikka</ar>
-<ar><k>place of residence</k>
-asuinpaikka, kotipaikka</ar>
-<ar><k>placenta</k>
-istukka</ar>
-<ar><k>placid</k>
-leppoissa, tyyni</ar>
-<ar><k>plague</k>
-vitsaus (kuv), kulkutauti</ar>
-<ar><k>plaice</k>
-punakampela</ar>
-<ar><k>plain</k>
-tavallinen, normaali, aukea, ilmeinen, kuvioton, lakeus, mutkaton, selvä</ar>
-<ar><k>plain tile</k>
-sileä kattotiili</ar>
-<ar><k>plainly</k>
-selvästi</ar>
-<ar><k>plainness</k>
-ilmeisyys</ar>
-<ar><k>plaintiff</k>
-asianomistaja (kantaja), kantaja (lak)</ar>
-<ar><k>plait</k>
-hiuspalmikko, letti</ar>
-<ar><k>plan</k>
-hanke, suunnitelma, piirustus
-
-suunnitella
-
-aikoa, suunnitella</ar>
-<ar><k>plane</k>
-höylä, lentokone, pinta (taso), taso
-
-höylätä</ar>
-<ar><k>planet</k>
-kiertotähti, planeetta</ar>
-<ar><k>planing machine</k>
-tasohöylä</ar>
-<ar><k>plank</k>
-lankku</ar>
-<ar><k>planned</k>
-järjestelmällinen</ar>
-<ar><k>planning</k>
-suunnittelu</ar>
-<ar><k>plant</k>
-kasvi, laitos (tekn), tehdas
-
-istuttaa</ar>
-<ar><k>plant family</k>
-kasviheimo</ar>
-<ar><k>plant-louse</k>
-kirva, lehtitäi</ar>
-<ar><k>plantation</k>
-istutus</ar>
-<ar><k>planting</k>
-istutus</ar>
-<ar><k>planting of fish</k>
-kalanistutus</ar>
-<ar><k>plaque</k>
-plaketti</ar>
-<ar><k>plaster</k>
-rapata
-
-rapata, kalkita</ar>
-<ar><k>plaster cast</k>
-kipsijäljennös</ar>
-<ar><k>plaster ceiling</k>
-rapattu katto</ar>
-<ar><k>plaster rendering</k>
-rappaus</ar>
-<ar><k>plastered wall</k>
-rapattu seinä</ar>
-<ar><k>plasterer</k>
-rappaaja, rappari</ar>
-<ar><k>plastering</k>
-rappaus
-
-rappaus</ar>
-<ar><k>plastering machine</k>
-rappausruisku</ar>
-<ar><k>plastic</k>
-muovi</ar>
-<ar><k>plastic filler</k>
-muovitasoite</ar>
-<ar><k>plastic membrane</k>
-muovimatto</ar>
-<ar><k>plastic pipe</k>
-muoviputki</ar>
-<ar><k>plate</k>
-lautanen, levy, pelti (levy)
-
-silata</ar>
-<ar><k>plate girder</k>
-levypalkki</ar>
-<ar><k>plate glass</k>
-peililasi</ar>
-<ar><k>plate glass door</k>
-kehyksetön lasiovi</ar>
-<ar><k>plateau</k>
-laakio, ylätasanko</ar>
-<ar><k>platen cover</k>
-valotuskansi</ar>
-<ar><k>platen glass</k>
-valotuslasi</ar>
-<ar><k>platen transport</k>
-valotuskuljetin</ar>
-<ar><k>platform</k>
-asemalaituri, junalaituri, koroke, laituri (rautat), lava</ar>
-<ar><k>plating</k>
-silaus</ar>
-<ar><k>platinum</k>
-platina</ar>
-<ar><k>platonic</k>
-platoninen</ar>
-<ar><k>platoon</k>
-joukkue (sot)</ar>
-<ar><k>plausible</k>
-uskottava</ar>
-<ar><k>play</k>
-kisa, peli (leikki), näytelmä
-
-karehtia (kuv), kisailla, leikkiä, näytellä (teatt), näytelmä, pelata, soittaa (soittimella)
-
-väljyys, holkkuma, liikkumisvara</ar>
-<ar><k>play about</k>
-hassutella</ar>
-<ar><k>play ball</k>
-palloilla</ar>
-<ar><k>play of features</k>
-ilmekieli</ar>
-<ar><k>play on words</k>
-sanaleikki</ar>
-<ar><k>play pen</k>
-leikkikehä</ar>
-<ar><k>play the fool</k>
-hupsutella</ar>
-<ar><k>play the fools</k>
-hullutella</ar>
-<ar><k>play tricks on</k>
-ilvehtiä</ar>
-<ar><k>play truant</k>
-lintsata</ar>
-<ar><k>play with</k>
-leikitellä</ar>
-<ar><k>playboy</k>
-rattopoika</ar>
-<ar><k>player</k>
-pelaaja, soittaja</ar>
-<ar><k>playful</k>
-leikillinen, leikkisä</ar>
-<ar><k>playfulness</k>
-leikkisyys</ar>
-<ar><k>playground</k>
-kisakenttä, leikkikenttä</ar>
-<ar><k>playing-card</k>
-pelikortti</ar>
-<ar><k>playmate</k>
-leikkitoveri</ar>
-<ar><k>plaything</k>
-leikkikalu, lelu</ar>
-<ar><k>pleading</k>
-asianajo</ar>
-<ar><k>pleasant</k>
-hauska, herttainen, miellyttävä</ar>
-<ar><k>pleasantly</k>
-hauskasti</ar>
-<ar><k>pleasantness</k>
-hupaisuus, miellyttävyys</ar>
-<ar><k>please</k>
-miellyttää</ar>
-<ar><k>pleased</k>
-iloinen (mielisään), tyytyväinen</ar>
-<ar><k>pleased with</k>
-hyvilleen</ar>
-<ar><k>pleasing</k>
-mieleinen, miellyttävä, suloinen</ar>
-<ar><k>pleasurable</k>
-hauska</ar>
-<ar><k>pleasure palace</k>
-huvilinna</ar>
-<ar><k>pleasure-trip</k>
-huvimatka</ar>
-<ar><k>pleat</k>
-laskos, poimu
-
-laskostaa, poimuttaa</ar>
-<ar><k>pleated</k>
-poimuinen</ar>
-<ar><k>pledge</k>
-pantti</ar>
-<ar><k>plentiful</k>
-runsas, yltäkylläinen</ar>
-<ar><k>plenty</k>
-runsaus</ar>
-<ar><k>plenty of</k>
-runsaasti</ar>
-<ar><k>pliant</k>
-notkea</ar>
-<ar><k>pliers</k>
-pihdit</ar>
-<ar><k>plod</k>
-tarpoa</ar>
-<ar><k>plot</k>
-juoni, palsta, salahanke, salajuoni, salaliitto, tontti
-
-juonitella, vehkeillä</ar>
-<ar><k>plotter</k>
-juonittelija, savenvalaja, vehkeilijä</ar>
-<ar><k>plotting</k>
-juonikas, vehkeily</ar>
-<ar><k>plotting intrigues</k>
-juonittelu</ar>
-<ar><k>plough</k>
-aura
-
-aurata, kyntää</ar>
-<ar><k>ploughing time</k>
-kyntöaika</ar>
-<ar><k>ploughman</k>
-kyntömies</ar>
-<ar><k>pluck</k>
-höyhentää, kyniä, näppäillä</ar>
-<ar><k>plucker</k>
-rypyttää</ar>
-<ar><k>plug</k>
-pistokosketin, pistotulppa, tappi, tulppa, vaarna</ar>
-<ar><k>plum</k>
-luumu</ar>
-<ar><k>plumb-line</k>
-luotilanka</ar>
-<ar><k>plumber</k>
-putkimies, putkityöläinen</ar>
-<ar><k>plumber's</k>
-vesijohtoliike</ar>
-<ar><k>plumbing</k>
-viemäriputket</ar>
-<ar><k>plume</k>
-höyhentöhtö, sulka (iso)</ar>
-<ar><k>plump</k>
-pullea, pyylevä</ar>
-<ar><k>plumpness</k>
-pulleus, pyylevyys</ar>
-<ar><k>plunder</k>
-rosvota</ar>
-<ar><k>plunge</k>
-loiskahdus</ar>
-<ar><k>plunge into</k>
-heittäytyä (syöksyä)</ar>
-<ar><k>plunger</k>
-mäntä tenk), ankkuri</ar>
-<ar><k>plural</k>
-monikko</ar>
-<ar><k>plus sign</k>
-plusmerkki</ar>
-<ar><k>plush</k>
-plyysi</ar>
-<ar><k>plywood</k>
-vaneeri</ar>
-<ar><k>pneumatic drill</k>
-paineilmapora</ar>
-<ar><k>pneumatic tyre</k>
-ilmarengas</ar>
-<ar><k>pneumonia</k>
-keuhkokuume</ar>
-<ar><k>poacher</k>
-salametsästäjä</ar>
-<ar><k>poaching</k>
-salametsästys</ar>
-<ar><k>pock</k>
-rokko</ar>
-<ar><k>pocket</k>
-tasku</ar>
-<ar><k>pocket size</k>
-taskuinen</ar>
-<ar><k>pocket-flask</k>
-taskumatti</ar>
-<ar><k>pocket-money</k>
-taskuraha</ar>
-<ar><k>pod</k>
-palko</ar>
-<ar><k>podium</k>
-koroke (pienempi)</ar>
-<ar><k>poem</k>
-runo</ar>
-<ar><k>poet</k>
-runoilija</ar>
-<ar><k>poet laureate</k>
-hovirunoilija</ar>
-<ar><k>poetic</k>
-runollinen</ar>
-<ar><k>poetical</k>
-runollinen</ar>
-<ar><k>poetically</k>
-runollisesti</ar>
-<ar><k>point</k>
-kohta, kärki, paikka (kohta), piste, pää, tutkain
-
-viitata</ar>
-<ar><k>point at</k>
-osoittaa (sormella)</ar>
-<ar><k>point of time</k>
-ajankohta</ar>
-<ar><k>point of view</k>
-ajatuskanta, katsantokanta, näkökanta</ar>
-<ar><k>point out</k>
-huomauttaa</ar>
-<ar><k>point-of-view</k>
-näkökanta</ar>
-<ar><k>pointed</k>
-kärjekäs, kärkevä (moite), sakara</ar>
-<ar><k>pointer</k>
-osoitin, osviitta</ar>
-<ar><k>pointless</k>
-tarkoitukseton</ar>
-<ar><k>points</k>
-vaihde (rautat)</ar>
-<ar><k>pointsman</k>
-vaihdemies</ar>
-<ar><k>poison</k>
-myrkky</ar>
-<ar><k>poisoning</k>
-myrkytys</ar>
-<ar><k>poke</k>
-sysätä, tyrkätä</ar>
-<ar><k>poker</k>
-hiilihanko, pokeri, uunikoukku</ar>
-<ar><k>poker vibrator</k>
-sauvatärytin</ar>
-<ar><k>polar bear</k>
-jääkarhu</ar>
-<ar><k>polar sea</k>
-jäämeri</ar>
-<ar><k>polarity</k>
-napaisuus</ar>
-<ar><k>pole</k>
-aisa, napa, paalu, riuku, salko, sauvoa, seiväs</ar>
-<ar><k>pole vault</k>
-seiväshyppy</ar>
-<ar><k>polecat</k>
-hilleri (zo)</ar>
-<ar><k>police</k>
-järjestyvalta, poliisi</ar>
-<ar><k>policeman</k>
-konstaapeli</ar>
-<ar><k>policy</k>
-politiikka, taktiikka, toimintaperiaate</ar>
-<ar><k>polio</k>
-lapsihalvaus</ar>
-<ar><k>polish</k>
-hioa (kirkkaasti), kiillottaa</ar>
-<ar><k>polished</k>
-hiottu (kuv)</ar>
-<ar><k>polishing</k>
-kiillotus</ar>
-<ar><k>polite</k>
-huomaavainen (kohtelias), kohtelias</ar>
-<ar><k>politely</k>
-kohteliaasti</ar>
-<ar><k>politeness</k>
-huomaavaisuus, kohteliaisuus</ar>
-<ar><k>political</k>
-poliittinen</ar>
-<ar><k>politician</k>
-poliitikko</ar>
-<ar><k>politics</k>
-politiikka</ar>
-<ar><k>pollination</k>
-pölytys (bot)</ar>
-<ar><k>polling station</k>
-vaalihuoneisto, äänestyspaikka</ar>
-<ar><k>pollutant</k>
-saastuke</ar>
-<ar><k>pollute</k>
-saastuttaa</ar>
-<ar><k>pollution</k>
-saaste</ar>
-<ar><k>polyester paint</k>
-polyesterimaali</ar>
-<ar><k>polygamous</k>
-moniavioinen</ar>
-<ar><k>polygamy</k>
-moniavioisuus</ar>
-<ar><k>polygon</k>
-monikulmio</ar>
-<ar><k>polythene sheet</k>
-polyeteenikalvo</ar>
-<ar><k>pomade</k>
-hajuvoide</ar>
-<ar><k>pond</k>
-lammikko, lampi</ar>
-<ar><k>ponder</k>
-harkita, mietiskellä, punnita (kuv), tuumailla, tuumata, tuumia, tuumiskella</ar>
-<ar><k>pontoon</k>
-kelluke, ponttoni</ar>
-<ar><k>pony</k>
-poni</ar>
-<ar><k>poodle</k>
-villakoira</ar>
-<ar><k>pool</k>
-uimaallas, allikko (vesi-), lammikko, lätäkkö</ar>
-<ar><k>poor</k>
-heikko (kehno), huono (kehno), huonosti, kehno, köyhä, parka, poloinen, varaton</ar>
-<ar><k>poor creature</k>
-raukka</ar>
-<ar><k>poor fellow</k>
-raukka</ar>
-<ar><k>poor quality</k>
-huonolaatuinen</ar>
-<ar><k>poor soil</k>
-laihamaa</ar>
-<ar><k>poor thing</k>
-raukka</ar>
-<ar><k>poor-sighted</k>
-heikkonäköinen</ar>
-<ar><k>poorly</k>
-kehnosti</ar>
-<ar><k>poorly constructed</k>
-hatara</ar>
-<ar><k>poorness</k>
-huonous</ar>
-<ar><k>pop singer</k>
-iskelmälaulaja</ar>
-<ar><k>pope</k>
-paavi</ar>
-<ar><k>poplar</k>
-poppeli</ar>
-<ar><k>poplin</k>
-popliini</ar>
-<ar><k>popular</k>
-kansanomainen, kansantajuinen, suosittu, yleistajuinen</ar>
-<ar><k>popularity</k>
-kansansuosio</ar>
-<ar><k>populate</k>
-asuttaa, kansoittaa</ar>
-<ar><k>population</k>
-asujaimisto, kanta (auto- lintu- ym), väestö, väkiluku</ar>
-<ar><k>porcelain</k>
-posliini</ar>
-<ar><k>porch</k>
-kuisti, veranta, vilpola</ar>
-<ar><k>porcupine</k>
-piikisika</ar>
-<ar><k>pore</k>
-hikihuokonen, huokonen (anat), ihohuokonen</ar>
-<ar><k>pork chop</k>
-porsaankyljys, siankyljys</ar>
-<ar><k>porn</k>
-porno</ar>
-<ar><k>pornographic</k>
-pornographinen</ar>
-<ar><k>pornography</k>
-pornografia</ar>
-<ar><k>porous</k>
-hohkainen, huokoinen, möyheä</ar>
-<ar><k>porridge</k>
-kaurapuuro, puuro, velli</ar>
-<ar><k>port</k>
-satama, satamakaupunki</ar>
-<ar><k>port of distress</k>
-hätäsatama</ar>
-<ar><k>port of shipment</k>
-laivasatama</ar>
-<ar><k>portable radio</k>
-matkaradio</ar>
-<ar><k>portable typewriter</k>
-matkakirjoituskone</ar>
-<ar><k>porter</k>
-kantaja, portinvartija, portteri, vahtimestari</ar>
-<ar><k>portion</k>
-annos, osa (kirjan), osuus (osa), ruokaannos</ar>
-<ar><k>portrait</k>
-muotokuva</ar>
-<ar><k>portray</k>
-kuvailla, kuvata</ar>
-<ar><k>portrayer</k>
-kuvaaja</ar>
-<ar><k>pose</k>
-poseerata</ar>
-<ar><k>position</k>
-asema, asento, tilanne (asema)</ar>
-<ar><k>positive</k>
-elämänmyönteinen, positiivi (kiel), positiivinen</ar>
-<ar><k>positively</k>
-ehdottomasti</ar>
-<ar><k>possess</k>
-omata, omistaa</ar>
-<ar><k>possession</k>
-huosta</ar>
-<ar><k>possessive</k>
-possessiivinen (kiel)</ar>
-<ar><k>possessor</k>
-haltija</ar>
-<ar><k>possible</k>
-mahdollinen</ar>
-<ar><k>possibly</k>
-ehkä (mahdollisesti), mahdollisesti, suinkin</ar>
-<ar><k>post</k>
-piiru
-
-postittaa
-
-jälkeinen, jälki-</ar>
-<ar><k>post code</k>
-postinumero</ar>
-<ar><k>post office</k>
-postitalo</ar>
-<ar><k>post office giro</k>
-postisiirto</ar>
-<ar><k>post-mortem</k>
-ruumiinavaus</ar>
-<ar><k>postage</k>
-postimaksu</ar>
-<ar><k>postal address</k>
-postiosoite</ar>
-<ar><k>postal communications</k>
-postiyhteys</ar>
-<ar><k>postal course</k>
-kirjekurssi</ar>
-<ar><k>postcard</k>
-kirjekortti, postikortti</ar>
-<ar><k>poster</k>
-juliste, mainosjuliste</ar>
-<ar><k>postman</k>
-kirjeenkantaja, postinkantaja</ar>
-<ar><k>postmark</k>
-postileima</ar>
-<ar><k>postpone</k>
-lykätä</ar>
-<ar><k>postponement</k>
-lykkäys</ar>
-<ar><k>postscript</k>
-jälkikirjoitus</ar>
-<ar><k>postulate</k>
-edellyttää (olettaa)</ar>
-<ar><k>posture</k>
-asento</ar>
-<ar><k>pot</k>
-kannu, kattila, pannu, pata, ruukku, tölkki</ar>
-<ar><k>potash</k>
-kali (kem), potaska</ar>
-<ar><k>potassium</k>
-kalium</ar>
-<ar><k>potassium cyanide</k>
-syankalium</ar>
-<ar><k>potato</k>
-peruna</ar>
-<ar><k>potato blight</k>
-perunarutto</ar>
-<ar><k>potato flour</k>
-perunajauhot</ar>
-<ar><k>potential</k>
-mahdollinen</ar>
-<ar><k>pothole</k>
-hiidenkirnu</ar>
-<ar><k>potted plant</k>
-ruukkukasvi</ar>
-<ar><k>pottery</k>
-keramiikka, ruukunteko, savenvalu, savitavarat</ar>
-<ar><k>pouch</k>
-pussi (zo)</ar>
-<ar><k>poulterer</k>
-lintikauppias</ar>
-<ar><k>poultice</k>
-puurohaude</ar>
-<ar><k>poultry</k>
-siipikarja</ar>
-<ar><k>poultry farm</k>
-kanala</ar>
-<ar><k>poultry-farming</k>
-kananhoito</ar>
-<ar><k>poultryhouse</k>
-kanala</ar>
-<ar><k>pound</k>
-punta, naula (n 454g)
-
-jyskyttää, survoa</ar>
-<ar><k>pour</k>
-valaa</ar>
-<ar><k>pour out</k>
-vuodattaa</ar>
-<ar><k>powdery snow</k>
-vitilumi</ar>
-<ar><k>power cord</k>
-liitäntäjohto, verkkojohto</ar>
-<ar><k>power current</k>
-voimavirta</ar>
-<ar><k>power of abrorption</k>
-imukyky</ar>
-<ar><k>power of observation</k>
-huomiokyky</ar>
-<ar><k>power of thought</k>
-ajatusvoima</ar>
-<ar><k>power on relay</k>
-virtarele</ar>
-<ar><k>power plant</k>
-voimalaitos (tekn)</ar>
-<ar><k>power point</k>
-voimavirtapistorasia</ar>
-<ar><k>power skirting</k>
-asennuslista</ar>
-<ar><k>power supply</k>
-verkkojännite</ar>
-<ar><k>power-station</k>
-voimalaitos (tekn)</ar>
-<ar><k>powerful</k>
-mahtava, voimallinen, väkevä</ar>
-<ar><k>powerfully</k>
-voimakkaasti</ar>
-<ar><k>powerless</k>
-voimaton</ar>
-<ar><k>practical</k>
-käytännöllinen
-
-käytännöllinen</ar>
-<ar><k>practical joke</k>
-kepponen</ar>
-<ar><k>practical joker</k>
-hulluttelija, koiranleuka</ar>
-<ar><k>practice</k>
-käytäntö, praktiikka</ar>
-<ar><k>practise</k>
-harjoitella, harjoittaa</ar>
-<ar><k>practise magic</k>
-loitsia</ar>
-<ar><k>prairie</k>
-aro, preeria</ar>
-<ar><k>praise</k>
-kehua, kiitellä (ylistää), ylistää</ar>
-<ar><k>praiseworthy</k>
-kiitettävä</ar>
-<ar><k>pram</k>
-lapsenvaunut</ar>
-<ar><k>prank</k>
-ilve, kolttonen, kuje</ar>
-<ar><k>pranks</k>
-elje (elkeet)</ar>
-<ar><k>prankster</k>
-ilvehtijä</ar>
-<ar><k>prate on</k>
-jaaritella</ar>
-<ar><k>pray</k>
-rukoilla</ar>
-<ar><k>prayer</k>
-rukous</ar>
-<ar><k>pre</k>
-edellinen, edeltävä, esi-</ar>
-<ar><k>pre-</k>
-esi- (yhd)</ar>
-<ar><k>precarious</k>
-arveluttava</ar>
-<ar><k>precast</k>
-esivalettu</ar>
-<ar><k>precast concrete</k>
-betonielementti</ar>
-<ar><k>precaution</k>
-varotoimenpide, varokeino</ar>
-<ar><k>precede</k>
-edeltää</ar>
-<ar><k>precedence</k>
-etusija</ar>
-<ar><k>precedent</k>
-ennakkotapaus</ar>
-<ar><k>preceding</k>
-edelläkäyvä, edelläoleva, edeltävä</ar>
-<ar><k>precious</k>
-kallisarvoinen</ar>
-<ar><k>precious stone</k>
-jalokivi</ar>
-<ar><k>precious wood</k>
-jalopuu</ar>
-<ar><k>precipice</k>
-jyrkänne</ar>
-<ar><k>precipitation</k>
-saostus</ar>
-<ar><k>precipitous</k>
-jyrkkä</ar>
-<ar><k>precise</k>
-tarkka, täsmällinen</ar>
-<ar><k>precisely</k>
-tarkalleen, täsmälleen</ar>
-<ar><k>precision</k>
-tarkkuus, täsmällisyys</ar>
-<ar><k>precision-tool maker</k>
-hienomekaanikko</ar>
-<ar><k>preconceived opinion</k>
-ennakkomielipide</ar>
-<ar><k>precondition</k>
-ennakkoehto</ar>
-<ar><k>predecessor</k>
-edelläkävijä, edeltäjä</ar>
-<ar><k>predestination</k>
-ennaltamääräys</ar>
-<ar><k>predicament</k>
-pula (pulma)</ar>
-<ar><k>predicate</k>
-predikaatti (kiel)</ar>
-<ar><k>predict</k>
-ennustaa</ar>
-<ar><k>prediction</k>
-ennustus</ar>
-<ar><k>predispose</k>
-altistaa (lääk)</ar>
-<ar><k>prefabricated unit</k>
-elementti</ar>
-<ar><k>preface</k>
-alkulause, esipuhe</ar>
-<ar><k>prefer</k>
-pitää enemmän</ar>
-<ar><k>preferable</k>
-parempi</ar>
-<ar><k>preferably</k>
-mieluummin</ar>
-<ar><k>preference</k>
-etusija</ar>
-<ar><k>prefix</k>
-alkuliite, esiliite (kiel), etutavu</ar>
-<ar><k>pregnancy</k>
-raskaudentila, raskaus (lääk)</ar>
-<ar><k>pregnant</k>
-tiine</ar>
-<ar><k>prejudiced</k>
-ennakkoluuloinen, puolueellinen</ar>
-<ar><k>preliminaries</k>
-alkuvalmistelut</ar>
-<ar><k>preliminary</k>
-valmistava</ar>
-<ar><k>preliminary design</k>
-esisuunnitelma</ar>
-<ar><k>preliminary examination</k>
-alkututkinto</ar>
-<ar><k>prelude</k>
-alkusoitto, preludi</ar>
-<ar><k>premature</k>
-ennenaikainen</ar>
-<ar><k>premature infant</k>
-keskonen</ar>
-<ar><k>prematurely</k>
-enneaikaisesti</ar>
-<ar><k>premeditated</k>
-harkittu</ar>
-<ar><k>preoccupied</k>
-hajamielinen</ar>
-<ar><k>preparatory measures</k>
-alkuvalmistelut</ar>
-<ar><k>prepare</k>
-laatia, laittaa, valmistaa, valmistella
-
-valmistella</ar>
-<ar><k>prepared for</k>
-valmis</ar>
-<ar><k>preparitory studies</k>
-esiopinnot</ar>
-<ar><k>preponderance</k>
-enemmyys</ar>
-<ar><k>preposition</k>
-prepositio (kiel)</ar>
-<ar><k>presbyterian</k>
-presbyteerinen</ar>
-<ar><k>prescribe</k>
-säätää</ar>
-<ar><k>prescription</k>
-lääkemääräys, resepti (lääk)</ar>
-<ar><k>presence of mind</k>
-maltti, mielenmaltti</ar>
-<ar><k>present</k>
-lahja
-
-antaa (lahjoittaa), esitellä, esittää, jättää sisään, lahjoittaa
-
-nyky, nykyinen, preesens (kiel), saapuvilla, läsnäoleva</ar>
-<ar><k>present oneself</k>
-esiintyä</ar>
-<ar><k>present time</k>
-nykyaika</ar>
-<ar><k>presentable</k>
-esiintymiskelpoinen</ar>
-<ar><k>presentation</k>
-esittely, esitys, lahjoitus</ar>
-<ar><k>presenter</k>
-esittelijä</ar>
-<ar><k>presents</k>
-tuliaiset</ar>
-<ar><k>preserve</k>
-suojella, tallentaa</ar>
-<ar><k>preserved fruit</k>
-hedelmäsäilykkeet</ar>
-<ar><k>president</k>
-presidentti</ar>
-<ar><k>presidential residence</k>
-presidentinlinna</ar>
-<ar><k>press</k>
-puristin, puserrin
-
-ahdistaa, painaa, prässätä, puristaa, pusertaa, tunkea, tupata
-
-sanomalehdistö, sanomalehdistö</ar>
-<ar><k>press-stud</k>
-painonappi</ar>
-<ar><k>pressing</k>
-kiireellinen, puristus, tähdellinen</ar>
-<ar><k>pressure</k>
-paine, puristus</ar>
-<ar><k>pressure roll</k>
-puristustela</ar>
-<ar><k>prestige</k>
-arvovalta</ar>
-<ar><k>presumably</k>
-arvatenkin, arvattavasti, kaiketi, luultavasti, otaksuttavasti</ar>
-<ar><k>presume</k>
-edellyttää (olettaa), olettaa</ar>
-<ar><k>presumption</k>
-olettamuus</ar>
-<ar><k>presuppose</k>
-edellyttää</ar>
-<ar><k>presupposition</k>
-edellytys</ar>
-<ar><k>pretence</k>
-teeskentely</ar>
-<ar><k>pretend</k>
-teeskenellä, uskotella</ar>
-<ar><k>pretentious</k>
-vaatelias</ar>
-<ar><k>pretentiousness</k>
-vaateliaisuus</ar>
-<ar><k>pretext</k>
-varjo (kuv), veruke</ar>
-<ar><k>prettiness</k>
-somuus</ar>
-<ar><k>pretty</k>
-sievä, soma, sorea</ar>
-<ar><k>pretty as a picture</k>
-kuvankaunis</ar>
-<ar><k>pretty good</k>
-aikahyvä</ar>
-<ar><k>prevent</k>
-ehkäistä (estää), estää</ar>
-<ar><k>prevention</k>
-ehkäisy, estäminen</ar>
-<ar><k>preventive</k>
-ehkäisevä</ar>
-<ar><k>preventive maintenance</k>
-määräishuolto</ar>
-<ar><k>preventive means</k>
-ehkäisykeino</ar>
-<ar><k>preview</k>
-ennakkoesitys, ennakkonäytös</ar>
-<ar><k>previous</k>
-aikaisempi, edellinen, edelläkäyvä, edelläoleva</ar>
-<ar><k>previous to</k>
-ennen (prep)</ar>
-<ar><k>previously</k>
-aikaisemmin, ennen (adv)</ar>
-<ar><k>prey upon</k>
-jäytää (kuv)</ar>
-<ar><k>price</k>
-hinta</ar>
-<ar><k>price level</k>
-hintataso</ar>
-<ar><k>price reduction</k>
-hinnanalennus</ar>
-<ar><k>price-list</k>
-hinnasto</ar>
-<ar><k>price-range</k>
-hintaluokka</ar>
-<ar><k>prick</k>
-pisto
-
-pistää</ar>
-<ar><k>prick **</k>
-kyrpä [alat.]</ar>
-<ar><k>prickle</k>
-oka</ar>
-<ar><k>prickly</k>
-piikinen</ar>
-<ar><k>priest</k>
-pappi</ar>
-<ar><k>prima donna</k>
-diiva (operetti ym), primadonna</ar>
-<ar><k>primarily</k>
-ensiksi</ar>
-<ar><k>primary</k>
-tärkein, pää-, ensiö-, alkuensiasteinen</ar>
-<ar><k>primary cause</k>
-perussyy</ar>
-<ar><k>primary election</k>
-esivaalit</ar>
-<ar><k>primary matter</k>
-perusaine</ar>
-<ar><k>primary school</k>
-alkeiskoulu, kansakoulu</ar>
-<ar><k>prime minister</k>
-pääministeri</ar>
-<ar><k>primeval</k>
-iki- (vanha)</ar>
-<ar><k>primeval forest</k>
-aarniometsä</ar>
-<ar><k>primitive</k>
-alkeellinen, alkukantainen</ar>
-<ar><k>primitive man</k>
-alkuihminen</ar>
-<ar><k>primitiveness</k>
-alkeellisuus</ar>
-<ar><k>prince</k>
-prinssi, ruhtinas</ar>
-<ar><k>princess</k>
-prinsessa, ruhtinatar</ar>
-<ar><k>principal</k>
-johtaja (laitoksen ym), rehtori</ar>
-<ar><k>principle</k>
-periaate</ar>
-<ar><k>principle heir</k>
-pääperillinen</ar>
-<ar><k>principle rule</k>
-pääsääntö</ar>
-<ar><k>print</k>
-painoteksti
-
-painaa</ar>
-<ar><k>print in italics</k>
-kursivoida</ar>
-<ar><k>print relay</k>
-ajorele</ar>
-<ar><k>printed</k>
-painettu</ar>
-<ar><k>printed wiring board</k>
-piirilevy</ar>
-<ar><k>printer</k>
-kirjanpainaja, painaja</ar>
-<ar><k>printing</k>
-painatus</ar>
-<ar><k>printing office</k>
-kirjapaino</ar>
-<ar><k>printing-press</k>
-kirjapaino</ar>
-<ar><k>prior</k>
-luostarinesimies
-
-ennen, aikaisemmin</ar>
-<ar><k>prior notice</k>
-ennakkoilmoitus</ar>
-<ar><k>priority</k>
-etuoikeus, etusija, etujärjestys</ar>
-<ar><k>prison</k>
-vankila</ar>
-<ar><k>prisoner</k>
-vanki</ar>
-<ar><k>private</k>
-yksityinen, yksityis</ar>
-<ar><k>private eye</k>
-etsivä (yksityis)</ar>
-<ar><k>private house</k>
-omakotitalo</ar>
-<ar><k>private life</k>
-yksityiselämä</ar>
-<ar><k>private matter</k>
-yksityisasia</ar>
-<ar><k>private room</k>
-kabinetti (huone)</ar>
-<ar><k>private study</k>
-itseopiskelu</ar>
-<ar><k>private tutor</k>
-kotiopettaja</ar>
-<ar><k>privilege</k>
-erikoisetu, erioikeus, etuoikeus</ar>
-<ar><k>privileged</k>
-etuoikeutettu</ar>
-<ar><k>privileged position</k>
-erikoisasema</ar>
-<ar><k>prize</k>
-palkinto</ar>
-<ar><k>prize cup</k>
-pokaali</ar>
-<ar><k>probable</k>
-luultava, todennäköinen</ar>
-<ar><k>probably</k>
-arvatenkin, arvattavasti, kai, kaiketi, luultavasti, todennäköisesti</ar>
-<ar><k>probation</k>
-koeaika</ar>
-<ar><k>probe</k>
-mittapää, sondi (lääk)</ar>
-<ar><k>problem</k>
-ongelma, probleema, pulma</ar>
-<ar><k>problematic</k>
-arvoituksellisuus, ongelmallinen</ar>
-<ar><k>procedure</k>
-menetelmä</ar>
-<ar><k>proceed</k>
-edetä, edistyä, jatkaa, menetellä</ar>
-<ar><k>processed product</k>
-jaloste</ar>
-<ar><k>procession</k>
-juhlakulkue</ar>
-<ar><k>processor</k>
-kopiointiosa, monistusosa</ar>
-<ar><k>proclaim</k>
-julistaa (virall)</ar>
-<ar><k>proclamation</k>
-julistus</ar>
-<ar><k>procure</k>
-hankkia, hommata (hankkia)</ar>
-<ar><k>procuring</k>
-hankinta</ar>
-<ar><k>produce</k>
-aikaantuottaa, tuottaa, valmistaa</ar>
-<ar><k>producer</k>
-tuottaja, valmistaja</ar>
-<ar><k>product</k>
-tuote</ar>
-<ar><k>production</k>
-tuotanto</ar>
-<ar><k>productive</k>
-antoisa, tuloksellinen, tuottava</ar>
-<ar><k>profanation</k>
-häväistys</ar>
-<ar><k>profession</k>
-ammattiala</ar>
-<ar><k>professional</k>
-ammattimainen</ar>
-<ar><k>professional experience</k>
-ammattikokemus</ar>
-<ar><k>professional literature</k>
-ammattikirjallisuus</ar>
-<ar><k>professional musician</k>
-ammattimuusikko</ar>
-<ar><k>professionalism</k>
-ammattilaisuus</ar>
-<ar><k>professor</k>
-professori</ar>
-<ar><k>proficiency</k>
-etevyys</ar>
-<ar><k>proficient</k>
-etevä</ar>
-<ar><k>profile</k>
-profiili</ar>
-<ar><k>profit</k>
-hyödyttää, hyötyä
-
-voitto</ar>
-<ar><k>profit-seeking</k>
-voitonhimoinen</ar>
-<ar><k>profitability</k>
-hyödyllisyys</ar>
-<ar><k>profitable</k>
-edullinen (tuottava), hyödyllinen, kannattava, tuottoisa</ar>
-<ar><k>profitably</k>
-edullisesti</ar>
-<ar><k>profound</k>
-syvällinen</ar>
-<ar><k>profuse</k>
-rankka, ylenpalttinen, yltäkylläinen</ar>
-<ar><k>profusion</k>
-runsaus</ar>
-<ar><k>program</k>
-ohjelma
-
-ohjelmoida (atk)</ar>
-<ar><k>programme</k>
-ohjelma, teatteriohjelma</ar>
-<ar><k>programming</k>
-ohjelmointi (atk)</ar>
-<ar><k>progress</k>
-eteneminen, edistyminen</ar>
-<ar><k>progressive</k>
-edistyksellinen, progressiivinen</ar>
-<ar><k>prohibit</k>
-kieltää (ei sallia)</ar>
-<ar><k>prohibition</k>
-kielto</ar>
-<ar><k>project</k>
-hanke, projekti, suunnitelma
-
-heijastaa</ar>
-<ar><k>project supervision</k>
-projektivalvonta</ar>
-<ar><k>projecting</k>
-esiinpistävä</ar>
-<ar><k>projecting rock</k>
-kieleke (kallion)</ar>
-<ar><k>projection</k>
-kieleke (kallion), uloke</ar>
-<ar><k>projector</k>
-heijastuskoje, kuvanheitin</ar>
-<ar><k>proletariat</k>
-köyhälistö</ar>
-<ar><k>prolong</k>
-pitkittää</ar>
-<ar><k>prolonged</k>
-pitkällinen</ar>
-<ar><k>prominence</k>
-huomattavuus</ar>
-<ar><k>prominent</k>
-etevä, huomattava (etevä), huomattu</ar>
-<ar><k>promise</k>
-lupaus
-
-lupautua, luvata</ar>
-<ar><k>promising</k>
-lupaava, toiveikas</ar>
-<ar><k>promissory note</k>
-velkakirja</ar>
-<ar><k>promote</k>
-edistää, korottaa (jhk arvoon), ylentää (virassa)</ar>
-<ar><k>promotion</k>
-edistäminen, kohoaminen (virassa), ylennys</ar>
-<ar><k>promotor</k>
-edistäjä</ar>
-<ar><k>prompt</k>
-joutuissa, kiireellinen (pikainen), nopea, pikainen, ripeä,kerkeä</ar>
-<ar><k>prompter</k>
-kuiskaaja (teatt)</ar>
-<ar><k>promptness</k>
-joutuisuus</ar>
-<ar><k>pronoun</k>
-pronomini</ar>
-<ar><k>pronounce</k>
-lausua (ääntää), ääntää</ar>
-<ar><k>pronounce sentence</k>
-langettaa (tuomio)</ar>
-<ar><k>pronounced</k>
-jyrkkäpiirteinen</ar>
-<ar><k>pronunciation</k>
-lausunta, ääntäminen</ar>
-<ar><k>proof</k>
-todistus</ar>
-<ar><k>prop</k>
-kannatin, noja, pönkkä, pölkky
-
-pönkittää</ar>
-<ar><k>propaganda</k>
-propaganda</ar>
-<ar><k>propeller</k>
-potkuri (laivan ym)</ar>
-<ar><k>proper</k>
-arvonmukainen, asianmukainen, kunnollinen (oikea), otollinen (sovelias), sopiva, sovelias, säädyllinen, varsinainen</ar>
-<ar><k>proper noun</k>
-erisnimi (kiel)</ar>
-<ar><k>properly</k>
-kunnollisesti, oikeastaan</ar>
-<ar><k>property</k>
-omaisuus, ominaisuus</ar>
-<ar><k>prophet</k>
-ennustaja, profeetta</ar>
-<ar><k>prophetic</k>
-profeetallinen</ar>
-<ar><k>proportion</k>
-mittasuhde, osa (suhteellinen), suhde, suhta, suhteellisuus, suhteuttaa, verranto</ar>
-<ar><k>proportional</k>
-suhteellinen, verrannollinen</ar>
-<ar><k>proportionate</k>
-suhteellinen</ar>
-<ar><k>proposal</k>
-ehdotus</ar>
-<ar><k>proposal of marriage</k>
-kosinta</ar>
-<ar><k>propose</k>
-ehdottaa</ar>
-<ar><k>propose marriage</k>
-kosia</ar>
-<ar><k>proposer</k>
-ehdottaja, esittäjä</ar>
-<ar><k>proprietor</k>
-omistaja</ar>
-<ar><k>prose</k>
-proosa</ar>
-<ar><k>prosecution</k>
-syyte, vaino</ar>
-<ar><k>prosecutor</k>
-syyttäjä</ar>
-<ar><k>prospect</k>
-näkymä, näköala (kuv)</ar>
-<ar><k>prospective</k>
-mahdollinen (tuleva), vastavainen</ar>
-<ar><k>prospectus</k>
-prospekti, esite</ar>
-<ar><k>prosper</k>
-kukoistaa (kuv)</ar>
-<ar><k>prosperity</k>
-hyvinvointi (aineellinen), vauraus</ar>
-<ar><k>prosperous</k>
-hyvinvoipa (varakas)</ar>
-<ar><k>prostate</k>
-eturauhanen</ar>
-<ar><k>prostitute</k>
-huora, ilotyttö, portto</ar>
-<ar><k>prostrate</k>
-näännyttää</ar>
-<ar><k>prostration</k>
-uupumus, uuvutus</ar>
-<ar><k>protect</k>
-suojata, suojautua, suojella, turvata</ar>
-<ar><k>protect against</k>
-varjella, protestoida</ar>
-<ar><k>protected</k>
-turvattu</ar>
-<ar><k>protection</k>
-suoja, turva (suojelus), suojaus</ar>
-<ar><k>protective</k>
-suojaava, suoja-</ar>
-<ar><k>protector</k>
-suojelija, suojus, suojustin</ar>
-<ar><k>protein</k>
-valkuaisaine</ar>
-<ar><k>protest</k>
-vastalause
-
-esittää vastalause</ar>
-<ar><k>protestant</k>
-protestantti</ar>
-<ar><k>protocol</k>
-protokolla</ar>
-<ar><k>protoplasm</k>
-alkulima</ar>
-<ar><k>prototype</k>
-esikuva (malli), perikuva</ar>
-<ar><k>protozoon</k>
-alkueläin</ar>
-<ar><k>protruding</k>
-esiinpistävä, ulkoneva</ar>
-<ar><k>proud</k>
-ylpeä, ylväs</ar>
-<ar><k>prove</k>
-ilmetä (osoittauttua), todistaa</ar>
-<ar><k>proverb</k>
-sananlasku</ar>
-<ar><k>provide</k>
-hankkia (varustaa)</ar>
-<ar><k>provide for</k>
-huoltaa (elättää)</ar>
-<ar><k>provide with food</k>
-evästää</ar>
-<ar><k>provided that</k>
-jos</ar>
-<ar><k>providence</k>
-kaitselmus</ar>
-<ar><k>province</k>
-maakunta</ar>
-<ar><k>provincial</k>
-maalainen</ar>
-<ar><k>provisio</k>
-varaus</ar>
-<ar><k>provisional</k>
-alustava, väliaikainen</ar>
-<ar><k>provisionally</k>
-alustavasti, väliaikaisesti</ar>
-<ar><k>provisions</k>
-elintarvike, elintarvikkeet, muona, muonavarat, ruokavarat</ar>
-<ar><k>provoke</k>
-ärsyttää</ar>
-<ar><k>provoking</k>
-harmillinen</ar>
-<ar><k>prow</k>
-keulaosa</ar>
-<ar><k>prowl</k>
-vaania</ar>
-<ar><k>proxy</k>
-edusmies (lak)</ar>
-<ar><k>prune</k>
-luumu (kuivattu)
-
-karsia (oksia), leikata (hedelmäpuita)</ar>
-<ar><k>pruning</k>
-karsinta</ar>
-<ar><k>prussic acid</k>
-sinihappo</ar>
-<ar><k>psalm</k>
-psalmi</ar>
-<ar><k>psychiatrist</k>
-psykiatri</ar>
-<ar><k>psychiatry</k>
-psykiatria</ar>
-<ar><k>psychic</k>
-psyykkinen</ar>
-<ar><k>psychology</k>
-sielutiede</ar>
-<ar><k>psychopath</k>
-luonnevikainen</ar>
-<ar><k>pub</k>
-kapakka, pubi</ar>
-<ar><k>puberty</k>
-murrosikä</ar>
-<ar><k>public</k>
-yleisö
-
-julkinen</ar>
-<ar><k>public assistance</k>
-köyhänapu</ar>
-<ar><k>public funds</k>
-valtionvarat</ar>
-<ar><k>public house</k>
-kapakka</ar>
-<ar><k>public prosecutor</k>
-viskaali, yleinen syyttäjä</ar>
-<ar><k>public relations</k>
-suhdetoiminta</ar>
-<ar><k>public revenue</k>
-valtiontulot</ar>
-<ar><k>public sale</k>
-huutokauppa</ar>
-<ar><k>public transport</k>
-liikennelaitos</ar>
-<ar><k>public welfare</k>
-huoltoapu</ar>
-<ar><k>publication</k>
-julkaiseminen, julkaisu</ar>
-<ar><k>publicity</k>
-julkisuus, mainonta, mainostus</ar>
-<ar><k>publicity stunt</k>
-mainostemppu</ar>
-<ar><k>publicly</k>
-julkisesti</ar>
-<ar><k>publish</k>
-julkaista (kirja ym), kustantaa (kirja)</ar>
-<ar><k>publisher</k>
-julkaisija, kirjankustantaja, kustantaja (kirjan)</ar>
-<ar><k>publishing house</k>
-kustantamo</ar>
-<ar><k>puck</k>
-jääkiekko</ar>
-<ar><k>pucker up</k>
-kuroa</ar>
-<ar><k>pudding</k>
-vanukas</ar>
-<ar><k>puddle</k>
-vesiallikko, lätäkkö</ar>
-<ar><k>puff</k>
-haiku (tuprut), henkäys (tuulen), homo [puhek.]</ar>
-<ar><k>puffer</k>
-puhalluslaite</ar>
-<ar><k>puffy</k>
-pöyheä</ar>
-<ar><k>pull</k>
-veto, tempaus
-
-raastaa, temmata, tempoa, vetää</ar>
-<ar><k>pull a fast one</k>
-tehdä kepponen [puhek.]</ar>
-<ar><k>pull at</k>
-nykiä</ar>
-<ar><k>pull down</k>
-purkaa (talo ym)</ar>
-<ar><k>pull out</k>
-nyhtää</ar>
-<ar><k>pull quickly</k>
-vetäistä</ar>
-<ar><k>pull switch</k>
-vetokytkin</ar>
-<ar><k>pull the trigger</k>
-liipaista</ar>
-<ar><k>pull up weeds</k>
-kitkeä</ar>
-<ar><k>pulley</k>
-hihnapyörä, väkipyörä</ar>
-<ar><k>pullover</k>
-pujoliivi</ar>
-<ar><k>pulp</k>
-vanuke</ar>
-<ar><k>pulpit</k>
-saarnatuoli</ar>
-<ar><k>pulsate</k>
-sykkiä, tykyttää</ar>
-<ar><k>pulsation</k>
-suonensykintä, sykintä</ar>
-<ar><k>pulse</k>
-pulssi, suonensykintä</ar>
-<ar><k>pulverization</k>
-jauhennus</ar>
-<ar><k>pulverize</k>
-hienontaa, jauhentaa</ar>
-<ar><k>puma</k>
-puuma</ar>
-<ar><k>pumice</k>
-hioa</ar>
-<ar><k>pumice-stone</k>
-hohkakivi</ar>
-<ar><k>pump</k>
-pumppu
-
-pumputa</ar>
-<ar><k>pump reservoir</k>
-öljysäiliö</ar>
-<ar><k>pump station</k>
-pumppuasema</ar>
-<ar><k>pumpkin</k>
-kurpitsa</ar>
-<ar><k>punch</k>
-reikämeisti, nyrkinisku
-
-meistää</ar>
-<ar><k>punctaution mark</k>
-välimerkki</ar>
-<ar><k>punctuate</k>
-pilkutaa</ar>
-<ar><k>puncture</k>
-puhkaisu, rengasrikko</ar>
-<ar><k>puncture wound</k>
-pistohaava</ar>
-<ar><k>pungency</k>
-kirpeys</ar>
-<ar><k>pungent</k>
-kirpeä</ar>
-<ar><k>punish</k>
-rangaista</ar>
-<ar><k>punishable</k>
-rangaistava</ar>
-<ar><k>punishment</k>
-rangaistus</ar>
-<ar><k>punishment lesson</k>
-laiskanläksy</ar>
-<ar><k>punt</k>
-ruuhi, sauvoa</ar>
-<ar><k>puny</k>
-heiveröinen</ar>
-<ar><k>pup</k>
-koiranpentu</ar>
-<ar><k>pupil</k>
-koululainen, oppilas, silmäterä</ar>
-<ar><k>puppet</k>
-marionetti, sätkynukke</ar>
-<ar><k>puppet government</k>
-nukkehallitus</ar>
-<ar><k>puppet-show</k>
-nukketeatteri</ar>
-<ar><k>puppy</k>
-koiranpentu, pentu (koiran)</ar>
-<ar><k>purchase</k>
-osto
-
-ostaa</ar>
-<ar><k>purchaser</k>
-ostaja</ar>
-<ar><k>pure</k>
-pelkkä (puhdas), puhdas, silkka</ar>
-<ar><k>puree</k>
-sosekeitto</ar>
-<ar><k>purely</k>
-puhtaasti</ar>
-<ar><k>purgative</k>
-ulostava</ar>
-<ar><k>purify</k>
-puhdistaa</ar>
-<ar><k>puritan</k>
-puritaani</ar>
-<ar><k>purity</k>
-puhtaus</ar>
-<ar><k>purl</k>
-liristä, lorista</ar>
-<ar><k>purlins</k>
-orret</ar>
-<ar><k>purposeless</k>
-tarkoitukseton</ar>
-<ar><k>purposely</k>
-tahallaan, tarkoituksellisesti</ar>
-<ar><k>purse</k>
-kukkaro, rahakukkaro, rahapussi</ar>
-<ar><k>pursue</k>
-ajaa takaa, harjoitus</ar>
-<ar><k>pursuer</k>
-ahdistaja, takaaajaja</ar>
-<ar><k>pursuit</k>
-takaaajo, tavoittelu, pyrkimys</ar>
-<ar><k>push</k>
-sysätä, tupata, tuupata, tuuppia, tyrkkiä, tyrkkäys, tyrkätä, työntää, töytäistä</ar>
-<ar><k>push around</k>
-komennella</ar>
-<ar><k>push chair</k>
-lapsenrattaat</ar>
-<ar><k>pushed for time</k>
-kiireinen [puhek.]</ar>
-<ar><k>pusher</k>
-etuilija, huumekauppias</ar>
-<ar><k>pushover</k>
-heittopussi</ar>
-<ar><k>puss</k>
-mirri</ar>
-<ar><k>put</k>
-asettaa, panna</ar>
-<ar><k>put down</k>
-lopettaa (eläin)</ar>
-<ar><k>put forward</k>
-esittää</ar>
-<ar><k>put in order</k>
-järjestellä, järjestää, kunnostaa</ar>
-<ar><k>put in splints</k>
-lastoittaa</ar>
-<ar><k>put in type</k>
-latoa (kirjap)</ar>
-<ar><k>put into effect</k>
-toteutaa</ar>
-<ar><k>put off</k>
-lykätä</ar>
-<ar><k>put one's foot in it</k>
-munata</ar>
-<ar><k>put one's soul into</k>
-eläytyä</ar>
-<ar><k>put out</k>
-sammuttaa</ar>
-<ar><k>put right</k>
-korjata (parsia ym), oikaista (korjata)</ar>
-<ar><k>put the brakes on</k>
-jarruttaa</ar>
-<ar><k>put the wood in it</k>
-sulje ovi [puhek.]</ar>
-<ar><k>put to sleep</k>
-lopettaa (eläin)</ar>
-<ar><k>put up</k>
-pystyttää</ar>
-<ar><k>put up with</k>
-sietää, suvaita</ar>
-<ar><k>put-off</k>
-lykätä</ar>
-<ar><k>putting in order</k>
-järjestäminen</ar>
-<ar><k>putty</k>
-kitata
-
-kitti</ar>
-<ar><k>puzzle</k>
-arvoitus, ongelma
-
-hämmäänyttää, hölmistyttää</ar>
-<ar><k>puzzling</k>
-arvoituksellisuus, ongelmallinen, pulmallinen</ar>
-<ar><k>pvc sheet</k>
-pvc-kalvo</ar>
-<ar><k>pygmy</k>
-kääpiö</ar>
-<ar><k>pyjamas</k>
-pyjama, yöpuku</ar>
-<ar><k>pyramid</k>
-pyramidi</ar>
-<ar><k>pyre</k>
-rovio</ar>
-<ar><k>quack doctor</k>
-puoskari</ar>
-<ar><k>quake</k>
-järistys
-
-järistä</ar>
-<ar><k>quaker</k>
-kveekari</ar>
-<ar><k>quaking</k>
-järistys</ar>
-<ar><k>qualifications</k>
-kelpoisuus, pätevyys</ar>
-<ar><k>qualified</k>
-pätevä</ar>
-<ar><k>qualified for</k>
-hakukelpoinen</ar>
-<ar><k>qualifier</k>
-määre</ar>
-<ar><k>qualify</k>
-määrittää</ar>
-<ar><k>qualifying heat</k>
-alkuerä</ar>
-<ar><k>qualifying heats</k>
-alkuerät</ar>
-<ar><k>qualifying match</k>
-karsintaottelu</ar>
-<ar><k>qualitative</k>
-laadullinen</ar>
-<ar><k>quality</k>
-laatu, ominaisuus</ar>
-<ar><k>quantity</k>
-erä (ainetta), suure (mat), määrä</ar>
-<ar><k>quantity surveyor</k>
-rekennuttajakonsultti</ar>
-<ar><k>quarantine</k>
-karanteeni</ar>
-<ar><k>quarrel</k>
-riita, tora
-
-kiista (riita), kinata, riidellä, torailla, torata</ar>
-<ar><k>quarrelsome</k>
-toraisa</ar>
-<ar><k>quarry</k>
-kivilouhos, louhos
-
-luohia</ar>
-<ar><k>quarry tile</k>
-kivirouhelaatat</ar>
-<ar><k>quarter</k>
-neljännes, neljäsosa</ar>
-<ar><k>quarter deck</k>
-peräkansi</ar>
-<ar><k>quartet</k>
-kvartetti</ar>
-<ar><k>quartz</k>
-kvartsi</ar>
-<ar><k>quay</k>
-laituri, satamalaituri</ar>
-<ar><k>queen</k>
-daami (korttip), kuningatar</ar>
-<ar><k>queer</k>
-eriskummallinen, kummallinen, omituinen</ar>
-<ar><k>quell</k>
-kukistaa (kapina)</ar>
-<ar><k>query</k>
-kysymys</ar>
-<ar><k>quest</k>
-etsiminen, haku</ar>
-<ar><k>question</k>
-kysymys
-
-kuulustella (todistajaa ym)</ar>
-<ar><k>question of vital importance</k>
-elinkysymys</ar>
-<ar><k>question-mark</k>
-kysymysmerkki</ar>
-<ar><k>questionnaire</k>
-kiertokysely, kyselylomake</ar>
-<ar><k>queue</k>
-jono</ar>
-<ar><k>queue up</k>
-jonottaa</ar>
-<ar><k>quick</k>
-joutuissa, nopea, pikainen, ripeä, sukkela, vauhdikas (nopea), vikkelä</ar>
-<ar><k>quick pull</k>
-vetäisy</ar>
-<ar><k>quick temper</k>
-äkkipikaisuus</ar>
-<ar><k>quick to learn</k>
-hyväoppinen</ar>
-<ar><k>quick witted</k>
-nokkela</ar>
-<ar><k>quick-tempered</k>
-kiivas</ar>
-<ar><k>quick-witted</k>
-hyväpäinen</ar>
-<ar><k>quicken</k>
-elvyttää</ar>
-<ar><k>quicker</k>
-pikemmin</ar>
-<ar><k>quickly</k>
-joutuin, kiireesti, nopeasti</ar>
-<ar><k>quickness</k>
-joutuisuus, nopeus, ripeys, vikkelyys</ar>
-<ar><k>quicksilver</k>
-elohopea</ar>
-<ar><k>quiet</k>
-hiljaa, hiljainen (rauhallinen), lepo (rauha), säyseä, tyyni, tyynnyttää</ar>
-<ar><k>quieten</k>
-hiljentää, vaimeta, viihdyttää, raukoittaa</ar>
-<ar><k>quieten down</k>
-hiljentyä</ar>
-<ar><k>quietly</k>
-rauhallisesti, tyynesti</ar>
-<ar><k>quietness</k>
-hiljaisuus, säyseys</ar>
-<ar><k>quill</k>
-hanhenkynä, kynä (sulka), sulkakynä</ar>
-<ar><k>quilt</k>
-vuodepeite</ar>
-<ar><k>quilting</k>
-toppaus</ar>
-<ar><k>quintet</k>
-viisikko</ar>
-<ar><k>quit</k>
-jättää (läteä pois)</ar>
-<ar><k>quite</k>
-aivan, hyvinkin, juuri (täysin), lopen, tuiki, täysin (aivan), vallan, varsin</ar>
-<ar><k>quite a lot</k>
-aikapaljon</ar>
-<ar><k>quiver</k>
-nuoliviivi, värinä, värähdys
-
-väristä</ar>
-<ar><k>quivering</k>
-värinä</ar>
-<ar><k>quiz</k>
-tietokilpailu</ar>
-<ar><k>quotation</k>
-hintatarjous, kurssiilmoitus, lainalause</ar>
-<ar><k>quotation marks</k>
-lainausmerkit</ar>
-<ar><k>quote</k>
-noteerata</ar>
-<ar><k>rabbit</k>
-kaniini</ar>
-<ar><k>rabbit hutch</k>
-kaniininkoppi</ar>
-<ar><k>rabble</k>
-roskaväki</ar>
-<ar><k>rabies</k>
-raivotauti, vesikauhu</ar>
-<ar><k>raccoon</k>
-pesukarhu (zo)</ar>
-<ar><k>race</k>
-rotu, suku, kilpailu (juoksu)</ar>
-<ar><k>race hatred</k>
-rotuviha</ar>
-<ar><k>race prejudice</k>
-rotuennakkoluulo</ar>
-<ar><k>race segregation</k>
-rotuerottelu</ar>
-<ar><k>racial</k>
-rodullinen</ar>
-<ar><k>rack</k>
-hylly (junassa ym), piinapenkki, teline</ar>
-<ar><k>radar</k>
-tutka</ar>
-<ar><k>radiance</k>
-hohde</ar>
-<ar><k>radiate</k>
-heijastaa (säteillä), sädehtiä</ar>
-<ar><k>radiation</k>
-gammasäteily</ar>
-<ar><k>radiator</k>
-jäähdytin (auton), lämpöpatteri
-
-lämpöpatteri</ar>
-<ar><k>radical</k>
-radikaali</ar>
-<ar><k>radically</k>
-perinjuurinen</ar>
-<ar><k>radio</k>
-radio
-
-radioida</ar>
-<ar><k>radio licence</k>
-kuuntelulupa</ar>
-<ar><k>radio transmission</k>
-radiolähetys</ar>
-<ar><k>radio transmitter</k>
-radiolähetin</ar>
-<ar><k>radioactive</k>
-radioaktiivinen</ar>
-<ar><k>radiotherapy</k>
-sädehoito</ar>
-<ar><k>radish</k>
-retiisi</ar>
-<ar><k>radius</k>
-säde (mat)</ar>
-<ar><k>raffle</k>
-arvonta</ar>
-<ar><k>raft</k>
-tukkilauta</ar>
-<ar><k>raft foundation</k>
-valolava</ar>
-<ar><k>rafter</k>
-kattotuolin yläpaarre, kattoparru</ar>
-<ar><k>rag</k>
-lumppu, repale, riekale, riepu, ryysy, rätti, rääsy</ar>
-<ar><k>rag-and-bone man</k>
-lumppuri</ar>
-<ar><k>rage</k>
-raivo, vimma
-
-raivota, riehua</ar>
-<ar><k>ragged</k>
-repaleinen, risainen</ar>
-<ar><k>raid</k>
-etsintä (ratsia)
-
-ratsia</ar>
-<ar><k>rail</k>
-kisko, johde.aidake, ratakisko</ar>
-<ar><k>railing</k>
-aita (kaide), kaide (sillan), reelinki</ar>
-<ar><k>railway</k>
-rautatie</ar>
-<ar><k>railway yard</k>
-asemapiha</ar>
-<ar><k>railway yards</k>
-asemapiha</ar>
-<ar><k>rain cloud</k>
-sadepilvi</ar>
-<ar><k>rainbow</k>
-sateenkaari</ar>
-<ar><k>rainbow trout</k>
-kirjolohi</ar>
-<ar><k>raincoat</k>
-sadetakki</ar>
-<ar><k>raindrop</k>
-sadepisara</ar>
-<ar><k>rainfall</k>
-sademäärä</ar>
-<ar><k>rainy</k>
-sateinen</ar>
-<ar><k>raise</k>
-kasvattaa, kohotattaa, korottaa, nostaa, nostattaa, viljellä, ylentää</ar>
-<ar><k>raise the price</k>
-kallistaa (hintaa)</ar>
-<ar><k>raisin</k>
-rusina</ar>
-<ar><k>raising</k>
-kasvatus</ar>
-<ar><k>rake</k>
-harava
-
-haravoida</ar>
-<ar><k>rally</k>
-ralli
-
-elpyä (toipua)</ar>
-<ar><k>rally around</k>
-yhdistää voimat [puhek.]</ar>
-<ar><k>ram</k>
-pässi
-
-juntata, juntta</ar>
-<ar><k>rambling</k>
-samoilu</ar>
-<ar><k>ramp</k>
-kalteva pinta, ramppi, luiska</ar>
-<ar><k>ramp mark</k>
-nousujälki</ar>
-<ar><k>rampart</k>
-vallitus</ar>
-<ar><k>ramshackle</k>
-rämä</ar>
-<ar><k>ramshackle house</k>
-harakanpesä</ar>
-<ar><k>rancid</k>
-eltaantunut</ar>
-<ar><k>rancour</k>
-vihankauna</ar>
-<ar><k>random</k>
-satunnainen</ar>
-<ar><k>range</k>
-hella, kantomatka, liesi</ar>
-<ar><k>range of vision</k>
-näköpiiri</ar>
-<ar><k>ransom</k>
-lunnaat</ar>
-<ar><k>rant</k>
-paasata</ar>
-<ar><k>rap</k>
-koputus
-
-kolkuttaa, koputtaa</ar>
-<ar><k>rape</k>
-raiskaus
-
-raiskata</ar>
-<ar><k>rapid</k>
-joutuissa, nopea, pikainen</ar>
-<ar><k>rapidly</k>
-nopeasti, vuolaasti</ar>
-<ar><k>rapids</k>
-koski</ar>
-<ar><k>rapids-shooter</k>
-koskenlaskija</ar>
-<ar><k>rare</k>
-harvenainen</ar>
-<ar><k>rarely</k>
-harvoin</ar>
-<ar><k>rarity</k>
-harvinaisuus</ar>
-<ar><k>rascal</k>
-heittiö, ilkimys, lurjus, roisto, veijari, veitikka, vintiö</ar>
-<ar><k>rash</k>
-hätiköity, ihottuma
-
-uhkarohkea, äkkipikainen</ar>
-<ar><k>rashness</k>
-uhkarohkeus</ar>
-<ar><k>raspberry</k>
-vadelma</ar>
-<ar><k>rat</k>
-rotta</ar>
-<ar><k>rate</k>
-hinta, määrä, taksa, </ar>
-<ar><k>rate of exchange</k>
-valuuttakurssit, kauppakurssi</ar>
-<ar><k>rates of exchange</k>
-valuuttakrssit</ar>
-<ar><k>rather</k>
-ennemmin (mieluummin), hyvinkin, jotenkin, koko, mieluummin</ar>
-<ar><k>rather cold</k>
-kylmähkö</ar>
-<ar><k>rather long</k>
-pitkähkö</ar>
-<ar><k>rather old</k>
-vanhahko</ar>
-<ar><k>rather poor</k>
-huononlainen</ar>
-<ar><k>rather small</k>
-pienehkö</ar>
-<ar><k>rather young</k>
-nuorehko</ar>
-<ar><k>rating</k>
-läksytys</ar>
-<ar><k>ratio</k>
-suhdeluku</ar>
-<ar><k>ration</k>
-annos (kortti- ym)</ar>
-<ar><k>ration out</k>
-annostella</ar>
-<ar><k>rational</k>
-järjenmukainen, järkiperäinen</ar>
-<ar><k>rationality</k>
-järjellisyys, järjenmukaisuus</ar>
-<ar><k>rationalize</k>
-järkeistää</ar>
-<ar><k>rattle</k>
-helistin, kalina, korahdus, korina, pärinä, rahina, rämistin
-
-kalistella, kopistella, </ar>
-<ar><k>rattle-snake</k>
-kalkkarokäärmi</ar>
-<ar><k>rattling</k>
-kalke</ar>
-<ar><k>ravage</k>
-hävittää</ar>
-<ar><k>raven</k>
-korppi</ar>
-<ar><k>ravine</k>
-rotko</ar>
-<ar><k>ravings</k>
-houre</ar>
-<ar><k>raw</k>
-kalsea (sää), kolea, raaka</ar>
-<ar><k>raw materials</k>
-raaka-aineet</ar>
-<ar><k>rawness</k>
-raakuus</ar>
-<ar><k>ray</k>
-rausku (zo), säde, valonsäde</ar>
-<ar><k>raze to the ground</k>
-hajottaa maan tasalle [puhek.]</ar>
-<ar><k>razor</k>
-partaveitsi</ar>
-<ar><k>reach</k>
-ennättää (saavuttaa), ojentaa, saarnata, saavuttaa, tavoittaa, ulottua, yltää
-
-ulottua</ar>
-<ar><k>reach a conclusion</k>
-tehdä johtopäätös</ar>
-<ar><k>reach it's climax</k>
-huipentua (kuv)</ar>
-<ar><k>react</k>
-reagoida</ar>
-<ar><k>reaction</k>
-reaktio</ar>
-<ar><k>reader</k>
-esilukija, lukemisto, lukija</ar>
-<ar><k>readily</k>
-halukkaasti, helposti, hevillä, kernaasti</ar>
-<ar><k>readiness</k>
-valmius</ar>
-<ar><k>reading</k>
-lukema</ar>
-<ar><k>reading-room</k>
-lukusali</ar>
-<ar><k>ready</k>
-esillä (käsillä), halukas, kerkeä, valmis</ar>
-<ar><k>ready to leave</k>
-lähtövalmis</ar>
-<ar><k>ready wit</k>
-sukkelus</ar>
-<ar><k>ready-mixed concrete</k>
-valmisbetoni</ar>
-<ar><k>real</k>
-aito, todellinen</ar>
-<ar><k>real estate</k>
-kiinteistötoiminta, kiinteistö</ar>
-<ar><k>real silver</k>
-aitohopea</ar>
-<ar><k>realistic</k>
-realistinen</ar>
-<ar><k>reality</k>
-todellisuus, todenperäisyys</ar>
-<ar><k>realization</k>
-toteutuminen, täyttymys</ar>
-<ar><k>realize</k>
-havaita (huomata), käsittää (huomata), tajuta, ymmärtää, älytä</ar>
-<ar><k>really</k>
-oikeastaan, oikein (todella), todella, todellakin, todeteolla, varsinaisesti</ar>
-<ar><k>realm</k>
-valtakunta</ar>
-<ar><k>ream</k>
-riisi (paperi)</ar>
-<ar><k>reaping time</k>
-leikkuuaika</ar>
-<ar><k>rear</k>
-kasvattaa
-
-perä, selkäpuoli, taka, sisäpää</ar>
-<ar><k>rear-admiral</k>
-kontraamiraali</ar>
-<ar><k>rear-guard</k>
-jälkijoukko</ar>
-<ar><k>rearing</k>
-kasvatus, lastenkasvatus</ar>
-<ar><k>rearmost</k>
-takimmainen</ar>
-<ar><k>reason</k>
-aihe, järki, peruste, syy, ymmärrys, selitys
-
-järkeillä</ar>
-<ar><k>reasonable</k>
-järjellinen, järkevä, kohtuullinen</ar>
-<ar><k>reasonableness</k>
-järkevyys</ar>
-<ar><k>rebate</k>
-huullos, puolipontti
-
-alennus</ar>
-<ar><k>rebate joint</k>
-puoliponttiliitos</ar>
-<ar><k>rebate plane</k>
-urahöylä</ar>
-<ar><k>rebel</k>
-kapinoida</ar>
-<ar><k>rebellion</k>
-kapina</ar>
-<ar><k>rebellious</k>
-kapinallinen</ar>
-<ar><k>rebound</k>
-kilpistyä, kimmota (takaisin)</ar>
-<ar><k>rebuild</k>
-rakentaa uudelleen</ar>
-<ar><k>rebuke</k>
-läksytys
-
-soimata</ar>
-<ar><k>recall</k>
-kotiinkutsuminen
-
-muistaa, muistella</ar>
-<ar><k>recede</k>
-vetäytyä</ar>
-<ar><k>receipt</k>
-kuitti, vastaanotto</ar>
-<ar><k>receive</k>
-saada, ottaa vastaa, vastaanottaa</ar>
-<ar><k>receiver</k>
-kuulotorvi (puhelimen), saaja, vastaanotin, vastaanottaja</ar>
-<ar><k>recent</k>
-tuore (äskeinen), äskeinen</ar>
-<ar><k>recently</k>
-hiljakkoin, hiljan, hiljattain, viimeaikainen, äskettäin</ar>
-<ar><k>reception</k>
-kuuluvuus, vastaanotto</ar>
-<ar><k>receptionist</k>
-portieeri</ar>
-<ar><k>recess</k>
-soppi, sopukka, seinäsyvennys, välitunti</ar>
-<ar><k>recessed</k>
-upotettu</ar>
-<ar><k>recessed joint</k>
-piilosauma</ar>
-<ar><k>recession</k>
-laskukausi (liik), laskusuhdanne</ar>
-<ar><k>rechless</k>
-huima (hurja)</ar>
-<ar><k>rechlessness</k>
-huimapäisyys, hurjapäisyys, hurjuus</ar>
-<ar><k>recipe</k>
-ruokaohje, resepti (keitto-)</ar>
-<ar><k>recipient</k>
-saaja, vastaanottaja</ar>
-<ar><k>recital</k>
-konsertti</ar>
-<ar><k>recite</k>
-lausua (runo)</ar>
-<ar><k>reciter</k>
-lausuja</ar>
-<ar><k>reckless</k>
-hurja (pelkäämätön), uhkarohkea</ar>
-<ar><k>reckless driving</k>
-hurjastelu (auto- ym)</ar>
-<ar><k>reckon</k>
-laskea (mat)</ar>
-<ar><k>recline</k>
-nojata</ar>
-<ar><k>recluse</k>
-erakko</ar>
-<ar><k>recognizable</k>
-tunnettava</ar>
-<ar><k>recognize</k>
-oivaltaa, tunnistaa</ar>
-<ar><k>recollect</k>
-muistaa, muistella</ar>
-<ar><k>recollection</k>
-muistelma</ar>
-<ar><k>recommence</k>
-alkaa uudestaan</ar>
-<ar><k>recommend</k>
-puoltaa, suositella, suosittaa</ar>
-<ar><k>recommendation</k>
-suosittelu, suositus</ar>
-<ar><k>reconciliation</k>
-sovinto</ar>
-<ar><k>recondition</k>
-kunnostaa</ar>
-<ar><k>reconstruction</k>
-jälleenrakennus</ar>
-<ar><k>record</k>
-ennätys, gramafonilevy, äänilevy, pöytäkirja, arkisto
-
-levyttää, nauhoittaa, tallentaa</ar>
-<ar><k>record player</k>
-levysoitin</ar>
-<ar><k>recording</k>
-levytys, äänitys</ar>
-<ar><k>recording tape</k>
-ääninauha</ar>
-<ar><k>records</k>
-arkisto</ar>
-<ar><k>recover</k>
-elpyä, saada (takaisin), tointua, toipua, virkistyä</ar>
-<ar><k>recovery</k>
-elpyminen (kauppan), elvytys, paraneminen, parantuminen</ar>
-<ar><k>recreation</k>
-virkistys</ar>
-<ar><k>recruit</k>
-alokas (sot)
-
-pestata (sot), värvätä</ar>
-<ar><k>recruiting-sergeant</k>
-värvääjä</ar>
-<ar><k>rectangle</k>
-suorakaide</ar>
-<ar><k>rectifier</k>
-tasasuunnin</ar>
-<ar><k>rectify</k>
-korjata (parsia ym), oikaista (korjata), oikoa, suoristaa</ar>
-<ar><k>rector</k>
-kirkkoherra</ar>
-<ar><k>rectum</k>
-peräsuoli</ar>
-<ar><k>recuperate</k>
-virkistyä
-
-ottaa talteen</ar>
-<ar><k>red fox</k>
-punakettu</ar>
-<ar><k>red glow</k>
-punerrus</ar>
-<ar><k>red tape</k>
-byrokratia, virkavalta</ar>
-<ar><k>red wine</k>
-punaviivi</ar>
-<ar><k>red-faced</k>
-punakka</ar>
-<ar><k>redden</k>
-punastua</ar>
-<ar><k>redeem</k>
-lunastaa</ar>
-<ar><k>redeemer</k>
-lunastaja</ar>
-<ar><k>redemption</k>
-lunastus</ar>
-<ar><k>redevelopment</k>
-saneeraus</ar>
-<ar><k>redstart</k>
-leppälintu</ar>
-<ar><k>reduce</k>
-alentaa, laihtua, lieventää (rangaistusta), niukentaa, pelkistää (kem), supistaa, vähentää, pienentää</ar>
-<ar><k>reduce to poverty</k>
-köyhdyttää</ar>
-<ar><k>reduced-fare ticket</k>
-alennuslippu</ar>
-<ar><k>reducer</k>
-supistusyhde</ar>
-<ar><k>reduction</k>
-alennus, huojennus (hinnan), pienennys, supistus</ar>
-<ar><k>redwood</k>
-honkapuu</ar>
-<ar><k>reed</k>
-ruoko</ar>
-<ar><k>reed thatch</k>
-kaislakatto</ar>
-<ar><k>reeded glass</k>
-rihlattu lasi</ar>
-<ar><k>reef</k>
-karikko, riutta</ar>
-<ar><k>reef knot</k>
-merisolmu</ar>
-<ar><k>reefy</k>
-karikkoinen</ar>
-<ar><k>reek</k>
-kärytä</ar>
-<ar><k>reel</k>
-kela, perinpuut, vyyhdinpuut
-
-hoiperrella, kelata</ar>
-<ar><k>reel off</k>
-lasketella</ar>
-<ar><k>refer</k>
-viitata jhk</ar>
-<ar><k>referee</k>
-erotuomari, kehätuomari</ar>
-<ar><k>reference</k>
-viite, viittaus</ar>
-<ar><k>reference book</k>
-hakuteos</ar>
-<ar><k>reference library</k>
-käsikirjasto</ar>
-<ar><k>referendum</k>
-kansanäänestys</ar>
-<ar><k>refidgerator</k>
-jääkaappi</ar>
-<ar><k>refill</k>
-täyttää (uudelleen)</ar>
-<ar><k>refine</k>
-mellottaa</ar>
-<ar><k>refinement</k>
-hienostuneisuus</ar>
-<ar><k>refining</k>
-jalostus</ar>
-<ar><k>reflect</k>
-heijastaa, kuvastaa</ar>
-<ar><k>reflect upon</k>
-harkita, tuumailla, tuumata, tuumia, tuumiskella</ar>
-<ar><k>reflectance</k>
-heijastuma</ar>
-<ar><k>reflection</k>
-heijastus, miete</ar>
-<ar><k>reflective</k>
-ajattelevainen</ar>
-<ar><k>reflector</k>
-heijastin</ar>
-<ar><k>reflex</k>
-heijaste (lääk), heijastuma, heijastus</ar>
-<ar><k>reflex action</k>
-heijastusliike</ar>
-<ar><k>reflexive</k>
-itsekohtainen (kiel), refleksiivinen (kiel)</ar>
-<ar><k>reform</k>
-edistys (uudistus)</ar>
-<ar><k>reform school</k>
-kasvatuslaitos</ar>
-<ar><k>refresh</k>
-piristää, verestää, virkistää, virvoittaa</ar>
-<ar><k>refresh oneself</k>
-virkistyä</ar>
-<ar><k>refresher course</k>
-kertauskurssi</ar>
-<ar><k>refreshment</k>
-virkistys, virvoitus</ar>
-<ar><k>refreshment room</k>
-bufetti</ar>
-<ar><k>refreshments</k>
-virvokkeet</ar>
-<ar><k>refridgerate</k>
-jäähdyttää</ar>
-<ar><k>refridgerating</k>
-jäähdytys</ar>
-<ar><k>refridgerating plant</k>
-jäähdyttämö</ar>
-<ar><k>refridgerator</k>
-jäähdyskaappi, jäähdytin</ar>
-<ar><k>refuel</k>
-tankata</ar>
-<ar><k>refugee</k>
-pakolainen</ar>
-<ar><k>refusal</k>
-epäys, hylkääminen, kielto, kieltäytyminen</ar>
-<ar><k>refuse</k>
-kieltäytyä, evätä
-
-hylky, jätteet, roskat, törky</ar>
-<ar><k>refuse heap</k>
-jätekasa</ar>
-<ar><k>refuse tip</k>
-kaatoallas</ar>
-<ar><k>regal</k>
-kuninkaallinen</ar>
-<ar><k>regard</k>
-katsella</ar>
-<ar><k>regard as</k>
-katsoa, pitää (jnak)</ar>
-<ar><k>regardless</k>
-riippumatta</ar>
-<ar><k>regardless of others</k>
-häikäilemättä</ar>
-<ar><k>regards</k>
-terveiset</ar>
-<ar><k>regent</k>
-valtionhoitaja</ar>
-<ar><k>regiment</k>
-rykmentti, kuuri</ar>
-<ar><k>region</k>
-alue (seutu), seutu, tienoo</ar>
-<ar><k>register</k>
-lista, matrikkeli, rekisteri
-
-kirjata (kirje ym), kohdistaa</ar>
-<ar><k>registered letter</k>
-arvokirje</ar>
-<ar><k>registrar</k>
-aktuaari, henkikirjoittaja, kirjaaja</ar>
-<ar><k>registration</k>
-kirjaus, rekisteröinti, ilmoittautuminen, kohdistus</ar>
-<ar><k>registration edge</k>
-kohdistusohjain</ar>
-<ar><k>registration fingers</k>
-kohdistuspidäkkeet</ar>
-<ar><k>regret</k>
-kaipaus, mielipaha, suru, surra
-
-kaduttaa, katua, murehtia, pahoitella</ar>
-<ar><k>regrettable</k>
-valitettava</ar>
-<ar><k>regular</k>
-kantaasiakas
-
-säännöllinen, vakinainen</ar>
-<ar><k>regular visitor</k>
-kantavieras</ar>
-<ar><k>regularity</k>
-säännöllisyys</ar>
-<ar><k>regularly</k>
-säännöllisesti</ar>
-<ar><k>regulate</k>
-järjestellä (säännellä), rukata, säännellä, säätää (tekn)</ar>
-<ar><k>regulating</k>
-järjestely</ar>
-<ar><k>regulation</k>
-säännös, sääntö, säätö</ar>
-<ar><k>rehabilitate</k>
-kuntouttaa</ar>
-<ar><k>rehabilitation</k>
-kuntoutus</ar>
-<ar><k>rehearse</k>
-harjoitella</ar>
-<ar><k>reign of terror</k>
-hirmuhallitus</ar>
-<ar><k>reinforced concrete</k>
-rautabetoni, teräsbetoni</ar>
-<ar><k>reinforcement</k>
-vahviste</ar>
-<ar><k>reinforcements</k>
-apujoukot, lisävoimat, vahvennus (sot)</ar>
-<ar><k>reins</k>
-ohjakset</ar>
-<ar><k>reinstall</k>
-laittaa, asentaa takaisin paikalleen</ar>
-<ar><k>reiterate</k>
-toistaa</ar>
-<ar><k>reject</k>
-evätä (hylätä), hylkiä, hylätä, torjua (ei hyväksyä)</ar>
-<ar><k>rejection</k>
-hylkääminen, hylkäävä</ar>
-<ar><k>rejects</k>
-hylkytavara</ar>
-<ar><k>rejoice at</k>
-riemuita, iloita</ar>
-<ar><k>rejoicing</k>
-riemu</ar>
-<ar><k>rejuvenation</k>
-nuorennus</ar>
-<ar><k>reknown</k>
-maineikas
-
-kuuluisuus</ar>
-<ar><k>relate</k>
-kertoa</ar>
-<ar><k>related</k>
-samansukuinen</ar>
-<ar><k>relation</k>
-sukulainen, yhteys (suhde), omainen, suhde</ar>
-<ar><k>relationship</k>
-suhde</ar>
-<ar><k>relative</k>
-sukulainen
-
-suhteellinen, takakohtainen (kiel)</ar>
-<ar><k>relatively</k>
-suhteellisen, verrattain</ar>
-<ar><k>relax</k>
-hellittää, hellitä, kirvoittaa, lieventää (rangaistusta), löyhentää, rantautua, rentauttaa</ar>
-<ar><k>relaxation</k>
-höltyminen, rentoutuminen, virkistys</ar>
-<ar><k>relaxed</k>
-rento</ar>
-<ar><k>relay race</k>
-viestinjuoksu</ar>
-<ar><k>relay team</k>
-viestijoukkue</ar>
-<ar><k>release</k>
-irralleen (vapaaksi), julkistaa, kirvoittaa, päästää (irti), vapauttaa, laukaista, irrottaa, vapauttaa</ar>
-<ar><k>relent</k>
-hellyttää, heltyä, lauhtua</ar>
-<ar><k>relentless</k>
-leppymätön</ar>
-<ar><k>reliability</k>
-luotettavuus</ar>
-<ar><k>reliable</k>
-luotettava, reilu, vakavarainen</ar>
-<ar><k>reliance</k>
-luottamus</ar>
-<ar><k>relic</k>
-jäänne</ar>
-<ar><k>relief</k>
-apu (avustus), helpotus, huojennus, hätäapu, kevennys,keventää, kohokuva, korkokuva, lievennys, lievike, lievitys</ar>
-<ar><k>relief fund</k>
-apukassa</ar>
-<ar><k>relief map</k>
-korkokartta</ar>
-<ar><k>relief of the poor</k>
-köyhäinhoito</ar>
-<ar><k>relief valve</k>
-kevennysventtiili</ar>
-<ar><k>relieve</k>
-helpottaa (kipua), lieventää</ar>
-<ar><k>religion</k>
-uskonto</ar>
-<ar><k>religious</k>
-jumalinen, uskonnollinen, uskovainen</ar>
-<ar><k>religious book</k>
-hartauskirja</ar>
-<ar><k>religious denomination</k>
-uskontokunta</ar>
-<ar><k>relinquish</k>
-luopua</ar>
-<ar><k>relish</k>
-höyste (mauste)</ar>
-<ar><k>reluctance</k>
-vastahakoisuss</ar>
-<ar><k>reluctant</k>
-vastahakoinen</ar>
-<ar><k>reluctantly</k>
-epämieluisasti, vastahakoisesti, vastenmielisesti</ar>
-<ar><k>rely on</k>
-luottaa (jhk)</ar>
-<ar><k>remain</k>
-jäädä, pysyä</ar>
-<ar><k>remain below</k>
-pysyä alhaalla</ar>
-<ar><k>remainder</k>
-jäännös, jäännöserä, loppu (jäännös)</ar>
-<ar><k>remaining</k>
-jäännös-, jäämä-, ylijäänyt</ar>
-<ar><k>remark</k>
-huomautus
-
-huomauttaa</ar>
-<ar><k>remarkable</k>
-huomattava (etevä), merkillinen, merkittävä</ar>
-<ar><k>remedy</k>
-apu (parannus), parannuskeino</ar>
-<ar><k>remember</k>
-muistaa</ar>
-<ar><k>remind</k>
-huomauttaa (muistuttaa), muistuttaa</ar>
-<ar><k>remission</k>
-helpotus</ar>
-<ar><k>remittance</k>
-rahalähete, rahalähetys</ar>
-<ar><k>remnant</k>
-jäte, jäännöserä, rippeet, tähde</ar>
-<ar><k>remote</k>
-etäinen, etäis-, kaukainen, syrjäinen</ar>
-<ar><k>remote control</k>
-kaukoohjaus</ar>
-<ar><k>remote district</k>
-takamaa</ar>
-<ar><k>remoteness</k>
-syrjäisyys</ar>
-<ar><k>removal</k>
-erottaminen (toimesta), muutto, siirto, siirtyminen</ar>
-<ar><k>remove</k>
-irrottaa (solmu ym), siirtää (pois), poistaa</ar>
-<ar><k>remove farther</k>
-edentää</ar>
-<ar><k>remuneration</k>
-korvaus</ar>
-<ar><k>remunerative</k>
-edullinen (tuottava)</ar>
-<ar><k>rend</k>
-revetä</ar>
-<ar><k>render help</k>
-antaa apua</ar>
-<ar><k>rendezvous</k>
-kohtauspaikka</ar>
-<ar><k>renegrade</k>
-luopio</ar>
-<ar><k>renew</k>
-uudistaa, uusia</ar>
-<ar><k>renewal</k>
-uudistus, uusinta</ar>
-<ar><k>renovate</k>
-uudistaa (parantaen)</ar>
-<ar><k>rent</k>
-vuokra
-
-vuokrata, repeä</ar>
-<ar><k>rented room</k>
-vuokrahuone</ar>
-<ar><k>repair</k>
-korjaus
-
-korjata, kunnostaa, laittaa, paikata</ar>
-<ar><k>repair load</k>
-korjauskuorma</ar>
-<ar><k>repair man</k>
-korjamies</ar>
-<ar><k>repair shop</k>
-korjaamo, korjapaja</ar>
-<ar><k>repairs</k>
-remontti</ar>
-<ar><k>repeal</k>
-kumota (laki)</ar>
-<ar><k>repeat</k>
-kerrata, toistaa, uudistaa</ar>
-<ar><k>repeated</k>
-toistuva</ar>
-<ar><k>repeatedly</k>
-toistuvasti, uudestaan</ar>
-<ar><k>repent</k>
-katua</ar>
-<ar><k>repentance</k>
-katumus</ar>
-<ar><k>repentant</k>
-katuvainen</ar>
-<ar><k>rephaser</k>
-tahdistin</ar>
-<ar><k>repitition</k>
-kertaus, toistanta, uusinta</ar>
-<ar><k>replace</k>
-korvata (asettaa sijalle), vaihtaa uuteen</ar>
-<ar><k>replacement</k>
-korvaaminen, varaosa
-
-vaihto-osa</ar>
-<ar><k>repletion</k>
-kylläisyys</ar>
-<ar><k>replica</k>
-kaksoiskappale</ar>
-<ar><k>reply</k>
-vastaus
-
-vastata</ar>
-<ar><k>report</k>
-kertomus, laukaus(pamahdus), mietintö, raportti, selostus, tiedonanto, tiedotus
-
-kertoa (selostaa)</ar>
-<ar><k>report on</k>
-selostaa</ar>
-<ar><k>report to</k>
-ilmoittaa (poliisille)</ar>
-<ar><k>reporter</k>
-selostaja, uutistenhankkija</ar>
-<ar><k>reporting</k>
-uutistenhankinta</ar>
-<ar><k>repose</k>
-levätä</ar>
-<ar><k>reprehensible</k>
-moitittava</ar>
-<ar><k>represent</k>
-edustaa</ar>
-<ar><k>representative</k>
-edusmies, edustaja</ar>
-<ar><k>representative of</k>
-edustava</ar>
-<ar><k>representatives</k>
-edustajisto</ar>
-<ar><k>repress</k>
-hillitä, tukahduttaa</ar>
-<ar><k>reprint</k>
-jälkipainos</ar>
-<ar><k>reprisals</k>
-kostotoimenoiteet</ar>
-<ar><k>reproach</k>
-nuhde, pahennus
-
-nuhdella, soimata</ar>
-<ar><k>reproduce</k>
-jäljentää</ar>
-<ar><k>reproduction</k>
-jäljennös</ar>
-<ar><k>reproof</k>
-moite, nuhde</ar>
-<ar><k>reprove</k>
-soimata</ar>
-<ar><k>reptile</k>
-matelija</ar>
-<ar><k>republic</k>
-tasavalta</ar>
-<ar><k>repugnant</k>
-vastenmielinen</ar>
-<ar><k>repulsive</k>
-iljettävä, vastenmielinen</ar>
-<ar><k>repulsiveness</k>
-inhottavuus</ar>
-<ar><k>reputation</k>
-maine</ar>
-<ar><k>request</k>
-anomus, kehotus, pyyntö
-
-pyytää</ar>
-<ar><k>require</k>
-kaivata (tarvita), kysyä (vaatia), tarvita, vaatia</ar>
-<ar><k>requirement</k>
-tarve, vaatimus</ar>
-<ar><k>rescue</k>
-pelastus
-
-pelastaa</ar>
-<ar><k>rescue work</k>
-pelastustyö</ar>
-<ar><k>rescuer</k>
-pelastaja</ar>
-<ar><k>research</k>
-tutkimus</ar>
-<ar><k>research work</k>
-tutkimustyö</ar>
-<ar><k>reseat</k>
-laittaa takaisin paikalleen</ar>
-<ar><k>resemblance</k>
-samanlaisuus, yhtäläisyys</ar>
-<ar><k>resemble</k>
-olla jnk kaltainen</ar>
-<ar><k>resentment</k>
-harmistuminen, kauna, mielipaha, närkästys</ar>
-<ar><k>reserve</k>
-varanto, vararahasto, varamies
-
-tilata, vara, varata</ar>
-<ar><k>reserved</k>
-itseensäsulkeutunut, varattu</ar>
-<ar><k>reservist</k>
-reserviläinen</ar>
-<ar><k>reservoir</k>
-säiliö (suuri), vesisäiliö</ar>
-<ar><k>reset</k>
-palautua, nollautua, palauttaa, nollata</ar>
-<ar><k>resettlement</k>
-jälleenasutus</ar>
-<ar><k>reside</k>
-asua, asustaa</ar>
-<ar><k>residence</k>
-asunto</ar>
-<ar><k>resident</k>
-asukas</ar>
-<ar><k>residential area</k>
-asuntoalue</ar>
-<ar><k>residential density</k>
-asumistiheys</ar>
-<ar><k>residential waste</k>
-asumisjätteet</ar>
-<ar><k>residual</k>
-ylijäänyt</ar>
-<ar><k>residual image</k>
-jäännösjälki</ar>
-<ar><k>residue</k>
-jäte</ar>
-<ar><k>resign from</k>
-ilmoittaa (eroavansa)</ar>
-<ar><k>resign oneself</k>
-alistua</ar>
-<ar><k>resignation</k>
-erohakemus, eronpyyntö</ar>
-<ar><k>resilience</k>
-joustavuus</ar>
-<ar><k>resilient</k>
-joustava, kimmoinen</ar>
-<ar><k>resin</k>
-hartsi, pihka</ar>
-<ar><k>resinous wood</k>
-pihkainen puulaji</ar>
-<ar><k>resist</k>
-vastustaa</ar>
-<ar><k>resistance</k>
-vastus (sähk), vastustus</ar>
-<ar><k>resistance to</k>
-vastarinta</ar>
-<ar><k>resistor</k>
-vastus</ar>
-<ar><k>resolute</k>
-topakka</ar>
-<ar><k>resolution</k>
-viivaterävyys</ar>
-<ar><k>resolve</k>
-ratkaista</ar>
-<ar><k>resonance</k>
-kaiku</ar>
-<ar><k>resound</k>
-kaikua</ar>
-<ar><k>resource</k>
-apulähde</ar>
-<ar><k>resourceful</k>
-neuvokas</ar>
-<ar><k>resources</k>
-varat, voimavarat</ar>
-<ar><k>respect</k>
-kunnioittaa</ar>
-<ar><k>respectability</k>
-kunniallisuus, säädyllisyys</ar>
-<ar><k>respectable</k>
-kunnollinen</ar>
-<ar><k>respected</k>
-arvossapidetty, kunnioitettava</ar>
-<ar><k>respectful</k>
-kunnioittava</ar>
-<ar><k>respects</k>
-terveiset</ar>
-<ar><k>respiration</k>
-hengitys</ar>
-<ar><k>respirator</k>
-hengilaite</ar>
-<ar><k>respiratory organs</k>
-hengielimet</ar>
-<ar><k>resplendent</k>
-loistelias</ar>
-<ar><k>respond</k>
-reagoida</ar>
-<ar><k>responsible</k>
-edesvastuullinen, vastuullinen, vastuutuntoinen</ar>
-<ar><k>responsible for</k>
-vastuunalainen</ar>
-<ar><k>rest</k>
-lepo, levähdys, loppu (jäännös), paussi
-
-lepuuttaa, levähtää, levätä</ar>
-<ar><k>restaurant</k>
-ravintola</ar>
-<ar><k>resting position</k>
-lepoasento</ar>
-<ar><k>resting-place</k>
-lepopaikka</ar>
-<ar><k>restive</k>
-vikuri</ar>
-<ar><k>restless</k>
-levoton, rauhaton, tuskainen</ar>
-<ar><k>restlessness</k>
-levottomuus</ar>
-<ar><k>restoration</k>
-elvytys, entistys</ar>
-<ar><k>restoration to life</k>
-henkiinherättäminen</ar>
-<ar><k>restore</k>
-entistää, palauttaa</ar>
-<ar><k>restorer</k>
-entistäjä</ar>
-<ar><k>restrain</k>
-ehkäistä, hillitä, pidättää</ar>
-<ar><k>restrained</k>
-hiilitty</ar>
-<ar><k>restrict</k>
-rajoittaa, supistaa</ar>
-<ar><k>restricted</k>
-rajoitettu</ar>
-<ar><k>restriction</k>
-rajoitus, supistus</ar>
-<ar><k>restrictive</k>
-supistava</ar>
-<ar><k>result</k>
-tulos, seuraus</ar>
-<ar><k>result in</k>
-aiheuttaa (johtaa)</ar>
-<ar><k>resume</k>
-supistelma
-
-aloittaa uudelleen, jatkaa</ar>
-<ar><k>resuscitate</k>
-virvoittaa (henkiin)</ar>
-<ar><k>retail</k>
-vähittäiskauppa
-
-jälleenmyynti, vähittäin</ar>
-<ar><k>retail business</k>
-vähittäiskauppa</ar>
-<ar><k>retail intoxicants</k>
-anniskella</ar>
-<ar><k>retail price</k>
-vähittäishinta</ar>
-<ar><k>retail sale</k>
-vähittäismyynti</ar>
-<ar><k>retailer</k>
-jälleenmyyjä, vähittäiskauppias</ar>
-<ar><k>retain</k>
-pitää (säilyttää), säilyttää</ar>
-<ar><k>retaining</k>
-kiinnitys-, lukitus-, lukko-</ar>
-<ar><k>retaining walls</k>
-tukimuurit</ar>
-<ar><k>retard</k>
-viivyttää
-
-hidastava, jarrutava</ar>
-<ar><k>retard roll</k>
-erotusrulla</ar>
-<ar><k>retardation</k>
-hidastus</ar>
-<ar><k>reticent</k>
-vaitelias</ar>
-<ar><k>retina</k>
-verkkokalvo</ar>
-<ar><k>retire from</k>
-jättää (virasta)</ar>
-<ar><k>retired</k>
-eronnut</ar>
-<ar><k>retirement</k>
-luopuminen</ar>
-<ar><k>retort</k>
-letkaus (vastaus)</ar>
-<ar><k>retouch</k>
-retusoida</ar>
-<ar><k>retread</k>
-pinnoitaa (rengas)</ar>
-<ar><k>retreat</k>
-tyyssija</ar>
-<ar><k>retro-rocket</k>
-jarruraketti</ar>
-<ar><k>retrospect</k>
-jälkikatsaus</ar>
-<ar><k>return</k>
-paluu, voitto (liik)
-
-palata, palauttaa
-
-palautus-, paluu-</ar>
-<ar><k>return call</k>
-vastavierailu</ar>
-<ar><k>return home</k>
-kotiintulo</ar>
-<ar><k>return ticket</k>
-menolippu</ar>
-<ar><k>returns</k>
-tuotto</ar>
-<ar><k>reveal</k>
-ilmaista</ar>
-<ar><k>revenge</k>
-kosto, revanssi</ar>
-<ar><k>revengeful</k>
-kostonhimoinen</ar>
-<ar><k>revenue</k>
-myyntituotot, tulot</ar>
-<ar><k>reverberate</k>
-kaikua</ar>
-<ar><k>reverie</k>
-unelma</ar>
-<ar><k>reverse</k>
-peruuttaa
-
-päinvastainen, taakse-</ar>
-<ar><k>reverse drive</k>
-taakseveto</ar>
-<ar><k>reverse of</k>
-vastakohta</ar>
-<ar><k>reverse side</k>
-kääntöpuoli</ar>
-<ar><k>reversible</k>
-käännettävä</ar>
-<ar><k>review</k>
-katsaus</ar>
-<ar><k>revile</k>
-herjata</ar>
-<ar><k>reviler</k>
-herjaaja</ar>
-<ar><k>revise</k>
-kerrata (koul ym)</ar>
-<ar><k>revised</k>
-tarkistettu</ar>
-<ar><k>revision</k>
-kertaus (koul)</ar>
-<ar><k>revival</k>
-elpyminen, elvytys, jälleenelpyminen</ar>
-<ar><k>revive</k>
-elpyä, elvyttää, virota (henkiin), virvoittaa (henkiin)</ar>
-<ar><k>revoke</k>
-kumota (laki), peruuttaa (kuv)</ar>
-<ar><k>revolt</k>
-kapinoida</ar>
-<ar><k>revolting</k>
-pöyristyttävä</ar>
-<ar><k>revolution</k>
-kierros (pyörän ym), kumous, vallankumous</ar>
-<ar><k>revolutionary</k>
-kumouksellinen</ar>
-<ar><k>revolve</k>
-pyöriä</ar>
-<ar><k>revolver</k>
-revolveri</ar>
-<ar><k>revolving</k>
-pyörintä</ar>
-<ar><k>revolving door</k>
-pyöröovi</ar>
-<ar><k>reward</k>
-löytöpalkka, palkinto
-
-palkita</ar>
-<ar><k>rewarding</k>
-antoisa (kuv)</ar>
-<ar><k>rhapsody</k>
-rapsodia</ar>
-<ar><k>rheumatic</k>
-reumaattinen</ar>
-<ar><k>rheumatism</k>
-leini</ar>
-<ar><k>rhinitis</k>
-nuha (lääk)</ar>
-<ar><k>rhomb</k>
-vinoneliö (mat)</ar>
-<ar><k>rhubarb</k>
-raparperi</ar>
-<ar><k>rhyme</k>
-riimi</ar>
-<ar><k>rhythm</k>
-rytmi</ar>
-<ar><k>rib</k>
-kylkiluu, ripa (tekn), ruoti</ar>
-<ar><k>ribbed slab</k>
-ripalaatta</ar>
-<ar><k>ribbon</k>
-nauha, värinauha</ar>
-<ar><k>ribbon cable</k>
-nauhakaapeli</ar>
-<ar><k>rice pudding</k>
-riisivanukas</ar>
-<ar><k>rich</k>
-rikas, varakas, äveriäs</ar>
-<ar><k>rich in ideas</k>
-aaterikas</ar>
-<ar><k>rich in lakes</k>
-järvirikas</ar>
-<ar><k>riches</k>
-rikkaus</ar>
-<ar><k>richness</k>
-vehmaus</ar>
-<ar><k>richness of colour</k>
-värikkyys</ar>
-<ar><k>rickets</k>
-riisitauti</ar>
-<ar><k>riddle</k>
-arvoitus</ar>
-<ar><k>ride</k>
-kyyti
-
-ratsastaa, ajaa, ajella</ar>
-<ar><k>ride a horse</k>
-ratsastaa</ar>
-<ar><k>ride the high horse</k>
-pöyhkeillä</ar>
-<ar><k>rider</k>
-ratsastaja</ar>
-<ar><k>ridge</k>
-harja (vuoren ym), harjanne, harju</ar>
-<ar><k>ridge of a roof</k>
-katonharja</ar>
-<ar><k>ridge pole</k>
-harjahirsi</ar>
-<ar><k>ridge-pole</k>
-kurkihirsi</ar>
-<ar><k>ridicule</k>
-ivata</ar>
-<ar><k>ridiculous</k>
-nauretteva</ar>
-<ar><k>riding</k>
-ratsastus</ar>
-<ar><k>riding-school</k>
-maneesi</ar>
-<ar><k>riff-raff</k>
-roskaväki</ar>
-<ar><k>rifle</k>
-kivääri, pyssy</ar>
-<ar><k>rifle-range</k>
-ampumarata</ar>
-<ar><k>rifling</k>
-rihlat</ar>
-<ar><k>rift</k>
-välirikko</ar>
-<ar><k>rig</k>
-takila</ar>
-<ar><k>rigged election</k>
-vaalipetos</ar>
-<ar><k>rigging</k>
-köysistö, takila</ar>
-<ar><k>right</k>
-oikeus
-
-oikein, oikea</ar>
-<ar><k>right angled</k>
-suorakulmainen</ar>
-<ar><k>right of pardon</k>
-armahdusoikeus</ar>
-<ar><k>right-angled triangle</k>
-suorakulmainen</ar>
-<ar><k>righteous</k>
-vanhurskas</ar>
-<ar><k>rightly</k>
-oikein</ar>
-<ar><k>rigid</k>
-jäykkä, kankea</ar>
-<ar><k>rigidity</k>
-jähmetys, jäykkyys, kankeus</ar>
-<ar><k>rim</k>
-reuna</ar>
-<ar><k>rimlock</k>
-pintolukko</ar>
-<ar><k>rind</k>
-kaarna</ar>
-<ar><k>ring</k>
-helähdus, kajahdus, kehä, piiri (rengas), rengas, sointi, sointu, soitto, sormus</ar>
-<ar><k>ring beam</k>
-rengaspalkki</ar>
-<ar><k>ringed seal</k>
-norppa</ar>
-<ar><k>ringlet</k>
-kiehkura</ar>
-<ar><k>ringworm</k>
-savipuoli</ar>
-<ar><k>rinse</k>
-huuhtelu, virutus
-
-huuhdella, huuhdonta, huuhtoa</ar>
-<ar><k>rinse off</k>
-huljuttaa</ar>
-<ar><k>rinsing</k>
-huuhdonta, virutus</ar>
-<ar><k>riot</k>
-mellakka
-
-hulinoida, mellakoida</ar>
-<ar><k>rioter</k>
-mellakoitsija</ar>
-<ar><k>rioting</k>
-kahinointi (kadulla)</ar>
-<ar><k>rip</k>
-repiä</ar>
-<ar><k>ripe</k>
-kypsä</ar>
-<ar><k>ripen</k>
-kypsyttää, kypsyä, tuleentua</ar>
-<ar><k>ripeness</k>
-kypsyys</ar>
-<ar><k>ripple</k>
-väre
-
-karehtia, liristä, väreillä</ar>
-<ar><k>rise</k>
-korotus, nousu, vastamäki, ylämäki</ar>
-<ar><k>rise in price</k>
-kallistua</ar>
-<ar><k>rise in prices</k>
-hinnannousu</ar>
-<ar><k>rise in value</k>
-arvonnousu</ar>
-<ar><k>rising</k>
-kohoaminen</ar>
-<ar><k>risk</k>
-riski, uhka (vaara), vaara, vastuu
-
-uskaltaa, vaarantaa</ar>
-<ar><k>risky</k>
-arveluttava, vaarallinen</ar>
-<ar><k>risky undertaking</k>
-uhkayritys</ar>
-<ar><k>rival</k>
-kilpahakija, kilpaileva, kilpailija</ar>
-<ar><k>river</k>
-joki</ar>
-<ar><k>river bed</k>
-joenuoma</ar>
-<ar><k>river-bed</k>
-jokiuoma</ar>
-<ar><k>riverside</k>
-jokivarsi</ar>
-<ar><k>rivet</k>
-niitata, niitti</ar>
-<ar><k>road</k>
-tie</ar>
-<ar><k>road block</k>
-katusulku, tiesulkku</ar>
-<ar><k>road haulage</k>
-maantiekuljetus</ar>
-<ar><k>road manners</k>
-liikennekulttuuri</ar>
-<ar><k>roadway</k>
-katu (ajotie)</ar>
-<ar><k>roam</k>
-kuljeksia, samoilla, samota, vaeltaa</ar>
-<ar><k>roan</k>
-kimo</ar>
-<ar><k>roar</k>
-jymy, kohina, 
-
-karjaista, kiljua, pauhata, ulvoa, ärjyntä, ärjyä</ar>
-<ar><k>roar with laughter</k>
-hohottaa</ar>
-<ar><k>roaring</k>
-kiljunta</ar>
-<ar><k>roast</k>
-paistaa, pariloida
-
-paisti</ar>
-<ar><k>roast beef</k>
-naudanpaisti</ar>
-<ar><k>roaster</k>
-paahdin</ar>
-<ar><k>rob</k>
-rosvota, ryöstää</ar>
-<ar><k>robber</k>
-rosvo</ar>
-<ar><k>robbery</k>
-rosvous, ryöstö</ar>
-<ar><k>robust</k>
-jykevä, roteva, vanttera</ar>
-<ar><k>rock</k>
-kallio, kari
-
-heiluttaa, huojua, huojuttaa, hytkyä, keikahtaa, keikkua, keinua, keikuttaa, keinuttaa</ar>
-<ar><k>rock face</k>
-paasi</ar>
-<ar><k>rock salt</k>
-suola (karkea)</ar>
-<ar><k>rock wool</k>
-vuorivilla</ar>
-<ar><k>rock-face</k>
-kallioseinämä</ar>
-<ar><k>rocket</k>
-raketti</ar>
-<ar><k>rocking-chair</k>
-keinutuoli</ar>
-<ar><k>rocking-horse</k>
-keinuhevonen</ar>
-<ar><k>rocky</k>
-kallioinen, karikkoinen</ar>
-<ar><k>rod</k>
-raippa, sauva, tanko, vapa</ar>
-<ar><k>rodent</k>
-jyrsijä</ar>
-<ar><k>roe-deer</k>
-metsäkauris</ar>
-<ar><k>rogue</k>
-veitikka</ar>
-<ar><k>role</k>
-osa (rooli), rooli</ar>
-<ar><k>roll</k>
-rulla, sämpylätela, tela
-
-jyrätä, kaulia, kieriä, pauhina, pyörittää, vieriskellä, vierittää, vieriä, vierähtää</ar>
-<ar><k>roll about</k>
-kieriskellä</ar>
-<ar><k>roll call</k>
-nimenhuuto</ar>
-<ar><k>roll up</k>
-käpertyä</ar>
-<ar><k>rolled glass</k>
-konelasi</ar>
-<ar><k>roller</k>
-jyrä, rulla, tela, rullasto</ar>
-<ar><k>roller arm</k>
-aukipitolaite</ar>
-<ar><k>roller skates</k>
-rullaluistimet</ar>
-<ar><k>rollershutter door</k>
-rullasäleovi</ar>
-<ar><k>rolling pin</k>
-kaulin</ar>
-<ar><k>rolling sea</k>
-mainingit</ar>
-<ar><k>roman type</k>
-antiikva</ar>
-<ar><k>romance</k>
-romanssi</ar>
-<ar><k>romantic</k>
-romanttinen</ar>
-<ar><k>romantic disposition</k>
-haaveellisuus</ar>
-<ar><k>romaticism</k>
-romantiikka</ar>
-<ar><k>romp</k>
-mekastaa, peuhata, telmiä</ar>
-<ar><k>roof</k>
-katos, katto, vesikatto
-
-kattaa</ar>
-<ar><k>roof fall</k>
-katon kaltevuus</ar>
-<ar><k>roof pitch</k>
-kattokaltevuus</ar>
-<ar><k>roof rack</k>
-kattoteline</ar>
-<ar><k>roof truss</k>
-kattoristikko</ar>
-<ar><k>roofing</k>
-katonpano</ar>
-<ar><k>roofing felt</k>
-kattohuopa</ar>
-<ar><k>rooftree</k>
-kurkihirsi</ar>
-<ar><k>room</k>
-huone, kammio, paikka (tila), sija</ar>
-<ar><k>room-mate</k>
-asuinkumppani, huonekumppani</ar>
-<ar><k>roomy</k>
-ilmatilava, tilava</ar>
-<ar><k>root</k>
-alkujuuri, juuri
-
-juuruttaa, sorkkia (tonkia)</ar>
-<ar><k>root of a tooth</k>
-hampaanjuuri</ar>
-<ar><k>root up</k>
-tonkia</ar>
-<ar><k>root-stock</k>
-juurakko</ar>
-<ar><k>root-word</k>
-kantasana</ar>
-<ar><k>rootless</k>
-juureton</ar>
-<ar><k>rootlessness</k>
-juurettomuus</ar>
-<ar><k>rooty</k>
-juurellinen</ar>
-<ar><k>rose</k>
-ruusu</ar>
-<ar><k>rose-bud</k>
-ruusunnuppu</ar>
-<ar><k>rosemary</k>
-rosmariini</ar>
-<ar><k>rosette</k>
-ruusuke</ar>
-<ar><k>rostrum</k>
-koroke (puhuja- ym)</ar>
-<ar><k>rosy</k>
-kukkea, ruusuinen</ar>
-<ar><k>rotary motion</k>
-kiertoliike</ar>
-<ar><k>rotate</k>
-pyöriä, pyörittää</ar>
-<ar><k>rotation</k>
-kierto (pyörintä), pyörintä</ar>
-<ar><k>rotten</k>
-laho, mätä</ar>
-<ar><k>rotting</k>
-mätäneminen</ar>
-<ar><k>rouble</k>
-rupla</ar>
-<ar><k>rouge</k>
-poskipuna</ar>
-<ar><k>rough</k>
-arvionmukainen, jylhä, järeä, karhea, karkea, karski, likimääräinen, rosoinen</ar>
-<ar><k>rough draft</k>
-konsepti, luonnos</ar>
-<ar><k>rough edged</k>
-vajaasärmäinen</ar>
-<ar><k>rough sea</k>
-merenkäynti</ar>
-<ar><k>rough-and-tumble</k>
-nujakka</ar>
-<ar><k>rough-tongued</k>
-karkeapuheinen</ar>
-<ar><k>roughly</k>
-likimäärin</ar>
-<ar><k>roughly made</k>
-karkeatekoinen</ar>
-<ar><k>roughness</k>
-karheus, rosoisuus</ar>
-<ar><k>roulette</k>
-ruletti</ar>
-<ar><k>round</k>
-erä (nyrkk), kierros, kierto, pelierä, ympyriäinen, ympäri
-
-pyöristää, pyöriä</ar>
-<ar><k>round loaf</k>
-limppu</ar>
-<ar><k>round of beef</k>
-reisipaisti (naudan)</ar>
-<ar><k>round off</k>
-pyöristää</ar>
-<ar><k>roundabout</k>
-karuselli, liikenneympyrä</ar>
-<ar><k>rounded</k>
-pyöreä</ar>
-<ar><k>rounded joint</k>
-kourusauma</ar>
-<ar><k>roundness</k>
-pyöreys</ar>
-<ar><k>rouse</k>
-nostattaa</ar>
-<ar><k>route</k>
-matkareitti, reitti</ar>
-<ar><k>routine</k>
-tarkastusohjelma</ar>
-<ar><k>rove</k>
-kuljeksia, samoilla</ar>
-<ar><k>row</k>
-riita, rivi
-
-soudella, soutaa</ar>
-<ar><k>rowboat</k>
-soutuvene</ar>
-<ar><k>rowdy</k>
-huligaani
-
-remuava</ar>
-<ar><k>rower</k>
-soutaja</ar>
-<ar><k>rowing</k>
-soutu</ar>
-<ar><k>rowing boat</k>
-soutuvene</ar>
-<ar><k>rowing-boat</k>
-soutuvene</ar>
-<ar><k>rowlock</k>
-aironhanka, hankain</ar>
-<ar><k>royal</k>
-kuninkaallinen</ar>
-<ar><k>royalty</k>
-kuninkuus</ar>
-<ar><k>rub</k>
-hangata, hankautua, hierora, hieroutua, kahnata</ar>
-<ar><k>rub one's hands</k>
-hykertää (käsiään)</ar>
-<ar><k>rub out</k>
-raaputtaa (pois)</ar>
-<ar><k>rub shoulders with</k>
-veljeillä</ar>
-<ar><k>rubber</k>
-kumi</ar>
-<ar><k>rubber band</k>
-kuminauha</ar>
-<ar><k>rubber gloves</k>
-talouskäsineet</ar>
-<ar><k>rubber stamp</k>
-leimasin</ar>
-<ar><k>rubbing</k>
-hieronta, kahnaus</ar>
-<ar><k>rubbish</k>
-jätteet, pöty, roina, roju, romu, roska, törky</ar>
-<ar><k>rubbish dump</k>
-kaatoallas</ar>
-<ar><k>rubbish-heap</k>
-tunkio</ar>
-<ar><k>rubella</k>
-vihurirokko</ar>
-<ar><k>ruby</k>
-rubiini</ar>
-<ar><k>rucksack</k>
-reppu, selkäreppu</ar>
-<ar><k>rudder</k>
-peräsin, ruori</ar>
-<ar><k>ruddy</k>
-punakka</ar>
-<ar><k>rude</k>
-epäkohtelias, karkea (kuv), raakamainen (karkea), törkeä</ar>
-<ar><k>rudeness</k>
-epäkohteliaisuus, raakuus, töykeys</ar>
-<ar><k>rudiment</k>
-jäänne</ar>
-<ar><k>ruffle</k>
-pörröttää</ar>
-<ar><k>ruffled up</k>
-pörröinen</ar>
-<ar><k>rug</k>
-matto (pieni)</ar>
-<ar><k>rugged</k>
-jylhä, rosoinen</ar>
-<ar><k>ruin</k>
-pilata (turmella), tuhota, tärvellä</ar>
-<ar><k>rule</k>
-ohje (sääntö), säännös, sääntö
-
-hallita, viivata, viivoittaa</ar>
-<ar><k>ruler</k>
-hallitsija, valtias, viivoitin, viivain</ar>
-<ar><k>rumble</k>
-humu (pauhu), jymy, jyrinä, pauhina, ryminä, töminä
-
-rymistä, tömistä, pauhata, kurista</ar>
-<ar><k>rummage</k>
-penkoa</ar>
-<ar><k>rumour</k>
-huhu
-
-huhuilla</ar>
-<ar><k>rumple</k>
-pörröttää</ar>
-<ar><k>rumpled</k>
-pörröinen</ar>
-<ar><k>rumpus</k>
-kohu</ar>
-<ar><k>run</k>
-olla käynnissä, käydä, toimia, juoksu
-
-juoksu, kulku
-
-hoitaa (johtaa), jatkua (ullottua), juosta</ar>
-<ar><k>run about</k>
-juoksennella</ar>
-<ar><k>run across</k>
-kohdata (sattumalta)</ar>
-<ar><k>run away</k>
-juosta (tiehensä), karata, karku (lähteä -un), pillastua</ar>
-<ar><k>run down</k>
-valua</ar>
-<ar><k>run into</k>
-tavata, törmätä</ar>
-<ar><k>run into debt</k>
-velkaantua</ar>
-<ar><k>run wild</k>
-villiintyä</ar>
-<ar><k>runaway</k>
-karkulainen, karkuri</ar>
-<ar><k>runner</k>
-jalas, juoksija, rönsy (bot)</ar>
-<ar><k>running</k>
-juoksu</ar>
-<ar><k>running aground</k>
-karilleajo</ar>
-<ar><k>running away</k>
-karkaaminen</ar>
-<ar><k>running costs</k>
-käyttökustannukset</ar>
-<ar><k>running dry</k>
-ehtyminen</ar>
-<ar><k>running-board</k>
-astinlauta</ar>
-<ar><k>runway</k>
-kiitorata</ar>
-<ar><k>rupture</k>
-katkeaminen, repeämä (lääk), revehtymä, välirikko
-
-revähtää</ar>
-<ar><k>rural district</k>
-maalaiskunta</ar>
-<ar><k>rural police chief</k>
-nimismies</ar>
-<ar><k>rush</k>
-rynnistää, rynnätä, syöksyä</ar>
-<ar><k>rush hour</k>
-ruuhkaaika</ar>
-<ar><k>rushed</k>
-kiireinen</ar>
-<ar><k>rusk</k>
-korppu</ar>
-<ar><k>russian</k>
-venäläinen</ar>
-<ar><k>rust</k>
-ruostua</ar>
-<ar><k>rustic</k>
-maalainen</ar>
-<ar><k>rustle</k>
-kahina, rapina, rasahdus, risahdus
-
-kahista, rapista, risahtaa</ar>
-<ar><k>rustle up</k>
-haalia (koota)</ar>
-<ar><k>rusty</k>
-ruosteinen, ruostunut</ar>
-<ar><k>rut</k>
-kiima</ar>
-<ar><k>ruthless</k>
-armoton</ar>
-<ar><k>rye</k>
-ruis</ar>
-<ar><k>sabbath</k>
-sapatti</ar>
-<ar><k>sable</k>
-soopeli</ar>
-<ar><k>sabotage</k>
-sabotaasi, tuholaistyö</ar>
-<ar><k>sabre</k>
-sapeli</ar>
-<ar><k>saccharine</k>
-sakariini</ar>
-<ar><k>sack</k>
-säkki</ar>
-<ar><k>sacking</k>
-hursti</ar>
-<ar><k>sacrament</k>
-sakramentti</ar>
-<ar><k>sacred</k>
-pyhä</ar>
-<ar><k>sacrifice</k>
-teurasuhri, uhri
-
-uhrata</ar>
-<ar><k>sad</k>
-haikea, murheellinen, surettava, surkea, surullinen</ar>
-<ar><k>saddle</k>
-satula
-
-satuloida</ar>
-<ar><k>sadness</k>
-haikeus, murheellisuus, surkeus, surullisuus</ar>
-<ar><k>safe</k>
-kassakaappi
-
-turvallinen
-
-turvallinen, vaaraton</ar>
-<ar><k>safe and sound</k>
-vahingoittumaton</ar>
-<ar><k>safe deposit box</k>
-tallelokero</ar>
-<ar><k>safe-deposit box</k>
-tallelokero</ar>
-<ar><k>safeguard</k>
-suojelus
-
-puolustaa (suojella), suojata</ar>
-<ar><k>safely</k>
-huoleti (turvallisesti), turvallisesti</ar>
-<ar><k>safety</k>
-turvallisuus, varmuus</ar>
-<ar><k>safety light</k>
-turvavalaisin</ar>
-<ar><k>safety officer</k>
-turvatarkastaja</ar>
-<ar><k>safety regulation</k>
-turvamääräys</ar>
-<ar><k>safety-pin</k>
-hakaneula, lukkoneula</ar>
-<ar><k>saffron</k>
-sahrami</ar>
-<ar><k>sag</k>
-roikkua</ar>
-<ar><k>saga</k>
-taru</ar>
-<ar><k>said</k>
-mainittu</ar>
-<ar><k>sail</k>
-purje
-
-purjehtia</ar>
-<ar><k>sailing</k>
-purjehdus</ar>
-<ar><k>sailing-boat</k>
-purjevene</ar>
-<ar><k>sailor</k>
-matruusi, merimies, purjehtija</ar>
-<ar><k>saint</k>
-pyhimys</ar>
-<ar><k>sal ammoniac</k>
-salmiakki</ar>
-<ar><k>salad</k>
-salaatti</ar>
-<ar><k>salad dressing</k>
-sallattikastike</ar>
-<ar><k>salamander</k>
-salamanteri (zo)</ar>
-<ar><k>salary</k>
-palkka</ar>
-<ar><k>sale</k>
-alennusmyynti, myynti</ar>
-<ar><k>sale of intoxicants</k>
-anniskelu</ar>
-<ar><k>sales</k>
-myynti</ar>
-<ar><k>saliva</k>
-sylki</ar>
-<ar><k>salmon</k>
-lohi</ar>
-<ar><k>salmon-fly</k>
-lohiperho</ar>
-<ar><k>salmon-ladder</k>
-lohiportaat</ar>
-<ar><k>salmon-weir</k>
-lohipato</ar>
-<ar><k>saloon</k>
-salonki</ar>
-<ar><k>salt</k>
-suola</ar>
-<ar><k>salt water</k>
-suolavesi</ar>
-<ar><k>salt-cellar</k>
-suolaastia</ar>
-<ar><k>salted fish</k>
-suolakala</ar>
-<ar><k>salted meat</k>
-suolaliha</ar>
-<ar><k>salty</k>
-suolainen</ar>
-<ar><k>salutation</k>
-tervehdys</ar>
-<ar><k>salute</k>
-kunnialaukaus, kunnianteko (sot)</ar>
-<ar><k>salvage</k>
-meripelastus
-
-pelastaa (tavaraa)</ar>
-<ar><k>salvation</k>
-vapahdus</ar>
-<ar><k>salvation army</k>
-pelastusarmeija</ar>
-<ar><k>salve</k>
-haavavoide, salva (voide)</ar>
-<ar><k>salvo</k>
-yhteislaukaus</ar>
-<ar><k>sample</k>
-malli (näyte), mallitilkku, näyte (kaupp ym), otos</ar>
-<ar><k>sanatorium</k>
-parantola</ar>
-<ar><k>sanctify</k>
-pyhittää</ar>
-<ar><k>sanctuary</k>
-pyhäkkö</ar>
-<ar><k>sand</k>
-hiekoittaa, sannoittaa
-
-hiekka</ar>
-<ar><k>sand drain</k>
-hiekkasalaoja</ar>
-<ar><k>sand trap</k>
-hiekanerotuskaivo</ar>
-<ar><k>sand-bank</k>
-hiekkasärkkä</ar>
-<ar><k>sand-paper</k>
-hiekkapaperi</ar>
-<ar><k>sand-piper</k>
-sirri (zo)</ar>
-<ar><k>sand-pit</k>
-hiekkakuoppa</ar>
-<ar><k>sandal</k>
-sandaali, sannikas</ar>
-<ar><k>sandlime</k>
-kalkkihiekka</ar>
-<ar><k>sandman</k>
-nukkumatti</ar>
-<ar><k>sandpaper</k>
-hiekkapaperi</ar>
-<ar><k>sandpiper</k>
-vikla</ar>
-<ar><k>sandstone</k>
-hiekkakivi</ar>
-<ar><k>sandwiches</k>
-eväs, eväät</ar>
-<ar><k>sandy</k>
-hiekkainen</ar>
-<ar><k>sandy beach</k>
-hiekkaranta</ar>
-<ar><k>sandy desert</k>
-hiekkaaavikko</ar>
-<ar><k>sanitary</k>
-hygieeninen</ar>
-<ar><k>sanitary towel</k>
-terveysside</ar>
-<ar><k>sap</k>
-kasvineste, mahla</ar>
-<ar><k>sapling</k>
-taimi (puun)</ar>
-<ar><k>sapper</k>
-pioneeri</ar>
-<ar><k>sapphire</k>
-safiiri</ar>
-<ar><k>saprano</k>
-sopraano</ar>
-<ar><k>sarcasm</k>
-ivallisuus, kompasana, pistosana</ar>
-<ar><k>sarcastic</k>
-ivallinen</ar>
-<ar><k>sarcastic remark</k>
-pistosana</ar>
-<ar><k>sardine</k>
-sardiini</ar>
-<ar><k>satan</k>
-saatana</ar>
-<ar><k>satchel</k>
-koululaukku</ar>
-<ar><k>satellite</k>
-satelliitti</ar>
-<ar><k>satiety</k>
-kyllästymys</ar>
-<ar><k>satin</k>
-satiini</ar>
-<ar><k>satire</k>
-ivaruno, satiiri</ar>
-<ar><k>satisfaction</k>
-mielihyvä, tyydytys</ar>
-<ar><k>satisfactory</k>
-tyydyttävä</ar>
-<ar><k>satisfied</k>
-tyytyväinen</ar>
-<ar><k>satisfy</k>
-tyydyttää</ar>
-<ar><k>saturate</k>
-kyllästää</ar>
-<ar><k>sauce</k>
-kastike</ar>
-<ar><k>sauce boat</k>
-kastikemalja</ar>
-<ar><k>sauce-ladle</k>
-kastikekauha</ar>
-<ar><k>saucepan</k>
-kasari</ar>
-<ar><k>saucer</k>
-teevati</ar>
-<ar><k>sauna</k>
-sauna</ar>
-<ar><k>sausage</k>
-makkara</ar>
-<ar><k>savage</k>
-villi, villiihminen</ar>
-<ar><k>savageness</k>
-villiys</ar>
-<ar><k>savagery</k>
-villiys</ar>
-<ar><k>save</k>
-pelastaa, säästää</ar>
-<ar><k>savings</k>
-säästö</ar>
-<ar><k>savour</k>
-haiskahtaa (kuv)</ar>
-<ar><k>savoury</k>
-maukas</ar>
-<ar><k>saw</k>
-saha
-
-sahata</ar>
-<ar><k>saw dust</k>
-puupöly</ar>
-<ar><k>sawdust</k>
-sahajauhot
-
-sahanpuru</ar>
-<ar><k>sawmill</k>
-sahalaitos</ar>
-<ar><k>saxophone</k>
-saksofoni</ar>
-<ar><k>say</k>
-lausua, sanoa, virkkaa</ar>
-<ar><k>say again and again</k>
-hokea</ar>
-<ar><k>saying</k>
-sananparsi, sanantapa</ar>
-<ar><k>scab</k>
-rupi</ar>
-<ar><k>scabbard</k>
-huotra</ar>
-<ar><k>scaffolding</k>
-rakennustelineet</ar>
-<ar><k>scald</k>
-polttaa (kuummalla vedellä)</ar>
-<ar><k>scale</k>
-asteikko, mittaasteikko, mittakaava, skaala, suomu, vaakakuppi</ar>
-<ar><k>scale model</k>
-pienoismalli</ar>
-<ar><k>scale off</k>
-hilseillä</ar>
-<ar><k>scales</k>
-talousvaaka</ar>
-<ar><k>scallop</k>
-simpukka (zo)</ar>
-<ar><k>scalp</k>
-hiusmarto</ar>
-<ar><k>scamp</k>
-nulikka, poikanulikka, viikari</ar>
-<ar><k>scan</k>
-valotus
-
-valottaa</ar>
-<ar><k>scandal</k>
-häväistysjuttu, skandaali</ar>
-<ar><k>scandalmonger</k>
-juoruakka</ar>
-<ar><k>scantily</k>
-niukalti, niukasti</ar>
-<ar><k>scanty</k>
-niukka</ar>
-<ar><k>scar</k>
-arpi
-
-arpeutua</ar>
-<ar><k>scar formation</k>
-arpeutuminen</ar>
-<ar><k>scarce</k>
-harvinainen, niukka</ar>
-<ar><k>scarcely</k>
-tuskin</ar>
-<ar><k>scarcity</k>
-vähyys</ar>
-<ar><k>scare</k>
-pelottaa, pelästyttää, säikyttää</ar>
-<ar><k>scarecrow</k>
-linnunpelätti</ar>
-<ar><k>scarf</k>
-huivi, kaulahuivi, kaulaliina</ar>
-<ar><k>scarf joint</k>
-lapaliitos</ar>
-<ar><k>scaring</k>
-pelottelu</ar>
-<ar><k>scarlet</k>
-helakanpunainen, tulipunainen</ar>
-<ar><k>scarlet fever</k>
-tulirokko</ar>
-<ar><k>scarred</k>
-arpinen</ar>
-<ar><k>scatter</k>
-hajottaa, ripottaa, sirotella</ar>
-<ar><k>scatterbrained</k>
-hupakko</ar>
-<ar><k>scattered</k>
-hajanainen</ar>
-<ar><k>scattered about</k>
-ollahajalla</ar>
-<ar><k>scene</k>
-kulissi, näköala, tapahtumapaikka</ar>
-<ar><k>scenery</k>
-lavastus, maisema</ar>
-<ar><k>scent</k>
-haistaa (vainuta), vainuta</ar>
-<ar><k>sceptic</k>
-epäilejä, skeptikko</ar>
-<ar><k>sceptical</k>
-epäilevä</ar>
-<ar><k>schedule</k>
-aikataulu, lukujärjestys</ar>
-<ar><k>schematic</k>
-kaaviomainen</ar>
-<ar><k>scheme</k>
-kaavio, kieroilla, suunnitelma
-
-kieroilla</ar>
-<ar><k>schemer</k>
-juonittelija, vehkeilijä</ar>
-<ar><k>scheming</k>
-juonikas</ar>
-<ar><k>schizophrenia</k>
-jakomielitauti</ar>
-<ar><k>scholarship</k>
-stipendi</ar>
-<ar><k>scholastic</k>
-opillinen</ar>
-<ar><k>school</k>
-koulu, opisto</ar>
-<ar><k>school for handicapped children</k>
-erityiskoulu</ar>
-<ar><k>school for retarded children</k>
-apukoulu</ar>
-<ar><k>school of economics</k>
-kauppakorkeakoulu</ar>
-<ar><k>school of herring</k>
-silliparvi</ar>
-<ar><k>school report</k>
-koulutodistus</ar>
-<ar><k>school year</k>
-lukuvuosi</ar>
-<ar><k>schooling</k>
-koulutus</ar>
-<ar><k>schooner</k>
-kuunari</ar>
-<ar><k>sciatica</k>
-iskias, lonkkasärky</ar>
-<ar><k>science</k>
-tiede</ar>
-<ar><k>scientific</k>
-tieteellinen</ar>
-<ar><k>scientifically</k>
-teiteellisesti</ar>
-<ar><k>scientist</k>
-tiedemies</ar>
-<ar><k>scissors</k>
-sakset</ar>
-<ar><k>scoff</k>
-ivata, pilkata</ar>
-<ar><k>scoff at</k>
-ilkkua</ar>
-<ar><k>scoffer</k>
-ilkkuja, ivaaja</ar>
-<ar><k>scold</k>
-soimata, sättiä, torua</ar>
-<ar><k>scoop</k>
-liemikauha, äyskäri
-
-ammentaa</ar>
-<ar><k>scoop out</k>
-kovertaa</ar>
-<ar><k>scooter</k>
-potkulauta, skootteri</ar>
-<ar><k>scope</k>
-kantavuus (kuv)</ar>
-<ar><k>scorch</k>
-korventaa</ar>
-<ar><k>scorching</k>
-kärventymä</ar>
-<ar><k>score</k>
-lovi, piirto, pistemäärä
-
-tehdä (maali), uurtaa</ar>
-<ar><k>score of</k>
-parikymmentä</ar>
-<ar><k>scorn</k>
-halveksia
-
-ylenkatse</ar>
-<ar><k>scorner</k>
-halveksija</ar>
-<ar><k>scornful</k>
-ylenkatseellinen</ar>
-<ar><k>scornfully</k>
-ivallisesti, ylenkatseellisesti</ar>
-<ar><k>scorpion</k>
-skorpioni (zo)</ar>
-<ar><k>scoundrel</k>
-konna, lurjus, roisto</ar>
-<ar><k>scourer</k>
-patasuti, suti</ar>
-<ar><k>scourge</k>
-vitsaus (kuv)</ar>
-<ar><k>scout</k>
-partiolainen</ar>
-<ar><k>scraggy</k>
-hontelo</ar>
-<ar><k>scramble</k>
-kavuta, kompuroida</ar>
-<ar><k>scrambled eggs</k>
-munakokkeli, munakokkeli</ar>
-<ar><k>scrap</k>
-tilkku</ar>
-<ar><k>scrap-iron</k>
-rautaromu</ar>
-<ar><k>scrape</k>
-kaapia
-
-raapia, raaputtaa</ar>
-<ar><k>scrape together</k>
-haalia (koota)</ar>
-<ar><k>scratch</k>
-naarmu, raapaisu
-
-kynsiä, naarmuttaa, raapaista, raapia, syyhyttää</ar>
-<ar><k>scrawny</k>
-luiseva</ar>
-<ar><k>scream</k>
-kirkaisu, parkaisu
-
-hihkua, kirkua</ar>
-<ar><k>screaming</k>
-parku</ar>
-<ar><k>screech</k>
-kirkuna</ar>
-<ar><k>screen</k>
-irtoseinä, suojus, varjostin</ar>
-<ar><k>screw</k>
-potkuri (laivan ym), ruuvi
-
-ruuvata</ar>
-<ar><k>screw ***</k>
-panna, nussia [alat.]</ar>
-<ar><k>screwdriver</k>
-ruuvimeiseli</ar>
-<ar><k>scribble</k>
-sepustus
-
-kyhäillä (kirjoittaa)</ar>
-<ar><k>scribbler</k>
-kyhäijijä, sepustaja</ar>
-<ar><k>scribe</k>
-kirjanoppinut</ar>
-<ar><k>scrubbing-brush</k>
-juuriharja</ar>
-<ar><k>scrum</k>
-verihera</ar>
-<ar><k>scuffer roll</k>
-kohdistusrulla, tasausrulla</ar>
-<ar><k>scull</k>
-meloa, soutaa</ar>
-<ar><k>sculptor</k>
-kuvanveistäjä</ar>
-<ar><k>sculpture</k>
-kuvanveisto, veistotaide</ar>
-<ar><k>scum</k>
-hylkyjoukko, vaahto</ar>
-<ar><k>scurry</k>
-hoppu</ar>
-<ar><k>scurvy</k>
-keripukki</ar>
-<ar><k>scythe</k>
-viikate</ar>
-<ar><k>sea</k>
-meri</ar>
-<ar><k>sea coast</k>
-merenrannikko</ar>
-<ar><k>sea-bed</k>
-merenpohja</ar>
-<ar><k>sea-gull</k>
-lokki</ar>
-<ar><k>seafarer</k>
-merenkulkija</ar>
-<ar><k>seal</k>
-leima (sinetti), sinetti, hylje, tiiviste
-
-sinetöidä</ar>
-<ar><k>seal up</k>
-tiivistää (ikkuna)</ar>
-<ar><k>sealing rope</k>
-tiivistepunos</ar>
-<ar><k>sealing strip</k>
-tiiviste, saumanauha</ar>
-<ar><k>seam</k>
-liitos, ommel, sauma, yksinkertainen taitos
-
-saumata</ar>
-<ar><k>seaman</k>
-laivamies, matruusi</ar>
-<ar><k>seaming machine</k>
-saumauskone</ar>
-<ar><k>seaport</k>
-merisatama</ar>
-<ar><k>search</k>
-etsiminen, etsintä, etsiskely
-
-etsiä, haeskella</ar>
-<ar><k>search for</k>
-etsiskellä, etsiä, hakea</ar>
-<ar><k>searcher</k>
-etsijä</ar>
-<ar><k>searchlight</k>
-valonheitin</ar>
-<ar><k>seasick</k>
-merikipeä, merisairas</ar>
-<ar><k>seaside resort</k>
-merikylpylä</ar>
-<ar><k>season</k>
-huvikausi, vuodenaika
-
-höystää, maustaa</ar>
-<ar><k>season ticket</k>
-kausilippu</ar>
-<ar><k>seasonal</k>
-kausiluotoinen</ar>
-<ar><k>seasoned</k>
-höysteinen</ar>
-<ar><k>seasoning</k>
-höyste, mauste</ar>
-<ar><k>seat</k>
-istuin, istumapaikka, penkki, tuoli</ar>
-<ar><k>seat oneself</k>
-istuutua</ar>
-<ar><k>seaweed</k>
-merilevä</ar>
-<ar><k>seaworthy</k>
-merikelpoinen</ar>
-<ar><k>seclusion</k>
-yksinäisyys</ar>
-<ar><k>second</k>
-sekundantti, sekunti, toinen (järjestyslukuna)</ar>
-<ar><k>second half</k>
-jälkipuolisko</ar>
-<ar><k>second-hand</k>
-käytetty</ar>
-<ar><k>second-hand book shop</k>
-antikvaarinen</ar>
-<ar><k>second-rate</k>
-sekunda</ar>
-<ar><k>secondary meaning</k>
-lisämerkitys, sivumerkitys</ar>
-<ar><k>secondary school</k>
-lyseo</ar>
-<ar><k>secondly</k>
-toiseksi</ar>
-<ar><k>seconds</k>
-sekunda</ar>
-<ar><k>secret</k>
-sala (yhd), salainen, salaisuus</ar>
-<ar><k>secret agent</k>
-vakoilija</ar>
-<ar><k>secret ballot</k>
-salainen (äänestys)</ar>
-<ar><k>secret drawer</k>
-salalaatikko</ar>
-<ar><k>secretarial offices</k>
-kanslia</ar>
-<ar><k>secretary</k>
-sihteeri</ar>
-<ar><k>secrete</k>
-erittää (fysiol)</ar>
-<ar><k>secretion</k>
-sisäerite, erityis (fysiol), rähmä</ar>
-<ar><k>secretive</k>
-salamyhkäinen, salaperäinen</ar>
-<ar><k>secretly</k>
-varkain</ar>
-<ar><k>sect</k>
-lahko (usk)</ar>
-<ar><k>section</k>
-jaosto, kappale (tekstissä), lohko, osasto</ar>
-<ar><k>section of an act</k>
-lakipykälä</ar>
-<ar><k>section-mark</k>
-pykälämerkki</ar>
-<ar><k>sector</k>
-lohko, sektori</ar>
-<ar><k>secure</k>
-köyttää, turvata, varmistaa, kiinnittää
-
-turvallinen, varma</ar>
-<ar><k>securely</k>
-lujasti, turvallisesti</ar>
-<ar><k>security</k>
-arvopaperi, takaus, vakuus, varmuus, takuu</ar>
-<ar><k>sedge</k>
-sara (bot)</ar>
-<ar><k>sediment</k>
-pohajsakka, poro (sakka), sakka</ar>
-<ar><k>seducer</k>
-viettelijä (naisen)</ar>
-<ar><k>see</k>
-havaita (huomata), nähdä, oivaltaa</ar>
-<ar><k>see to</k>
-hoitaa, huolehtia
-
-huolehtia</ar>
-<ar><k>see you later</k>
-näkemiin</ar>
-<ar><k>see you soon</k>
-näkemiin</ar>
-<ar><k>seed</k>
-siemen</ar>
-<ar><k>seedling</k>
-taimi</ar>
-<ar><k>seek to</k>
-pyrkiä (koettaa)</ar>
-<ar><k>seeker</k>
-etsijä</ar>
-<ar><k>seem</k>
-näyttää, tuntua</ar>
-<ar><k>seeming</k>
-näennäinen</ar>
-<ar><k>seep</k>
-tihkua</ar>
-<ar><k>seesaw</k>
-kiikkulauta</ar>
-<ar><k>segment of a line</k>
-jana</ar>
-<ar><k>seize</k>
-anastaa</ar>
-<ar><k>seizure</k>
-takavarikko</ar>
-<ar><k>seldom</k>
-harvoin</ar>
-<ar><k>select</k>
-valikoida, valita</ar>
-<ar><k>selection</k>
-lajitelma, valikoima, valinta</ar>
-<ar><k>self-abasement</k>
-itsensäalentaminen</ar>
-<ar><k>self-acting</k>
-itsetoimiva</ar>
-<ar><k>self-adhesive</k>
-itsekiinnityvä</ar>
-<ar><k>self-assertion</k>
-itsetehostus, itsetietoisuus</ar>
-<ar><k>self-assertive</k>
-itsetietoinen</ar>
-<ar><k>self-assurance</k>
-itsevarmuus</ar>
-<ar><k>self-assured</k>
-itsevarma</ar>
-<ar><k>self-caused</k>
-itseaiheuttama</ar>
-<ar><k>self-command</k>
-itsehillintä</ar>
-<ar><k>self-confidence</k>
-itseluottamus</ar>
-<ar><k>self-confident</k>
-itsevarma</ar>
-<ar><k>self-control</k>
-itsehillintä</ar>
-<ar><k>self-criticism</k>
-itsekritiikki</ar>
-<ar><k>self-deception</k>
-itsepetos</ar>
-<ar><k>self-defence</k>
-hätävarjelus, itsepuolustus</ar>
-<ar><k>self-denial</k>
-itsekieltämys, kieltäymys</ar>
-<ar><k>self-educated</k>
-itseoppinut</ar>
-<ar><k>self-esteem</k>
-itsetunto</ar>
-<ar><k>self-examination</k>
-itsetutkistelu</ar>
-<ar><k>self-governing</k>
-itsenäinen</ar>
-<ar><k>self-importance</k>
-itserakkaus, itsetietoisuus</ar>
-<ar><k>self-inflicted</k>
-itseaiheuttama</ar>
-<ar><k>self-knowledge</k>
-itsetuntemus</ar>
-<ar><k>self-portrait</k>
-omakuva</ar>
-<ar><k>self-possessed</k>
-levollinen</ar>
-<ar><k>self-reproach</k>
-itsesyytös</ar>
-<ar><k>self-respect</k>
-itsekunnioitus</ar>
-<ar><k>self-sacrificing</k>
-alttiiksiantava</ar>
-<ar><k>self-satisfaction</k>
-omahyväisyys</ar>
-<ar><k>self-satisfied</k>
-itseensätyytyväinen, itserakas, omahyväinen</ar>
-<ar><k>self-seeking</k>
-itsekäs, omanvoitonpyyntöinen</ar>
-<ar><k>self-service</k>
-itsepalvelu</ar>
-<ar><k>self-sufficient</k>
-itsekylläinen</ar>
-<ar><k>self-suggestion</k>
-uskottelu</ar>
-<ar><k>self-supporting</k>
-itsensäelättävä</ar>
-<ar><k>self-test</k>
-itsekoestus</ar>
-<ar><k>self-willed</k>
-itsepäinen, omapäinen</ar>
-<ar><k>selfish</k>
-itsekäs</ar>
-<ar><k>selfishness</k>
-itsekkyys, omanvoitonpyynti</ar>
-<ar><k>sell</k>
-myydä</ar>
-<ar><k>semen</k>
-siemenneste</ar>
-<ar><k>semi-automatic</k>
-puoliautomaattinen</ar>
-<ar><k>semi-finals</k>
-välierät (urh)</ar>
-<ar><k>semi-gloss enamel</k>
-puolikiiltävä lakkamaali</ar>
-<ar><k>semibreve</k>
-kokonuotti</ar>
-<ar><k>semicircle</k>
-puoliympyrä</ar>
-<ar><k>semiconductor</k>
-puolijohde</ar>
-<ar><k>seminar</k>
-seminaari</ar>
-<ar><k>seminary</k>
-seminaari</ar>
-<ar><k>semolina</k>
-mannaryynit</ar>
-<ar><k>senate</k>
-senaatti</ar>
-<ar><k>senator</k>
-senaattori</ar>
-<ar><k>send</k>
-lähettää</ar>
-<ar><k>send off</k>
-lähettää</ar>
-<ar><k>senile</k>
-ukkomainen</ar>
-<ar><k>senior</k>
-vanhempi</ar>
-<ar><k>senior high school</k>
-lukio (suomessa)</ar>
-<ar><k>senior lecturer</k>
-dosentti</ar>
-<ar><k>senior teacher</k>
-lehtori (koul)</ar>
-<ar><k>sensation</k>
-aistimus, kohu, sensaatio, tunne, tunto (tunne)</ar>
-<ar><k>sensational</k>
-huomiotaherättävä, sensaatiomainen</ar>
-<ar><k>sensational effect</k>
-jymyvaikutus</ar>
-<ar><k>sense</k>
-aisti, aistia, järki, merkitys, taju, tolkku, tunne
-
-vaistota</ar>
-<ar><k>sense of humour</k>
-huumorintaju</ar>
-<ar><k>sense of responsibility</k>
-edesvastuuntunne</ar>
-<ar><k>sense of smell</k>
-haisti, hajuaisti</ar>
-<ar><k>senseless</k>
-järjetön (mieletön), mieletön, tajuton, tolkuton</ar>
-<ar><k>sensibility</k>
-herkkätunteisuus</ar>
-<ar><k>sensible</k>
-järkevä</ar>
-<ar><k>sensitive</k>
-arka, arkaluonteinen, herkkä, (ihmisestä), arkatunteinen, hellätunteinen, herkkä, herkkätunteinen, tunteellinen (herkkä)</ar>
-<ar><k>sensitive to frost</k>
-hallanarka</ar>
-<ar><k>sensitiveness</k>
-arkatunteisuus, arkuus, herkkys, tunteellisuus</ar>
-<ar><k>sensitivity</k>
-herkkys</ar>
-<ar><k>sensitize</k>
-herkistää</ar>
-<ar><k>sensor</k>
-anturi, sensori</ar>
-<ar><k>sensual</k>
-aistillinen</ar>
-<ar><k>sensuality</k>
-aistillisuus</ar>
-<ar><k>sentence</k>
-lause, tuomio
-
-tuomita</ar>
-<ar><k>sentence stress</k>
-lausekorko</ar>
-<ar><k>sentimental</k>
-haavemielinen, tunteellinen</ar>
-<ar><k>sentimentality</k>
-tunteellisuus</ar>
-<ar><k>separable</k>
-eriävä</ar>
-<ar><k>separate</k>
-eristää, erota, erottaa, lohkaista, lohkoa
-
-eri, erillinen, irrallinen, irtonainen</ar>
-<ar><k>separately</k>
-erikseen</ar>
-<ar><k>separation</k>
-asumusero, ero, erottaminen</ar>
-<ar><k>septic tank</k>
-hajoitus-, sakokaivo</ar>
-<ar><k>sequel</k>
-jatko, jälkinäytös (kuv)</ar>
-<ar><k>sequence</k>
-järjestys, peräkkäisyys, jakso</ar>
-<ar><k>sequin</k>
-paletti</ar>
-<ar><k>serenade</k>
-serenadi</ar>
-<ar><k>sergeant</k>
-kersantti, ylikonstaapeli</ar>
-<ar><k>serial story</k>
-jatkokertomus</ar>
-<ar><k>serially</k>
-jaksoittain</ar>
-<ar><k>series</k>
-jakso, sarja</ar>
-<ar><k>serious</k>
-totinen, vaikea (vakava), vakava, yksitotinen, yksivakainen</ar>
-<ar><k>seriously</k>
-vakavasti</ar>
-<ar><k>seriousness</k>
-arveluttavuus, totisuus, vakavuus</ar>
-<ar><k>sermon</k>
-saarna</ar>
-<ar><k>serpent</k>
-käärme</ar>
-<ar><k>serum</k>
-seerumi</ar>
-<ar><k>servant</k>
-palkollinen, palvelija</ar>
-<ar><k>serve</k>
-palvella, tarjoillaa</ar>
-<ar><k>service</k>
-astiasto, astutus, huolto (palvelu), liikenne, palvelu, palvelus, syöttö (urh tennis), tarjoilu, kulkuyhteys
-
-huoltaa
-
-huolta</ar>
-<ar><k>service life</k>
-käyttöikä</ar>
-<ar><k>service station</k>
-huoltoasema</ar>
-<ar><k>serviceable</k>
-käyttökelpoinen</ar>
-<ar><k>servicing</k>
-huolto (palvelu)</ar>
-<ar><k>servile</k>
-mateleva (kuv)</ar>
-<ar><k>servomotor</k>
-apumoottori</ar>
-<ar><k>session</k>
-istunto</ar>
-<ar><k>sesualist</k>
-hekumoitsija</ar>
-<ar><k>set</k>
-pino, kopiosarja
-
-astiasto, erä (tennis), sarja
-
-asettaa
-
-asettaa, istuttaa, panna</ar>
-<ar><k>set a clock</k>
-asettaa kello</ar>
-<ar><k>set a price</k>
-hinnoitella</ar>
-<ar><k>set about</k>
-alkaa (ryhtyä), ruveta, ryhtyä</ar>
-<ar><k>set apart</k>
-eritellä (erottaa)</ar>
-<ar><k>set aside</k>
-syrjäyttää</ar>
-<ar><k>set back</k>
-taannuttaa</ar>
-<ar><k>set forth</k>
-esittää</ar>
-<ar><k>set free</k>
-vapauttaa</ar>
-<ar><k>set in one's ways</k>
-kaavamainen</ar>
-<ar><k>set matter</k>
-latomus</ar>
-<ar><k>set of drawing instruments</k>
-harpikko</ar>
-<ar><k>set of underwear</k>
-kerrasto</ar>
-<ar><k>set out</k>
-lähteä (matkaan)</ar>
-<ar><k>set right</k>
-oikoa</ar>
-<ar><k>set screw</k>
-asetinruuvi</ar>
-<ar><k>set separator</k>
-pinoerotin</ar>
-<ar><k>set separator finger</k>
-erotuskynsi</ar>
-<ar><k>set square</k>
-kulmaviivoitin</ar>
-<ar><k>set up</k>
-latoa (kirjap), pystyttää</ar>
-<ar><k>set-back</k>
-taantumus, takaisku</ar>
-<ar><k>setee</k>
-sohva</ar>
-<ar><k>setting</k>
-asetus, säätö, ympäristö</ar>
-<ar><k>settle</k>
-asuttaa, järjestää, laskeutua (rakennus ym), painua, ratkaista, vakaannuttaa, suorittaa</ar>
-<ar><k>settlement</k>
-asutus, uudisasutus, suoritus</ar>
-<ar><k>settler</k>
-uudisasukas</ar>
-<ar><k>settling tank</k>
-lietteen erotuskaivo</ar>
-<ar><k>setup tool</k>
-asetustyökalu</ar>
-<ar><k>seven</k>
-seitsemän</ar>
-<ar><k>seventeen</k>
-seitsemäntoista</ar>
-<ar><k>seventeenth</k>
-seitsemästoista</ar>
-<ar><k>seventh</k>
-seitsemännes, seitsemäs</ar>
-<ar><k>seventy</k>
-seitsemänkymmentä</ar>
-<ar><k>several</k>
-usea</ar>
-<ar><k>severance pay</k>
-eroraha</ar>
-<ar><k>severe</k>
-ankara, kova (ankara), tuima (ankara), vaikea (vakava)</ar>
-<ar><k>severely</k>
-ankarasti, raskaasti, kovasti</ar>
-<ar><k>severity</k>
-ankaruus, kovuus, tuimuus</ar>
-<ar><k>sew</k>
-neuloa, nitoa, ommella</ar>
-<ar><k>sewage</k>
-jätevesi, likavesi (pesu- ym), viemärivesi
-
-viemäröinti</ar>
-<ar><k>sewage discharge</k>
-viemäröinti</ar>
-<ar><k>sewage water</k>
-viemärivesi</ar>
-<ar><k>sewer</k>
-likaviemäri, viemäri</ar>
-<ar><k>sewing</k>
-ompelu</ar>
-<ar><k>sewing thread</k>
-ompelurihma</ar>
-<ar><k>sewing-machine</k>
-ompelukone</ar>
-<ar><k>sex</k>
-sukupuoli
-
-erotiikka, seksi</ar>
-<ar><k>sex pot</k>
-seksikäs nainen [puhek.]</ar>
-<ar><k>sexiness</k>
-seksikkyys</ar>
-<ar><k>sexless</k>
-suvuton</ar>
-<ar><k>sexual</k>
-sukupuolinen, suvullinen (biol)</ar>
-<ar><k>sexy</k>
-seksikäs</ar>
-<ar><k>shabby</k>
-nukkavieru</ar>
-<ar><k>shack</k>
-hökkeli, murju, tölli, tönö</ar>
-<ar><k>shackle</k>
-kahlehtia</ar>
-<ar><k>shackles</k>
-kahleet (kuv)</ar>
-<ar><k>shade</k>
-kupu (lampun), siimes, varjo, vivahdus, värisävy
-
-varjostaa</ar>
-<ar><k>shadiness</k>
-hämäräperäisyys</ar>
-<ar><k>shadow</k>
-siimes, varjo</ar>
-<ar><k>shady</k>
-hämäräperäinen, varjoinen</ar>
-<ar><k>shaft</k>
-akseli, aisa</ar>
-<ar><k>shag</k>
-takku</ar>
-<ar><k>shaggy</k>
-pörröinen, takkuinen</ar>
-<ar><k>shake</k>
-ravistus
-
-horjuttaa, huojuttaa, hyllyä, hytkyä, järistä, ravistaa, tutista, täristä, väristä</ar>
-<ar><k>shake hands</k>
-kätellä</ar>
-<ar><k>shake off</k>
-karistaa</ar>
-<ar><k>shaking</k>
-järistys, tärinä</ar>
-<ar><k>shaking hands</k>
-kättely</ar>
-<ar><k>shallow</k>
-matala (vedestä), matalikko, pintapuolinen, pääskynen</ar>
-<ar><k>shallowness</k>
-mataluus</ar>
-<ar><k>shame</k>
-saattaa (häpeään)</ar>
-<ar><k>shamefulness</k>
-häpeällisyys</ar>
-<ar><k>shameless</k>
-häpeämätön, hävytön</ar>
-<ar><k>shamelessness</k>
-hävyttömyys</ar>
-<ar><k>shammy leather</k>
-säämiskä</ar>
-<ar><k>shank</k>
-koipi, sääri</ar>
-<ar><k>shape</k>
-hahmo, muoto
-
-muodostaa, muodostella, muotoilla, muovailla, muovata</ar>
-<ar><k>shapeless</k>
-muodoton, rujo</ar>
-<ar><k>share</k>
-erä (osuus), osa (osuus), osake, osallisuus, osuus</ar>
-<ar><k>share capital</k>
-osakepääoma</ar>
-<ar><k>shareholders</k>
-osakkaat</ar>
-<ar><k>shares</k>
-osuus</ar>
-<ar><k>sharing</k>
-jako</ar>
-<ar><k>shark</k>
-hai</ar>
-<ar><k>sharp</k>
-iskevä, jyrkkä, kärkevä (pureva), pistävä, pureva, terävä, tuikea, tuima</ar>
-<ar><k>sharp pain</k>
-polte</ar>
-<ar><k>sharp turn</k>
-äkkikäänne</ar>
-<ar><k>sharpen</k>
-hioa (teroittaa), teroittaa</ar>
-<ar><k>sharpened</k>
-hiottu</ar>
-<ar><k>sharpener</k>
-kynänteroitin</ar>
-<ar><k>sharply</k>
-jyrkästi</ar>
-<ar><k>sharply worded</k>
-jyrkkäsanainen</ar>
-<ar><k>sharpness</k>
-terävyys, tuimuus</ar>
-<ar><k>shatter</k>
-murskata</ar>
-<ar><k>shaver</k>
-parrakone</ar>
-<ar><k>shaving</k>
-lastu (höylän), parranajo</ar>
-<ar><k>shavings</k>
-höylänlastut, sahanjauho</ar>
-<ar><k>shawl</k>
-hartiahuivi</ar>
-<ar><k>she</k>
-hän (nainen)</ar>
-<ar><k>she bear</k>
-emäkarhu</ar>
-<ar><k>sheaf</k>
-kupo, lyhde</ar>
-<ar><k>shear</k>
-leikkaus</ar>
-<ar><k>shear force</k>
-leikkausvoima</ar>
-<ar><k>shearing action</k>
-leikkautuminen</ar>
-<ar><k>shearing load</k>
-leikkauskuorma</ar>
-<ar><k>shearing resistance</k>
-leikkauslujuus</ar>
-<ar><k>shearing stress</k>
-leikkausjännitys</ar>
-<ar><k>shears</k>
-keritsimet (lampaan)</ar>
-<ar><k>sheath-knife</k>
-puukko</ar>
-<ar><k>shed</k>
-aitta, vaja</ar>
-<ar><k>sheen</k>
-hohde</ar>
-<ar><k>sheep</k>
-lammas</ar>
-<ar><k>sheepfold</k>
-lammastarha</ar>
-<ar><k>sheepgdog</k>
-paimenkoira</ar>
-<ar><k>sheepish</k>
-lammasmainen</ar>
-<ar><k>sheer</k>
-pelkkä (puhdas), silkka</ar>
-<ar><k>sheet</k>
-arkki (paperi), lakana, ohut metallilevy, pelti (ohut)</ar>
-<ar><k>sheet copper</k>
-kupariohutlevy</ar>
-<ar><k>sheet glass</k>
-tasolasi</ar>
-<ar><k>sheet metal</k>
-ohutlevy, pelti</ar>
-<ar><k>sheet of ice</k>
-iljanne, jäätikkö</ar>
-<ar><k>sheetmetal work</k>
-peltityöt</ar>
-<ar><k>sheetmetal worker</k>
-peltiseppä</ar>
-<ar><k>shelf</k>
-hylly</ar>
-<ar><k>shelf unit</k>
-hyllystö</ar>
-<ar><k>shell</k>
-kuori (munan ym)
-
-pommittaa</ar>
-<ar><k>shelter</k>
-hoiva (suojata), suoja, turva</ar>
-<ar><k>shelves</k>
-hyllykkö</ar>
-<ar><k>shelving</k>
-hyllykkö</ar>
-<ar><k>shepherd</k>
-kaitsija (paimen)</ar>
-<ar><k>shield</k>
-kilpi, suojus
-
-suojata</ar>
-<ar><k>shift</k>
-työvuoro
-
-siirto
-
-siirtyä</ar>
-<ar><k>shift the blame</k>
-hartioille</ar>
-<ar><k>shilling</k>
-sillinki</ar>
-<ar><k>shimmer</k>
-hohtaa, kajastaa, väreillä
-
-hohtaa, kajastaa, väreillä
-
-hohde, kajastus</ar>
-<ar><k>shine</k>
-helottaa, hohtaa, kiiltää, loistaa, paistaa (loistaa)</ar>
-<ar><k>shingle</k>
-paanut</ar>
-<ar><k>shingle concrete</k>
-tasarakeinen betoni</ar>
-<ar><k>shingle roof</k>
-paanukatto, pärekatto</ar>
-<ar><k>shingles</k>
-vyöruusu</ar>
-<ar><k>shining</k>
-loistava</ar>
-<ar><k>shiny</k>
-kiiltävä, kirkas (kiiltävä)</ar>
-<ar><k>ship</k>
-laiva
-
-laivata</ar>
-<ar><k>ship's company</k>
-laivaväki</ar>
-<ar><k>ship's log</k>
-lokikirja</ar>
-<ar><k>ship's officers</k>
-laivanpäällystö</ar>
-<ar><k>shipbroker</k>
-laivanselvittäjä</ar>
-<ar><k>shipment</k>
-laivaus</ar>
-<ar><k>shipowners</k>
-laivanisännistö</ar>
-<ar><k>shipping</k>
-laivaus</ar>
-<ar><k>shipwreck</k>
-haaksirikko</ar>
-<ar><k>shipyard</k>
-laivanveistämö, telakka</ar>
-<ar><k>shirker</k>
-pinnari</ar>
-<ar><k>shirt</k>
-paita, pusero (paidan mallinen)</ar>
-<ar><k>shit head **</k>
-paskapää [alat.]</ar>
-<ar><k>shiver</k>
-säpäle, vavistus, värinä, väristys
-
-hytistä, vapista, väristä, värjottää</ar>
-<ar><k>shivers</k>
-horkka [puhek.]</ar>
-<ar><k>shoal</k>
-matalikko</ar>
-<ar><k>shock</k>
-järkytys, sokki, säikähdys, tärähdys</ar>
-<ar><k>shock absorber</k>
-iskunvaimmenin</ar>
-<ar><k>shocking</k>
-järkyttävä</ar>
-<ar><k>shoe</k>
-kenkä, wc-kulmayhde</ar>
-<ar><k>shoe horn</k>
-kenkälusikka</ar>
-<ar><k>shoe repair shop</k>
-jalkinekorjaamo</ar>
-<ar><k>shoemaker</k>
-suutari</ar>
-<ar><k>shoo away</k>
-hätistää</ar>
-<ar><k>shoot</k>
-ammuskella, ampaista, filmata</ar>
-<ar><k>shoot at</k>
-ampua</ar>
-<ar><k>shoot up</k>
-orastaa</ar>
-<ar><k>shooting</k>
-ammunta, laukaustenvaihto</ar>
-<ar><k>shooting licence</k>
-metsästyslupa</ar>
-<ar><k>shooting star</k>
-lentotähti</ar>
-<ar><k>shooting the rapids</k>
-koskenlasku</ar>
-<ar><k>shop</k>
-kauppa (myymälä), myymälä, puoti, verstas</ar>
-<ar><k>shop steward</k>
-pääluottamusmies</ar>
-<ar><k>shopkeeper</k>
-liikkeenharjoittaja</ar>
-<ar><k>shopping-bag</k>
-kassi</ar>
-<ar><k>shore</k>
-rannikko, ranta</ar>
-<ar><k>short</k>
-lyhyt, lyhytsanainen, vajaa</ar>
-<ar><k>short circuit</k>
-oikosulku</ar>
-<ar><k>short cut</k>
-oikotie</ar>
-<ar><k>short duration</k>
-hetkellisuus</ar>
-<ar><k>short stay</k>
-viivähdys</ar>
-<ar><k>short story</k>
-novelli</ar>
-<ar><k>short-sighted</k>
-likinäköinen, lyhytnäköinen</ar>
-<ar><k>short-sleeved</k>
-hihainen (lyhyt)</ar>
-<ar><k>short-tempered</k>
-äkkipikainen</ar>
-<ar><k>shortage</k>
-pula, puute (vähyys), vajaus, vähyys</ar>
-<ar><k>shorten</k>
-lyhentää, lyhetä</ar>
-<ar><k>shorthand</k>
-pikakirjoitus</ar>
-<ar><k>shortly</k>
-lähiaika, piakkoin, pian</ar>
-<ar><k>shortness</k>
-lyhyys</ar>
-<ar><k>shortness of breath</k>
-hengästyminen</ar>
-<ar><k>shorts</k>
-polvihousut, polvihousut, sortsit</ar>
-<ar><k>shot</k>
-ampuja, laukaus</ar>
-<ar><k>shot-put</k>
-kuulantyöntö</ar>
-<ar><k>shotgun</k>
-haulikko</ar>
-<ar><k>should</k>
-pitäisi</ar>
-<ar><k>shoulder</k>
-hartia, lapa, olka, olkapää</ar>
-<ar><k>shoulder-blade</k>
-lapaluu</ar>
-<ar><k>shout</k>
-huuto
-
-hoilata (ark), huutaa, ärjyä</ar>
-<ar><k>shove</k>
-tyrkkäys
-
-sysätä, tyrkätä, töytäistä</ar>
-<ar><k>shovel</k>
-kauha, lapio
-
-lapioida</ar>
-<ar><k>show</k>
-näytelmä, näytäntö
-
-esittää (näyttää), ilmaista (osoittaa), näytellä, näyttää, osoittaa</ar>
-<ar><k>show business</k>
-huviala</ar>
-<ar><k>show case</k>
-näyttelykaappi</ar>
-<ar><k>show off</k>
-hienostella, keikailla, komeilla, koreilla (jllak), mahtailla, prameilla</ar>
-<ar><k>shower</k>
-kuuro (sade), ryöppy, sade, sadekuuro, suihku (kylpy ym)</ar>
-<ar><k>showing off</k>
-hienostelu</ar>
-<ar><k>showy</k>
-korea</ar>
-<ar><k>shred</k>
-hetale, riekale
-
-vuodattaa</ar>
-<ar><k>shrew</k>
-äkäpussi</ar>
-<ar><k>shrewd</k>
-ovela, teräväpäinen, viekas</ar>
-<ar><k>shrewdness</k>
-viekkaus</ar>
-<ar><k>shriek</k>
-kirkaisu, parkaisu
-
-huutaa, kirkua, hihkua</ar>
-<ar><k>shrike</k>
-lepinkäinen (zo)</ar>
-<ar><k>shrill</k>
-kimakka, kimeä</ar>
-<ar><k>shrillness</k>
-kimeys</ar>
-<ar><k>shrimp</k>
-katkarapu</ar>
-<ar><k>shrink</k>
-huveta, kutistaa, kutistua</ar>
-<ar><k>shrink from</k>
-arastaa</ar>
-<ar><k>shroud</k>
-kuolinvaate, käärinliina</ar>
-<ar><k>shrub</k>
-pensas</ar>
-<ar><k>shrug</k>
-olankohautus
-
-kohauttaa</ar>
-<ar><k>shudder</k>
-vavistus, väristys</ar>
-<ar><k>shuffle along</k>
-kömpiä</ar>
-<ar><k>shun</k>
-arastaa, kaihtaa, vieroa</ar>
-<ar><k>shut</k>
-sulkea, sulkeutua
-
-kiinni (suljettu)</ar>
-<ar><k>shut up</k>
-sulkea</ar>
-<ar><k>shutter</k>
-suljin, suljinläppä, reunaverho, ikkunaluuku</ar>
-<ar><k>shuttle</k>
-sukkula, syöstävä</ar>
-<ar><k>shuttlecock</k>
-sulkapallo</ar>
-<ar><k>shy</k>
-ihmisarka, kaino, säikkyä, ujo, vauhko</ar>
-<ar><k>shyness</k>
-arkailu, kainous, vauhkous</ar>
-<ar><k>sick</k>
-kipeä</ar>
-<ar><k>sick of</k>
-kyllästynyt</ar>
-<ar><k>sicken</k>
-iljettää, kyllästyttää</ar>
-<ar><k>sickening</k>
-ellottava, iljettävä, tympäisevä</ar>
-<ar><k>sickle</k>
-sirppi</ar>
-<ar><k>sickly</k>
-kivulloinen, raihnainen</ar>
-<ar><k>sickness</k>
-sairaus, tauti</ar>
-<ar><k>sickness pension</k>
-sairauseläke</ar>
-<ar><k>side</k>
-kylki, laide, laita (sivu), puoli, sivu, syrjä, vieri</ar>
-<ar><k>side by side</k>
-rinnakkain, sivutusten, vierekkäin</ar>
-<ar><k>side door</k>
-sivuovi</ar>
-<ar><k>side effect</k>
-sivuvaikutus</ar>
-<ar><k>side hinged</k>
-sivutta saranoitu</ar>
-<ar><k>side street</k>
-sivukatu</ar>
-<ar><k>side-to-side</k>
-poikittainen, poikittais-</ar>
-<ar><k>sideboards</k>
-poskiparta</ar>
-<ar><k>sideburns</k>
-poskiparta, pulisongit</ar>
-<ar><k>sidewalk</k>
-katukäytävä</ar>
-<ar><k>siege</k>
-piiritys</ar>
-<ar><k>sieve</k>
-seula</ar>
-<ar><k>sifted flour</k>
-lestyjauhot</ar>
-<ar><k>sigh</k>
-huoahdus, huokaus, suhina (tuulen)
-
-humista (tuuli ym), huoahtaa, huoata, huokaista, suhista</ar>
-<ar><k>sight</k>
-katsanto, näkeminen, näky, näkö, tähtäin, nähtävyys</ar>
-<ar><k>sightseeing-tour</k>
-kiertoajelu</ar>
-<ar><k>sign</k>
-ennusmerkki, tunnus, tunnusmerkki, merkki, tunnus, ilmaus (merkki), osoitus
-
-allekirjoittaa</ar>
-<ar><k>sign language</k>
-elehtiäkieli, merkkikieli, viittomakieli</ar>
-<ar><k>sign of life</k>
-elonmerkki</ar>
-<ar><k>sign of the cross</k>
-ristinmerkki</ar>
-<ar><k>signal</k>
-signaali
-
-viestittää</ar>
-<ar><k>signalling</k>
-merkinanto, viestintä, viestys</ar>
-<ar><k>signals corps</k>
-viestijoukot</ar>
-<ar><k>signatory power</k>
-allekirjoittajavaltio</ar>
-<ar><k>signature</k>
-nimiallekirjoitus, etumerkintö (mus)</ar>
-<ar><k>signer</k>
-allekirjoittaja</ar>
-<ar><k>signet ring</k>
-kantasormus</ar>
-<ar><k>signet-ring</k>
-sinettisormus</ar>
-<ar><k>significant</k>
-merkitsevä, merkityksellinen, tärkeä</ar>
-<ar><k>signify</k>
-merkitä (tarkoittaa)</ar>
-<ar><k>signiture</k>
-nimikirjoitus</ar>
-<ar><k>signpost</k>
-tienviitta</ar>
-<ar><k>silence</k>
-mykistää, vaientaa</ar>
-<ar><k>silencer</k>
-äänenvaimennin</ar>
-<ar><k>silent</k>
-hiljainen (äänetön), vaiti, äänetön</ar>
-<ar><k>silently</k>
-ääneti</ar>
-<ar><k>silhouette</k>
-siluetti, varjokuva</ar>
-<ar><k>silicon</k>
-pii</ar>
-<ar><k>silk</k>
-silkki</ar>
-<ar><k>silkworm</k>
-silkkimato</ar>
-<ar><k>silliness</k>
-tyhmyys</ar>
-<ar><k>silly</k>
-hassu, hupsu, tomppelimainen, tyhmä</ar>
-<ar><k>silo</k>
-siilo</ar>
-<ar><k>silt</k>
-hiesu, liete</ar>
-<ar><k>silver hair</k>
-hopeahapset</ar>
-<ar><k>silver mounting</k>
-hopeahela</ar>
-<ar><k>silver wedding</k>
-hopehäät</ar>
-<ar><k>silver-plate</k>
-hopeoida</ar>
-<ar><k>silversmith</k>
-hopeaseppä</ar>
-<ar><k>silverware</k>
-hopeatavarat</ar>
-<ar><k>similar</k>
-samanlainen, yhdenmukainen, yhtäläinen</ar>
-<ar><k>similar in appearance</k>
-samannäköinen, yhdennäköinen</ar>
-<ar><k>similar to</k>
-kaltainen (saman - )</ar>
-<ar><k>simper</k>
-hymyillä (typerästi)</ar>
-<ar><k>simple</k>
-koruton, mutkaton, vaatimaton, yksinkertainen</ar>
-<ar><k>simpleton</k>
-hupsu, hölmö, tyhmyri</ar>
-<ar><k>simplex</k>
-yksipuolis-, simpleksi-</ar>
-<ar><k>simplicity</k>
-kansanomaisuus, kansantajuisuus, koruttomuus</ar>
-<ar><k>simply</k>
-kerrassaan, pelkästään, suorastaan</ar>
-<ar><k>simultaneous</k>
-samanaikainen, yhdenaikainen, yhtaikainen</ar>
-<ar><k>simultaneously</k>
-yhtaikaa, samanaikaisesti</ar>
-<ar><k>sin</k>
-synti</ar>
-<ar><k>since</k>
-jstk alkaen</ar>
-<ar><k>sincere</k>
-vilpitön</ar>
-<ar><k>sincerity</k>
-vilpittömyys</ar>
-<ar><k>sine</k>
-sini (mat)</ar>
-<ar><k>sinew</k>
-jänne</ar>
-<ar><k>sinful</k>
-synnillinen</ar>
-<ar><k>sinfulness</k>
-synnillisyys</ar>
-<ar><k>sing</k>
-laulaa, laulella</ar>
-<ar><k>singe</k>
-korventaa</ar>
-<ar><k>singer</k>
-laulaja</ar>
-<ar><k>single</k>
-yksi, yksittäis-
-
-naimaton, yksittäinen, yksi (ainoa)</ar>
-<ar><k>single branch</k>
-haarayhde</ar>
-<ar><k>single copy</k>
-irtonumero</ar>
-<ar><k>single file</k>
-hanhenmarssi</ar>
-<ar><k>single phase</k>
-yksivaihe</ar>
-<ar><k>single ticket</k>
-menolippu</ar>
-<ar><k>singular</k>
-yksikkö (kiel), yksikköllinen</ar>
-<ar><k>sink</k>
-aleta, laskeutua (painua), painua, upottaa, vaipua, vajota, vajottaa</ar>
-<ar><k>sinking</k>
-aleniminen, upotus</ar>
-<ar><k>sinless</k>
-synnitön</ar>
-<ar><k>sinner</k>
-synnintekijä</ar>
-<ar><k>sinuous</k>
-koukeroinen</ar>
-<ar><k>siren</k>
-seireeni</ar>
-<ar><k>sirloin</k>
-slkäliha</ar>
-<ar><k>sister</k>
-sisar, sisko</ar>
-<ar><k>sister-in-law</k>
-käly</ar>
-<ar><k>sit</k>
-istua</ar>
-<ar><k>sit about</k>
-istuskella</ar>
-<ar><k>sit down</k>
-istuutua</ar>
-<ar><k>sit down for a while</k>
-istahtaa</ar>
-<ar><k>sit up</k>
-nousta istualleen</ar>
-<ar><k>sit-down strike</k>
-istumalakko</ar>
-<ar><k>site</k>
-asema, palsta, sijainti, tontti</ar>
-<ar><k>site engineer</k>
-vastaava insinööri</ar>
-<ar><k>site office</k>
-työmaan toimisto</ar>
-<ar><k>site supervision</k>
-työmaavalvonta</ar>
-<ar><k>sitting</k>
-istuallaan</ar>
-<ar><k>situation</k>
-asianlaita, tilanne, työpaikka</ar>
-<ar><k>six</k>
-kuusi (luku)</ar>
-<ar><k>sixteen</k>
-kuusitoista</ar>
-<ar><k>sixteenth</k>
-kuudestoista</ar>
-<ar><k>sixth</k>
-kuudennnes, kuudes</ar>
-<ar><k>sixth form college</k>
-lukio (suomessa)</ar>
-<ar><k>sixty</k>
-kuusikymmentä</ar>
-<ar><k>sizable</k>
-melkoinen</ar>
-<ar><k>size</k>
-kokoinen, suuruus (koko)</ar>
-<ar><k>sizeable</k>
-aikamoinen, melkoinen</ar>
-<ar><k>sizzle</k>
-kihistä, käristä, pihistä</ar>
-<ar><k>skate</k>
-luistella</ar>
-<ar><k>skater</k>
-luistelija</ar>
-<ar><k>skating</k>
-luistelu</ar>
-<ar><k>skating rink</k>
-luistinrata</ar>
-<ar><k>skeleton</k>
-luuranko</ar>
-<ar><k>sketch</k>
-sketsi, luonnos
-
-hahmotella, luonnostaa</ar>
-<ar><k>skew</k>
-vinous</ar>
-<ar><k>skewed</k>
-vino</ar>
-<ar><k>ski</k>
-suksi
-
-hiihtää</ar>
-<ar><k>ski jump</k>
-mäenlasku (mäkihyppy)</ar>
-<ar><k>ski slope</k>
-laskettelurinne</ar>
-<ar><k>ski stick</k>
-porkka</ar>
-<ar><k>ski-stick</k>
-suksisauva</ar>
-<ar><k>skid</k>
-luisua (auto)</ar>
-<ar><k>skid plate</k>
-pidätinlevy</ar>
-<ar><k>skidding</k>
-luisu (auton)</ar>
-<ar><k>skier</k>
-hiihtäjä</ar>
-<ar><k>skies</k>
-taivas</ar>
-<ar><k>skiing</k>
-hiihto</ar>
-<ar><k>skilful</k>
-taitava</ar>
-<ar><k>skill</k>
-ammattitaito, taidokuus, taitavuus, taito</ar>
-<ar><k>skilled</k>
-ammatitaitoinen</ar>
-<ar><k>skilled work</k>
-ammattityö</ar>
-<ar><k>skilled worker</k>
-ammattityöläinen</ar>
-<ar><k>skilled workman</k>
-ammattilainen</ar>
-<ar><k>skin disease</k>
-ihotauti</ar>
-<ar><k>skin-grafting</k>
-ihonsiirto</ar>
-<ar><k>skip</k>
-hypähdys
-
-hypellä, hyppiä</ar>
-<ar><k>skipper</k>
-laivuri</ar>
-<ar><k>skirmish</k>
-kahakka
-
-kahakoida</ar>
-<ar><k>skirt</k>
-hame</ar>
-<ar><k>skirting</k>
-jalkalista</ar>
-<ar><k>skirting board</k>
-jalkalista
-
-jalkalista</ar>
-<ar><k>skittish</k>
-vauhko</ar>
-<ar><k>skull</k>
-kallo</ar>
-<ar><k>skull fracture</k>
-kallonmurtuma</ar>
-<ar><k>skull-cap</k>
-kalotti</ar>
-<ar><k>skunk</k>
-haisunäätä</ar>
-<ar><k>sky</k>
-taivas</ar>
-<ar><k>skylark</k>
-kiuru, leivo</ar>
-<ar><k>skylight</k>
-kattoikkuna</ar>
-<ar><k>skylight window</k>
-kattoikkuna</ar>
-<ar><k>slab</k>
-laakakivi, laatta</ar>
-<ar><k>slack</k>
-löysä, kiristämätön, jännittämätön
-
-hiilimurska, laimea (veltto), rento, veltto</ar>
-<ar><k>slacken</k>
-hellittää, hellitä, herpaantua, höllentyä, höllentää, lamaantua, löyhentää, veltostaa, veltostua</ar>
-<ar><k>slacker</k>
-vetelehtijä</ar>
-<ar><k>slackness</k>
-höllyys, rentous</ar>
-<ar><k>slag</k>
-kuona</ar>
-<ar><k>slag wool</k>
-kuonavilla</ar>
-<ar><k>slalom slope</k>
-laskettelurinne</ar>
-<ar><k>slander</k>
-panetella, parjata
-
-panettelu
-
-häväistyspuhe, panettelu, parjaus, solvaus</ar>
-<ar><k>slanderer</k>
-solvaaja</ar>
-<ar><k>slanderous</k>
-solvaava</ar>
-<ar><k>slant</k>
-viistous</ar>
-<ar><k>slanting</k>
-kalteva, viettävä, vino</ar>
-<ar><k>slap</k>
-sivallus
-
-läimäyttää, sivaltaa</ar>
-<ar><k>slapdash</k>
-huolimaton (leväperäinen)</ar>
-<ar><k>slash</k>
-viilto
-
-viiltää</ar>
-<ar><k>slat</k>
-säle</ar>
-<ar><k>slate</k>
-laatta</ar>
-<ar><k>slaughter-house</k>
-teurastamo</ar>
-<ar><k>slave</k>
-orja</ar>
-<ar><k>slaver</k>
-kuola</ar>
-<ar><k>slavery</k>
-orjuus</ar>
-<ar><k>slay</k>
-surmata</ar>
-<ar><k>sled</k>
-pulkka</ar>
-<ar><k>sledge</k>
-kelkka, pulkka, reki</ar>
-<ar><k>sledge-hammer</k>
-moukari</ar>
-<ar><k>sleep</k>
-maata (nukkua), nukkua</ar>
-<ar><k>sleeping bag</k>
-makusäkki</ar>
-<ar><k>sleeping-car</k>
-makuvaunu</ar>
-<ar><k>sleepless</k>
-uneton</ar>
-<ar><k>sleepy</k>
-unelias, uninen</ar>
-<ar><k>sleepyhead</k>
-unikeko</ar>
-<ar><k>sleet</k>
-lumiräntä, räntä</ar>
-<ar><k>sleeve</k>
-hiha, holkki (tekn)</ar>
-<ar><k>sleigh</k>
-reki</ar>
-<ar><k>slender</k>
-hentokasvuinen, hintelä, solakka, hoikka</ar>
-<ar><k>slenderness</k>
-hentous, hoikkuus</ar>
-<ar><k>slice</k>
-viipale</ar>
-<ar><k>slice of bread</k>
-leipäviipale</ar>
-<ar><k>slide</k>
-kuultokuva, liukurata, objektilasi, liuku-
-
-liukua, luistaa, pujahtaa, solahtaa, solua</ar>
-<ar><k>slide rule</k>
-laskuviivoitin, laskutikku</ar>
-<ar><k>sliding door</k>
-liukuovi</ar>
-<ar><k>slight</k>
-heikko (hento), lievä, vähäinen, vähäpätöinen</ar>
-<ar><k>slight fever</k>
-lämmönnousu</ar>
-<ar><k>slightly</k>
-hieman</ar>
-<ar><k>slightness</k>
-lievyys</ar>
-<ar><k>slim</k>
-hintelä, hoikka, solakka</ar>
-<ar><k>slime</k>
-lieju, lima (esim kalan)</ar>
-<ar><k>slimming</k>
-laihdutus</ar>
-<ar><k>slimness</k>
-hintelyys, hoikkuus</ar>
-<ar><k>slimy</k>
-limainen</ar>
-<ar><k>slink away</k>
-hiipiä (pois)</ar>
-<ar><k>slip</k>
-alushame, erehdys, hairahdus
-
-luistaa
-
-liukastua, liukua, livahtaa, livetä, luiskahtaa, luiskua, pujahtaa, solahtaa</ar>
-<ar><k>slip of paper</k>
-paperilappu</ar>
-<ar><k>slip of the tongue</k>
-lipsahdus</ar>
-<ar><k>slip-knot</k>
-juoksusolmu</ar>
-<ar><k>slippers</k>
-tossut</ar>
-<ar><k>slippery</k>
-liukas</ar>
-<ar><k>slipshod</k>
-huolimaton (leväperäinen), hutiteloiva</ar>
-<ar><k>slit</k>
-rako
-
-halkaista</ar>
-<ar><k>slobber</k>
-kuolata</ar>
-<ar><k>slogan</k>
-iskusana, iskulause</ar>
-<ar><k>slop bucket</k>
-likasanko</ar>
-<ar><k>slope</k>
-mäenahde, rinne</ar>
-<ar><k>sloppy</k>
-huolimaton (leväperäinen)</ar>
-<ar><k>slops</k>
-likavesi (pesu- ym)</ar>
-<ar><k>slot</k>
-rako</ar>
-<ar><k>slot machine</k>
-rahaautomaatti</ar>
-<ar><k>sloth</k>
-laiskiainen (zo)</ar>
-<ar><k>slovenly</k>
-homssuinen, huolimaton (leväperäinen), hutiteloiva</ar>
-<ar><k>slow</k>
-hidas, verkalleen, vitkallinen</ar>
-<ar><k>slow down</k>
-hidastuttaa</ar>
-<ar><k>slow up</k>
-hidastua, hidastuttaa</ar>
-<ar><k>slowly</k>
-hiljakseen, hitaasti, verkalleen, vitakalleen</ar>
-<ar><k>slowness</k>
-hitaus</ar>
-<ar><k>slug</k>
-etana</ar>
-<ar><k>sluggard</k>
-nahjus</ar>
-<ar><k>sluice</k>
-patoluukku, sulku</ar>
-<ar><k>slum</k>
-slummi</ar>
-<ar><k>slumber</k>
-uinua</ar>
-<ar><k>slump test</k>
-painumakoe</ar>
-<ar><k>slurp</k>
-hörppiä</ar>
-<ar><k>slurred speech</k>
-sokellus</ar>
-<ar><k>slush</k>
-jääsohjo, lumisohjo, rapa (sohjo)</ar>
-<ar><k>slut</k>
-lutka</ar>
-<ar><k>sly</k>
-luihu, viekas</ar>
-<ar><k>smack</k>
-läiske
-
-läimäyttää</ar>
-<ar><k>small</k>
-pieni, pikku, vähäinen</ar>
-<ar><k>small arms</k>
-käsituliaseet</ar>
-<ar><k>small bell</k>
-tiuku</ar>
-<ar><k>small change</k>
-pikkuraha, vaihtoraha</ar>
-<ar><k>small in number</k>
-harvalukuinen</ar>
-<ar><k>small keg</k>
-lekkeri</ar>
-<ar><k>small pancake</k>
-ohukas</ar>
-<ar><k>small part</k>
-osanen</ar>
-<ar><k>small talk</k>
-rupattelu</ar>
-<ar><k>smallest</k>
-vähin (pienin)</ar>
-<ar><k>smallish</k>
-pienehkö</ar>
-<ar><k>smallness</k>
-pienuus, vähyys</ar>
-<ar><k>smallpox</k>
-isorokko, isorokko</ar>
-<ar><k>smart</k>
-karvastella, kirvellä
-
-ovela, taitava, tyylikäs</ar>
-<ar><k>smart set</k>
-hienosto</ar>
-<ar><k>smartness</k>
-koreus (hienous)</ar>
-<ar><k>smear</k>
-leviämä
-
-liata, läiskä, töhriä</ar>
-<ar><k>smell</k>
-haju, katku, lemu
-
-haiskahtaa, haista, haistaa, kärytä, lemuta, tuoksua</ar>
-<ar><k>smell good</k>
-haista hyvältä</ar>
-<ar><k>smelling salts</k>
-hajusuola</ar>
-<ar><k>smelt</k>
-kuore (zo)</ar>
-<ar><k>smile</k>
-hymy
-
-hymähtää, myhäillä</ar>
-<ar><k>smile all over one's face</k>
-hymyillä (leveästi)</ar>
-<ar><k>smile at</k>
-hymyillä</ar>
-<ar><k>smilingly</k>
-hymyhuuli</ar>
-<ar><k>smirk</k>
-hymy (teennäinen)
-
-hymyillä (typerästi)</ar>
-<ar><k>smith</k>
-seppä</ar>
-<ar><k>smithy</k>
-paja (sepän)</ar>
-<ar><k>smoke</k>
-polttaa (tupakkaa), savustaa, savuta, savuttaa, tupakoida
-
-savu</ar>
-<ar><k>smoke-bomb</k>
-savupommi</ar>
-<ar><k>smokeless</k>
-savuton</ar>
-<ar><k>smoker</k>
-tupakanpolttaja</ar>
-<ar><k>smoking</k>
-tupakanpoltto, tupakointi</ar>
-<ar><k>smoky</k>
-savuinen</ar>
-<ar><k>smooth</k>
-siloittaa
-
-sileä, tasainen
-
-hiottu (kuv), saumaton (kuv), sileä, siloinen, tasainen</ar>
-<ar><k>smoothly</k>
-tasaisesti</ar>
-<ar><k>smoothness</k>
-sileys</ar>
-<ar><k>smother</k>
-tukahduttaa</ar>
-<ar><k>smudge</k>
-tuhru</ar>
-<ar><k>smudged</k>
-tummennettu</ar>
-<ar><k>smuggler</k>
-salakujettaja</ar>
-<ar><k>smuggling</k>
-salakuljetus</ar>
-<ar><k>smut</k>
-noki (viljan)</ar>
-<ar><k>snack</k>
-välipala</ar>
-<ar><k>snail</k>
-kuorietana</ar>
-<ar><k>snake</k>
-käärme</ar>
-<ar><k>snake-charmer</k>
-käärmeenlumooja</ar>
-<ar><k>snap</k>
-naksahdus, napsahdus
-
-katketa, napsahtaa, näpsäyttää, raksahtaa</ar>
-<ar><k>snapdragon</k>
-leijonankita (bot)</ar>
-<ar><k>snapshot</k>
-valokuva</ar>
-<ar><k>snare</k>
-ansa, paula (ansa), pyydys (ansa), sadin
-
-pyydystaa (ansoilla)</ar>
-<ar><k>snarl</k>
-murina
-
-murahtaa, murista, äristä</ar>
-<ar><k>snatch</k>
-kiskaista, koukata, riuhtaista, siepata</ar>
-<ar><k>sneak</k>
-hiipiä</ar>
-<ar><k>sneak about</k>
-hiiviskellä</ar>
-<ar><k>sneakers</k>
-tossut</ar>
-<ar><k>sneer</k>
-ivahymy, pilkkahuuto
-
-hymyillä (ivallisesti)</ar>
-<ar><k>sneeze</k>
-aivastus
-
-aivastaa</ar>
-<ar><k>snicker</k>
-hihitys</ar>
-<ar><k>sniff</k>
-haistella, nuuhkia, tuhista (sieraimiinsa)</ar>
-<ar><k>snigger</k>
-hihitys</ar>
-<ar><k>sniper</k>
-salaampuja</ar>
-<ar><k>snob</k>
-hienostelija, keikari</ar>
-<ar><k>snooze</k>
-uinahtaa</ar>
-<ar><k>snore</k>
-kuorsaus
-
-kuorsata</ar>
-<ar><k>snoring</k>
-kuorsaus</ar>
-<ar><k>snort</k>
-korskua</ar>
-<ar><k>snot</k>
-räkä</ar>
-<ar><k>snotty</k>
-räkäinen</ar>
-<ar><k>snout</k>
-kuono (kärsä), kärsä</ar>
-<ar><k>snow</k>
-sataa (lunta)</ar>
-<ar><k>snow clearing</k>
-lumenluonti</ar>
-<ar><k>snow load</k>
-lumikuorma</ar>
-<ar><k>snow plough</k>
-lumiaura</ar>
-<ar><k>snow-drift</k>
-kinos</ar>
-<ar><k>snowball letter</k>
-ketjukirje</ar>
-<ar><k>snowcat</k>
-lumikiitäjä</ar>
-<ar><k>snowdrift</k>
-lumikinos</ar>
-<ar><k>snowfall</k>
-lumentulo, lumisade</ar>
-<ar><k>snowflake</k>
-lumihiutale</ar>
-<ar><k>snowless</k>
-lumeton</ar>
-<ar><k>snowman</k>
-lumiukko</ar>
-<ar><k>snowmobile</k>
-mootorikelkka</ar>
-<ar><k>snowstorm</k>
-tuisku</ar>
-<ar><k>snowy</k>
-luminen</ar>
-<ar><k>snub</k>
-nolata</ar>
-<ar><k>snubbing</k>
-nolaus</ar>
-<ar><k>snuff</k>
-nuuska
-
-nuuhkia</ar>
-<ar><k>snuffers</k>
-kynttiläsakset</ar>
-<ar><k>snuffle</k>
-niiskuttaa, tuhista (sieraimiinsa)</ar>
-<ar><k>snug</k>
-kodikas</ar>
-<ar><k>so as not to</k>
-ettei, jottei</ar>
-<ar><k>so as to</k>
-niin että [puhek.]</ar>
-<ar><k>so far</k>
-tähän saakka [puhek.]</ar>
-<ar><k>so long</k>
-näkemiin [puhek.]</ar>
-<ar><k>so long as</k>
-niin kauan kuin [puhek.]</ar>
-<ar><k>so many</k>
-niin ja niin monta [puhek.]</ar>
-<ar><k>so saying</k>
-niin sanoen [puhek.]</ar>
-<ar><k>so that</k>
-jotta</ar>
-<ar><k>so that's that</k>
-ja se siitä [puhek.]</ar>
-<ar><k>so there</k>
-ja sillä hyvä [puhek.]</ar>
-<ar><k>so what</k>
-ja mitä siitä [puhek.]</ar>
-<ar><k>soak</k>
-liota, liottaa</ar>
-<ar><k>soak into</k>
-imeytyä</ar>
-<ar><k>soaked</k>
-likomärkä</ar>
-<ar><k>soap</k>
-saippua
-
-saippuoida</ar>
-<ar><k>soar</k>
-leijailla, liidellä, liitää</ar>
-<ar><k>sob</k>
-nyyhkytys</ar>
-<ar><k>sobbing</k>
-nyyhkytys</ar>
-<ar><k>sober</k>
-raitis (ei juopunut), selvä (raitis)</ar>
-<ar><k>sociable</k>
-seurallinen</ar>
-<ar><k>social</k>
-sosiaalinen, yhteiskunnallinen</ar>
-<ar><k>social evening</k>
-illanvietto, iltama</ar>
-<ar><k>social life</k>
-seuraelämä</ar>
-<ar><k>social occasion</k>
-juhlatilausuus</ar>
-<ar><k>social science</k>
-sosiologia</ar>
-<ar><k>social scientist</k>
-sosiologi</ar>
-<ar><k>social security benefit</k>
-sosiaaliavustus</ar>
-<ar><k>social security office</k>
-sosiaalitoimisto</ar>
-<ar><k>social welfare worker</k>
-huoltotyöntekijä</ar>
-<ar><k>socialism</k>
-sisialismi</ar>
-<ar><k>society</k>
-seura (yhdistys), yhdistys, yhteiskunta</ar>
-<ar><k>sociology</k>
-sosiologia</ar>
-<ar><k>sock</k>
-sukka</ar>
-<ar><k>socket</k>
-pistoistukka, pistorasia
-
-istukka (tekn)</ar>
-<ar><k>sod</k>
-turve</ar>
-<ar><k>sodium</k>
-natrium (kem)</ar>
-<ar><k>sofa</k>
-sohva</ar>
-<ar><k>soflty</k>
-hiljaa</ar>
-<ar><k>soft</k>
-pehmeä, vieno</ar>
-<ar><k>soft drink</k>
-virvoitusjuoma</ar>
-<ar><k>soft roe</k>
-kalanmaiti</ar>
-<ar><k>soft soap</k>
-suopa</ar>
-<ar><k>soft-heartedness</k>
-hempeämielisyys</ar>
-<ar><k>softboard</k>
-huokoinen kuitulevy</ar>
-<ar><k>soften</k>
-hellyttää, heltyä, lauhtua, pehmetä, pehmittää, pehmitä</ar>
-<ar><k>softness</k>
-pehmeys</ar>
-<ar><k>software</k>
-ohjelmisto</ar>
-<ar><k>softwood</k>
-havupuu</ar>
-<ar><k>soil</k>
-kurata, liata, likaantua, loata, ryvettää, tahrata, tuhrata,tuhria</ar>
-<ar><k>soil pressure</k>
-maan paine</ar>
-<ar><k>soiled</k>
-likainen</ar>
-<ar><k>solace</k>
-lohdutus, lohtu</ar>
-<ar><k>solar collector</k>
-aurinkopaneeli</ar>
-<ar><k>solder</k>
-juottaa (metallia)
-
-juotostina</ar>
-<ar><k>soldered joint</k>
-juotos</ar>
-<ar><k>soldering</k>
-juotto</ar>
-<ar><k>soldering iron</k>
-juottokolvi</ar>
-<ar><k>soldering-iron</k>
-juotin, kolvi</ar>
-<ar><k>soldier</k>
-sotamies, sotilas</ar>
-<ar><k>sole</k>
-anturoida
-
-ainoa, antura, jalkapohja, meriantua (zo), yksi (ainoa), yksinomainen</ar>
-<ar><k>solely</k>
-ainoastaan</ar>
-<ar><k>solemn</k>
-juhlallinen</ar>
-<ar><k>solemnity</k>
-juhlallisuus</ar>
-<ar><k>soley</k>
-yksinomaan</ar>
-<ar><k>solicitor</k>
-asianajaja</ar>
-<ar><k>solicitude</k>
-huolehtivaisuus</ar>
-<ar><k>solid</k>
-jähmeä, kiinteä (jähmeä), vakavarainen
-
-kiinteä, luja</ar>
-<ar><k>solid area</k>
-väripinta</ar>
-<ar><k>solid brick</k>
-umpitiili</ar>
-<ar><k>solidarity</k>
-solidaarisuus, yhteenkuuluvuus</ar>
-<ar><k>solidify</k>
-jähmettyä</ar>
-<ar><k>solidity</k>
-jähmetys</ar>
-<ar><k>solitary</k>
-yksinäinen</ar>
-<ar><k>solitude</k>
-yksinäisyys</ar>
-<ar><k>solo</k>
-soolo, yksinlaulu, yksinlento</ar>
-<ar><k>solo singing</k>
-yksinlaulu</ar>
-<ar><k>soloist</k>
-solisti</ar>
-<ar><k>soluble</k>
-liukeneva</ar>
-<ar><k>solution</k>
-liuos, ratkaisu</ar>
-<ar><k>solve</k>
-ratkaista</ar>
-<ar><k>solvency</k>
-vakavaraisuus</ar>
-<ar><k>solvent</k>
-liuotin, maksukykyinen</ar>
-<ar><k>some kind of</k>
-eräänlainen, jonkinlainen</ar>
-<ar><k>some place or other</k>
-jossakin</ar>
-<ar><k>somebody</k>
-joku</ar>
-<ar><k>somehow</k>
-jotenkuten</ar>
-<ar><k>someone</k>
-joku</ar>
-<ar><k>somersault</k>
-kuperakeikka, voltti</ar>
-<ar><k>something of a</k>
-jonkinlainen</ar>
-<ar><k>sometime</k>
-jolloinkin</ar>
-<ar><k>sometimes</k>
-joskus, toisinaan</ar>
-<ar><k>somewhat</k>
-hieman, hiukan (jonkinverran)</ar>
-<ar><k>somewhat sour</k>
-hapahko</ar>
-<ar><k>somewhere</k>
-johonkin, jossakin</ar>
-<ar><k>son-in-law</k>
-vävy</ar>
-<ar><k>sonata</k>
-sonaatti (mus)</ar>
-<ar><k>sonet</k>
-sonetti</ar>
-<ar><k>song</k>
-laulelma, laulu, veisu</ar>
-<ar><k>song-thrush</k>
-laulurastas</ar>
-<ar><k>soon</k>
-kohta, piakkoin, pian</ar>
-<ar><k>soot</k>
-karsta (noki), noeta, noki</ar>
-<ar><k>soothe</k>
-helpottaa (kipua), lauhduttaa, lievittää, tyynnyttää,viihdyttää, rauhoittaa</ar>
-<ar><k>sooty</k>
-nokinen</ar>
-<ar><k>sorcerer</k>
-loitsija, manaaja, noita, taikuri, velho</ar>
-<ar><k>sorcery</k>
-noitua</ar>
-<ar><k>sore</k>
-arka (hellä), haavainen, hellä (arka), kipeä (arka)</ar>
-<ar><k>sore loser</k>
-huono häviäjä [puhek.]</ar>
-<ar><k>soreness</k>
-arkuus, haavautuma</ar>
-<ar><k>sorrow</k>
-murhe, suru</ar>
-<ar><k>sorrowful</k>
-murheellinen, surullinen</ar>
-<ar><k>sort</k>
-laatu (laji), laji</ar>
-<ar><k>sort of</k>
-jonkinlainen</ar>
-<ar><k>sort out</k>
-lajitella</ar>
-<ar><k>sorter</k>
-lokerosto, koontalokerasto, koontaosa</ar>
-<ar><k>sorting</k>
-erottelu</ar>
-<ar><k>sot</k>
-juoppolalli</ar>
-<ar><k>souffle</k>
-kohokas</ar>
-<ar><k>soul</k>
-psyyke, sielu</ar>
-<ar><k>sound</k>
-hiiskahdus, salmi, sointu, ääni, äänne
-
-helkkyä, helhtää, kuulostaa, luodata, sointua
-
-eheä, terve</ar>
-<ar><k>sound effects</k>
-äänitehosteet</ar>
-<ar><k>sound reduction</k>
-äänieriste</ar>
-<ar><k>sound the alarm</k>
-hälyttää</ar>
-<ar><k>sound-proofed</k>
-äänieristetty</ar>
-<ar><k>sounding</k>
-luotaus</ar>
-<ar><k>soundless</k>
-äänetön</ar>
-<ar><k>soundly</k>
-sikeästi</ar>
-<ar><k>soundness</k>
-eheys, sikeys</ar>
-<ar><k>soup</k>
-keitto (liemi), liemi</ar>
-<ar><k>souped up</k>
-nopeutettu [puhek.]</ar>
-<ar><k>sour</k>
-hapattaa
-
-hapan</ar>
-<ar><k>sour milk</k>
-piimä</ar>
-<ar><k>source</k>
-alkujuuri, alkulähde, alkuperä, lähde (kuv)
-
-lähde, alkuperä</ar>
-<ar><k>source of income</k>
-ansiolähde, tulolähde</ar>
-<ar><k>source of livelihood</k>
-elinkeino</ar>
-<ar><k>sourish</k>
-hapahko</ar>
-<ar><k>sourness</k>
-happamuus</ar>
-<ar><k>south</k>
-etelä</ar>
-<ar><k>south-east</k>
-kaakko</ar>
-<ar><k>south-west</k>
-lounainen</ar>
-<ar><k>south-west wind</k>
-lounaistuuli</ar>
-<ar><k>south-westerly</k>
-lounainen</ar>
-<ar><k>southeasterly</k>
-kaakkoinen</ar>
-<ar><k>southern</k>
-eteläinen</ar>
-<ar><k>souvenir</k>
-matkamuisto, muistoesine</ar>
-<ar><k>sovereign</k>
-itsenäinen, itsevaltias, suvereeni, yksinvaltias</ar>
-<ar><k>sow</k>
-emakko
-
-kylvää</ar>
-<ar><k>sowing</k>
-kylvö</ar>
-<ar><k>soy</k>
-soija</ar>
-<ar><k>spa</k>
-kivennäislähde, kylpylä</ar>
-<ar><k>space</k>
-ala, avaruus, maailmanavaruus, sija, tila, väli, etäisyys</ar>
-<ar><k>space to move</k>
-liikkumatila</ar>
-<ar><k>spacecraft</k>
-avaruusalus</ar>
-<ar><k>spacer</k>
-välike</ar>
-<ar><k>spacer block</k>
-välike</ar>
-<ar><k>spacious</k>
-ilmatilava, tilava</ar>
-<ar><k>spade</k>
-lapio, patakortti</ar>
-<ar><k>span</k>
-silloittaa
-
-jänneväli, vaaksa</ar>
-<ar><k>spangle</k>
-hely</ar>
-<ar><k>spanking new</k>
-upouusi</ar>
-<ar><k>spanner</k>
-mutteriavain, ruuviavain</ar>
-<ar><k>sparce</k>
-harva</ar>
-<ar><k>spare</k>
-liikenevä, vara-</ar>
-<ar><k>spare moment</k>
-joutohetki</ar>
-<ar><k>spare part</k>
-varaosa</ar>
-<ar><k>spare time</k>
-joutoaika</ar>
-<ar><k>sparing</k>
-säästäväinen</ar>
-<ar><k>sparingly</k>
-niukalti, niukasti</ar>
-<ar><k>spark</k>
-kipinä, säen, säkene
-
-sähkömies</ar>
-<ar><k>spark of life</k>
-elonkipinä</ar>
-<ar><k>spark plug</k>
-sytytystulppa</ar>
-<ar><k>sparkle</k>
-säihky
-
-helmeillä (juoma), kimaltaa, räiskyä, säihkyä</ar>
-<ar><k>sparkling</k>
-kuohuva</ar>
-<ar><k>sparrow</k>
-varpunen</ar>
-<ar><k>sparrow-hawk</k>
-varpushaukka</ar>
-<ar><k>spasm</k>
-hermoväre</ar>
-<ar><k>spatter</k>
-räiskyttää</ar>
-<ar><k>spatula</k>
-lasta (keit)</ar>
-<ar><k>spawn</k>
-kutea</ar>
-<ar><k>spawning</k>
-kalankutu, kutu</ar>
-<ar><k>speak</k>
-haastaa, puhua</ar>
-<ar><k>speak sharply</k>
-tiuskaista, tiuskata</ar>
-<ar><k>speak the same language</k>
-ajatella samalla tavalla [puhek.]</ar>
-<ar><k>speaker</k>
-puhemies, puhuja</ar>
-<ar><k>spear</k>
-keihäs, peitsi</ar>
-<ar><k>special</k>
-erikoinen, erityinen, yksityinen</ar>
-<ar><k>special case</k>
-erikoistapaus</ar>
-<ar><k>special class</k>
-erityisluokka</ar>
-<ar><k>special delivery</k>
-pikajakelu</ar>
-<ar><k>special feature</k>
-erikoisuus</ar>
-<ar><k>special offer</k>
-erikoistarjous</ar>
-<ar><k>special studies</k>
-erikoisopinnot</ar>
-<ar><k>specialist</k>
-asiantuntija, erikoistuntija</ar>
-<ar><k>specialist doctor</k>
-erikoislääkäri</ar>
-<ar><k>speciality</k>
-erikoisala</ar>
-<ar><k>specialize</k>
-erikoistaa</ar>
-<ar><k>specially</k>
-nimenomaan</ar>
-<ar><k>species</k>
-laji (luonn)</ar>
-<ar><k>species of animal</k>
-eläinlaji</ar>
-<ar><k>specific gravity</k>
-ominaispaino</ar>
-<ar><k>specification</k>
-normi</ar>
-<ar><k>specimen</k>
-malli (näyte), näyte</ar>
-<ar><k>speck</k>
-pilkku</ar>
-<ar><k>spectacles</k>
-silmälasit</ar>
-<ar><k>spectator</k>
-katselija</ar>
-<ar><k>spectrum</k>
-spektri</ar>
-<ar><k>speculate</k>
-keinotella, miettiä, pohtia, spekuloida</ar>
-<ar><k>speculation</k>
-keinottelu, pohdiskelu</ar>
-<ar><k>speculator</k>
-keinottelija</ar>
-<ar><k>speech</k>
-puhe, puhekyky</ar>
-<ar><k>speechless</k>
-sanaton</ar>
-<ar><k>speed</k>
-nopeus</ar>
-<ar><k>speed past</k>
-viilettää</ar>
-<ar><k>speed up</k>
-kiihdyttää (nopeuttaa), nopeuttaa</ar>
-<ar><k>speedily</k>
-nopeasti</ar>
-<ar><k>speediness</k>
-joutuisuus</ar>
-<ar><k>speeding</k>
-ylinopeus</ar>
-<ar><k>speedy</k>
-joutuissa, kiireellinen (pikainen), pikainen</ar>
-<ar><k>spell</k>
-loitsu, taika (lumous)
-
-tavata (kirjain kirjaimelta)</ar>
-<ar><k>spelling</k>
-tavaus</ar>
-<ar><k>spelling book</k>
-aapinen</ar>
-<ar><k>spend</k>
-kuluttaa (aikaa), kuluttaa (rahaa), viettää (kuluttaa)</ar>
-<ar><k>spendthrift</k>
-tuhlaaja</ar>
-<ar><k>sphere</k>
-toimiala, pallo (mat)</ar>
-<ar><k>sphere of acivity</k>
-toimintaala</ar>
-<ar><k>sphere of ideas</k>
-aatepiiri</ar>
-<ar><k>spice</k>
-höystää, maustaa
-
-höyste (mauste), mauste</ar>
-<ar><k>spiced</k>
-höysteinen</ar>
-<ar><k>spider</k>
-hämähäkki</ar>
-<ar><k>spiel</k>
-puhe [puhek.]</ar>
-<ar><k>spike</k>
-hokki (kengän), naula (piikki)</ar>
-<ar><k>spiked shoe</k>
-piikikenkä</ar>
-<ar><k>spill</k>
-kaataa (läikyttää), läikkyä</ar>
-<ar><k>spin</k>
-kehrätä</ar>
-<ar><k>spin dryer</k>
-kuivauslinko, pyykkilinko</ar>
-<ar><k>spin for</k>
-virvelöidä</ar>
-<ar><k>spin-dry</k>
-lingota (pyykkiä)</ar>
-<ar><k>spinach</k>
-pinaatti</ar>
-<ar><k>spinal cord</k>
-selkäydin</ar>
-<ar><k>spindle</k>
-kara (tekn)</ar>
-<ar><k>spine-chilling</k>
-karmaiseva</ar>
-<ar><k>spinning</k>
-kehruu</ar>
-<ar><k>spinning rod</k>
-heittovapa</ar>
-<ar><k>spinning-top</k>
-hyrrä</ar>
-<ar><k>spinning-wheel</k>
-rukki</ar>
-<ar><k>spinster</k>
-ikäneito</ar>
-<ar><k>spiral</k>
-kierteinen, kierukka, spiraali</ar>
-<ar><k>spire</k>
-torni (kirkon)</ar>
-<ar><k>spirit</k>
-henki, henkiolento, sprii, terhakkuus</ar>
-<ar><k>spirit level</k>
-vatupassi</ar>
-<ar><k>spirited</k>
-pirteä, virkeä</ar>
-<ar><k>spiritual</k>
-hengellinen</ar>
-<ar><k>spiritual medium</k>
-meedio</ar>
-<ar><k>spirituality</k>
-henkisyys</ar>
-<ar><k>spit</k>
-varras
-
-sylkeä</ar>
-<ar><k>spit and polish</k>
-pikkutarkka [puhek.]</ar>
-<ar><k>spite</k>
-ilkeämielisyys, pahanilkisyys</ar>
-<ar><k>spiteful</k>
-pahanilkinen</ar>
-<ar><k>spitting</k>
-sylky</ar>
-<ar><k>spittle</k>
-sylki</ar>
-<ar><k>spittoon</k>
-sylkyastia</ar>
-<ar><k>splash</k>
-loiskahdus, lotina
-
-loiskahtaa, loiskutella, polskuttaa, roiskahtaa, roiskua, roiskuttaa, räiskyä</ar>
-<ar><k>splashing</k>
-loiske</ar>
-<ar><k>splatter</k>
-roiskahtaa</ar>
-<ar><k>splayed joint</k>
-v-sauma</ar>
-<ar><k>spleen</k>
-perna</ar>
-<ar><k>splendid</k>
-erinomainen, komea, loistava (kuv), loistelias (upea), mainio, oivallinen, suurenmoinen, uhkea, upea</ar>
-<ar><k>splendour</k>
-komeus, loisto, uhkeus</ar>
-<ar><k>splice</k>
-pujoa
-
-jatkos</ar>
-<ar><k>splice piece</k>
-jatkoskappale</ar>
-<ar><k>splice plate</k>
-jatkoslevy</ar>
-<ar><k>splint</k>
-lasta, säle</ar>
-<ar><k>splinter</k>
-pirstale, sirpale, siru, sälöillä, säpäle, tikku</ar>
-<ar><k>split</k>
-rako, halkeaminen, halkeama
-
-haljeta, halkaista, halkoa, lohjeta, lohkaista (halkoa), pilkkoa</ar>
-<ar><k>split hairs</k>
-saivarella</ar>
-<ar><k>split off</k>
-lohjeta</ar>
-<ar><k>split pin</k>
-sokkanaula</ar>
-<ar><k>split up</k>
-avioero [puhek.]</ar>
-<ar><k>spoil</k>
-hemmotella, lellitellä, pilata, turmella, tärvellä</ar>
-<ar><k>spoils</k>
-saalis (ryöstö- ym)</ar>
-<ar><k>spoke</k>
-kehrävarsi</ar>
-<ar><k>spoken language</k>
-puhekieli</ar>
-<ar><k>sponge</k>
-pesusieni</ar>
-<ar><k>sponge cake</k>
-sokerikakku</ar>
-<ar><k>spongy</k>
-hohkainen, huokoinen</ar>
-<ar><k>sponsor</k>
-kummi
-
-kannattaa (kuv)</ar>
-<ar><k>sponsorship</k>
-sponsorointi</ar>
-<ar><k>spontaneous</k>
-spontaaninem</ar>
-<ar><k>spontaneous combustion</k>
-itsesytytys</ar>
-<ar><k>spontaneously</k>
-itsestään</ar>
-<ar><k>spook</k>
-aave, kummitus</ar>
-<ar><k>spool</k>
-käämis, puola</ar>
-<ar><k>spoon</k>
-lusikka</ar>
-<ar><k>spoon-bait</k>
-uistin</ar>
-<ar><k>spoonful</k>
-lusikallinen</ar>
-<ar><k>spore</k>
-itiö (bot)</ar>
-<ar><k>sporting dog</k>
-metsästyskoira</ar>
-<ar><k>sports fan</k>
-penkkiurheilija</ar>
-<ar><k>sportsman</k>
-urheilija</ar>
-<ar><k>spot</k>
-laikku, paikka (kohta), pilkku, tahra</ar>
-<ar><k>spot light</k>
-kohdevalaisin</ar>
-<ar><k>spot on</k>
-aivan oikea [puhek.]</ar>
-<ar><k>spotless</k>
-tahraton</ar>
-<ar><k>spotted</k>
-pilkullinen, täplikäs</ar>
-<ar><k>spotty</k>
-täplikäs</ar>
-<ar><k>spout</k>
-laskukouru
-
-ruiskahtaa, suihkuta, suihkuttaa</ar>
-<ar><k>sprain</k>
-nyrjähdys
-
-nyrähdytää</ar>
-<ar><k>sprawl</k>
-loikoilla</ar>
-<ar><k>spray</k>
-hyrsky, suihku
-
-kastella, ruiskuttaa</ar>
-<ar><k>sprayer</k>
-ruisku</ar>
-<ar><k>spraying</k>
-ruiskutus</ar>
-<ar><k>spread</k>
-levittää, levitä, laajeta</ar>
-<ar><k>spread it on thick</k>
-liioitella [puhek.]</ar>
-<ar><k>spread out</k>
-ollahajalla, levittää</ar>
-<ar><k>spreading</k>
-leviäminen</ar>
-<ar><k>spree</k>
-hipat, juomingit</ar>
-<ar><k>sprig</k>
-oksa (pieni)</ar>
-<ar><k>sprig of spruce</k>
-hako</ar>
-<ar><k>sprightly</k>
-eloisa</ar>
-<ar><k>spring</k>
-hete, joustin, kevät, lähde, jousi
-
-hypätä, jousittaa, loikkia</ar>
-<ar><k>spring balance</k>
-jousivaaka</ar>
-<ar><k>spring from</k>
-juontua</ar>
-<ar><k>spring-loaded</k>
-jousitettu</ar>
-<ar><k>springboard</k>
-ponnahduslauta</ar>
-<ar><k>springlike</k>
-keväinen</ar>
-<ar><k>springy</k>
-kimmoinen</ar>
-<ar><k>sprinkle</k>
-pirahdus
-
-kastella, pirskottaa, ripottaa, räiskyttää, sirotella</ar>
-<ar><k>sprinkler</k>
-sadettaja</ar>
-<ar><k>sprinkling</k>
-kastelu</ar>
-<ar><k>sprint</k>
-pikajuoksu</ar>
-<ar><k>spritely</k>
-vilkas</ar>
-<ar><k>sprocket</k>
-ketjupyörä</ar>
-<ar><k>sprout</k>
-oras, taimi (vesa)
-
-itää, orastaa, versoa</ar>
-<ar><k>sprouting</k>
-itäminen</ar>
-<ar><k>spruce</k>
-kuusi</ar>
-<ar><k>spruce cone</k>
-kuusenkäpy</ar>
-<ar><k>spruce twigs</k>
-kuusenhavut</ar>
-<ar><k>spruce wood</k>
-kuusikko</ar>
-<ar><k>spunk **</k>
-siemen (sperma) [alat.]</ar>
-<ar><k>spur</k>
-kannus</ar>
-<ar><k>spurt</k>
-kiri, loppukiri
-
-ruiskahtaa, suihkuta, suihkuttaa</ar>
-<ar><k>spurt out</k>
-purskua</ar>
-<ar><k>sputter</k>
-käristä</ar>
-<ar><k>spy</k>
-vakoilija
-
-vakoilla</ar>
-<ar><k>spying</k>
-urkinta, vakoilu</ar>
-<ar><k>squabble</k>
-jupakka, kina, tora
-
-torailla, torata</ar>
-<ar><k>squadron</k>
-eskaaderi, laivue (ilm)</ar>
-<ar><k>squall</k>
-myrskynpuuska, tuulispää</ar>
-<ar><k>squander</k>
-haaskata, tuhlata</ar>
-<ar><k>square</k>
-aukio, neliö, ruutu (neliö), tori</ar>
-<ar><k>square sail</k>
-raakapurje</ar>
-<ar><k>squash</k>
-litistää</ar>
-<ar><k>squat</k>
-kyykistyä, kököttää</ar>
-<ar><k>squeak</k>
-vikinä, vingahdus
-
-vikistä</ar>
-<ar><k>squeaking</k>
-vikinä</ar>
-<ar><k>squeal</k>
-kiljahdus, vingahdus</ar>
-<ar><k>squeeze</k>
-likistää, puristaa, pusertaa, rutistaa</ar>
-<ar><k>squeezer</k>
-puserrin</ar>
-<ar><k>squelch</k>
-lotina</ar>
-<ar><k>squint</k>
-kierosilmäisyys</ar>
-<ar><k>squint-eyed</k>
-kierosilmäinen</ar>
-<ar><k>squirrel</k>
-orava</ar>
-<ar><k>squirt</k>
-ruiskahtaa, ruiskuta</ar>
-<ar><k>stab</k>
-veitsenpisto
-
-puukottaa</ar>
-<ar><k>stabalize</k>
-vakaannuttaa</ar>
-<ar><k>stabilities</k>
-varmuudet</ar>
-<ar><k>stability</k>
-vakavuus</ar>
-<ar><k>stable</k>
-talli
-
-vakaa, muuttumaton, pysyvä
-
-pysyvä, tukeva, vakaa, vakava (luja)</ar>
-<ar><k>stack</k>
-auma, kasa, keko, pinkka, pino
-
-suovata, latoa</ar>
-<ar><k>stacker</k>
-limitys-luovutusalusta</ar>
-<ar><k>stadium</k>
-stadion</ar>
-<ar><k>staff</k>
-pamppu, patukka, sauva
-
-esikunta (sot), henkilökunta</ar>
-<ar><k>stag</k>
-hirvi (koiras)</ar>
-<ar><k>stage</k>
-vaihe
-
-etappi, kyytiväli, vaihe
-
-lavastaa</ar>
-<ar><k>stage decor</k>
-lavastus</ar>
-<ar><k>stage fright</k>
-ramppikuume</ar>
-<ar><k>stage in life</k>
-ikäaste</ar>
-<ar><k>stagger</k>
-hoiperrella, horjahtaa, horjua</ar>
-<ar><k>staging</k>
-lavastus</ar>
-<ar><k>stain</k>
-häpeäpilkku, tahra
-
-läiskä, tahrata</ar>
-<ar><k>stained glass</k>
-lasimaalaus</ar>
-<ar><k>stair</k>
-porras</ar>
-<ar><k>staircase</k>
-porraskäytävä, portaat, portaikko</ar>
-<ar><k>stairs</k>
-portaat</ar>
-<ar><k>stake</k>
-aidanseiväs, osuus (panos), panos (pelissä)
-
-kepittää (kasveja)</ar>
-<ar><k>stake out</k>
-viitoittaa</ar>
-<ar><k>stale</k>
-tympeä, ummehtunut, väljähtynyt</ar>
-<ar><k>stalemate</k>
-patti</ar>
-<ar><k>staleness</k>
-tympeys, ummehtuneisuus</ar>
-<ar><k>stalk</k>
-kanta (varsi), varsi (bot)</ar>
-<ar><k>stall</k>
-hinkalo (lehmän), kauppakoju, kioski, kauppakoju, permantopaikka, pilttuu</ar>
-<ar><k>stallion</k>
-ori</ar>
-<ar><k>stamen</k>
-hede (bot)</ar>
-<ar><k>stammer</k>
-änkytys
-
-kangertaa, änkyttää</ar>
-<ar><k>stamp</k>
-kopina, leima, postimerkki
-
-leimata, polkea</ar>
-<ar><k>stamp duty</k>
-leimavero</ar>
-<ar><k>stamp one's feet</k>
-tömistellä</ar>
-<ar><k>stamp-duty</k>
-leimamaksu</ar>
-<ar><k>stamper</k>
-leimasin</ar>
-<ar><k>stamping</k>
-kopina</ar>
-<ar><k>stanchion</k>
-teräspilari</ar>
-<ar><k>stand</k>
-jalka (lampun ym), jalusta, suhtautumiskanta, koroke (pienempi), suhtautuminen, teline
-
-kestää, kärsiä, seisoa, sietää, suvaita</ar>
-<ar><k>stand about</k>
-seisoskella</ar>
-<ar><k>stand for</k>
-edustaa</ar>
-<ar><k>stand on ceremony</k>
-kursailla</ar>
-<ar><k>stand out</k>
-erottautua, törröttää</ar>
-<ar><k>stand-in</k>
-sijainen</ar>
-<ar><k>standard</k>
-lippu
-
-normaali, standardi</ar>
-<ar><k>standard gauge</k>
-normaali raide</ar>
-<ar><k>standard lamp</k>
-jalkalamppu</ar>
-<ar><k>standard of living</k>
-elintaso</ar>
-<ar><k>standard quality</k>
-vakiolaatu</ar>
-<ar><k>standby power</k>
-valmiusvirta</ar>
-<ar><k>standing</k>
-seisaallaan, vakinainen (pysyvä)</ar>
-<ar><k>standing crop</k>
-laiho</ar>
-<ar><k>standing place</k>
-seisomapaikka</ar>
-<ar><k>standpoint</k>
-suhtautumiskanta</ar>
-<ar><k>standstill</k>
-pysähdys, seisahdus</ar>
-<ar><k>staple</k>
-nitomanasta, sinkilä</ar>
-<ar><k>staple head</k>
-nitomapää</ar>
-<ar><k>stapler</k>
-nitomakoje, nitomalaite</ar>
-<ar><k>star</k>
-tähti</ar>
-<ar><k>star washer</k>
-tähtialuslevy</ar>
-<ar><k>starch</k>
-tärkkelys, tärkki</ar>
-<ar><k>stare</k>
-tuijotus
-
-tuijottaa</ar>
-<ar><k>starfish</k>
-meritähti</ar>
-<ar><k>staring</k>
-tuijotus</ar>
-<ar><k>stark naked</k>
-ilkialaston</ar>
-<ar><k>starless</k>
-tähdetön</ar>
-<ar><k>starling</k>
-kottarainen</ar>
-<ar><k>start</k>
-alku, lähtö, käynnistys-
-
-käynnistää
-
-alkaa, aloittaa, hätkähtää, käynnistää, lähteä (matkaan), ruveta, ryhtyä</ar>
-<ar><k>start capacitor</k>
-käynnistyskondensaattori</ar>
-<ar><k>starter</k>
-käynnistin</ar>
-<ar><k>starting block</k>
-lähtöteline (urh)</ar>
-<ar><k>starting post</k>
-lähtöviiva</ar>
-<ar><k>starting signal</k>
-lähtömerkki</ar>
-<ar><k>starting-point</k>
-lähtökohta</ar>
-<ar><k>startle</k>
-hätkähdyttää</ar>
-<ar><k>startling</k>
-hätkähdyttävä, yllätyksellinen</ar>
-<ar><k>state</k>
-valtakunta, valtio
-
-esittää (mainita), kertoa (selostaa), lausua, sanoa, väittää
-
-valtiollinen</ar>
-<ar><k>state of affairs</k>
-asiaintila</ar>
-<ar><k>state of anger</k>
-suutus</ar>
-<ar><k>state of decomposition</k>
-hajoamistila</ar>
-<ar><k>state of health</k>
-vointi</ar>
-<ar><k>state of the roads</k>
-keli</ar>
-<ar><k>state of things</k>
-olot</ar>
-<ar><k>state tax</k>
-valtionvero</ar>
-<ar><k>state-controlled</k>
-valtiojohtoinen</ar>
-<ar><k>stateliness</k>
-komeus, uljuus</ar>
-<ar><k>stately</k>
-komea, mukea, uljas, upea</ar>
-<ar><k>statement</k>
-ilmoitus (lausuma), lausuma, lausunto, raportti, tiedote, väite</ar>
-<ar><k>statesman</k>
-valtiomies</ar>
-<ar><k>static</k>
-liikkumaton</ar>
-<ar><k>static eliminator</k>
-purkauskisko</ar>
-<ar><k>static forces</k>
-tasapainovoimat</ar>
-<ar><k>station</k>
-arvoasema, asema (rautat ym)</ar>
-<ar><k>station-master</k>
-asemapäällikkö</ar>
-<ar><k>stationary</k>
-liikkumaton, paikallaan, pysyvä</ar>
-<ar><k>statistical</k>
-tilastollinen</ar>
-<ar><k>statistics</k>
-tilasto</ar>
-<ar><k>statue</k>
-kuvapatsas, patsas</ar>
-<ar><k>stature</k>
-vartalo</ar>
-<ar><k>status</k>
-tila (asema)</ar>
-<ar><k>status code</k>
-tilatunnus</ar>
-<ar><k>statute</k>
-asetus (laki), laki</ar>
-<ar><k>statute-book</k>
-lakikirja</ar>
-<ar><k>statutory</k>
-lakisääteinen</ar>
-<ar><k>staunch</k>
-tyrehdyttää</ar>
-<ar><k>stay</k>
-oleskelu
-
-asustaa, jäädä, majailla, oleskella, pysyä, viipyä (pysähtyä), viivähtää</ar>
-<ar><k>stay overnight</k>
-yöpyä</ar>
-<ar><k>stays</k>
-kureliivi</ar>
-<ar><k>steadfast</k>
-järkkymätön, vakaa</ar>
-<ar><k>steadfastness</k>
-horjumattomuus, lujuus</ar>
-<ar><k>steadily</k>
-tiukasti (kiinteästi), vankasti</ar>
-<ar><k>steadiness</k>
-lujuus</ar>
-<ar><k>steady</k>
-tukeva, vakaa, vakava (luja), vankka, tasainen, jatkuva</ar>
-<ar><k>steal</k>
-varastaa</ar>
-<ar><k>stealing</k>
-varkaus</ar>
-<ar><k>stealthily</k>
-varkain</ar>
-<ar><k>stealthiness</k>
-salakähmäisyys</ar>
-<ar><k>steam</k>
-hautua (ruoka), höyryttää, höyrytä
-
-höyry
-
-höyry, löyly, vesihöyry, huuru</ar>
-<ar><k>steam roller</k>
-höyryjyrä</ar>
-<ar><k>steaming</k>
-höyryävä</ar>
-<ar><k>steamy</k>
-höyryävä</ar>
-<ar><k>steel</k>
-teräs</ar>
-<ar><k>steel bender</k>
-raudoittaja</ar>
-<ar><k>steel mesh</k>
-teräsverkko</ar>
-<ar><k>steel rule</k>
-rullamitta</ar>
-<ar><k>steel tube</k>
-teräsputki</ar>
-<ar><k>steelfixer</k>
-raudoittaja</ar>
-<ar><k>steelyard</k>
-puntari</ar>
-<ar><k>steep</k>
-jyrkkä</ar>
-<ar><k>steeple</k>
-torni (kirkon)</ar>
-<ar><k>steeplechase</k>
-estejuoksu, esteratsastus</ar>
-<ar><k>steeply</k>
-jyrkästi</ar>
-<ar><k>steepness</k>
-jyrkkyys</ar>
-<ar><k>steer</k>
-härkä (nuori)
-
-ohjata (laivaa)</ar>
-<ar><k>steerage</k>
-välikansi</ar>
-<ar><k>steering wheel</k>
-ohjauspyörä</ar>
-<ar><k>stem</k>
-jalka (lasin), keulavannas, runko</ar>
-<ar><k>stem of grass</k>
-korsi</ar>
-<ar><k>stench</k>
-löyhkä</ar>
-<ar><k>stenographer</k>
-pikakirjoittaja</ar>
-<ar><k>step</k>
-askel, astuin, porras, kävelytahti, toimenpide
-
-astella, astua</ar>
-<ar><k>step by step</k>
-askeleelta</ar>
-<ar><k>step forward</k>
-edistysaskelu</ar>
-<ar><k>step-daughter</k>
-tytärpuoli</ar>
-<ar><k>step-father</k>
-isäpuoli</ar>
-<ar><k>step-sister</k>
-sisarpuoli</ar>
-<ar><k>stepbrother</k>
-velipuoli</ar>
-<ar><k>stepchild</k>
-lapsipuoli</ar>
-<ar><k>stepladder</k>
-tikapuut</ar>
-<ar><k>stepmother</k>
-äitipuoli</ar>
-<ar><k>stepping</k>
-astunta</ar>
-<ar><k>stepping motor</k>
-askelmoottori</ar>
-<ar><k>steps</k>
-portaat</ar>
-<ar><k>stepson</k>
-poikapuoli</ar>
-<ar><k>stereo</k>
-stereo</ar>
-<ar><k>sterile</k>
-hedelmätön, karu, steriili</ar>
-<ar><k>sterility</k>
-hedelmättömyys, karuus</ar>
-<ar><k>sterilize</k>
-steriloida</ar>
-<ar><k>sterling</k>
-puntavaluutta</ar>
-<ar><k>stern</k>
-ankara, karski, kova (ankara), tuikea, tuima (ankara)</ar>
-<ar><k>sterness</k>
-karskius</ar>
-<ar><k>stevedore</k>
-ahtaaja</ar>
-<ar><k>stew</k>
-hauduttaa (ruokaa), hautua (ruoka), muhentaa</ar>
-<ar><k>steward</k>
-pehtori</ar>
-<ar><k>stewed apples</k>
-omenahillo</ar>
-<ar><k>stewed meat</k>
-lihamuhennos</ar>
-<ar><k>stick</k>
-kalikka, kapula, karttu(maila), keppi, maila, palikka, pötkö, sauva, tikku
-
-juuttua, liisteröidä, pistää, takertua</ar>
-<ar><k>stick of firewood</k>
-halko</ar>
-<ar><k>stick out</k>
-törröttää</ar>
-<ar><k>sticker</k>
-kiiltokuva, tarrakuva</ar>
-<ar><k>stickiness</k>
-tahmeus</ar>
-<ar><k>sticking plaster</k>
-kiinnelaastari</ar>
-<ar><k>sticky</k>
-kiperä (kuv), tahmainen, tahmea</ar>
-<ar><k>stiff</k>
-jähmeä (kankea), jäykkä, kaavamainen, kankea</ar>
-<ar><k>stiffen</k>
-jäykistyä, jäykistää, kangistaa, kangistua, köntistyä</ar>
-<ar><k>stiffening</k>
-jäykiste</ar>
-<ar><k>stiffness</k>
-jähmetys, jäykkyys, kaavamaisuus, kankeus</ar>
-<ar><k>stifle</k>
-tukahduttaa</ar>
-<ar><k>stiletto</k>
-tikari (pieni)</ar>
-<ar><k>stiletto heel</k>
-piikikorko</ar>
-<ar><k>still</k>
-hiljaa, hiljainen (rauhallinen), hiljentää, kuitenkin, sentään, silti, sittenkin, vielä, yhä (vielä)</ar>
-<ar><k>still life</k>
-asetelma (taulu)</ar>
-<ar><k>still water</k>
-suvanto</ar>
-<ar><k>stillness</k>
-hiljaisuus</ar>
-<ar><k>stimulate</k>
-elvyttää, elähdyttää, hedelmöittää (kuv), piristää, virkistää</ar>
-<ar><k>stimulation</k>
-kiihotus, piristys</ar>
-<ar><k>stimulus</k>
-elvyke, heräte, kannustin (kuv), kiihdyke, kiihoke, virike (kiihoke), ärsyke</ar>
-<ar><k>sting</k>
-ampiaispisto, pisto
-
-pistellä</ar>
-<ar><k>stinginess</k>
-itaruus, kitsastelu, saituus</ar>
-<ar><k>stingy</k>
-itara, kitsas, saita, visu</ar>
-<ar><k>stink</k>
-lemuta, löyhkätä</ar>
-<ar><k>stipend</k>
-stipendi</ar>
-<ar><k>stipulate</k>
-vaatia</ar>
-<ar><k>stipulation</k>
-ehto (sopimuksessa)</ar>
-<ar><k>stir</k>
-hievahtaa, hämmentää, kiihottaa, liikahduttaa, liikahtaa, liikehtiä, liikkua</ar>
-<ar><k>stirring</k>
-sytyttävä</ar>
-<ar><k>stirrup</k>
-jalustin</ar>
-<ar><k>stitch</k>
-neulanpisto, ompelupisto, silmä, tikki (lääk)
-
-nitoa, tikata</ar>
-<ar><k>stitcher</k>
-nitomalaite</ar>
-<ar><k>stitcher head</k>
-nitomapää</ar>
-<ar><k>stoat</k>
-kärppä</ar>
-<ar><k>stock</k>
-arvopaperi, leukoija, osake, rotu, varasto
-
-varastoida, varustaa</ar>
-<ar><k>stock cube</k>
-lihakuutio</ar>
-<ar><k>stock exchange</k>
-arvopörssi, pörssi</ar>
-<ar><k>stock-broking</k>
-arvokauppa</ar>
-<ar><k>stocking</k>
-sukka</ar>
-<ar><k>stocking with fish</k>
-kalanistutus</ar>
-<ar><k>stockmarket</k>
-osakemarkkinat</ar>
-<ar><k>stocks</k>
-jalkapuu</ar>
-<ar><k>stomach</k>
-maha, mahalaukku, vatsa, vatsalaukku</ar>
-<ar><k>stomach ache</k>
-vatsankipu</ar>
-<ar><k>stone</k>
-kivi
-
-somero</ar>
-<ar><k>stone shingle</k>
-kivipaanu</ar>
-<ar><k>stone's throw</k>
-kivenheitto [puhek.]</ar>
-<ar><k>stone-deaf</k>
-umpikuuro</ar>
-<ar><k>stone-mason</k>
-kivityömies</ar>
-<ar><k>stone-masonry</k>
-kiviveistämö</ar>
-<ar><k>stone-pit</k>
-louhos</ar>
-<ar><k>stoned</k>
-humalassa / pilvessä [puhek.]</ar>
-<ar><k>stonework</k>
-luonnonkivi</ar>
-<ar><k>stony soil</k>
-kivikko</ar>
-<ar><k>stook of hay</k>
-heinäsuova</ar>
-<ar><k>stool</k>
-palli, jakkara</ar>
-<ar><k>stools</k>
-uloste (lääk)</ar>
-<ar><k>stoop</k>
-kumartua</ar>
-<ar><k>stop</k>
-pysähdys, pysäkki, seisahdus, pysäytys-
-
-herjetä, jäädä, lakata, lakkauttaa, lopettaa (lakata), pysähdyttää, pysähtyä, pysäyttää, seis, seisahduttaa, seisottaa, tauota, tukkia, tyrehdyttää, tyrehtyä, täyttää (reikä), viivähtää</ar>
-<ar><k>stop light</k>
-jarruvalo</ar>
-<ar><k>stop-watch</k>
-sekuntikello</ar>
-<ar><k>stoppage</k>
-seisahdus</ar>
-<ar><k>stopper</k>
-korkki (pullon), pullontulppa, tulppa</ar>
-<ar><k>stopping-place</k>
-pysäkki</ar>
-<ar><k>storage</k>
-varastointi</ar>
-<ar><k>store</k>
-myymälä, puoti, varasto
-
-säiliöidä, säilyttää, varasto</ar>
-<ar><k>store up</k>
-koota (varastoon)</ar>
-<ar><k>storehouse</k>
-aitta, makasiini</ar>
-<ar><k>storeroom</k>
-varastohuone</ar>
-<ar><k>storey</k>
-kerros (rak)</ar>
-<ar><k>stork</k>
-kattohaikara</ar>
-<ar><k>storm</k>
-myrsky
-
-myrskytä</ar>
-<ar><k>story</k>
-juttu, kasku, kertomus, tarina</ar>
-<ar><k>stoup</k>
-tuoppi</ar>
-<ar><k>stout</k>
-jykevä, lihava, luja, paksu (ruumiiltaan)</ar>
-<ar><k>stoutness</k>
-lihavuus</ar>
-<ar><k>stove</k>
-hella, kamiina, lämmitysuuni</ar>
-<ar><k>stow</k>
-ahtaa, latoa (päällekkäin)</ar>
-<ar><k>stowage</k>
-ahtaaminen</ar>
-<ar><k>stowaway</k>
-jänis (matkustaja)</ar>
-<ar><k>straight</k>
-suora, suorassa</ar>
-<ar><k>straight away</k>
-kohta (heti) [puhek.]</ar>
-<ar><k>straight up</k>
-totuus [puhek.]</ar>
-<ar><k>straighten</k>
-oikaista, ojentua, suoristaa</ar>
-<ar><k>straighten out</k>
-oieta</ar>
-<ar><k>straightening</k>
-ojennus</ar>
-<ar><k>straightforward</k>
-reilu</ar>
-<ar><k>straightness</k>
-suoruus</ar>
-<ar><k>strain</k>
-jännitys, kireys, kiristys, pingotus, pinnistys, rotu, venähdys
-
-jännittää, pingottaa, pinnistää, ponnistaa, rasittaa, siivilöidä, venähdyttää</ar>
-<ar><k>strainer</k>
-siivilä</ar>
-<ar><k>strait</k>
-salmi</ar>
-<ar><k>strait-jacket</k>
-pakkopaita</ar>
-<ar><k>strange</k>
-eriskummallinen, kummallinen, omituinen, outo, vieras</ar>
-<ar><k>strangeness</k>
-eriskummallisuus, kummallisuus, vieraus</ar>
-<ar><k>stranger</k>
-muukalainen</ar>
-<ar><k>strangle</k>
-kuristaa</ar>
-<ar><k>strangling</k>
-kuristus</ar>
-<ar><k>strap</k>
-hihna, raksi</ar>
-<ar><k>stratagam</k>
-sotajuoni</ar>
-<ar><k>strategic</k>
-strateginen</ar>
-<ar><k>strategist</k>
-strategi</ar>
-<ar><k>strategy</k>
-strategia</ar>
-<ar><k>stratum</k>
-maakerros</ar>
-<ar><k>straw</k>
-korsi, olki, pahnat, juomapilli</ar>
-<ar><k>straw man</k>
-bulvaani (kuv)</ar>
-<ar><k>straw thatch</k>
-korsokatto</ar>
-<ar><k>strawberry</k>
-mansikka</ar>
-<ar><k>strawberry bed</k>
-mansikkamaa</ar>
-<ar><k>stray</k>
-harhailla</ar>
-<ar><k>stray bullet</k>
-harhanluoti</ar>
-<ar><k>stray light</k>
-hajavalo</ar>
-<ar><k>streak</k>
-juova, raita, viiru
-
-juovittaa, raidoittaa</ar>
-<ar><k>streaked</k>
-juovainen</ar>
-<ar><k>stream</k>
-joki (puro), puro, virtaus
-
-virrata</ar>
-<ar><k>stream feed</k>
-ketjusyöttö</ar>
-<ar><k>streamer</k>
-viiri</ar>
-<ar><k>street</k>
-katu</ar>
-<ar><k>street crossing</k>
-kadunristeys</ar>
-<ar><k>street sweeper</k>
-kadunlakaisija</ar>
-<ar><k>street vendor</k>
-katukaupustelija</ar>
-<ar><k>street-map</k>
-kartta (kaupungin)</ar>
-<ar><k>street-walker</k>
-katunainen</ar>
-<ar><k>streetwalker</k>
-ilotyttö</ar>
-<ar><k>strength</k>
-lujuus, voima, voimakkuus, väkevyys</ar>
-<ar><k>strength of character</k>
-luonteenlujuus</ar>
-<ar><k>strengthen</k>
-vahvistaa, vakaannuttaa, voimistua
-
-vahvistaa</ar>
-<ar><k>strengthening</k>
-vahvistus</ar>
-<ar><k>stress</k>
-korostaa, painottaa, tähdentää
-
-stressi
-
-jännitys</ar>
-<ar><k>stressed</k>
-painollinen</ar>
-<ar><k>stretch</k>
-jännittää, ulottaa, ulottua, venyttää, venyä</ar>
-<ar><k>stretch of sands</k>
-hietikko</ar>
-<ar><k>stretch one's legs</k>
-jaloitella</ar>
-<ar><k>stretch to see</k>
-kurkottaa</ar>
-<ar><k>stretcher</k>
-paari</ar>
-<ar><k>strew</k>
-ripottaa, sirotella, sirottaa</ar>
-<ar><k>strew with flowers</k>
-kukittaa</ar>
-<ar><k>strict</k>
-ankara (tiukka), kova (ankara)</ar>
-<ar><k>strictly</k>
-jyrkästi, visusti</ar>
-<ar><k>stride</k>
-harppaus
-
-harpata</ar>
-<ar><k>strife</k>
-kiista (riita)</ar>
-<ar><k>strike</k>
-lakko
-
-hosua (löydä), iskeä, kolauttaa, lakkoilla, lyöda, osua</ar>
-<ar><k>strike pay</k>
-lakkoavustus</ar>
-<ar><k>strike with terror</k>
-kauhistaa</ar>
-<ar><k>strike-breaker</k>
-lakonrikkuri, rikkuri</ar>
-<ar><k>strike-force</k>
-iskujoukko</ar>
-<ar><k>striker</k>
-lakkolainen</ar>
-<ar><k>striking</k>
-huomiotaherättävä</ar>
-<ar><k>striking plate</k>
-vastarauta</ar>
-<ar><k>string</k>
-kieli (soittimen), naru, nuora, nyöri, paula (nyöri)</ar>
-<ar><k>string quartet</k>
-jousikvartetti</ar>
-<ar><k>string-bean</k>
-sokeriherne</ar>
-<ar><k>stringed instrument</k>
-jousisoitin, kielisoitin</ar>
-<ar><k>stringer</k>
-reisilankku</ar>
-<ar><k>strings</k>
-jouset (mus)</ar>
-<ar><k>strip</k>
-kaistale, liuska (paperi- ym), suikale
-
-riisua (vaatteet)
-
-irrottaa, riisua</ar>
-<ar><k>strip cartoon</k>
-sarjakuva</ar>
-<ar><k>stripe</k>
-juova, raita
-
-juovittaa, raidottaa</ar>
-<ar><k>striped</k>
-juovainen, raidallinen</ar>
-<ar><k>stripper finger</k>
-irrotuskynsi</ar>
-<ar><k>strive for</k>
-pyrkiä</ar>
-<ar><k>striving</k>
-aherrus</ar>
-<ar><k>strobing</k>
-jaksohäviämä</ar>
-<ar><k>stroke</k>
-aivohalvaus, isku, lyönti
-
-hivellä, silittää, sivellä</ar>
-<ar><k>stroke of an oar</k>
-aironveto</ar>
-<ar><k>stroke of luck</k>
-onnenpotkaus</ar>
-<ar><k>stroll</k>
-kävely
-
-astella, kuljeksia, käyskennellä, vaeltaa</ar>
-<ar><k>strong</k>
-ankara (voimakes), luja, ponnekas, vahva, voimakas, väkevä</ar>
-<ar><k>strong wind</k>
-viima</ar>
-<ar><k>strong-room</k>
-kassaholvi</ar>
-<ar><k>strong-willed</k>
-lujatahtoinen</ar>
-<ar><k>strongly</k>
-voimakkaasti</ar>
-<ar><k>strongly built</k>
-lujarakenteinen</ar>
-<ar><k>strop</k>
-hiaisin (partaveitsen)</ar>
-<ar><k>strosphere</k>
-strotosfääri</ar>
-<ar><k>struck joint</k>
-kynnyssauma</ar>
-<ar><k>structural analysis</k>
-rakennelaskelmat</ar>
-<ar><k>structural design</k>
-rakenteiden mitoitus</ar>
-<ar><k>structurally</k>
-rakenteellisesti</ar>
-<ar><k>structure</k>
-rakennuksen runko, rakenne</ar>
-<ar><k>struggle</k>
-kamppailu
-
-ponnistella, pyristellä, taistella</ar>
-<ar><k>struggle against</k>
-hangoitella vastaan, kamppailla</ar>
-<ar><k>struggle for independence</k>
-itsenäisyyspyrinnöt</ar>
-<ar><k>struggle for life</k>
-elämäntaistelu</ar>
-<ar><k>strum</k>
-rimputtaa</ar>
-<ar><k>strut</k>
-pönkkä, sauva, vinotuki
-
-pöyhistellä (kuv)</ar>
-<ar><k>strutted roof</k>
-tukiansas</ar>
-<ar><k>strychnin</k>
-strykniini</ar>
-<ar><k>stub</k>
-emälippu, kanta (kuitin lipun), kantalippu, kanto, natsa</ar>
-<ar><k>stubble</k>
-parransänki, sänki</ar>
-<ar><k>stubborn</k>
-itsepäinen, jäykkäluonteinen, jääräpäinen, itsepintainen</ar>
-<ar><k>stubborness</k>
-itsepäisyys</ar>
-<ar><k>stubby</k>
-lyhyenläntä</ar>
-<ar><k>stud</k>
-nasta</ar>
-<ar><k>student</k>
-opiskelija</ar>
-<ar><k>students' union</k>
-osakunta, ylioppilaskunta</ar>
-<ar><k>studio</k>
-ateljee</ar>
-<ar><k>study</k>
-tutkimus, opintoaine, opinto, kirjastohuone, työhuone</ar>
-<ar><k>stuff</k>
-sulloa</ar>
-<ar><k>stuffiness</k>
-ummehtuneisuus</ar>
-<ar><k>stuffing</k>
-mureke, täyte (keitt)</ar>
-<ar><k>stuffy</k>
-ummehtunut</ar>
-<ar><k>stumble</k>
-horjahdus
-
-astua harhaan, kompastua, langeta</ar>
-<ar><k>stumbling</k>
-horjahdus</ar>
-<ar><k>stumbling-block</k>
-loukkauskivi</ar>
-<ar><k>stump</k>
-kanto, pätkä, tynkä</ar>
-<ar><k>stumpy</k>
-lyhyenläntä</ar>
-<ar><k>stun</k>
-huumata, ällistyttää</ar>
-<ar><k>stunning</k>
-hemaiseva</ar>
-<ar><k>stunt flying</k>
-taitolento</ar>
-<ar><k>stunted</k>
-kitukasvuinen</ar>
-<ar><k>stupid</k>
-tyhmä, typerä</ar>
-<ar><k>stupid fellow</k>
-tyhmyri</ar>
-<ar><k>stupidity</k>
-tyhmyys, typeryys</ar>
-<ar><k>stupify</k>
-tyrmistyttää, huumata</ar>
-<ar><k>stupor</k>
-horros</ar>
-<ar><k>sturdiness</k>
-jykevyys</ar>
-<ar><k>sturdy</k>
-jykevä, jäntterä, kestävä, roima, roteva, tanakka, vahva (kestävä), vanttera</ar>
-<ar><k>sturgeon</k>
-sampi</ar>
-<ar><k>stutter</k>
-änkytys
-
-kangertaa, änkyttää</ar>
-<ar><k>sty</k>
-näärännäppy</ar>
-<ar><k>style</k>
-muoti, tyyli</ar>
-<ar><k>stylish</k>
-aistikas (tyylikäs), muodikas, tyylikäs</ar>
-<ar><k>stylishness</k>
-tyylikkyys</ar>
-<ar><k>stylist</k>
-stilisti</ar>
-<ar><k>subborness</k>
-itsepintaisuus</ar>
-<ar><k>subconscious</k>
-alitajuinen</ar>
-<ar><k>subconscious mind</k>
-alitajunta</ar>
-<ar><k>subcontractor</k>
-alihankkija</ar>
-<ar><k>subcontractors</k>
-alaurakoisijat</ar>
-<ar><k>subdivision</k>
-alajaotus, alaosasto</ar>
-<ar><k>subdue</k>
-hiljentää (ääntä ym), kukistaa</ar>
-<ar><k>subdued</k>
-vaimea (ääni)</ar>
-<ar><k>subheading</k>
-alaotsikko</ar>
-<ar><k>subject</k>
-aihe, oppiaine, alamainen, kohde (tutkimuksen), opetusaine, opintoaine, oppiaine, subjekti, aine</ar>
-<ar><k>subject to</k>
-jnk alainen, vallanalainen</ar>
-<ar><k>subjective</k>
-itsekohtainen, omakohtainen, subjekttiivinen</ar>
-<ar><k>subjectivity</k>
-itsekohtaisuus</ar>
-<ar><k>subjugate</k>
-kukistaa</ar>
-<ar><k>subjunctive</k>
-konjunktiivi</ar>
-<ar><k>sublieutenant</k>
-aliluutnantti</ar>
-<ar><k>submarine</k>
-merenalainen, sukellusvene</ar>
-<ar><k>submission to</k>
-alistuminen</ar>
-<ar><k>submissive</k>
-alistuvainen</ar>
-<ar><k>submissively</k>
-alistuvaisesti</ar>
-<ar><k>submissiveness</k>
-alistuvaisuus, myöntyväisyys</ar>
-<ar><k>submit</k>
-alistaa</ar>
-<ar><k>subordinate clause</k>
-sivulause</ar>
-<ar><k>subordination</k>
-alaisuus, käskynalaisuus, vallalaisuus</ar>
-<ar><k>subscribe</k>
-tilata</ar>
-<ar><k>subscriber</k>
-tilaaja</ar>
-<ar><k>subscription</k>
-tilaus</ar>
-<ar><k>subsequent</k>
-jälkeinen, seuraava</ar>
-<ar><k>subsequently</k>
-jäljepäin, myöhemmin, sittemmin</ar>
-<ar><k>subside</k>
-talttua</ar>
-<ar><k>subsidence</k>
-elatus</ar>
-<ar><k>subsidiary</k>
-tytäryhtiö</ar>
-<ar><k>subsidy</k>
-apuraha, tukipalkkio</ar>
-<ar><k>subsistence</k>
-toimeentulo</ar>
-<ar><k>subsoil</k>
-jankko</ar>
-<ar><k>substance</k>
-aine, aines</ar>
-<ar><k>substantial</k>
-melkoinen, tukeva (vahva), vahva (kestävä)</ar>
-<ar><k>substantially</k>
-oleellisesti</ar>
-<ar><k>substitute</k>
-korvike, sijainen, varamies, vastike, viransijainen
-
-korvata</ar>
-<ar><k>substructure</k>
-maanalainen rekenne</ar>
-<ar><k>subsystem</k>
-laitteisto, osisto</ar>
-<ar><k>subtenant</k>
-alivuokralainen</ar>
-<ar><k>subterranean</k>
-maanlainen</ar>
-<ar><k>suburb</k>
-asumalähiö, esikaupunki</ar>
-<ar><k>suburban area</k>
-liitosalue</ar>
-<ar><k>suburban community</k>
-huvilayhdyskunta</ar>
-<ar><k>subversive</k>
-kumouksellinen</ar>
-<ar><k>subway</k>
-alikäytävä, jalankulkutunneli</ar>
-<ar><k>succeed</k>
-menestyä, onnistua, seurata (virassa ym)</ar>
-<ar><k>success</k>
-menestyä</ar>
-<ar><k>successful</k>
-menestyksellinen, onnekas, onnistunut</ar>
-<ar><k>succession</k>
-jakso, järjestys (vuoro)</ar>
-<ar><k>successive</k>
-peräkkäinen, perättäinen</ar>
-<ar><k>successor</k>
-jälkeläinen (toimessa), seuraaja</ar>
-<ar><k>succulent plant</k>
-mehikasvi</ar>
-<ar><k>such as</k>
-jollainen</ar>
-<ar><k>suck</k>
-imeä</ar>
-<ar><k>sucker</k>
-juurivesa</ar>
-<ar><k>suckle</k>
-imettää</ar>
-<ar><k>suckling</k>
-imevainen</ar>
-<ar><k>suction</k>
-imu</ar>
-<ar><k>suction pad</k>
-imukuppi</ar>
-<ar><k>suction pipe</k>
-imuputki</ar>
-<ar><k>suddenly</k>
-yhtäkkiä, äkkipikaa, äkkiä, äkisti</ar>
-<ar><k>suddenness</k>
-äkkinäisyys</ar>
-<ar><k>suede coat</k>
-mokkatakki</ar>
-<ar><k>suet</k>
-munuaisrasva</ar>
-<ar><k>suffer</k>
-kokea, kärsiä</ar>
-<ar><k>suffer a loss</k>
-hävitä (pelissä ym)</ar>
-<ar><k>suffer an injury</k>
-vioittua</ar>
-<ar><k>suffer damage</k>
-vaurioitua, vioittua</ar>
-<ar><k>suffer pain</k>
-kitua</ar>
-<ar><k>sufficiency</k>
-riittävyys</ar>
-<ar><k>sufficient</k>
-riittävä, riittää</ar>
-<ar><k>sufficiently</k>
-kylliksi, tarpeeksi</ar>
-<ar><k>suffix</k>
-johdin (kiel), johtopääte, jälkiliite (kiel)</ar>
-<ar><k>suffocate</k>
-läkähtyä, tukahduttaa, tukehduttaa</ar>
-<ar><k>suffocation</k>
-tukehdus</ar>
-<ar><k>sugar</k>
-sokeroida
-
-sokeri</ar>
-<ar><k>sugar refinery</k>
-sokeritehdas</ar>
-<ar><k>sugar-basin</k>
-sokeriastia</ar>
-<ar><k>sugar-beet</k>
-sokerijuurikas</ar>
-<ar><k>sugar-cane</k>
-sokeriruoko</ar>
-<ar><k>suggest</k>
-ehdottaa</ar>
-<ar><k>suggestion</k>
-ehdotus, suggestio, viite</ar>
-<ar><k>suggestive</k>
-viitteellinen</ar>
-<ar><k>suicide</k>
-itsemurha, itsemurhaaja</ar>
-<ar><k>suit</k>
-puku
-
-sopia</ar>
-<ar><k>suitability</k>
-soveliaisuus</ar>
-<ar><k>suitable</k>
-sopiva, sovelias</ar>
-<ar><k>suitcase</k>
-matkalaukku</ar>
-<ar><k>suite of furniture</k>
-huonekalusto</ar>
-<ar><k>suited</k>
-soveltua</ar>
-<ar><k>suitor</k>
-kosija</ar>
-<ar><k>sulk</k>
-jurottaa, murjottaa</ar>
-<ar><k>sulkiness</k>
-jurous</ar>
-<ar><k>sulky</k>
-juro, jörö</ar>
-<ar><k>sullen</k>
-juro, jörö, nyrpeä, äreä</ar>
-<ar><k>sullenness</k>
-jurous</ar>
-<ar><k>sulphate</k>
-sulfaatti</ar>
-<ar><k>sulphur</k>
-rikki (kem)</ar>
-<ar><k>sultan</k>
-sultaani</ar>
-<ar><k>sultry</k>
-helteinen, hiostava</ar>
-<ar><k>sum</k>
-summa</ar>
-<ar><k>summary</k>
-lyhennelmä, supistelma, yhteenveto</ar>
-<ar><k>summer</k>
-kesä, kesäinen, suvi (kesä)</ar>
-<ar><k>summer-house</k>
-huvimaja</ar>
-<ar><k>summit</k>
-huippu (vuoren), laki (korkein kohta)</ar>
-<ar><k>summon</k>
-kutsua (virallisesti)</ar>
-<ar><k>sump</k>
-säiliö</ar>
-<ar><k>sumptuous</k>
-ylellinen</ar>
-<ar><k>sun</k>
-aurinko</ar>
-<ar><k>sun flower</k>
-auringonkukka</ar>
-<ar><k>sun lamp</k>
-alppilamppu</ar>
-<ar><k>sun spot</k>
-auringonpilkku</ar>
-<ar><k>sun tan</k>
-päivetys</ar>
-<ar><k>sun-dial</k>
-aurinkokello</ar>
-<ar><k>sunbeam</k>
-auringonsäde</ar>
-<ar><k>sunburn</k>
-päivetys</ar>
-<ar><k>sunburnt</k>
-ruskettunut</ar>
-<ar><k>sundew</k>
-kihokki (bot)</ar>
-<ar><k>sunlight</k>
-auringonvalo</ar>
-<ar><k>sunny</k>
-auringonpaisteinen</ar>
-<ar><k>sunrise</k>
-auringonnousu</ar>
-<ar><k>sunset</k>
-auringonlasku</ar>
-<ar><k>sunset glow</k>
-iltarusko</ar>
-<ar><k>sunshine</k>
-auringonpaiste, päivänpaiste</ar>
-<ar><k>sunstroke</k>
-auringonpisto</ar>
-<ar><k>super heat</k>
-tulistaa (hyryä)</ar>
-<ar><k>super powers</k>
-supervallat</ar>
-<ar><k>superbrain</k>
-älypää</ar>
-<ar><k>superficial</k>
-pintapuolinen</ar>
-<ar><k>superfluous</k>
-liiallinen, liikanainen</ar>
-<ar><k>superintendent</k>
-intendentti, johtaja (laitoksen ym), ylivalvoja</ar>
-<ar><k>superior</k>
-esimies
-
-parempi, ylä, ylivoimainen</ar>
-<ar><k>superior force</k>
-ylivoima</ar>
-<ar><k>superior in numbers</k>
-ylivoimainen</ar>
-<ar><k>superior in strength</k>
-ylivoimainen</ar>
-<ar><k>superior power</k>
-ylivoima</ar>
-<ar><k>superiority</k>
-herruus, ylemmyys</ar>
-<ar><k>superlative</k>
-superlatiivi</ar>
-<ar><k>superman</k>
-yliihminen</ar>
-<ar><k>supermarket</k>
-kauppahalli</ar>
-<ar><k>supersede</k>
-syrjäyttää, korvata</ar>
-<ar><k>superstructure</k>
-maanpäällinen rakenne</ar>
-<ar><k>supervise</k>
-ylivalvonta</ar>
-<ar><k>supervision</k>
-valvonta, kontrolli</ar>
-<ar><k>supervisor</k>
-valvoja, ylivalvoja</ar>
-<ar><k>supper</k>
-illallinen</ar>
-<ar><k>supplement</k>
-liite (asiakirjaan), lisälehti, lisäosa</ar>
-<ar><k>suppleness</k>
-notkeus</ar>
-<ar><k>supplier</k>
-hankkija</ar>
-<ar><k>supplies</k>
-tarvike</ar>
-<ar><k>supply</k>
-hankkia (varustaa), tarjonta, toimittaa (hankkia), varustaa</ar>
-<ar><k>supply line</k>
-etappitie (sot)</ar>
-<ar><k>supply ship</k>
-huoltoalus</ar>
-<ar><k>supply with provisions</k>
-muonittaa</ar>
-<ar><k>support</k>
-auttaa, huoltaa, kannattaa, puoltaa, ylläpitää</ar>
-<ar><k>supporter</k>
-aatetoveri, elättäjä, huoltaja, kannattaja, puoltaja</ar>
-<ar><k>supports</k>
-tuet</ar>
-<ar><k>suppose</k>
-arvella (luulla), luulla, olettaa, otaksua</ar>
-<ar><k>supposed</k>
-muka</ar>
-<ar><k>supposition</k>
-otaksuma</ar>
-<ar><k>suppository</k>
-peräpuikko</ar>
-<ar><k>suppress</k>
-lakkauttaa, nujertaa, tukahduttaa, kukistaa (kapina)</ar>
-<ar><k>suppression</k>
-lakkautus</ar>
-<ar><k>supreme</k>
-korkein</ar>
-<ar><k>sure</k>
-varma</ar>
-<ar><k>surely</k>
-varmasti</ar>
-<ar><k>surely not</k>
-eihän toki</ar>
-<ar><k>sureness</k>
-varmuus</ar>
-<ar><k>surety</k>
-takaus</ar>
-<ar><k>surf</k>
-aallokko, tyrsky</ar>
-<ar><k>surface</k>
-kamara, pinta
-
-pinta</ar>
-<ar><k>surface water</k>
-pintavesi</ar>
-<ar><k>surfacing</k>
-pinnoite</ar>
-<ar><k>surfeit</k>
-kyllästymys</ar>
-<ar><k>surge</k>
-hyrsky, hyöky, tyrsky
-
-hyrskytä, kuokua</ar>
-<ar><k>surgeon</k>
-kirurgi</ar>
-<ar><k>surgery</k>
-kirurgia</ar>
-<ar><k>surgical</k>
-kirurginen</ar>
-<ar><k>surly</k>
-juro, nyrpeä</ar>
-<ar><k>surpass</k>
-ylittää</ar>
-<ar><k>surplus</k>
-liiallinen, liika, liikamäärä, liikanainen, liikenevä, ylijäämä</ar>
-<ar><k>surplus population</k>
-liikaväestö</ar>
-<ar><k>surprise</k>
-hämmästys, ihmettely, yllätys
-
-hämmästyttää, kummatuttaa, yllättää</ar>
-<ar><k>surprising</k>
-hämmästyttävä, ihmeteltävä, yllätyksellinen</ar>
-<ar><k>surrender</k>
-luovutus</ar>
-<ar><k>surround</k>
-saartaa, ympäröidä
-
-saartaa, ympäröidä</ar>
-<ar><k>surroundings</k>
-ympäristö</ar>
-<ar><k>survey</k>
-katsastus, katsaus, arvio
-
-silmäillä, katsastaa</ar>
-<ar><k>surveying</k>
-maanmittaus</ar>
-<ar><k>surveyor</k>
-maanmittari</ar>
-<ar><k>survival</k>
-jäänne</ar>
-<ar><k>surviving</k>
-jälkeenjäänyt (eloon)</ar>
-<ar><k>survivor</k>
-henkiinjäänyt</ar>
-<ar><k>suspect</k>
-epäilyttävä henkilö
-
-epäillä</ar>
-<ar><k>suspended ceiling</k>
-alaslaskettu katto</ar>
-<ar><k>suspended sentence</k>
-ehdollinen (tuomio)</ar>
-<ar><k>suspender</k>
-liivit (kapeat), sukkanauha</ar>
-<ar><k>suspense</k>
-jännitys (odotus)</ar>
-<ar><k>suspension</k>
-kilpailukielto, lakkautus</ar>
-<ar><k>suspension bridge</k>
-riippusilta</ar>
-<ar><k>suspension rod</k>
-kiinnitysteräs</ar>
-<ar><k>suspension structure</k>
-riipuansas</ar>
-<ar><k>suspicion</k>
-epäily, epäluulo</ar>
-<ar><k>suspicious</k>
-epäilevä, epäilyttävä, luulevainen</ar>
-<ar><k>suspiciousness</k>
-epäileväisyys</ar>
-<ar><k>sustain</k>
-ylläpitää</ar>
-<ar><k>sustain a loss</k>
-hävitä (pelissä ym)</ar>
-<ar><k>sustained</k>
-pitkäjannitteinen</ar>
-<ar><k>suture</k>
-ommel (lääk)</ar>
-<ar><k>swab</k>
-köysiluuta</ar>
-<ar><k>swaddle</k>
-kapaloida</ar>
-<ar><k>swagger</k>
-kerskailla, pöyhistellä (kuv), rehvastella</ar>
-<ar><k>swallow</k>
-nielaista, niellä</ar>
-<ar><k>swamp</k>
-hete, neva, suo</ar>
-<ar><k>swampy</k>
-soinen, suoperäinen</ar>
-<ar><k>swan</k>
-joutsen</ar>
-<ar><k>swank</k>
-kerskailla</ar>
-<ar><k>swarm</k>
-lauma, parvi
-
-kuhista (vilistä), vilistä</ar>
-<ar><k>swastika</k>
-hakalippu, hakaristi</ar>
-<ar><k>swat</k>
-pinko</ar>
-<ar><k>swatter</k>
-kärpäslätkä</ar>
-<ar><k>sway</k>
-heilahdella, heilahtaa, heiluttaa, hoippua, horjuttaa, huojua (heilua), huojuttaa, häilyä, vaappua</ar>
-<ar><k>swear</k>
-kiroilla, kirota, sadatella, vannoa</ar>
-<ar><k>swear-word</k>
-kirous</ar>
-<ar><k>swearing</k>
-sadattelu</ar>
-<ar><k>sweat</k>
-hikoilla</ar>
-<ar><k>sweat gland</k>
-hikirauhanen</ar>
-<ar><k>sweat-band</k>
-hikihihna</ar>
-<ar><k>sweater</k>
-neulepusero, villatakki</ar>
-<ar><k>sweatiness</k>
-hikisyys</ar>
-<ar><k>sweaty</k>
-hiestynyt, hikinen, hiostua</ar>
-<ar><k>swede</k>
-lanttu, ruotsalainen</ar>
-<ar><k>sweep</k>
-lakaista, nuohota</ar>
-<ar><k>sweet</k>
-jälkiruoka, karamelli, 
-
-armas (suloinen), hempeä, herttainen, imelä, lempeä, makea, soma, suloinen</ar>
-<ar><k>sweet on</k>
-ihastua</ar>
-<ar><k>sweet pea</k>
-hajuherne</ar>
-<ar><k>sweet potato</k>
-bataatti</ar>
-<ar><k>sweeten</k>
-imeltää, makeuttaa, sokeroida</ar>
-<ar><k>sweetheart</k>
-armas, heila, kulta (kuv), lemmitty</ar>
-<ar><k>sweetness</k>
-hempeys, herttaisuus, imelyys, makeus, sulous</ar>
-<ar><k>swell</k>
-kohoilla, paisua, pöhöttyä</ar>
-<ar><k>swelling</k>
-ajettuma, pöhöttymä, paisuma</ar>
-<ar><k>swerve</k>
-kaartaa</ar>
-<ar><k>swift</k>
-nopea, sukkela, tervapääskynen, tornipääsky, vikkelä, vinha, vuolas</ar>
-<ar><k>swiftly</k>
-vuolaasti</ar>
-<ar><k>swiftness</k>
-joutuisuus, nopeus, vikkelyys</ar>
-<ar><k>swill</k>
-huljuttaa</ar>
-<ar><k>swim</k>
-uida, uiskennella</ar>
-<ar><k>swimmer</k>
-uimari</ar>
-<ar><k>swimming</k>
-uinti</ar>
-<ar><k>swimming pool</k>
-uima-allas</ar>
-<ar><k>swimming-bath</k>
-uimala</ar>
-<ar><k>swimming-baths</k>
-uimala</ar>
-<ar><k>swimming-pool</k>
-uimaallas</ar>
-<ar><k>swindle</k>
-huijaus, petkutus
-
-huijata, petkuttaa</ar>
-<ar><k>swindler</k>
-huijari, petkuttaja</ar>
-<ar><k>swindling</k>
-huijaus</ar>
-<ar><k>swing</k>
-kiikku
-
-keinu
-
-heilahdella, heilahtaa, heilua, heiluttaa, huojua (heilua), huojuttaa, häilyä, keikkua, keikuttaa, keinua, keinuttaa, kieppua, kiikkua, kiikuttaa, pyörähdys, vaappua</ar>
-<ar><k>swing around</k>
-pyörähtää</ar>
-<ar><k>swing bridge</k>
-kääntösilta</ar>
-<ar><k>swiper</k>
-tasain</ar>
-<ar><k>switch</k>
-katkaisin (tekn), kytkin (sähk), vaihde (rautat), virrankatkaisin (sähk)
-
-kytkeä, vaihtaa</ar>
-<ar><k>switch on</k>
-avata (sähk), kytkeä virta</ar>
-<ar><k>switchback</k>
-vuoristorata</ar>
-<ar><k>switchboard</k>
-jakotaulu (sähk), puhelinkeskus</ar>
-<ar><k>swollen</k>
-turpea</ar>
-<ar><k>swoon</k>
-pyörtymys</ar>
-<ar><k>sword</k>
-kalpa, miekka, sapeli</ar>
-<ar><k>sword-fish</k>
-miekkakala</ar>
-<ar><k>sworn</k>
-valantehnyt</ar>
-<ar><k>syllable</k>
-tavu</ar>
-<ar><k>symbol</k>
-symboli</ar>
-<ar><k>symbolic</k>
-symbolinen</ar>
-<ar><k>symmetric</k>
-yhdenmukainen</ar>
-<ar><k>symmetrical</k>
-symmetrinen, yhdenmukainen</ar>
-<ar><k>symmetry</k>
-sopusuhtaisuus, symmetria, yhdenmukaisuus</ar>
-<ar><k>sympathetic</k>
-myötämielinen, myötätuntoinen, sympaattinen</ar>
-<ar><k>sympathy</k>
-myötätunto</ar>
-<ar><k>symphony</k>
-sinfonia</ar>
-<ar><k>symptom</k>
-ilmaus (taudin), oire, merkki</ar>
-<ar><k>synagogue</k>
-synagooga</ar>
-<ar><k>synchronize</k>
-synkronoida</ar>
-<ar><k>syndicate</k>
-syndikaatti</ar>
-<ar><k>synonym</k>
-synonyymi</ar>
-<ar><k>syntax</k>
-lauseoppi</ar>
-<ar><k>synthetic</k>
-synteettinen, tekokuiti</ar>
-<ar><k>synthetic resin</k>
-muovipohjamaali</ar>
-<ar><k>syphillis</k>
-kuppatauti</ar>
-<ar><k>syringe</k>
-ruisku (lääk)</ar>
-<ar><k>syrup</k>
-siirappi</ar>
-<ar><k>system</k>
-järjestelmä</ar>
-<ar><k>systematic</k>
-järjestelmällinen, systemaattinen</ar>
-<ar><k>systematically</k>
-järjestelmällisesti</ar>
-<ar><k>table</k>
-pöytä, taulukko, taulu</ar>
-<ar><k>table manners</k>
-pöytätavat</ar>
-<ar><k>table napkin</k>
-lautasliina</ar>
-<ar><k>table scraps</k>
-jätteet (tähteet)</ar>
-<ar><k>table-cloth</k>
-pöytäliina, pöytäliina</ar>
-<ar><k>tablet</k>
-tabletti</ar>
-<ar><k>tableware</k>
-pöytäastia</ar>
-<ar><k>taboo</k>
-tabu</ar>
-<ar><k>tabulate</k>
-taulukoida</ar>
-<ar><k>taciturn</k>
-hiljainen (äänetön)</ar>
-<ar><k>taciturnity</k>
-vaiteliaisuus</ar>
-<ar><k>tack</k>
-nasta, nupi
-
-harsia, luovia</ar>
-<ar><k>tackle</k>
-takila</ar>
-<ar><k>tactful</k>
-hienotunteinen, tahdikas</ar>
-<ar><k>tactfulness</k>
-tahdikkuus</ar>
-<ar><k>tactical</k>
-taktillinen</ar>
-<ar><k>tactician</k>
-taktikko</ar>
-<ar><k>tactics</k>
-taktiikka</ar>
-<ar><k>tactless</k>
-tahditon</ar>
-<ar><k>tag</k>
-hintalappu</ar>
-<ar><k>tail</k>
-hännys, häntä, pyrstö, saparo</ar>
-<ar><k>tail end</k>
-perä</ar>
-<ar><k>tail-end</k>
-loppupää</ar>
-<ar><k>tailed</k>
-hännällinen</ar>
-<ar><k>tailess</k>
-hännätön</ar>
-<ar><k>tailor</k>
-räätäli, vaatturi</ar>
-<ar><k>taint</k>
-häpeäpilkku, saastutus
-
-saasta</ar>
-<ar><k>take</k>
-ottaa, viedä</ar>
-<ar><k>take a bite</k>
-haukata</ar>
-<ar><k>take a dislike to</k>
-tympeytyä</ar>
-<ar><k>take a look</k>
-katsahtaa</ar>
-<ar><k>take a look at</k>
-silmäistä, vilkaista</ar>
-<ar><k>take a nap</k>
-torkahtaa</ar>
-<ar><k>take a rest</k>
-levähtää</ar>
-<ar><k>take a seat</k>
-istuutua</ar>
-<ar><k>take a stand</k>
-asennoitua, suhtautua</ar>
-<ar><k>take a walk</k>
-jaloitella, kävellä</ar>
-<ar><k>take aim</k>
-tähdätä</ar>
-<ar><k>take an interest in</k>
-kiinnostua</ar>
-<ar><k>take apart</k>
-purkaa (osiinsa)</ar>
-<ar><k>take back</k>
-epuuttaa</ar>
-<ar><k>take breath</k>
-hengähtää</ar>
-<ar><k>take care of</k>
-hoitaa, holhota, huolehtia, huoltaa</ar>
-<ar><k>take cover</k>
-maastoutua</ar>
-<ar><k>take flight</k>
-paeta</ar>
-<ar><k>take good care of</k>
-hoivata</ar>
-<ar><k>take great care of</k>
-vaalia</ar>
-<ar><k>take in</k>
-kaventaa (pukua)</ar>
-<ar><k>take in sail</k>
-reivata</ar>
-<ar><k>take into custody</k>
-vangita</ar>
-<ar><k>take leave of</k>
-hyvästellä</ar>
-<ar><k>take lodgings</k>
-maijoittua</ar>
-<ar><k>take off</k>
-lähtö (ilm)</ar>
-<ar><k>take out</k>
-purkaa (esim ommel)</ar>
-<ar><k>take pains with</k>
-huolitella</ar>
-<ar><k>take part in</k>
-osallistua</ar>
-<ar><k>take pity</k>
-sääliä</ar>
-<ar><k>take place</k>
-tapahtua</ar>
-<ar><k>take possession of</k>
-valloittaa</ar>
-<ar><k>take pride in</k>
-ylpeillä</ar>
-<ar><k>take root</k>
-juurtua</ar>
-<ar><k>take shape</k>
-hahmottua</ar>
-<ar><k>take to</k>
-ruveta</ar>
-<ar><k>take to pieces</k>
-purkaa (osiinsa)</ar>
-<ar><k>take turns</k>
-vuorotella</ar>
-<ar><k>take up</k>
-ryhtyä</ar>
-<ar><k>take-off-board</k>
-hyppyri</ar>
-<ar><k>takeaway</k>
-syöttö-, siirto-</ar>
-<ar><k>taken all together</k>
-kaikkiaan</ar>
-<ar><k>takeover</k>
-yrityskaappaus</ar>
-<ar><k>talc</k>
-talkki</ar>
-<ar><k>talcum powder</k>
-talkki</ar>
-<ar><k>tale</k>
-juttu, kertomus, tarina</ar>
-<ar><k>talent</k>
-kyky</ar>
-<ar><k>talented</k>
-hyvälahjainen, lahjakas</ar>
-<ar><k>talisman</k>
-taikakalu</ar>
-<ar><k>talk</k>
-juttelu, keskustelu, puhelu
-
-jutella, keskustella, pakina, puhua</ar>
-<ar><k>talk nonsense</k>
-höpsiä, loruta</ar>
-<ar><k>talk slurred</k>
-sokelttaa (kuin juopunut)</ar>
-<ar><k>talk thick</k>
-sokelttaa (kuin juopunut)</ar>
-<ar><k>talk through the nose</k>
-honottaa</ar>
-<ar><k>talk to</k>
-puhella</ar>
-<ar><k>talk with</k>
-puhella</ar>
-<ar><k>talkative</k>
-juttelunhaluinen, puhelias</ar>
-<ar><k>talker</k>
-puhuja</ar>
-<ar><k>tall</k>
-isokasvuinen, korkea (puu ym), pitkä (ihmisestä ym), pitkäkasvionen</ar>
-<ar><k>tall pine</k>
-honka</ar>
-<ar><k>tallow</k>
-tali</ar>
-<ar><k>tally</k>
-täsmätä</ar>
-<ar><k>tamato</k>
-tomaatti</ar>
-<ar><k>tambourine</k>
-tamburiini</ar>
-<ar><k>tame</k>
-kesyttää
-
-kesy</ar>
-<ar><k>tamper</k>
-sorkkia (tonkia)</ar>
-<ar><k>tamper with</k>
-peukaloida</ar>
-<ar><k>tan</k>
-rusketus</ar>
-<ar><k>tandem</k>
-tandem-, peräkkäis-, suunta-</ar>
-<ar><k>tangent</k>
-tangentti</ar>
-<ar><k>tangerine</k>
-mandariini</ar>
-<ar><k>tangled</k>
-takkuinen</ar>
-<ar><k>tank</k>
-hyökkäysvaunu, säiliö, tankki, vesisäiliö</ar>
-<ar><k>tankard</k>
-haarikka, kolpakko, seideli, tuoppi</ar>
-<ar><k>tanked up</k>
-kännissä [puhek.]</ar>
-<ar><k>tanker</k>
-säiliölaiva</ar>
-<ar><k>tanned</k>
-ahavoitunut</ar>
-<ar><k>tap</k>
-hana, naputus, vesihana
-
-kolkuttaa (hiljaa), naputtaa, taputtaa</ar>
-<ar><k>tape measure</k>
-mittanauha</ar>
-<ar><k>tape recorder</k>
-magnetofoni, nauhuri</ar>
-<ar><k>tape-record</k>
-nauhoittaa</ar>
-<ar><k>tape-recording</k>
-nauhoitus</ar>
-<ar><k>taper</k>
-kynttilä (ohut)</ar>
-<ar><k>tapestry</k>
-kuvakudos</ar>
-<ar><k>tapeworm</k>
-heisimato</ar>
-<ar><k>tapping</k>
-nakutus</ar>
-<ar><k>tar membrane</k>
-tervasively</ar>
-<ar><k>tardily</k>
-vitakalleen</ar>
-<ar><k>tardy</k>
-vitkallinen</ar>
-<ar><k>target</k>
-ampumataulu, maali (pilkka), maalitaulu, pilkka (maali), tavoite</ar>
-<ar><k>target-practise</k>
-ampumaharjoitus, pilkkaanammunta</ar>
-<ar><k>tariff</k>
-taksa, tariffi</ar>
-<ar><k>tarpaulin</k>
-pressu</ar>
-<ar><k>tarry</k>
-taervainen</ar>
-<ar><k>tart</k>
-hedelmätorttu, hempukka (halv), torttu</ar>
-<ar><k>tartar</k>
-hammaskivi, tataari, viinikivi</ar>
-<ar><k>task</k>
-kotitehtävä, tehtävä, työ (tehtävä)</ar>
-<ar><k>tassel</k>
-tupsu</ar>
-<ar><k>tassels</k>
-hapsut</ar>
-<ar><k>taste</k>
-maistaa, maistua</ar>
-<ar><k>tasteful</k>
-aistikas</ar>
-<ar><k>tastefulness</k>
-aistikkuus</ar>
-<ar><k>tasteless</k>
-aistiton, mauton</ar>
-<ar><k>tastiness</k>
-maukuus</ar>
-<ar><k>tasty</k>
-maukas</ar>
-<ar><k>tatter</k>
-riekale</ar>
-<ar><k>tattered</k>
-repaleinen, risainen</ar>
-<ar><k>tattoo</k>
-tatuointi
-
-tatuoida</ar>
-<ar><k>taught</k>
-kireä (köysi)</ar>
-<ar><k>taunt</k>
-ivasana, pikkasana
-
-letkauttaa, piikitellä</ar>
-<ar><k>tawny owl</k>
-lehtopöllö</ar>
-<ar><k>tax</k>
-vero
-
-verottaa</ar>
-<ar><k>tax bill</k>
-verolippu</ar>
-<ar><k>tax deduction</k>
-veronpidätys</ar>
-<ar><k>tax evasion</k>
-veronkavallus</ar>
-<ar><k>tax refund</k>
-veronpalautus</ar>
-<ar><k>tax relief</k>
-verohelpotus</ar>
-<ar><k>tax return</k>
-veroilmoitus</ar>
-<ar><k>tax-free</k>
-tulliton, tullivapaa</ar>
-<ar><k>taxable</k>
-verotettava</ar>
-<ar><k>taxation</k>
-verotus</ar>
-<ar><k>taxi</k>
-taksi</ar>
-<ar><k>taxi driver</k>
-ajuri</ar>
-<ar><k>taxi-rank</k>
-ajuriasema</ar>
-<ar><k>taxpayer</k>
-veronmaksaja</ar>
-<ar><k>tea</k>
-tee</ar>
-<ar><k>tea caddy</k>
-teetölkki</ar>
-<ar><k>tea-cosy</k>
-myssy (teekannun)</ar>
-<ar><k>tea-pot</k>
-teekannu</ar>
-<ar><k>teach</k>
-opettaa</ar>
-<ar><k>teacher</k>
-opettaja</ar>
-<ar><k>teacher's desk</k>
-katederi</ar>
-<ar><k>teaching</k>
-opetus</ar>
-<ar><k>teacup</k>
-teekuppi</ar>
-<ar><k>team</k>
-joukkue (urh), valjakko</ar>
-<ar><k>team-work</k>
-yhteistoiminta, yhteistyö</ar>
-<ar><k>tear</k>
-kyynel, repeämä
-
-raastaa, repeytyä, repiä, repäistä, revetä</ar>
-<ar><k>tear to pieces</k>
-raadella</ar>
-<ar><k>tear-duct</k>
-kyynelkanava</ar>
-<ar><k>tearful</k>
-kyyneleinen</ar>
-<ar><k>tears of joy</k>
-ilonkyynelet</ar>
-<ar><k>tease</k>
-härnätä, kiusoitella</ar>
-<ar><k>teaser</k>
-kiusantekijä</ar>
-<ar><k>teasing</k>
-naljailu</ar>
-<ar><k>teaspoon</k>
-teelusikka</ar>
-<ar><k>teat</k>
-nisä</ar>
-<ar><k>technical</k>
-teknillinen</ar>
-<ar><k>technical terminology</k>
-ammattisanasto</ar>
-<ar><k>technician</k>
-tekniikko</ar>
-<ar><k>technics</k>
-tekniikka</ar>
-<ar><k>technology</k>
-tekniikka</ar>
-<ar><k>teddy-boy</k>
-lättähattu</ar>
-<ar><k>tedious</k>
-ikävä</ar>
-<ar><k>tediousness</k>
-ikävyys</ar>
-<ar><k>tedium</k>
-ikävyys, ikävä</ar>
-<ar><k>teenager</k>
-teiniikäinen</ar>
-<ar><k>teeth</k>
-hampaisto</ar>
-<ar><k>telegram</k>
-sähke</ar>
-<ar><k>telegraph</k>
-lennätin</ar>
-<ar><k>telegraph wire</k>
-lennätinlanka</ar>
-<ar><k>telepathy</k>
-telepatia</ar>
-<ar><k>telephone</k>
-puhelin
-
-soittaa (puhelimessa)</ar>
-<ar><k>telephone box</k>
-puhelinkoppi</ar>
-<ar><k>telephone call</k>
-puhelinsoitto</ar>
-<ar><k>telephone directory</k>
-puhelinluettelo</ar>
-<ar><k>telephone exchange</k>
-puhelinkeskus</ar>
-<ar><k>telephone operator</k>
-puhelinvälittäjä</ar>
-<ar><k>telephoto</k>
-lennätinkuva</ar>
-<ar><k>teleprinter</k>
-kaukokirjoitin</ar>
-<ar><k>telescope</k>
-kaukoputki</ar>
-<ar><k>television</k>
-televisio</ar>
-<ar><k>television screen</k>
-kuvaruutu</ar>
-<ar><k>television transmission tower</k>
-linkkitorni</ar>
-<ar><k>telex</k>
-telex</ar>
-<ar><k>tell</k>
-kehottaa, sanoa</ar>
-<ar><k>tell a lie</k>
-valehdella</ar>
-<ar><k>tell about</k>
-kertoa</ar>
-<ar><k>tell fortunes</k>
-povata</ar>
-<ar><k>tell of</k>
-kertoa</ar>
-<ar><k>tell tales</k>
-juoruta (kannella), kannella, kieliä</ar>
-<ar><k>telltale</k>
-kantelija, kielikello (kuv)</ar>
-<ar><k>temper</k>
-karaista</ar>
-<ar><k>temperate</k>
-lauha, lauhkea</ar>
-<ar><k>temperature</k>
-lämpömäärä, lämpötila</ar>
-<ar><k>temperature curve</k>
-kuumekäyrä</ar>
-<ar><k>temperature sensor</k>
-lämpöanturi</ar>
-<ar><k>temple</k>
-ohimo, temppeli</ar>
-<ar><k>tempo</k>
-aikamitta</ar>
-<ar><k>temporal</k>
-maallinen</ar>
-<ar><k>temporarily</k>
-tilapäisesti, väliaikaisesti</ar>
-<ar><k>temporary</k>
-hetkellinen, tilapäinen, väliaikainen</ar>
-<ar><k>temporary nature</k>
-väliaikaisuus</ar>
-<ar><k>tempt</k>
-houkutella (kiusata)</ar>
-<ar><k>temptation</k>
-houkutus, kiusaus, viettelys</ar>
-<ar><k>tempting</k>
-houkutteleva, houkuttelu</ar>
-<ar><k>temptress</k>
-viettelijätär</ar>
-<ar><k>ten</k>
-kymmenen, kymppi</ar>
-<ar><k>ten times</k>
-kymmenkertainen</ar>
-<ar><k>ten years</k>
-vuosikymmen</ar>
-<ar><k>tenancy</k>
-hallinta (lak)</ar>
-<ar><k>tenant</k>
-alustalainen, vuokraaja, vuokralainen</ar>
-<ar><k>tench</k>
-suutari (kala)</ar>
-<ar><k>tend</k>
-hoitaa (hoivata), hoivata, kaita, paimentaa</ar>
-<ar><k>tendency</k>
-suuntaus, tendenssi, virtaus (kuv)</ar>
-<ar><k>tender</k>
-tarjous
-
-arka (hellä), hellä, hentomielinen, pehmeä</ar>
-<ar><k>tenderness</k>
-arkuus, hellyys, hellätunteisuus, hentous</ar>
-<ar><k>tendon</k>
-jänne</ar>
-<ar><k>tenfold</k>
-kymmenkertainen</ar>
-<ar><k>tennis</k>
-tennis</ar>
-<ar><k>tennis-court</k>
-tenniskenttä</ar>
-<ar><k>tenor</k>
-tenori</ar>
-<ar><k>tense</k>
-aikaluokka, aikamuoto</ar>
-<ar><k>tensely</k>
-jännittyneesti</ar>
-<ar><k>tenseness</k>
-kireys</ar>
-<ar><k>tension</k>
-kireys, jännitys, kiristys-, jännite, veto</ar>
-<ar><k>tension member</k>
-vetosauva</ar>
-<ar><k>tensioner</k>
-kiristin</ar>
-<ar><k>tent</k>
-teltta</ar>
-<ar><k>tentacle</k>
-lonkero (zo)</ar>
-<ar><k>tenth</k>
-kymmenes</ar>
-<ar><k>tenth part</k>
-kymmenes</ar>
-<ar><k>tepee</k>
-kota</ar>
-<ar><k>tepid</k>
-halea</ar>
-<ar><k>term</k>
-aikamäärä, istuntokausi, lukukausi, määräaika, nimitys, oppisana, sanonta, termi</ar>
-<ar><k>terminal block</k>
-kytkentärima</ar>
-<ar><k>termination</k>
-loppu, päättyminen</ar>
-<ar><k>terminology</k>
-terminologia</ar>
-<ar><k>termite</k>
-termiitti</ar>
-<ar><k>terms</k>
-ehdot (liik)</ar>
-<ar><k>terms of surrender</k>
-antautumisehdot</ar>
-<ar><k>tern</k>
-tiira (zo)</ar>
-<ar><k>terrace</k>
-pengermä, terassi</ar>
-<ar><k>terraced house</k>
-rivitalo</ar>
-<ar><k>terrain</k>
-maasto</ar>
-<ar><k>terrazzo</k>
-sementtimosaiikki</ar>
-<ar><k>terrible</k>
-hirmuinen, hirveä, kauhea</ar>
-<ar><k>terrify</k>
-hirvittää, kauhistuttaa</ar>
-<ar><k>terrifying</k>
-kauhistava</ar>
-<ar><k>territorial</k>
-alueelllinen</ar>
-<ar><k>territorial waters</k>
-aluevesi</ar>
-<ar><k>territory</k>
-ala, alue (ala)</ar>
-<ar><k>terrorism</k>
-hirmuvalta, terrori, terrorismi</ar>
-<ar><k>terrorist</k>
-terroristi</ar>
-<ar><k>terry cloth</k>
-frotee</ar>
-<ar><k>test</k>
-koe (kokeilu), koetus, testi
-
-koeajaa, koetella, testata, tutkia</ar>
-<ar><k>test connector</k>
-mittausliitin</ar>
-<ar><k>test copy</k>
-koekopio</ar>
-<ar><k>test cube</k>
-koekuutio</ar>
-<ar><k>test data</k>
-koestustiedot</ar>
-<ar><k>test market</k>
-koemarkkinat</ar>
-<ar><k>test pattern</k>
-testilehti</ar>
-<ar><k>testament</k>
-testamentti</ar>
-<ar><k>testicle</k>
-kives (anat)</ar>
-<ar><k>testimonial</k>
-työtodistus</ar>
-<ar><k>testing of materials</k>
-aineenkoetus</ar>
-<ar><k>tetanus</k>
-jäykkäkouristus</ar>
-<ar><k>text-book</k>
-oppikirja</ar>
-<ar><k>textile</k>
-tekstiili</ar>
-<ar><k>textile mill</k>
-kutoma</ar>
-<ar><k>texture</k>
-kudos</ar>
-<ar><k>thank</k>
-kiitellä, kiittää</ar>
-<ar><k>thankful</k>
-kiitollinen</ar>
-<ar><k>thanks</k>
-kiitos</ar>
-<ar><k>that sort</k>
-sellainen</ar>
-<ar><k>that will be the day</k>
-tuskinpa se tapahtuu [puhek.]</ar>
-<ar><k>that's it</k>
-sepä (se)</ar>
-<ar><k>that's strange</k>
-sepä (kummallista)</ar>
-<ar><k>thatched roof</k>
-olkikatto</ar>
-<ar><k>thaw</k>
-nuoska</ar>
-<ar><k>the above</k>
-ylläoleva</ar>
-<ar><k>the clock is slow</k>
-kello jätättää</ar>
-<ar><k>the done thing</k>
-korrekti tapa</ar>
-<ar><k>the old man</k>
-isäukko</ar>
-<ar><k>theatre</k>
-teatteri</ar>
-<ar><k>theatrical</k>
-teatterimainen</ar>
-<ar><k>theft</k>
-varkaus</ar>
-<ar><k>their</k>
-heidän</ar>
-<ar><k>theirs</k>
-heidän</ar>
-<ar><k>theme</k>
-teema (mus)</ar>
-<ar><k>themselves</k>
-itse (pron)</ar>
-<ar><k>theologian</k>
-jumaluusoppinut, teologi</ar>
-<ar><k>theological</k>
-jumaluusopillinen, teologinen</ar>
-<ar><k>theology</k>
-jumaluusoppi</ar>
-<ar><k>theoretical</k>
-opillinen, teoreettinen</ar>
-<ar><k>theory</k>
-teoria</ar>
-<ar><k>therapist</k>
-terapeutti</ar>
-<ar><k>there and back</k>
-edestakaisin (matka)</ar>
-<ar><k>therefore</k>
-sentähden, senvuoksi, siis, siksi</ar>
-<ar><k>therein</k>
-siinä</ar>
-<ar><k>thermal foil</k>
-eristyspaperi</ar>
-<ar><k>thermal unit</k>
-lämpöyksikkö</ar>
-<ar><k>thermometer</k>
-kuumemittari, lämpömittari</ar>
-<ar><k>thermos</k>
-termos</ar>
-<ar><k>thermos flask</k>
-termospullo</ar>
-<ar><k>thermostat</k>
-termostaatti</ar>
-<ar><k>these</k>
-nämä</ar>
-<ar><k>they</k>
-he, ne</ar>
-<ar><k>thick pancake</k>
-pannukakku</ar>
-<ar><k>thick pile carpet</k>
-nukkamatto</ar>
-<ar><k>thick-headed</k>
-kovapäinen</ar>
-<ar><k>thick-set</k>
-jäntterä, tanakka, vanttera</ar>
-<ar><k>thicken</k>
-saeta, tihetä</ar>
-<ar><k>thickened fruit juice</k>
-kiisseli</ar>
-<ar><k>thickening</k>
-suurus</ar>
-<ar><k>thicket</k>
-pensaikko, tiheikkö</ar>
-<ar><k>thickness</k>
-tiheys</ar>
-<ar><k>thief</k>
-varas</ar>
-<ar><k>thigh</k>
-reisi</ar>
-<ar><k>thimble</k>
-sormustin</ar>
-<ar><k>thin down</k>
-ohentaa</ar>
-<ar><k>thin out</k>
-harventa</ar>
-<ar><k>thing</k>
-asia, esine, kalu, kapine, olio</ar>
-<ar><k>think</k>
-arvella, luulla, miettiä, tuumailla, tuumata, tuumia, tuumiskella</ar>
-<ar><k>think about</k>
-ajatella, arvella (jstk)</ar>
-<ar><k>think of</k>
-ajatella, arvella (jstk)</ar>
-<ar><k>think over</k>
-harkita, punnita (kuv)</ar>
-<ar><k>think strange</k>
-oudoksua</ar>
-<ar><k>thinker</k>
-ajattelija</ar>
-<ar><k>thinness</k>
-hoikkuus, laihuus, ohuus</ar>
-<ar><k>thinning out</k>
-harveneminen</ar>
-<ar><k>third</k>
-kolmannes, kolmas, terssi (mus)</ar>
-<ar><k>thirst</k>
-jano</ar>
-<ar><k>thirst for</k>
-himo, janota</ar>
-<ar><k>thirteen</k>
-kolmetoista</ar>
-<ar><k>thirty</k>
-kolmekymmentä</ar>
-<ar><k>this one</k>
-tämä</ar>
-<ar><k>this side</k>
-tälläpuolella</ar>
-<ar><k>thistle</k>
-ohdake</ar>
-<ar><k>thorax</k>
-rintakehä</ar>
-<ar><k>thorn</k>
-oas, oka, piikki</ar>
-<ar><k>thorny</k>
-piikinen</ar>
-<ar><k>thorough</k>
-kertakaikkinen, perinpohjainen</ar>
-<ar><k>thoroughbred</k>
-jalorotuinen (hevonen), rotueläin, rotuhevonen</ar>
-<ar><k>thoroughfare</k>
-katu, kulkuväylä</ar>
-<ar><k>thoroughly</k>
-huolellisesti, kauttaaltaan, läpeensä, läpikotaisin, perin, perinjuurinen, tyystin</ar>
-<ar><k>those</k>
-nuo</ar>
-<ar><k>those who</k>
-jotka</ar>
-<ar><k>thoughness</k>
-sitkeys</ar>
-<ar><k>thought</k>
-aatos, ajattelu, ajatus, arvelu, luulo, miete, tuuma</ar>
-<ar><k>thoughtful</k>
-ajattelevainen, hienotunteinen</ar>
-<ar><k>thoughtless</k>
-ajattelematon</ar>
-<ar><k>thousand</k>
-tuhat</ar>
-<ar><k>thousandth</k>
-tuhannes</ar>
-<ar><k>thrash</k>
-kurittaa (lyödä), puida (kuv), suomia (piestä)</ar>
-<ar><k>thrashing</k>
-löylytys</ar>
-<ar><k>thread</k>
-ruuvikierre, kierre
-
-pujottaa</ar>
-<ar><k>thread cutter</k>
-kierrepakka</ar>
-<ar><k>threadbare</k>
-nukkavieru</ar>
-<ar><k>threat</k>
-uhka, uhkaus</ar>
-<ar><k>threaten</k>
-uhata, uhkailla</ar>
-<ar><k>threatened</k>
-uhanalainen</ar>
-<ar><k>threatening</k>
-uhkaava</ar>
-<ar><k>three</k>
-kolme</ar>
-<ar><k>three times</k>
-kolmesti</ar>
-<ar><k>three-</k>
-kolmi</ar>
-<ar><k>threefold</k>
-kolminainen</ar>
-<ar><k>thresh</k>
-puida</ar>
-<ar><k>threshold</k>
-kynnys</ar>
-<ar><k>thrifty</k>
-säästäväinen</ar>
-<ar><k>thrilled to bits</k>
-ihastunut [puhek.]</ar>
-<ar><k>thriller</k>
-jännäri</ar>
-<ar><k>thrilling</k>
-jännittävä (kuv), repäisevä</ar>
-<ar><k>thrive</k>
-kukoistaa (kuv)</ar>
-<ar><k>throat</k>
-kaula, kurkku (anat), nielu</ar>
-<ar><k>throb</k>
-sykkiä, sykähdys
-
-pamppailla, sykähtää</ar>
-<ar><k>throng</k>
-tungos</ar>
-<ar><k>throttle</k>
-kurisläppä
-
-kuristaa (tekn)</ar>
-<ar><k>throughout</k>
-läpeensä, läpikotaisin</ar>
-<ar><k>throw</k>
-heittovuoro, heitto
-
-heitellä, heittää, paiskata, suistaa, viskata</ar>
-<ar><k>throw back</k>
-heijastaa</ar>
-<ar><k>throw one's arms about</k>
-hosua (käsillään)</ar>
-<ar><k>throw oneself</k>
-heittäytyä</ar>
-<ar><k>throw the book at</k>
-rangaista [puhek.]</ar>
-<ar><k>thrush</k>
-rastas</ar>
-<ar><k>thrust</k>
-työntö
-
-survaista, sysätä, työntää</ar>
-<ar><k>thud</k>
-jymähdys
-
-jymähtää</ar>
-<ar><k>thumb</k>
-peukalo</ar>
-<ar><k>thumbed ride</k>
-peukalokyyti [puhek.]</ar>
-<ar><k>thump</k>
-jyskyttää</ar>
-<ar><k>thumper</k>
-koputin</ar>
-<ar><k>thunder</k>
-jyristä, jyrähtää</ar>
-<ar><k>thunder-cloud</k>
-ukkospilvi</ar>
-<ar><k>thunderstorm</k>
-ukonilma</ar>
-<ar><k>thundery shower</k>
-ukkoskuuro</ar>
-<ar><k>thus</k>
-tällä lailla, niin (siten), niinmuodoin, siis, siten, täten</ar>
-<ar><k>thyme</k>
-ajuruoho</ar>
-<ar><k>thymus</k>
-kateenkorva</ar>
-<ar><k>thyroid gland</k>
-kilpirauhanen</ar>
-<ar><k>tibia</k>
-sääriluu</ar>
-<ar><k>tick</k>
-punkki, rasti</ar>
-<ar><k>ticker-tape</k>
-serpentiinit</ar>
-<ar><k>ticket</k>
-lippu (piletti), matkalippu, piletti, pääsylippu</ar>
-<ar><k>ticket-office</k>
-lippumyymälä</ar>
-<ar><k>tickle</k>
-kutku
-
-kutittaa</ar>
-<ar><k>tickling</k>
-kutku</ar>
-<ar><k>tidal-wave</k>
-hyöky (aalto)</ar>
-<ar><k>tiddly</k>
-tuiterissa</ar>
-<ar><k>tide</k>
-vuorovesi</ar>
-<ar><k>tidiness</k>
-siisteys</ar>
-<ar><k>tidings</k>
-sanoma, viesti</ar>
-<ar><k>tidy</k>
-siivota</ar>
-<ar><k>tidy up</k>
-siistiä</ar>
-<ar><k>tie</k>
-solmio
-
-köyttää, solmia</ar>
-<ar><k>tie wrap</k>
-sidosnauha</ar>
-<ar><k>tiger</k>
-tiikeri</ar>
-<ar><k>tiger cub</k>
-tiikerinpenttu</ar>
-<ar><k>tight</k>
-tiukka, tiivis, luja, kiinteä, ahdas, kireä, pingotettu, kitsas, saita
-
-tiivis</ar>
-<ar><k>tight-fisted</k>
-saita</ar>
-<ar><k>tighten</k>
-jännittyä, kiristyä, kiristää, pingottaa, tiivistyä, tiivistää, tiukentaa, kiertää kiinni</ar>
-<ar><k>tightening</k>
-tiivistys</ar>
-<ar><k>tightly</k>
-tiiviisti, tiukasti</ar>
-<ar><k>tightness</k>
-ahtaus, tiiviys</ar>
-<ar><k>tights</k>
-sukkahousut</ar>
-<ar><k>tile</k>
-kattotiili, laatta</ar>
-<ar><k>tiler</k>
-laatoittaja</ar>
-<ar><k>tiling</k>
-laatoitus</ar>
-<ar><k>tiling work</k>
-laattatyöt</ar>
-<ar><k>tillage</k>
-viljely</ar>
-<ar><k>tiller</k>
-viljelijä</ar>
-<ar><k>tilt</k>
-kallistuma</ar>
-<ar><k>tilted</k>
-kallellaan</ar>
-<ar><k>tilting</k>
-kaatuminen</ar>
-<ar><k>timber</k>
-puutavara</ar>
-<ar><k>timber flooring</k>
-puulattia</ar>
-<ar><k>timber panelling</k>
-puulevyverhous</ar>
-<ar><k>timber slide</k>
-uittokouru</ar>
-<ar><k>timberwork</k>
-puutyöt, salvos</ar>
-<ar><k>time for consideration</k>
-ajatusaika, miettimisaika</ar>
-<ar><k>time of anxiety</k>
-ankea aika</ar>
-<ar><k>time of germination</k>
-itämisaika</ar>
-<ar><k>time off</k>
-joutoaika</ar>
-<ar><k>time-consuming</k>
-aikaaviepä</ar>
-<ar><k>time-keeper</k>
-ajanottaja</ar>
-<ar><k>time-saving</k>
-aikaasäästävä</ar>
-<ar><k>time-signal</k>
-aikamerkki</ar>
-<ar><k>time-table</k>
-aikataulu</ar>
-<ar><k>timeless</k>
-ajaton</ar>
-<ar><k>timetable</k>
-lukujärjestys</ar>
-<ar><k>timidity</k>
-arkuus (pelokuus)</ar>
-<ar><k>timing</k>
-ajastus</ar>
-<ar><k>timing disc</k>
-pulssipyörä</ar>
-<ar><k>tin</k>
-metallirasia, peltirasia, peltipurkki, pönttö
-
-tinata
-
-tina</ar>
-<ar><k>tin opener</k>
-tölkinavaaja</ar>
-<ar><k>tin plate</k>
-läkkipelti</ar>
-<ar><k>tinea</k>
-savipuoli</ar>
-<ar><k>tinfoil</k>
-tinapaperi</ar>
-<ar><k>tinge</k>
-vivahdus</ar>
-<ar><k>tingle</k>
-kihelmöidä</ar>
-<ar><k>tinker with</k>
-näperrellä</ar>
-<ar><k>tinkle</k>
-kilinä, solina, helinä
-
-helistellä, helistä, kilahtaa, solista</ar>
-<ar><k>tinned fish</k>
-kalasäilykkeet</ar>
-<ar><k>tinned goods</k>
-säilyke</ar>
-<ar><k>tinned meat</k>
-lihasäilykkeet</ar>
-<ar><k>tinning</k>
-tinaus</ar>
-<ar><k>tint</k>
-värjätä</ar>
-<ar><k>tinted putty</k>
-värillinen kitti</ar>
-<ar><k>tiny</k>
-hitunen</ar>
-<ar><k>tip</k>
-juomaraha, nipukka, viittaus
-
-antaa juomarahaa</ar>
-<ar><k>tip over</k>
-keikahtaa (kumoon)</ar>
-<ar><k>tipsy</k>
-tuiterissa</ar>
-<ar><k>tire</k>
-uupua, väsyttää</ar>
-<ar><k>tire of</k>
-kyllästyä</ar>
-<ar><k>tire out</k>
-uuvuttaa</ar>
-<ar><k>tired of</k>
-kyllästynyt</ar>
-<ar><k>tired out</k>
-uuvuksissa</ar>
-<ar><k>tiredness</k>
-väsyksissä</ar>
-<ar><k>tiresome</k>
-ikävä</ar>
-<ar><k>tiring</k>
-väsyttävä</ar>
-<ar><k>titbit</k>
-herkkupala, makupala</ar>
-<ar><k>title</k>
-arvonimi, nimi (kirjan), nimike, otsikko, päällekirjoitus</ar>
-<ar><k>titmouse</k>
-tiainen</ar>
-<ar><k>tits *</k>
-tissit [alat.]</ar>
-<ar><k>titter</k>
-hihttää, kikattaa, tirskua</ar>
-<ar><k>tittle</k>
-tirskunta</ar>
-<ar><k>to and fro</k>
-edestakaisin</ar>
-<ar><k>to assemble</k>
-asentaa, koota</ar>
-<ar><k>to begin with</k>
-ensialuksi, ensin (aluksi)</ar>
-<ar><k>to braze</k>
-kovajuottaa</ar>
-<ar><k>to draft</k>
-suunnitella</ar>
-<ar><k>to draw</k>
-piirtää</ar>
-<ar><k>to fill</k>
-tasoittaa</ar>
-<ar><k>to fit</k>
-sovittaa</ar>
-<ar><k>to galvanize</k>
-galvanoida</ar>
-<ar><k>to glue</k>
-liimata</ar>
-<ar><k>to greater advantage</k>
-edullisemmin</ar>
-<ar><k>to knot</k>
-kitata</ar>
-<ar><k>to land</k>
-maihin</ar>
-<ar><k>to mitre</k>
-viistää</ar>
-<ar><k>to no purpose</k>
-hukkaan, turhaan</ar>
-<ar><k>to oil</k>
-öljytä</ar>
-<ar><k>to paint</k>
-maalata, lakata</ar>
-<ar><k>to pin</k>
-kiinnittää</ar>
-<ar><k>to plane</k>
-höylätä</ar>
-<ar><k>to port</k>
-vasemmalle (mer)</ar>
-<ar><k>to sandpaper</k>
-hioa</ar>
-<ar><k>to saw</k>
-sahata</ar>
-<ar><k>to scribe</k>
-merkitä</ar>
-<ar><k>to sketch</k>
-luonnostella</ar>
-<ar><k>to solder</k>
-juottaa</ar>
-<ar><k>to stain</k>
-petsata</ar>
-<ar><k>to the destination</k>
-perille</ar>
-<ar><k>to the end</k>
-loppuun</ar>
-<ar><k>to the front</k>
-esille, eteen</ar>
-<ar><k>to the left</k>
-vasemmalla, vasemmalle</ar>
-<ar><k>to the rear</k>
-perälle</ar>
-<ar><k>to the side</k>
-sivulle</ar>
-<ar><k>to them</k>
-heille, heille</ar>
-<ar><k>to this side</k>
-tällepuolelle</ar>
-<ar><k>to tin</k>
-tinata</ar>
-<ar><k>to us</k>
-meille</ar>
-<ar><k>to wax</k>
-vahata</ar>
-<ar><k>to wedge</k>
-kiilata</ar>
-<ar><k>to whom</k>
-kenelle</ar>
-<ar><k>to you</k>
-teille</ar>
-<ar><k>toad</k>
-konna (zo)</ar>
-<ar><k>toadstool</k>
-myrkkysieni</ar>
-<ar><k>toast</k>
-malja (jkn kunniaksi)</ar>
-<ar><k>toaster</k>
-paahdin (leivän)</ar>
-<ar><k>tobacco</k>
-tupakkka</ar>
-<ar><k>tobacconist</k>
-tupakkakauppa</ar>
-<ar><k>tobacconist's</k>
-tupakkakauppa</ar>
-<ar><k>toboggan</k>
-kelkka</ar>
-<ar><k>tobogganing</k>
-mäenlasku</ar>
-<ar><k>today</k>
-tänään</ar>
-<ar><k>toddle</k>
-taapertaa</ar>
-<ar><k>toddler</k>
-pallero, taapertaja</ar>
-<ar><k>toe</k>
-varvas</ar>
-<ar><k>together with</k>
-kanssa, ynnä</ar>
-<ar><k>toil</k>
-ahertaa, raataa, uurastaa</ar>
-<ar><k>toilet</k>
-klosetti, käymälä, wc</ar>
-<ar><k>toilet paper</k>
-toalettipaperi</ar>
-<ar><k>toilet soap</k>
-ihosaippua</ar>
-<ar><k>toiling</k>
-raadanta</ar>
-<ar><k>token</k>
-merkki</ar>
-<ar><k>tolerably</k>
-auttavasti, kutakuinkin</ar>
-<ar><k>tolerance</k>
-tässä, sallittu, mittapoikkeama</ar>
-<ar><k>tolerate</k>
-kärsiä (suvaita), sietää, suvaita</ar>
-<ar><k>toll</k>
-kierittää</ar>
-<ar><k>tomato ketchup</k>
-tomaatti</ar>
-<ar><k>tomb</k>
-hauta, holvihauta</ar>
-<ar><k>tomorrow</k>
-huomenna, huomispäivä</ar>
-<ar><k>tomorrow evening</k>
-huomeniltana</ar>
-<ar><k>tomorrow morning</k>
-houmenaaamuna</ar>
-<ar><k>ton</k>
-tonni</ar>
-<ar><k>tone-down</k>
-kopiojäljen vaalennus</ar>
-<ar><k>tone-up</k>
-kopiojäljen tummennus</ar>
-<ar><k>toner control patch</k>
-väritarke</ar>
-<ar><k>toner dispenser</k>
-värinsyöttölaite</ar>
-<ar><k>tongue</k>
-kieli (anat), kieli (puhuttu), urospontti</ar>
-<ar><k>tongue and groove</k>
-ponttiliitos</ar>
-<ar><k>tonnage</k>
-tonnisto</ar>
-<ar><k>tonsil</k>
-nielurisa, nielurisa</ar>
-<ar><k>tonsillitis</k>
-angiina</ar>
-<ar><k>too much</k>
-liiaksi</ar>
-<ar><k>tool</k>
-kätyri, suutin, työkalu</ar>
-<ar><k>tool shed</k>
-työkalukoppi</ar>
-<ar><k>toothless</k>
-hampaaton</ar>
-<ar><k>toothpaste</k>
-hammastahna</ar>
-<ar><k>toothpick</k>
-hammastikku</ar>
-<ar><k>top</k>
-harja, huippu, laki (korkein kohta), latva, pää (latva), ylin, yläosa
-
-ylä-
-
-latvoa</ar>
-<ar><k>top boom</k>
-yläpaarre</ar>
-<ar><k>top cover</k>
-kansi</ar>
-<ar><k>top hinged</k>
-ylhäältä saranoitu</ar>
-<ar><k>top price</k>
-enimmäishinta, huippuhinta</ar>
-<ar><k>top transom</k>
-yläkehys</ar>
-<ar><k>top-to-bottom</k>
-pitkittäinen, pitkittäis-</ar>
-<ar><k>topaz</k>
-topaasi</ar>
-<ar><k>topic</k>
-aihe</ar>
-<ar><k>topical</k>
-ajankohtainen, päivänkohtainen</ar>
-<ar><k>topless</k>
-yläton</ar>
-<ar><k>topmost</k>
-korkein, päällimmäinen, ylin</ar>
-<ar><k>topple over</k>
-keikahtaa (kumoon)</ar>
-<ar><k>tops</k>
-naatit</ar>
-<ar><k>topsail</k>
-latvapurje</ar>
-<ar><k>topsoil</k>
-pintamaa</ar>
-<ar><k>topsy-turvi</k>
-nurin</ar>
-<ar><k>torch</k>
-soihtu, taskulamppu</ar>
-<ar><k>torment</k>
-kiduttaa (kiusata), kiusata, rääkätä</ar>
-<ar><k>torn</k>
-repeytynyt</ar>
-<ar><k>torpedo</k>
-torpedo</ar>
-<ar><k>torpor</k>
-horros</ar>
-<ar><k>torque</k>
-vääntömomentti</ar>
-<ar><k>torsion</k>
-vääntö</ar>
-<ar><k>torsion spring</k>
-vääntöjousi</ar>
-<ar><k>tortoise</k>
-kilpikonna</ar>
-<ar><k>torture</k>
-kidutus, piina
-
-kiduttaa, rääkätä</ar>
-<ar><k>toss</k>
-heitto, puskia (sonnista)
-
-heitellä, heittelehtiä, heittää, viskata</ar>
-<ar><k>total</k>
-kokonainen, kokonais-, summa</ar>
-<ar><k>total amount</k>
-loppusumma, yhteismäärä</ar>
-<ar><k>totally</k>
-kokonaan, täysin (kokonaan)</ar>
-<ar><k>totter</k>
-hoiperrella, hoippua, horjua</ar>
-<ar><k>touch</k>
-kosketus, sävy (vivahdus), tunto, vivahdus
-
-kosketella, koskettaa, retusoida, koskea</ar>
-<ar><k>touch down</k>
-laskeutua (lentokone)</ar>
-<ar><k>touch gently</k>
-hivellä</ar>
-<ar><k>touch lightly</k>
-hipaista</ar>
-<ar><k>touch up</k>
-kohentaa (parennella)</ar>
-<ar><k>touch upon</k>
-kajota (kuv), kosketella (kuv)</ar>
-<ar><k>touchy</k>
-ärtyinen, ärtyisä</ar>
-<ar><k>tough</k>
-sitkeä, työläs, vahva, vaikea (vakava)</ar>
-<ar><k>tour</k>
-kiertomatka</ar>
-<ar><k>touring company</k>
-kiertue, teatteriseurue</ar>
-<ar><k>tourism</k>
-matkailu</ar>
-<ar><k>tourist</k>
-huvimatkailija</ar>
-<ar><k>tourist centre</k>
-matkailukeskus</ar>
-<ar><k>tournament</k>
-turnajaiset, turnaus</ar>
-<ar><k>tousled</k>
-pörröinen</ar>
-<ar><k>tow</k>
-tappurat, veto
-
-hinata, laahata</ar>
-<ar><k>towage</k>
-hinaus</ar>
-<ar><k>toward</k>
-kohden, kohtaan, jtk kohti</ar>
-<ar><k>towards</k>
-kohden, kohtaan, jtk kohti, päin, vastaan (kohti)</ar>
-<ar><k>towards evening</k>
-illansuussa, iltapuolella</ar>
-<ar><k>towards midnight</k>
-iltayöstä</ar>
-<ar><k>towel</k>
-käsipyyhe, pyyhe, pyyhinliina</ar>
-<ar><k>tower</k>
-torni</ar>
-<ar><k>towing</k>
-hinaus</ar>
-<ar><k>towline</k>
-hinausköysi</ar>
-<ar><k>town</k>
-kaupunki</ar>
-<ar><k>town hall</k>
-raatihuone</ar>
-<ar><k>town resident</k>
-kaupunkilainen</ar>
-<ar><k>towrope</k>
-hinausköysi</ar>
-<ar><k>toxin</k>
-toksiini</ar>
-<ar><k>toy</k>
-leikkikalu, lelu</ar>
-<ar><k>trace</k>
-jälki
-
-hahmotella, jäljittää, kalkioida</ar>
-<ar><k>trace elements</k>
-hivenaineet</ar>
-<ar><k>traceless</k>
-jäljetön</ar>
-<ar><k>tracing paper</k>
-kuultopaperi</ar>
-<ar><k>tracing-paper</k>
-kalkiopaperi (läpinäkyvä)</ar>
-<ar><k>track</k>
-jälki, latu, raide, rata
-
-jäljittää</ar>
-<ar><k>tracking</k>
-ajo (jälkiä myönten), jäljitys</ar>
-<ar><k>trackless</k>
-jäljetön</ar>
-<ar><k>traction-engine</k>
-lokomobiili</ar>
-<ar><k>tractor</k>
-traktori</ar>
-<ar><k>trade</k>
-ammattiala, ammatti (käsityö), ammattiala, ammattikunta, elinkeino, kauppa
-
-kauppa</ar>
-<ar><k>trade agreement</k>
-kauppasopimus</ar>
-<ar><k>trade fair</k>
-messut</ar>
-<ar><k>trade mark</k>
-tavaramerkki</ar>
-<ar><k>trade policy</k>
-kauppapolitiikka</ar>
-<ar><k>trade receivables</k>
-myyntisaatavat</ar>
-<ar><k>trade rivalry</k>
-ammattikateus</ar>
-<ar><k>trade school</k>
-ammattikoulu</ar>
-<ar><k>trade secret</k>
-ammattisaliasuus, liikesalaisuus</ar>
-<ar><k>trade union</k>
-ammattiyhdistys</ar>
-<ar><k>trade-wind</k>
-pasaatituuli</ar>
-<ar><k>trader</k>
-kauppamies</ar>
-<ar><k>trades union</k>
-ammattiliito</ar>
-<ar><k>tradesman</k>
-kauppamies, kauppias</ar>
-<ar><k>tradition</k>
-perimätieto, perinne</ar>
-<ar><k>traditional</k>
-perinnäinen, perinteellinen</ar>
-<ar><k>traditional poem</k>
-kansanruno</ar>
-<ar><k>traffic accident</k>
-liikenneonnettomuus</ar>
-<ar><k>traffic jam</k>
-liikenneseisaus, liikenneruuhka</ar>
-<ar><k>traffic light</k>
-liikennevalo</ar>
-<ar><k>traffic regulations</k>
-liikennesäännöt</ar>
-<ar><k>traffic route</k>
-liikenneväylä</ar>
-<ar><k>traffic sign</k>
-liikennemerkki</ar>
-<ar><k>traffic violation</k>
-liikennerikkomus</ar>
-<ar><k>tragedy</k>
-murhenäytelmä, tragedia</ar>
-<ar><k>trail</k>
-latu, metsäpolku, polku
-
-laahata, laahustaa, raahata</ar>
-<ar><k>trail edge</k>
-takareuna</ar>
-<ar><k>trailer</k>
-perävaunu</ar>
-<ar><k>train</k>
-juna
-
-harjaannuttaa, harjoittaa, kouluttaa, treenata, valmentaa, valmistautua</ar>
-<ar><k>train ferry</k>
-junalautta</ar>
-<ar><k>train of thought</k>
-ajatuksenjuoksu, järjenjuoksu</ar>
-<ar><k>train service</k>
-junavuoro</ar>
-<ar><k>trainer</k>
-valmentaja</ar>
-<ar><k>training</k>
-dresyyri, harjaantuneisuus, harjoittelu, opetus, treenaus, valmennus, koulutus</ar>
-<ar><k>traitor</k>
-isänmaankavaltaja, kavaltaja, maankavaltaja, petturi</ar>
-<ar><k>tram</k>
-raitiovaunu</ar>
-<ar><k>tramp</k>
-kulkuri
-
-kopina</ar>
-<ar><k>trample</k>
-polkea, sortaa (polkia), tallata, tallustaa</ar>
-<ar><k>tramway</k>
-raitiotie</ar>
-<ar><k>tranquil</k>
-tyyni</ar>
-<ar><k>tranquillity</k>
-tyyneys</ar>
-<ar><k>tranquillizer</k>
-rauhoite (lääk)</ar>
-<ar><k>transaction</k>
-toimitus</ar>
-<ar><k>transfer</k>
-siirto
-
-siirtyä, siirtää (pois)</ar>
-<ar><k>transfer current</k>
-siirtovirta</ar>
-<ar><k>transfer dicorotron</k>
-siirtokorotroni</ar>
-<ar><k>transfer roll</k>
-siirtotela</ar>
-<ar><k>transform</k>
-muuntaa, muuttaa</ar>
-<ar><k>transformer</k>
-muuntaja</ar>
-<ar><k>transitory</k>
-katoava</ar>
-<ar><k>translate</k>
-kääntää (kiel)</ar>
-<ar><k>translation</k>
-käännös (kielellinen)</ar>
-<ar><k>translator</k>
-kielenkääntäjä, kääntäjä</ar>
-<ar><k>translucent</k>
-läpikuultava</ar>
-<ar><k>transmission</k>
-lähetys (rad), välitys (mek)</ar>
-<ar><k>transmit</k>
-välittää</ar>
-<ar><k>transmitter</k>
-lähetin, televisiolähetin</ar>
-<ar><k>transparency</k>
-kuulakkuus, kuultokuva</ar>
-<ar><k>transparent</k>
-kuulakas, läpikuultava, läpinäkyvä, diakuva</ar>
-<ar><k>transport</k>
-kuljettaa
-
-kuljetus-, kuljetin
-
-kuljetus</ar>
-<ar><k>transport column</k>
-kuormasto</ar>
-<ar><k>transportation</k>
-kuljetus</ar>
-<ar><k>trap</k>
-ansa, loukku, paula (ansa), pyydys, sadin, hajulukko
-
-pyydystaa (ansoilla)</ar>
-<ar><k>trap door</k>
-kattoluukku, lattialuukku</ar>
-<ar><k>trap-door</k>
-lattialuukku</ar>
-<ar><k>trapeze</k>
-trapetsi</ar>
-<ar><k>trapper</k>
-turkismetsästäjä</ar>
-<ar><k>trash</k>
-roska, törky</ar>
-<ar><k>travel</k>
-kulkea (matkata), matkailla, matkustaa, matkustella</ar>
-<ar><k>travel agent</k>
-matkatoimisto</ar>
-<ar><k>traveller</k>
-matkailija, matkustaja</ar>
-<ar><k>travellers cheque</k>
-matkasekki</ar>
-<ar><k>travelling</k>
-kiertävä</ar>
-<ar><k>travelling rug</k>
-matkahuopa</ar>
-<ar><k>trawl</k>
-pohjanuotta</ar>
-<ar><k>tray</k>
-alusta</ar>
-<ar><k>treacherous</k>
-kavala, petollinen</ar>
-<ar><k>treacle</k>
-siirappi</ar>
-<ar><k>tread</k>
-astua (käydä), kulupinta, käydä (astua), polkea</ar>
-<ar><k>tread on</k>
-tallata</ar>
-<ar><k>treading</k>
-astunta</ar>
-<ar><k>treadle</k>
-poljin</ar>
-<ar><k>treason</k>
-maankavallus</ar>
-<ar><k>treasure</k>
-aarre</ar>
-<ar><k>treasure seeker</k>
-aarteenetsijä</ar>
-<ar><k>treasure trove</k>
-aarrelöytö</ar>
-<ar><k>treasure-house</k>
-aarteisto</ar>
-<ar><k>treasury</k>
-aarreaitta, aarteisto</ar>
-<ar><k>treat</k>
-hoitaa (lääk), kohdella, kosketella (kuv), käsitellä, käsitellä (kuv)</ar>
-<ar><k>treat cruelly</k>
-kohdella kaltoin</ar>
-<ar><k>treatment</k>
-hoito (lääk), kohtelu, käsittely, lääkintä</ar>
-<ar><k>treatment plant</k>
-käsittelylaitos</ar>
-<ar><k>treaty</k>
-liitto (sopimus), traktaatti</ar>
-<ar><k>treble</k>
-diskantti (mus)</ar>
-<ar><k>tree</k>
-puu</ar>
-<ar><k>tremble</k>
-värähdys
-
-järistä (vapista), tutista, vapista, väristä</ar>
-<ar><k>trembling</k>
-värinä</ar>
-<ar><k>tremendous</k>
-valtava</ar>
-<ar><k>tremor</k>
-vavistus, värinä</ar>
-<ar><k>trench</k>
-juoksuhauta, oja</ar>
-<ar><k>trench warfare</k>
-asemasota</ar>
-<ar><k>trend</k>
-suuntaus, tendenssi</ar>
-<ar><k>trend of ideas</k>
-ajatussuunta</ar>
-<ar><k>trespass</k>
-rikkoa (loukata)</ar>
-<ar><k>trestle</k>
-pukki (teline)</ar>
-<ar><k>tri-</k>
-kolmi</ar>
-<ar><k>trial</k>
-karsintakilpailu, koe, koeajo, koettelmus, koetus, kokeilu</ar>
-<ar><k>trial heat</k>
-koeerä</ar>
-<ar><k>triangle</k>
-kolmikulma, kolmio</ar>
-<ar><k>triangular</k>
-kolmikulmainen</ar>
-<ar><k>triangular load</k>
-kolmiokuorma</ar>
-<ar><k>tribe</k>
-heimo, kansanheimo</ar>
-<ar><k>tributary</k>
-lisäjoki, sivujoki</ar>
-<ar><k>trick</k>
-juoni, kepponen, kolttonen, konsti, kuje, metku, niksi, temppu, tikki (pelissä)
-
-petkuttaa, puijata</ar>
-<ar><k>trickle</k>
-herahtaa, herua, kihota, tihkua</ar>
-<ar><k>tricks</k>
-elje (elkeet), kujeilu</ar>
-<ar><k>tricky</k>
-kiperä (kuv), konstikas, vaikea (vakava)</ar>
-<ar><k>tricky question</k>
-kompakysymys</ar>
-<ar><k>tricot</k>
-trikoo</ar>
-<ar><k>tricycle</k>
-kolmipyörä</ar>
-<ar><k>trifle</k>
-joutava asia, pikkuasia, pikkuseikka
-
-hiukan</ar>
-<ar><k>trifling</k>
-mitätön, turhanpäiväinen, tyhjänpäiväinen, vähäpätöinen</ar>
-<ar><k>trifling matter</k>
-pikkuasia</ar>
-<ar><k>trigger</k>
-liipaisin</ar>
-<ar><k>trigger contact</k>
-piipaisukosketin</ar>
-<ar><k>trim</k>
-leikata (tukka), oksia, somistaa, syrjätä</ar>
-<ar><k>trimmer</k>
-vaihto-orsi</ar>
-<ar><k>trimmer bar</k>
-tasoitustanko</ar>
-<ar><k>trimming</k>
-koriste (puvun ym), tasoitus</ar>
-<ar><k>trinket</k>
-hely, koriste (koru), koru</ar>
-<ar><k>trio</k>
-kolmikko</ar>
-<ar><k>trip</k>
-matka (lyhyempi), retki, sipsutus
-
-kampata, kompastua, sipsuttaa</ar>
-<ar><k>trip by air</k>
-lentomatka</ar>
-<ar><k>triple</k>
-kolmi, kolminainen, kolminainen</ar>
-<ar><k>triple jump</k>
-kolmiloikka</ar>
-<ar><k>triplets</k>
-kolmeset</ar>
-<ar><k>tripod</k>
-kolmijalka, statiivi</ar>
-<ar><k>tripping</k>
-sipsutus</ar>
-<ar><k>triumph</k>
-voitonriemu, voitto</ar>
-<ar><k>triumphant</k>
-voitonriemuinen</ar>
-<ar><k>trivial</k>
-mitätön, turhanpäiväinen, vähäpätöinen</ar>
-<ar><k>triviality</k>
-joutavuus, tyhjäpäiväisyys</ar>
-<ar><k>trolley bus</k>
-johdinauto</ar>
-<ar><k>trombone</k>
-pasuuna</ar>
-<ar><k>troop</k>
-eskadroona, joukko (järjestynyt), joukkue (sot)</ar>
-<ar><k>tropical</k>
-trooppinen</ar>
-<ar><k>tropics</k>
-tropiikki</ar>
-<ar><k>trot</k>
-lönkytys
-
-lönkyttää, ravata</ar>
-<ar><k>trotting</k>
-raviurheilu</ar>
-<ar><k>trouble</k>
-kiusata, vaivata</ar>
-<ar><k>troubleshoot</k>
-hakea vikaa</ar>
-<ar><k>troublesome</k>
-hankala, kiusallinen, vaivalloinen, vastuksellinen</ar>
-<ar><k>trough</k>
-allas, kaukalo, purtilo</ar>
-<ar><k>trouser suit</k>
-housupuku</ar>
-<ar><k>trousseau</k>
-kapiot</ar>
-<ar><k>trowel</k>
-lasta (muurarin)
-
-muurauskauha, -lasta</ar>
-<ar><k>truant</k>
-pinnari (tunnilta)</ar>
-<ar><k>truce</k>
-aselepo, välirauha</ar>
-<ar><k>truck</k>
-trukki</ar>
-<ar><k>truck mixer</k>
-betoninkuljetusauto</ar>
-<ar><k>true</k>
-tosi</ar>
-<ar><k>true to</k>
-uskollinen</ar>
-<ar><k>truffle</k>
-multasieni</ar>
-<ar><k>truly</k>
-todella, todeteolla, totisesti</ar>
-<ar><k>trump</k>
-valtti</ar>
-<ar><k>trumpet</k>
-torvi, trumpetti</ar>
-<ar><k>trumpeter</k>
-torvensoittaja</ar>
-<ar><k>truncheon</k>
-pamppu, patukka</ar>
-<ar><k>trunk</k>
-matkaarkku, kärsä (norsun), matkaarkku, runko (puun ym), vartalo</ar>
-<ar><k>trunk call</k>
-kaukopuhelu</ar>
-<ar><k>trunks</k>
-uimahousut</ar>
-<ar><k>truss</k>
-ansas (rak), kohjuvyö, ristikko</ar>
-<ar><k>trust</k>
-luottaa (jhk), uskoa
-
-luottamus</ar>
-<ar><k>trusted</k>
-uskottu</ar>
-<ar><k>trusting</k>
-luottavainen</ar>
-<ar><k>trustworthy</k>
-luotettava</ar>
-<ar><k>truth</k>
-tosi, totuus</ar>
-<ar><k>truthful</k>
-todenmukainen</ar>
-<ar><k>truthfulness</k>
-todenmukaisuus</ar>
-<ar><k>try</k>
-yritys
-
-koettaa, kokeilla, pyrkiä (koettaa), yrittää</ar>
-<ar><k>try to be smart</k>
-viisatella</ar>
-<ar><k>try to hinder</k>
-estellä</ar>
-<ar><k>tub</k>
-amme, saavi, soikko, tiinu</ar>
-<ar><k>tube</k>
-letku, putki (johto), radioputki, sisärengas, torvi (anat)</ar>
-<ar><k>tubeless</k>
-sisärenkaaton</ar>
-<ar><k>tuberculosis</k>
-tuberkuloosi</ar>
-<ar><k>tubing</k>
-letku</ar>
-<ar><k>tubular</k>
-putkimainen</ar>
-<ar><k>tuck</k>
-laskosjälki
-
-poimuttaa</ar>
-<ar><k>tuft</k>
-hahtuva, tupsu</ar>
-<ar><k>tufty</k>
-tuuhea</ar>
-<ar><k>tug</k>
-nykäisyys
-
-kiskoa</ar>
-<ar><k>tug boat</k>
-hinaaja</ar>
-<ar><k>tug of war</k>
-köydenveto (urh)</ar>
-<ar><k>tulip</k>
-tulppaani</ar>
-<ar><k>tumble</k>
-keikahtaa</ar>
-<ar><k>tumble down</k>
-luhistua, suistua</ar>
-<ar><k>tumble to</k>
-hoksata</ar>
-<ar><k>tumult</k>
-hälinä, temmellys</ar>
-<ar><k>tune</k>
-laulu, vire
-
-virittää (mus)</ar>
-<ar><k>tuned</k>
-vireessä (mus)</ar>
-<ar><k>tuner</k>
-virittäjä (mus)</ar>
-<ar><k>tungsten</k>
-volframi</ar>
-<ar><k>tuning</k>
-viritys</ar>
-<ar><k>tuning-fork</k>
-äänirauta</ar>
-<ar><k>tunnel</k>
-tunneli</ar>
-<ar><k>tunny</k>
-tonnikala</ar>
-<ar><k>turban</k>
-turbaani</ar>
-<ar><k>turbine</k>
-turbiini</ar>
-<ar><k>turbot</k>
-piikikampela</ar>
-<ar><k>turbulent</k>
-melskeinen</ar>
-<ar><k>tureen</k>
-liemimalja</ar>
-<ar><k>turf</k>
-turve</ar>
-<ar><k>turkey</k>
-kalkkuna</ar>
-<ar><k>turmoil</k>
-melske, temmellys</ar>
-<ar><k>turn</k>
-kierros, käänne, käännös, pyörähdys, vuoro, väänne, kaarros
-
-kiertää, kääntyä, kääntää, pyöriä, vääntää</ar>
-<ar><k>turn a blind eye</k>
-ummistaa silmänsä jltk [puhek.]</ar>
-<ar><k>turn a curve</k>
-kaartaa</ar>
-<ar><k>turn a new leaf</k>
-aloittaa alusta [puhek.]</ar>
-<ar><k>turn about</k>
-kääntää ympäri</ar>
-<ar><k>turn away</k>
-kääntää pois</ar>
-<ar><k>turn back</k>
-kääntyä takaisin</ar>
-<ar><k>turn down</k>
-antaa kieltävä vastaus</ar>
-<ar><k>turn grey</k>
-harmaantua</ar>
-<ar><k>turn into</k>
-muuttaa jksk, muuttua</ar>
-<ar><k>turn into gas</k>
-kaasuttaa</ar>
-<ar><k>turn into stone</k>
-kivettyä</ar>
-<ar><k>turn of the year</k>
-vuodenvaihde</ar>
-<ar><k>turn off</k>
-ei kiihdyttää sukupuolisesti, poiketa</ar>
-<ar><k>turn on</k>
-avata (hana ym), kiihdyttää sukupuolisesti</ar>
-<ar><k>turn ones ankle</k>
-nyrjäyttää nilkkansa [puhek.]</ar>
-<ar><k>turn ones back</k>
-kääntää selkänsä jklle</ar>
-<ar><k>turn ones coat</k>
-kääntää kelkkansa [puhek.]</ar>
-<ar><k>turn out</k>
-häätää, ilmetä (osoittauttua), karkottaa, ajaa ulos</ar>
-<ar><k>turn over</k>
-liikevaihto, käännellä</ar>
-<ar><k>turn pale</k>
-kalveta, vaalenta</ar>
-<ar><k>turn rancid</k>
-eltaantua</ar>
-<ar><k>turn round ones finger</k>
-kietoa joku pikkusormensa ympäri [puhek.]</ar>
-<ar><k>turn sour</k>
-hapata</ar>
-<ar><k>turn the other cheek</k>
-kääntää toinenkin poskensa</ar>
-<ar><k>turn to account</k>
-käyttää hyväkseen [puhek.]</ar>
-<ar><k>turn transport</k>
-kääntökuljetin</ar>
-<ar><k>turn up</k>
-ilmaantua (kuv), saapua</ar>
-<ar><k>turn upside down</k>
-mullistaa</ar>
-<ar><k>turncoat</k>
-luopio</ar>
-<ar><k>turner</k>
-sorvaaja</ar>
-<ar><k>turning-point</k>
-käännekohta</ar>
-<ar><k>turnip</k>
-nauris</ar>
-<ar><k>turnover</k>
-kauppavaihto, liikevaihto</ar>
-<ar><k>turpentine</k>
-tärpätti</ar>
-<ar><k>turquoise</k>
-turkoosi</ar>
-<ar><k>turtle</k>
-merikilpikonna</ar>
-<ar><k>turtle-dove</k>
-turturikyyhky</ar>
-<ar><k>tusk</k>
-syöksyhammas</ar>
-<ar><k>tussock</k>
-mätäs</ar>
-<ar><k>twang</k>
-helkytellä</ar>
-<ar><k>twelfth</k>
-kahdestoista</ar>
-<ar><k>twelve</k>
-kaksitoista, kaksitoista</ar>
-<ar><k>twentieth</k>
-kahdeskymmenes</ar>
-<ar><k>twenty</k>
-kaksikymmentä</ar>
-<ar><k>twice</k>
-kahdesti, kaksi kertaa</ar>
-<ar><k>twice as good</k>
-kahta (parempi)</ar>
-<ar><k>twich</k>
-nytkiä</ar>
-<ar><k>twig</k>
-lehvä, oksa (pieni), vitsa</ar>
-<ar><k>twilight</k>
-hämy, hämärä, iltahämy</ar>
-<ar><k>twin</k>
-kaksonen</ar>
-<ar><k>twin brother</k>
-kaksoisveli</ar>
-<ar><k>twin sister</k>
-kaksoissisar</ar>
-<ar><k>twine</k>
-kietoa, kääriä, nuora, punoutua</ar>
-<ar><k>twinkle</k>
-tuike
-
-tuikkia, vilahtaa, vilkkua</ar>
-<ar><k>twist</k>
-kierre (langan), punos, väänne
-
-kiertyä, kiertää, mutkitella, vääntää, vääristellä</ar>
-<ar><k>twisted</k>
-kiero, pilvessä [puhek.]</ar>
-<ar><k>twitch</k>
-nytkäisy </ar>
-<ar><k>twitter</k>
-liverrys, sirkutus, viserrys
-
-sirkuttaa, visertää</ar>
-<ar><k>two</k>
-kakkonen, kaksi</ar>
-<ar><k>two by two</k>
-kaksittain</ar>
-<ar><k>two hundred</k>
-kaksisataa</ar>
-<ar><k>two kinds of</k>
-kahtalainen</ar>
-<ar><k>two person</k>
-kahden</ar>
-<ar><k>two sorts of</k>
-kahtalainen</ar>
-<ar><k>two times</k>
-kaksi kertaa</ar>
-<ar><k>two way switch</k>
-vaihtokytkin</ar>
-<ar><k>two year old</k>
-kaksivuotias (lapsi ym)</ar>
-<ar><k>two years old</k>
-kaksivuotias</ar>
-<ar><k>two-faced</k>
-kaksinaamainen</ar>
-<ar><k>two-phase</k>
-kaksivaiheinen</ar>
-<ar><k>two-room flat</k>
-kaksio</ar>
-<ar><k>two-sided copy mode</k>
-kaksipuoliskopiointi</ar>
-<ar><k>two-storey</k>
-kaksikerroksinen</ar>
-<ar><k>two-way</k>
-kaksisuuntainen</ar>
-<ar><k>twofold</k>
-kaksinainen, kaksinkertainen</ar>
-<ar><k>type</k>
-kirjake, kirjasin, tyyppi
-
-konekirjoittaa</ar>
-<ar><k>type-setter</k>
-latoja</ar>
-<ar><k>type-setting</k>
-ladonta</ar>
-<ar><k>type-setting machine</k>
-latomakone</ar>
-<ar><k>typewriter</k>
-kirjoituskone</ar>
-<ar><k>typhoid fever</k>
-lavantauti</ar>
-<ar><k>typhus</k>
-pilkkukuume</ar>
-<ar><k>typical</k>
-perikuvallinen, tyypillinen</ar>
-<ar><k>typing</k>
-konekirjoitus</ar>
-<ar><k>typist</k>
-konekirjoittaja</ar>
-<ar><k>tyrannical</k>
-tyrannimainen</ar>
-<ar><k>tyranny</k>
-hirmuvalta</ar>
-<ar><k>tyrant</k>
-hirmuhallitsija, julmuri, tyranni</ar>
-<ar><k>tyre</k>
-rengas (auton)</ar>
-<ar><k>udder</k>
-udar, utare</ar>
-<ar><k>ugliness</k>
-rumuus</ar>
-<ar><k>ugly</k>
-ruma</ar>
-<ar><k>ulcer</k>
-haava (maha- ym), mätähaava</ar>
-<ar><k>ulterior thought</k>
-takaajatus</ar>
-<ar><k>ultimate</k>
-lopullinen</ar>
-<ar><k>ultimately</k>
-lopulta, vihdoin (lopuksi)</ar>
-<ar><k>ultimatum</k>
-uhkavaatimus</ar>
-<ar><k>umbilical cord</k>
-napanuora</ar>
-<ar><k>umbrella</k>
-sateenvarjo</ar>
-<ar><k>umpire</k>
-erotuomari (tennis ym)</ar>
-<ar><k>unable to</k>
-kykenemätön, kyvytön</ar>
-<ar><k>unabridged</k>
-lyhentämätön</ar>
-<ar><k>unacceptable</k>
-hylättävä</ar>
-<ar><k>unaccompanied</k>
-yksinään</ar>
-<ar><k>unaffected</k>
-koristelematon (kuv), koruton, luonnonraikas</ar>
-<ar><k>unanimous</k>
-yksimielinen</ar>
-<ar><k>unanimously</k>
-yksimielisesti</ar>
-<ar><k>unannounced</k>
-ilmoittamaton</ar>
-<ar><k>unanswered</k>
-vastaamaton</ar>
-<ar><k>unapproachable</k>
-luoksepääsemätön</ar>
-<ar><k>unarmed</k>
-aseeton</ar>
-<ar><k>unashamed</k>
-häpeämätön</ar>
-<ar><k>unassuming</k>
-vaatimaton, vähäeleinen</ar>
-<ar><k>unattainable</k>
-saavuttamaton</ar>
-<ar><k>unattractive</k>
-ruma</ar>
-<ar><k>unavoidable</k>
-väistämätön</ar>
-<ar><k>unbearable</k>
-sietämätön</ar>
-<ar><k>unbeatable</k>
-voittamaton</ar>
-<ar><k>unbelievable</k>
-uskomaton</ar>
-<ar><k>unbias</k>
-puolueeton, tasapuolinen</ar>
-<ar><k>unbroken</k>
-eheä, katkeamaton, murtumaton</ar>
-<ar><k>unbusinesslike</k>
-epäasiallinen</ar>
-<ar><k>uncalled for</k>
-aiheeton</ar>
-<ar><k>uncanny</k>
-kaamea</ar>
-<ar><k>uncared for</k>
-hoitamaton, laiminlyöty</ar>
-<ar><k>unceasing</k>
-lakkaamaton</ar>
-<ar><k>unceremonious</k>
-kursailematon</ar>
-<ar><k>uncertain</k>
-epätietoinen, epävarma</ar>
-<ar><k>uncertainty</k>
-epätietoisuus, epävarmuus</ar>
-<ar><k>unchallenged</k>
-esteettöm\86sti, kiistämätön</ar>
-<ar><k>unchanged</k>
-entisellään</ar>
-<ar><k>uncharged</k>
-lataamaton (akku)</ar>
-<ar><k>unchecked</k>
-ehkäisemätön, hillitön</ar>
-<ar><k>unchivalrous</k>
-epäritarllinen</ar>
-<ar><k>unclean</k>
-epäpuhdas, likainen, ruokoton, saastainen</ar>
-<ar><k>uncleaned</k>
-perkaamaton</ar>
-<ar><k>uncleared</k>
-raivaamaton</ar>
-<ar><k>uncollated set</k>
-kopionippu, ei koontaa</ar>
-<ar><k>uncomfortable</k>
-epämukava</ar>
-<ar><k>uncommitted</k>
-puolueeton</ar>
-<ar><k>uncommon</k>
-epätavallinen, harvenainen, tavaton</ar>
-<ar><k>uncommunicative</k>
-itseensäsulkeutunut, vaitelias</ar>
-<ar><k>uncomplicated</k>
-yksinkertainen, yksioikoinen</ar>
-<ar><k>unconcern</k>
-huolettomuus</ar>
-<ar><k>unconcerned</k>
-huoleton, välinpitämätön</ar>
-<ar><k>unconcernedly</k>
-huoleti</ar>
-<ar><k>unconditional</k>
-ehdoton, tinkimätön</ar>
-<ar><k>unconquered</k>
-valloitamaton</ar>
-<ar><k>unconscious</k>
-itsetiedoton, tajuton, tiedoton, tunnoton (tajuton)</ar>
-<ar><k>unconsidered</k>
-harkitsematon</ar>
-<ar><k>uncontrollable</k>
-hillitön</ar>
-<ar><k>unconventional</k>
-epäsovinnainen</ar>
-<ar><k>uncorrected</k>
-korjaamaton</ar>
-<ar><k>uncover</k>
-paljastaa</ar>
-<ar><k>uncovered</k>
-paljas</ar>
-<ar><k>uncultivated</k>
-viljelemätön</ar>
-<ar><k>uncut</k>
-hiomaton</ar>
-<ar><k>undamaged</k>
-eheä, turmelematon, vahingoittumaton</ar>
-<ar><k>undefined</k>
-määräämätön</ar>
-<ar><k>undeniable</k>
-kieltämätön, vääjäämätön</ar>
-<ar><k>undeniably</k>
-eittämättä, kieltämättä</ar>
-<ar><k>under age</k>
-alaikäinen [puhek.]</ar>
-<ar><k>under bid</k>
-tarjota halvemmalla kuin [puhek.]</ar>
-<ar><k>under charge</k>
-veloittaa liian vähän [puhek.]</ar>
-<ar><k>under consideration</k>
-käsittelyn alainen</ar>
-<ar><k>under control</k>
-hallinnassa</ar>
-<ar><k>under dog</k>
-heikompi osapuoli [puhek.]</ar>
-<ar><k>under done</k>
-raaka [puhek.]</ar>
-<ar><k>under each other</k>
-alakkain</ar>
-<ar><k>under go</k>
-joutua kokemaan [puhek.]</ar>
-<ar><k>under grown</k>
-pienikasvuinen [puhek.]</ar>
-<ar><k>under growth</k>
-aluskasvillisuus [puhek.]</ar>
-<ar><k>under handed</k>
-luihu [puhek.]</ar>
-<ar><k>under hung</k>
-ulkoneva [puhek.]</ar>
-<ar><k>under mine</k>
-kaivaa maata jnk alta [puhek.]</ar>
-<ar><k>under obligation to</k>
-velvollinen</ar>
-<ar><k>under paid</k>
-alipalkattu [puhek.]</ar>
-<ar><k>under pants</k>
-alushousut [puhek.]</ar>
-<ar><k>under rate</k>
-aliarvioida [puhek.]</ar>
-<ar><k>under shot</k>
-alapurentainen [puhek.]</ar>
-<ar><k>under side</k>
-alapuoli [puhek.]</ar>
-<ar><k>under size</k>
-alamittainen</ar>
-<ar><k>under the influence</k>
-humalapäissän</ar>
-<ar><k>under vest</k>
-aluspaita [puhek.]</ar>
-<ar><k>under wear</k>
-alusvaatteet [puhek.]</ar>
-<ar><k>under world</k>
-manala [puhek.]</ar>
-<ar><k>underbid</k>
-alittaa (tarjous)</ar>
-<ar><k>undercoat</k>
-pohjamaali</ar>
-<ar><k>underdevelopment</k>
-ylikehitys</ar>
-<ar><k>underemployment</k>
-alityöllisyys</ar>
-<ar><k>underestimation</k>
-aliarviointi</ar>
-<ar><k>underfloor heating</k>
-lattialämmitys</ar>
-<ar><k>undergarment</k>
-alusvaate</ar>
-<ar><k>undergo</k>
-kokea</ar>
-<ar><k>undergrade</k>
-vajaalaatu</ar>
-<ar><k>undergraduate</k>
-opiskelija (yliopistossa), ylioppilas</ar>
-<ar><k>underground</k>
-maanlainen</ar>
-<ar><k>underground cable</k>
-maakaapeli</ar>
-<ar><k>underline</k>
-alleviivata</ar>
-<ar><k>undermine</k>
-jäytää (kuv)</ar>
-<ar><k>undermost</k>
-alin</ar>
-<ar><k>undernourished</k>
-aliravittu</ar>
-<ar><k>undernourishment</k>
-aliravitsemus</ar>
-<ar><k>underpaid</k>
-alipalkattu</ar>
-<ar><k>underpants</k>
-alushousut</ar>
-<ar><k>underpass</k>
-alikäytävä</ar>
-<ar><k>underpriviliged</k>
-vähäväkinen</ar>
-<ar><k>undersigned</k>
-allekirjoittanut</ar>
-<ar><k>underskirt</k>
-alushame</ar>
-<ar><k>understand</k>
-käsittää, ymmärtää, älytä</ar>
-<ar><k>understandable</k>
-ymmärrettävä</ar>
-<ar><k>undertaker's</k>
-hautaustoimisto</ar>
-<ar><k>underweight</k>
-alipainoinen</ar>
-<ar><k>underworld</k>
-alamaailma</ar>
-<ar><k>undeservedly</k>
-ansiottomasti</ar>
-<ar><k>undesirable</k>
-epämieluinen</ar>
-<ar><k>undetachable</k>
-irtautumaton</ar>
-<ar><k>undetermined</k>
-epämääräinen</ar>
-<ar><k>undeveloped</k>
-kehittymätön</ar>
-<ar><k>undimmed</k>
-himmenntymätön</ar>
-<ar><k>undisciplined</k>
-kuriton</ar>
-<ar><k>undiscriminating</k>
-arvostekyvytön</ar>
-<ar><k>undisputed</k>
-kiistämätön</ar>
-<ar><k>undisturbed</k>
-häirintymätön, häiriötön, hämmentymätön</ar>
-<ar><k>undivided</k>
-jakamaton</ar>
-<ar><k>undivisible</k>
-jakautumaton</ar>
-<ar><k>undo</k>
-irrottaa (solmu ym), purkaa</ar>
-<ar><k>undress</k>
-riisua (vaatteet)</ar>
-<ar><k>uneasiness</k>
-levottomuus</ar>
-<ar><k>uneconomic</k>
-epätaloudellinen, kannattamaton</ar>
-<ar><k>unemotional</k>
-tunteeton</ar>
-<ar><k>unemployable</k>
-työkyvytön</ar>
-<ar><k>unemployed</k>
-työtön</ar>
-<ar><k>unemployment</k>
-työttömyys</ar>
-<ar><k>unequalled</k>
-verraton</ar>
-<ar><k>unessential</k>
-epäolennainen</ar>
-<ar><k>uneven</k>
-epätasainen, rosoinen</ar>
-<ar><k>uneven density</k>
-tiheysvaihtelu</ar>
-<ar><k>unexamined</k>
-tutkimaton</ar>
-<ar><k>unexpected</k>
-aavistamaton, odottamaton, äkkiarvaamaton</ar>
-<ar><k>unexpectedly</k>
-aavistamatta, odottamatta, äkkiarvaamatta</ar>
-<ar><k>unexploded</k>
-räjähtämätön</ar>
-<ar><k>unexpressed</k>
-ilmaisematon</ar>
-<ar><k>unfading</k>
-katoamaton</ar>
-<ar><k>unfair</k>
-epäoikeudenmukainen, kohtuuton</ar>
-<ar><k>unfaithful</k>
-uskoton</ar>
-<ar><k>unfaithfulness</k>
-uskottomuus</ar>
-<ar><k>unfamiliar</k>
-outo, tuntematon</ar>
-<ar><k>unfasten</k>
-irrottaa</ar>
-<ar><k>unfavourable</k>
-epäedullinen, epäsuotuisa</ar>
-<ar><k>unfavourably</k>
-epäsuosiollinen</ar>
-<ar><k>unfeeling</k>
-kova (ankara), tunteeton</ar>
-<ar><k>unfeminine</k>
-epänaisellinen</ar>
-<ar><k>unfenced</k>
-aitaamaton</ar>
-<ar><k>unfinished</k>
-keskeneräinen</ar>
-<ar><k>unfit</k>
-sopimaton</ar>
-<ar><k>unfit for use</k>
-käyttäkelvoton</ar>
-<ar><k>unfold</k>
-aukoa</ar>
-<ar><k>unforeseeable</k>
-ennaltalaskematon</ar>
-<ar><k>unforeseen</k>
-aavistamaton, arvaamaton (odottamaton), äkkiarvaamaton</ar>
-<ar><k>unforgettable</k>
-unohtumaton</ar>
-<ar><k>unfortunate</k>
-onneton, valitettava</ar>
-<ar><k>unfortunately</k>
-valitettavasti</ar>
-<ar><k>unfounded</k>
-aiheeton, perätön</ar>
-<ar><k>unfriendliness</k>
-epäystävällisyys, ynseys</ar>
-<ar><k>unfriendly</k>
-epäystävällinen, epäystävällisesti</ar>
-<ar><k>unfulfilled</k>
-toteutumaton</ar>
-<ar><k>unfurnished</k>
-kalustamaton</ar>
-<ar><k>ungovernable</k>
-hillitön</ar>
-<ar><k>ungrateful</k>
-epäkiitollinen, kiittämätön</ar>
-<ar><k>unground</k>
-hiomaton</ar>
-<ar><k>unhappy</k>
-onneton</ar>
-<ar><k>unhealthy</k>
-epäterveellinen</ar>
-<ar><k>unheated</k>
-lämmittämätön</ar>
-<ar><k>unhesitatingly</k>
-epäröimättä</ar>
-<ar><k>unhurt</k>
-ehjä, vahingoittumaton</ar>
-<ar><k>uniform</k>
-tasainen, tasalaatuinen</ar>
-<ar><k>uniformity</k>
-yhdenmukaisuus, yhtenäisyys</ar>
-<ar><k>uniformly</k>
-yhdenmukaisesti</ar>
-<ar><k>unify</k>
-yhdistää, yhtenäistää</ar>
-<ar><k>unilateral</k>
-yksipuolinen</ar>
-<ar><k>uninflammable</k>
-syttymätön</ar>
-<ar><k>uninhabited</k>
-asumaton</ar>
-<ar><k>uninhibited</k>
-estoton (psyk)</ar>
-<ar><k>uninjured</k>
-vahingoittumaton</ar>
-<ar><k>unintelligent</k>
-huonopäinen, älytön</ar>
-<ar><k>uninterested</k>
-innoton</ar>
-<ar><k>uninteresting</k>
-ikävä, kuivakiskoinen, mielenkiinnoton</ar>
-<ar><k>uninterrupted</k>
-lakkaamaton</ar>
-<ar><k>uninvited</k>
-kutsumaton</ar>
-<ar><k>uninvited guest</k>
-kuokkavieras</ar>
-<ar><k>union</k>
-liitto, yhteenliittyminen, yhtymä</ar>
-<ar><k>uniqeness</k>
-ainoalaatuisuus</ar>
-<ar><k>unison</k>
-sopusointi</ar>
-<ar><k>unit</k>
-yksikkö</ar>
-<ar><k>unit of time</k>
-aikayksikkö</ar>
-<ar><k>unite</k>
-eheyttää, yhdistyä, yhdistää, yhtyä</ar>
-<ar><k>universal</k>
-kaikinpuolinen</ar>
-<ar><k>universally</k>
-yleisesti</ar>
-<ar><k>universe</k>
-kaikkeus</ar>
-<ar><k>university</k>
-yliopisto</ar>
-<ar><k>university student</k>
-ylioppilas</ar>
-<ar><k>unjust</k>
-epäoikeudenmukainen, vääryydellinen</ar>
-<ar><k>unjustified</k>
-epäoikeutettu</ar>
-<ar><k>unkind</k>
-epäsuopea, karsasti (kuv), tyly</ar>
-<ar><k>unkindly</k>
-karsasti (kuv), ynseä</ar>
-<ar><k>unkindness</k>
-tylyys</ar>
-<ar><k>unknown</k>
-tuntematon, vieras</ar>
-<ar><k>unlawful</k>
-laiton</ar>
-<ar><k>unlawfulness</k>
-laittomuus</ar>
-<ar><k>unleavened</k>
-happamaton</ar>
-<ar><k>unless</k>
-ellei, jollei</ar>
-<ar><k>unlike in appearance</k>
-eronäköinen</ar>
-<ar><k>unlikely</k>
-epätodennäköinen</ar>
-<ar><k>unlimited</k>
-rajaton</ar>
-<ar><k>unload</k>
-tyhjentää</ar>
-<ar><k>unloaded</k>
-lataamaton</ar>
-<ar><k>unloading</k>
-lastinpurkaus, purkaminen (lastin)</ar>
-<ar><k>unlock</k>
-aukaista (lukosta), avata (lukko)</ar>
-<ar><k>unlocked</k>
-lukitsematon</ar>
-<ar><k>unlucky</k>
-huonoonninen, kovaosainen, onneton</ar>
-<ar><k>unmanageable</k>
-hillitön, kuriton</ar>
-<ar><k>unmanly</k>
-akkamainen, epämiehekäs</ar>
-<ar><k>unmarried</k>
-vihkimätön</ar>
-<ar><k>unmerited</k>
-ansaitsematon</ar>
-<ar><k>unmistakable</k>
-epäilemätön, selvä (ilmeinen</ar>
-<ar><k>unmistakably</k>
-aivan varmasti</ar>
-<ar><k>unnatural</k>
-epäluonnollinen, luonnoton, teennäinen</ar>
-<ar><k>unnecessary</k>
-tarpeeton, turha</ar>
-<ar><k>unnerve</k>
-herpaista</ar>
-<ar><k>unnoticeable</k>
-huomaamaton</ar>
-<ar><k>unnoticed</k>
-huomaamatta</ar>
-<ar><k>unobliging</k>
-töykeä, ynseä</ar>
-<ar><k>unobscured</k>
-himmenntymätön</ar>
-<ar><k>unoccupied</k>
-asumaton</ar>
-<ar><k>unofficial</k>
-epävirallinen</ar>
-<ar><k>unopened</k>
-alkamaton, avaamaton</ar>
-<ar><k>unorganic</k>
-elimetön</ar>
-<ar><k>unorganized</k>
-järjestymätön</ar>
-<ar><k>unpaid</k>
-maksaamaton</ar>
-<ar><k>unparalleled</k>
-ainutkertainen</ar>
-<ar><k>unpardonable</k>
-anteeksiantamaton</ar>
-<ar><k>unpatriotic</k>
-epäisänmaallinen</ar>
-<ar><k>unpeeled</k>
-kuorimaton</ar>
-<ar><k>unperturbed</k>
-levollinen</ar>
-<ar><k>unpick</k>
-purkaa (esim ommel)</ar>
-<ar><k>unpleasant</k>
-epämiellyttävä, ikävä, kelju</ar>
-<ar><k>unpleasantness</k>
-epämieluisuus</ar>
-<ar><k>unpractical</k>
-epäkäytännöllinen</ar>
-<ar><k>unpractised</k>
-harjaantumaton, harjoittamaton</ar>
-<ar><k>unprecedented</k>
-ennätyksellinen</ar>
-<ar><k>unprejudiced</k>
-ennakkoluuloton</ar>
-<ar><k>unpretentious</k>
-vaatimaton</ar>
-<ar><k>unproductive</k>
-tuottamton</ar>
-<ar><k>unprofitable</k>
-kannattamaton, tuottamton</ar>
-<ar><k>unprotected</k>
-hoivaton, suojaton, turvaton</ar>
-<ar><k>unpublished</k>
-julkaisematon</ar>
-<ar><k>unqualified</k>
-epäpätevä</ar>
-<ar><k>unquestionably</k>
-ehdottomasti, kieltämättä</ar>
-<ar><k>unreal</k>
-epätodellinen</ar>
-<ar><k>unrealistic</k>
-epärealistinen</ar>
-<ar><k>unreasonable</k>
-järjenvastainen, järjetön, kohtuuton</ar>
-<ar><k>unreasonableness</k>
-järjettömyys</ar>
-<ar><k>unrefined</k>
-jalostumaton</ar>
-<ar><k>unrefined product</k>
-raakatuote</ar>
-<ar><k>unregulated</k>
-järjestämätön</ar>
-<ar><k>unrelenting</k>
-heltymätön</ar>
-<ar><k>unreliability</k>
-epäluotettavuus</ar>
-<ar><k>unreliable</k>
-epäluotettava</ar>
-<ar><k>unrepentant</k>
-katumaton</ar>
-<ar><k>unreserved</k>
-tinkimätön</ar>
-<ar><k>unresolved</k>
-ratkaisematon</ar>
-<ar><k>unrestrained</k>
-ehkäisemätön, hillitön, hurja (hillitön)</ar>
-<ar><k>unripe</k>
-epäkypsä, kypsymätön</ar>
-<ar><k>unripe fruit</k>
-hedelmäraakile</ar>
-<ar><k>unruled</k>
-viivaamaton</ar>
-<ar><k>unruliness</k>
-vallattomuus</ar>
-<ar><k>unsalted</k>
-suolaamaton, suolaton</ar>
-<ar><k>unsatisfactory</k>
-epätyydyttävä</ar>
-<ar><k>unsatisfied</k>
-tyydyttämätön</ar>
-<ar><k>unscathed</k>
-vahingoittumaton</ar>
-<ar><k>unscrew</k>
-auki (kiertää), kiertää (auki)</ar>
-<ar><k>unscrupulous</k>
-häikäilemätön, tunnoton</ar>
-<ar><k>unscrupulously</k>
-häikäilemättä</ar>
-<ar><k>unseasoned</k>
-höystämätön</ar>
-<ar><k>unseeing</k>
-näkemätön</ar>
-<ar><k>unselfish</k>
-epäitsekäs</ar>
-<ar><k>unselfishness</k>
-epäitsekkyys</ar>
-<ar><k>unserviceable</k>
-käyttäkelvoton</ar>
-<ar><k>unsettle</k>
-järkyttää</ar>
-<ar><k>unsettled</k>
-maksaamaton, ratkaisematon, vakaantumaton</ar>
-<ar><k>unshaken</k>
-horjumaton, järkähtämätön</ar>
-<ar><k>unskilful</k>
-taidoton, taitamaton</ar>
-<ar><k>unskilled</k>
-ammattitaidoton, taitamaton</ar>
-<ar><k>unsociable</k>
-juro</ar>
-<ar><k>unsocial</k>
-epäsosiaalinen</ar>
-<ar><k>unsolved</k>
-ratkaisematon</ar>
-<ar><k>unsought</k>
-etsimätön</ar>
-<ar><k>unspeakable</k>
-sanomaton</ar>
-<ar><k>unspiced</k>
-höystämätön</ar>
-<ar><k>unsplit</k>
-halkaisematon</ar>
-<ar><k>unspoiled</k>
-turmelematon</ar>
-<ar><k>unspoilt</k>
-turmelematon</ar>
-<ar><k>unstable</k>
-epävakainen</ar>
-<ar><k>unstamped</k>
-leimaamaton</ar>
-<ar><k>unstated</k>
-ilmoittamaton</ar>
-<ar><k>unsteadiness</k>
-horjuvuus</ar>
-<ar><k>unsteady</k>
-epävakainen, kiikkerä</ar>
-<ar><k>unstressed</k>
-koroton (kiel)</ar>
-<ar><k>unsubstantial</k>
-hatara</ar>
-<ar><k>unsuccessful</k>
-epäonnistunut</ar>
-<ar><k>unsuitable</k>
-sopimaton</ar>
-<ar><k>unsure of oneself</k>
-epävarma itsestään</ar>
-<ar><k>unsystematic</k>
-järjestelmätön</ar>
-<ar><k>untainted</k>
-tahraton</ar>
-<ar><k>untalented</k>
-lahjaton</ar>
-<ar><k>untamed</k>
-kesyttämätön, kesytön</ar>
-<ar><k>untidiness</k>
-epäsiisteys</ar>
-<ar><k>untidy</k>
-epäsiisti, raskainen, ruokoton, siivoamaton, siivoton</ar>
-<ar><k>untie</k>
-irrottaa (solmu ym)</ar>
-<ar><k>until</k>
-kunnes, saakka (ajasta), asti</ar>
-<ar><k>untiring</k>
-hellittämätön (luja), väsymätön</ar>
-<ar><k>untold</k>
-lukematon</ar>
-<ar><k>untouched</k>
-koskematon</ar>
-<ar><k>untrained</k>
-harjaantumaton</ar>
-<ar><k>untrue</k>
-uskoton</ar>
-<ar><k>untruth</k>
-valhe</ar>
-<ar><k>unused</k>
-käyttämätön</ar>
-<ar><k>unusual</k>
-epätavallinen, harvenainen, outo, tavaton</ar>
-<ar><k>unvaried</k>
-yksitoikkoinen</ar>
-<ar><k>unwanted</k>
-eitoivottu</ar>
-<ar><k>unwaving</k>
-horjumaton</ar>
-<ar><k>unweakened</k>
-herpaantumaton</ar>
-<ar><k>unwell</k>
-huonovointinen, pahoinvoipa</ar>
-<ar><k>unwiling</k>
-vastahakoinen</ar>
-<ar><k>unwillingly</k>
-vastahakoisesti, vastenmielisesti</ar>
-<ar><k>unwillingness</k>
-vastahakoisuss</ar>
-<ar><k>unwise</k>
-epäviisas, ymmärtämätön</ar>
-<ar><k>unwomanly</k>
-epänaisellinen</ar>
-<ar><k>unwrap</k>
-avata (käärö), kietoa (auki)</ar>
-<ar><k>unwritten</k>
-kirjoittamaton</ar>
-<ar><k>unyielding</k>
-alistumaton, myöntymätön</ar>
-<ar><k>up and about</k>
-olla jalkeilla</ar>
-<ar><k>up to</k>
-saakka (ajasta), saakka (jhk)</ar>
-<ar><k>up to date</k>
-ajanmukainen</ar>
-<ar><k>up-to-date</k>
-muodikas, nykyaikainen, uudenaikainen</ar>
-<ar><k>upbringing</k>
-kasvatus, lastenkasvatus</ar>
-<ar><k>updated</k>
-korjattu, saatettu ajan tasalle</ar>
-<ar><k>upgraded</k>
-parannettu</ar>
-<ar><k>uphill</k>
-ylämäki</ar>
-<ar><k>upholster</k>
-pehmustaa, verhoilla</ar>
-<ar><k>upholsterer</k>
-verhoilija</ar>
-<ar><k>upholstery material</k>
-huonekalukangas</ar>
-<ar><k>upkeep</k>
-ylläpito</ar>
-<ar><k>uplands</k>
-ylänkö</ar>
-<ar><k>upper</k>
-ylempi, ylinen, ylä</ar>
-<ar><k>upper class</k>
-vallasluokka</ar>
-<ar><k>upper edge</k>
-yläreuna</ar>
-<ar><k>upper floor</k>
-yläkerros</ar>
-<ar><k>upper part</k>
-yläosa</ar>
-<ar><k>uppermost</k>
-päällimmäinen, ylin, ylinnä</ar>
-<ar><k>upright</k>
-pystyasento, rehti</ar>
-<ar><k>upright piano</k>
-piano</ar>
-<ar><k>uprising</k>
-kansannousu</ar>
-<ar><k>uproar</k>
-melske</ar>
-<ar><k>upset</k>
-hämmentää (kuv), järkyttää, kaataa (vene lasi ym), mullistaa</ar>
-<ar><k>upset oneself</k>
-järkyttyä</ar>
-<ar><k>upsetting</k>
-järkyttävä</ar>
-<ar><k>upside down</k>
-alassuin, kumollaan, sikinsokin, ylösalaisin</ar>
-<ar><k>upstart</k>
-nousukas</ar>
-<ar><k>uptight</k>
-hermostunut [puhek.]</ar>
-<ar><k>upwards</k>
-ylös, ylöspäin</ar>
-<ar><k>uranium</k>
-uraani</ar>
-<ar><k>urge</k>
-vietti
-
-kehottaa, yllyttää</ar>
-<ar><k>urge on</k>
-hoputtaa</ar>
-<ar><k>urgency</k>
-kiireellisyys</ar>
-<ar><k>urgent</k>
-kiireellinen, tärkeä</ar>
-<ar><k>urinate</k>
-virtsata</ar>
-<ar><k>urination</k>
-virtsaaminen</ar>
-<ar><k>urn</k>
-uurna</ar>
-<ar><k>usage</k>
-kohtelu, käytäntö (tapa), nautinta, käyttö</ar>
-<ar><k>use</k>
-kuluttaa, käyttää</ar>
-<ar><k>use bad language</k>
-kiroilla</ar>
-<ar><k>use of arms</k>
-aseenkäyttö</ar>
-<ar><k>used</k>
-käytetty</ar>
-<ar><k>used toner bottle</k>
-jäteväripullo</ar>
-<ar><k>useful</k>
-edullinen (hyödyllinen), hyödyllinen, käyttökelpoinen</ar>
-<ar><k>usefulness</k>
-hyödyllisyys</ar>
-<ar><k>useless</k>
-hyödytön, joutava, kelpaamaton, kelvoton, käyttäkelvoton, turha (hyödytön)</ar>
-<ar><k>uselessness</k>
-hyödyttömyys</ar>
-<ar><k>usher</k>
-airut (juhlassa), järjestymies</ar>
-<ar><k>usual</k>
-tavallinen, tavanomainen</ar>
-<ar><k>usually</k>
-tavallisesti</ar>
-<ar><k>utensil room</k>
-varasto</ar>
-<ar><k>uterus</k>
-kohtu</ar>
-<ar><k>utility grade</k>
-käyttölaatu</ar>
-<ar><k>utmost</k>
-perimmäinen, äärimmäinen</ar>
-<ar><k>utter</k>
-lausua, virkahtaa, virkkaa</ar>
-<ar><k>utter sounds</k>
-äännellä</ar>
-<ar><k>utterance</k>
-ilmaisu (ilmaus), lausuma</ar>
-<ar><k>utterly</k>
-täydelleen</ar>
-<ar><k>vacancy</k>
-vakanssi</ar>
-<ar><k>vacant</k>
-avoin (virasta), ilmeetön, tyhjä, vapaa</ar>
-<ar><k>vacation</k>
-loma (kesä- ym), virkavapaus</ar>
-<ar><k>vaccinate</k>
-rokottaa</ar>
-<ar><k>vaccination</k>
-rokotus</ar>
-<ar><k>vaccine</k>
-rokote</ar>
-<ar><k>vacillate</k>
-horjua (kuv)</ar>
-<ar><k>vacillation</k>
-horjuvuus</ar>
-<ar><k>vacuum</k>
-tyhjiö, imu
-
-imuroida</ar>
-<ar><k>vacuum blower</k>
-imupuhallin</ar>
-<ar><k>vacuum cleaner</k>
-pölynimuri</ar>
-<ar><k>vacuum flask</k>
-termospullo</ar>
-<ar><k>vacuum transport</k>
-imukuljetin</ar>
-<ar><k>vagabond</k>
-irtolainen, kulkuri</ar>
-<ar><k>vagina</k>
-emätin (anat)</ar>
-<ar><k>vagrancy</k>
-irtolaisuus</ar>
-<ar><k>vagrant</k>
-irtolainen, kulkuri</ar>
-<ar><k>vaguely</k>
-hämärästi</ar>
-<ar><k>vagueness</k>
-epämääräisyys</ar>
-<ar><k>vain</k>
-korenhaluinen, turhamainen</ar>
-<ar><k>valet</k>
-kamaripalvelija, miespalvelija</ar>
-<ar><k>valiant</k>
-uhrea, uljas, urhoollinen</ar>
-<ar><k>valid</k>
-kelpaava, laillinen (pätevä), voimassaoleva, käypä</ar>
-<ar><k>validity</k>
-voimassaolo</ar>
-<ar><k>valley</k>
-laakso, kuvetaite</ar>
-<ar><k>valley flashing</k>
-kuvetaitteen pellitys</ar>
-<ar><k>valour</k>
-miehuullisuus, urheus</ar>
-<ar><k>valuable</k>
-arvokas (kallis), kallisarvoinen</ar>
-<ar><k>valuation</k>
-arvio</ar>
-<ar><k>value</k>
-arvostaa
-
-arvo</ar>
-<ar><k>value-added tax</k>
-lisäarvovero</ar>
-<ar><k>valued</k>
-arvossapidetty</ar>
-<ar><k>valueless</k>
-arvoton</ar>
-<ar><k>valuer</k>
-arviomies</ar>
-<ar><k>valve</k>
-läppä, radioputki, venttiili (läppä)
-
-venttiili</ar>
-<ar><k>vampire</k>
-vampuuri</ar>
-<ar><k>van</k>
-pakettiauto</ar>
-<ar><k>vandal</k>
-vandaali</ar>
-<ar><k>vaneer</k>
-viilu</ar>
-<ar><k>vanguard</k>
-kärkijoukko</ar>
-<ar><k>vanilla</k>
-vanilja</ar>
-<ar><k>vanish</k>
-häipyä, hävitä, kadota (haihtua)</ar>
-<ar><k>vanishing</k>
-hupeneminen, häipyminen, katoaminen</ar>
-<ar><k>vanity</k>
-koreilu, korenhalu, turhamaisuus, turhuus</ar>
-<ar><k>vapour</k>
-huuru, höyry, usva</ar>
-<ar><k>vapour-bath</k>
-höyrykaappi</ar>
-<ar><k>vapourize</k>
-höyrystää (tekn)</ar>
-<ar><k>variable</k>
-muuttuva, vaihteleva, säädettävä</ar>
-<ar><k>variation</k>
-vaihtelu, poikkeama</ar>
-<ar><k>varied</k>
-vaihteleva</ar>
-<ar><k>variety</k>
-lajike, vaihtelu, valikoima</ar>
-<ar><k>various</k>
-sekalainen, usea</ar>
-<ar><k>varnish</k>
-lakata, lakka, vernissa</ar>
-<ar><k>vary</k>
-muuttaa, vaihdella</ar>
-<ar><k>varying</k>
-vaihteleva</ar>
-<ar><k>vaseline</k>
-vaseliini</ar>
-<ar><k>vast</k>
-aava, avara, laaja, valtava</ar>
-<ar><k>vast plain</k>
-aavikko</ar>
-<ar><k>vat</k>
-sammio</ar>
-<ar><k>vault</k>
-holvi
-
-holvata, holvihauta</ar>
-<ar><k>vaulted</k>
-holvimainen</ar>
-<ar><k>vegetable fat</k>
-kasvisrasva</ar>
-<ar><k>vegetable food</k>
-kasvisravinto</ar>
-<ar><k>vegetable matter</k>
-kasviaine</ar>
-<ar><k>vegetables</k>
-kasvikset, vihannekset</ar>
-<ar><k>vegetarian</k>
-kasvissyöjä, vegetaari</ar>
-<ar><k>vegetation</k>
-aluskasvillisuus, kasvillisuus</ar>
-<ar><k>vehemence</k>
-äkeys</ar>
-<ar><k>vehement</k>
-kiivas</ar>
-<ar><k>vehicle</k>
-ajokki, ajoneuvo</ar>
-<ar><k>veil</k>
-huntu
-
-hunnuttaa</ar>
-<ar><k>vein</k>
-laskimo, verisuoni</ar>
-<ar><k>velocity</k>
-alkunopeus, vauhti, nopeus</ar>
-<ar><k>velvet</k>
-sametti</ar>
-<ar><k>veneer</k>
-viilu</ar>
-<ar><k>venerable</k>
-kunnianarvoinen</ar>
-<ar><k>vengeance</k>
-kosto</ar>
-<ar><k>venison</k>
-hirvenliha</ar>
-<ar><k>venom</k>
-käärmeenmyrkky</ar>
-<ar><k>vent pipe</k>
-tuuletusjohto</ar>
-<ar><k>ventilate</k>
-tuulettaa</ar>
-<ar><k>ventilation</k>
-ilmanvaihto, tuuletus
-
-ilmanvaihto</ar>
-<ar><k>ventilator</k>
-venttiili</ar>
-<ar><k>venture</k>
-hirvitä, rohjeta, uskaltaa, uskaltautua</ar>
-<ar><k>veranda</k>
-kuistikko, veranta, vilpola</ar>
-<ar><k>verb</k>
-teonsana (kiel), verbi</ar>
-<ar><k>verdict</k>
-tuomio</ar>
-<ar><k>verge</k>
-parras</ar>
-<ar><k>verge on</k>
-hipoa</ar>
-<ar><k>verger</k>
-kirkonvahtimestari, suntio, vahtimestari (kirkon)</ar>
-<ar><k>verify</k>
-todeta, todetaa, vahvistaa (varmentaa), varmistaa</ar>
-<ar><k>veritable</k>
-ilmetty, tositodellinen, tosi</ar>
-<ar><k>vermin</k>
-tuhoeläin</ar>
-<ar><k>verse</k>
-runo, säe (runon)</ar>
-<ar><k>versus</k>
-vastaan (lak), vastaan (urh)</ar>
-<ar><k>vertebrate</k>
-luuranko (zo)</ar>
-<ar><k>vertibra</k>
-selkänikama</ar>
-<ar><k>vertical</k>
-luotisuora, pystysuora, pystysuuntainen, pysty-</ar>
-<ar><k>vertical line</k>
-luotiviiva, pystyviiva</ar>
-<ar><k>vertigo</k>
-huimaus (lääk), pyörrytys (lääk)</ar>
-<ar><k>very</k>
-aivan, erittäin, hyvin (sangen), kaikkein, kovin, oikein (hyvin), tosi (apuverbi), varsin, ylen (sangen)</ar>
-<ar><k>very fine distinction</k>
-hiuksenhieno</ar>
-<ar><k>very likely</k>
-arvatenkin, arvattavasti</ar>
-<ar><k>very low price</k>
-pilkkahinta</ar>
-<ar><k>very much</k>
-hyvin (kovin), kovasti, suuresti</ar>
-<ar><k>very nearly</k>
-likimain</ar>
-<ar><k>very noisy</k>
-remuava</ar>
-<ar><k>very old</k>
-ikivanha</ar>
-<ar><k>very own</k>
-ikioma</ar>
-<ar><k>very slender</k>
-heiveröinen</ar>
-<ar><k>very well</k>
-erinomaisesti</ar>
-<ar><k>vessel</k>
-alus (laiva), astia, laiva (alus), pursi</ar>
-<ar><k>vest</k>
-aluspaita, ihopaita</ar>
-<ar><k>vestibule</k>
-eteinen</ar>
-<ar><k>vestment</k>
-messupuku</ar>
-<ar><k>vestry</k>
-sakaristo</ar>
-<ar><k>vet</k>
-eläinlääkäri</ar>
-<ar><k>veteran</k>
-veteraani</ar>
-<ar><k>veterinary science</k>
-eläinlääketiede</ar>
-<ar><k>veterinary surgeon</k>
-eläinlääkäri</ar>
-<ar><k>vex</k>
-harmittaa, vaivata (kiusata)</ar>
-<ar><k>vexation</k>
-harmi, kiusa, mieliharmi</ar>
-<ar><k>viable</k>
-elinkykyinen</ar>
-<ar><k>viaduct</k>
-maasilta</ar>
-<ar><k>vibrate</k>
-värähdellä</ar>
-<ar><k>vibration</k>
-tärinä, värähtely, värinä, värähdys</ar>
-<ar><k>vicar</k>
-kirkkoherra</ar>
-<ar><k>vice</k>
-pahe, ruuvipuristin
-
-vara-</ar>
-<ar><k>vicinity</k>
-läheisyys, lähiseutu, lähistö, naapuristo</ar>
-<ar><k>vicious</k>
-ilkeä, paheellinen</ar>
-<ar><k>victim</k>
-uhri</ar>
-<ar><k>victor</k>
-voittaja</ar>
-<ar><k>victorious</k>
-voitokas, voitollinen</ar>
-<ar><k>victory</k>
-voitto</ar>
-<ar><k>video</k>
-kuvanauhuri</ar>
-<ar><k>videotape</k>
-kuvanauha</ar>
-<ar><k>videotape recorder</k>
-kuvanauhuri</ar>
-<ar><k>view</k>
-käsitys, mielipide, näkemys, näkymä, näkö, näköala, perspektiivi
-
-silmäillä</ar>
-<ar><k>view-finder</k>
-etsin (valok)</ar>
-<ar><k>viewpoint</k>
-katsantokanta</ar>
-<ar><k>vigorous</k>
-jäntevä, ponteva, reipas, terhakka, toimintatarmoinen</ar>
-<ar><k>vigour</k>
-jäntevyys, tarmo, toimintatarmo, virkeys, voima (mahti), voimakkuus</ar>
-<ar><k>viking</k>
-viikinki</ar>
-<ar><k>vile</k>
-alhainen (kuv), katala</ar>
-<ar><k>villa</k>
-huvila</ar>
-<ar><k>village</k>
-kirkonkylä, kylä</ar>
-<ar><k>villain</k>
-ilkimys, konna, roisto, vintiö</ar>
-<ar><k>villainous</k>
-konnamainen</ar>
-<ar><k>villainous deed</k>
-konnantyö</ar>
-<ar><k>vindictive</k>
-kostonhimoinen</ar>
-<ar><k>vine</k>
-viiniköynnös</ar>
-<ar><k>vinegar</k>
-etikka</ar>
-<ar><k>vineyard</k>
-viinitarha</ar>
-<ar><k>vintage</k>
-viinisato</ar>
-<ar><k>vinyl</k>
-vinyyli</ar>
-<ar><k>viola</k>
-alttoviulu</ar>
-<ar><k>violate</k>
-rikkoa (loukata)</ar>
-<ar><k>violation</k>
-häväistys</ar>
-<ar><k>violence</k>
-kiivaus, raivokkuus, väkivalta, väkivaltaisuus</ar>
-<ar><k>violent</k>
-hurja (raivokas), kiihkeä, kiivas, raju, väkivaltainen</ar>
-<ar><k>violently</k>
-väkivaltaisesti</ar>
-<ar><k>violet</k>
-orvokki, sinipunainen</ar>
-<ar><k>violin</k>
-viulu</ar>
-<ar><k>violinist</k>
-viuluniekka</ar>
-<ar><k>viper</k>
-kyykäärme</ar>
-<ar><k>virgin</k>
-impi, neitsyt</ar>
-<ar><k>virginal</k>
-neitseellinen</ar>
-<ar><k>virility</k>
-miehuudenvoima</ar>
-<ar><k>virtue</k>
-avu (hyve), hyve, hyveellisyys, siveys</ar>
-<ar><k>virtuous</k>
-hyvellinen, siveä</ar>
-<ar><k>virtuousness</k>
-hyveellisyys</ar>
-<ar><k>visa</k>
-viisumi</ar>
-<ar><k>visibility</k>
-näkyvyys</ar>
-<ar><k>visible</k>
-näkyvä</ar>
-<ar><k>visit</k>
-käynti, oleskelu, vierailla, vieraskäynti</ar>
-<ar><k>visiting</k>
-kyläily</ar>
-<ar><k>visiting card</k>
-käyntikortti</ar>
-<ar><k>visitor</k>
-kävijä, vierailija</ar>
-<ar><k>visual arts</k>
-kuvataide</ar>
-<ar><k>vital</k>
-elintärkeä</ar>
-<ar><k>vital condition</k>
-elinehto</ar>
-<ar><k>vital function</k>
-elintoiminto, elintärkeä</ar>
-<ar><k>vitamin</k>
-vitamiini</ar>
-<ar><k>vitriol</k>
-vihtrilli (kem)</ar>
-<ar><k>vivacious</k>
-eloisa, vauhdikas (eloisa), vilkas</ar>
-<ar><k>vivaciously</k>
-eloisasti</ar>
-<ar><k>vivid</k>
-vilkas</ar>
-<ar><k>vividly</k>
-eloisasti</ar>
-<ar><k>vixen</k>
-äkäpussi</ar>
-<ar><k>vocabulary</k>
-sanasto</ar>
-<ar><k>vocal</k>
-laulullinen, äänellinen</ar>
-<ar><k>vocal cord</k>
-äänihuuli</ar>
-<ar><k>vocation</k>
-elämänkutsumus, kutsumus</ar>
-<ar><k>vocational education</k>
-ammattiopetus</ar>
-<ar><k>voice</k>
-puheääni</ar>
-<ar><k>void</k>
-tyhjiö, tyhjyys</ar>
-<ar><k>void of air</k>
-ilmaton</ar>
-<ar><k>volatile</k>
-haihtuva</ar>
-<ar><k>volatile memory</k>
-häviävä muisti</ar>
-<ar><k>volcanic</k>
-tuliperäinen</ar>
-<ar><k>volcano</k>
-tulivuori</ar>
-<ar><k>vole</k>
-myyrä</ar>
-<ar><k>volley</k>
-yhteislaukaus</ar>
-<ar><k>volleyball</k>
-lentopallo</ar>
-<ar><k>volt</k>
-voltti (sähk)</ar>
-<ar><k>voltage</k>
-jännite (sähk)</ar>
-<ar><k>volume</k>
-avaruus, osa (kirjan)
-
-volyymi, määrä, tilavuus</ar>
-<ar><k>voluntary</k>
-vapaaehtoinen</ar>
-<ar><k>volunteer</k>
-tarjokas, vapaaehtoinen</ar>
-<ar><k>voluptuousness</k>
-hekuma</ar>
-<ar><k>vomit</k>
-oksennus</ar>
-<ar><k>voracious</k>
-ahnas</ar>
-<ar><k>vote</k>
-äänestys
-
-äänestää</ar>
-<ar><k>voter</k>
-äänestäjä</ar>
-<ar><k>voting</k>
-äänestys</ar>
-<ar><k>voucher</k>
-kuitti, tosite</ar>
-<ar><k>vowel</k>
-vokaali (kiel), ääntiö</ar>
-<ar><k>voyage</k>
-laivamatka, merimatka</ar>
-<ar><k>vulgar</k>
-rahvaanomainen</ar>
-<ar><k>vulnerability</k>
-haavoittuvaisuus</ar>
-<ar><k>vulnerable</k>
-haavoittuva</ar>
-<ar><k>vulture</k>
-korppikotka</ar>
-<ar><k>wad</k>
-tuppo</ar>
-<ar><k>wade</k>
-kahlata</ar>
-<ar><k>wader</k>
-kahlaaja</ar>
-<ar><k>wafer</k>
-öylätti</ar>
-<ar><k>waffle</k>
-vohveli</ar>
-<ar><k>wag</k>
-pilkkakirves</ar>
-<ar><k>wages</k>
-palkka</ar>
-<ar><k>wagtail</k>
-västäräkki</ar>
-<ar><k>wail</k>
-uikuttaa, voivotella</ar>
-<ar><k>wailing</k>
-voivotus</ar>
-<ar><k>waist</k>
-kuve, uuma, vyötäiset, vyötärö</ar>
-<ar><k>waistcoat</k>
-liivi, liivit</ar>
-<ar><k>wait</k>
-odottaa</ar>
-<ar><k>wait lamp</k>
-epävalmiusvalo, odota-valo</ar>
-<ar><k>wait station</k>
-syöttökynnys</ar>
-<ar><k>waiter</k>
-tarjoilija, viinuri</ar>
-<ar><k>waitress</k>
-tarjoilijatar</ar>
-<ar><k>wake</k>
-havahduttaa</ar>
-<ar><k>wake up</k>
-herättää, herätä, valveutua</ar>
-<ar><k>wake-up</k>
-havahtua</ar>
-<ar><k>waking</k>
-herätys</ar>
-<ar><k>walk</k>
-kävely, jaloittelu
-
-astella, astua (käydä), kävellä</ar>
-<ar><k>walk lame</k>
-ontua</ar>
-<ar><k>walker</k>
-jalankulkija, retkeilijä (jalan)</ar>
-<ar><k>wall</k>
-muuri, seinä</ar>
-<ar><k>wall bearer</k>
-seinäruode</ar>
-<ar><k>wall calendar</k>
-päivyri</ar>
-<ar><k>wall flashing</k>
-rintataitteen pellitys</ar>
-<ar><k>wall footing</k>
-seinäantura</ar>
-<ar><k>wall panel</k>
-seinälevy</ar>
-<ar><k>wall paper</k>
-tapetti</ar>
-<ar><k>wall socket</k>
-pistorasia</ar>
-<ar><k>wall tile</k>
-seinälaatat</ar>
-<ar><k>wall tiles</k>
-seinälaatat</ar>
-<ar><k>wall-to-wall carpeting</k>
-kokolattiamatto</ar>
-<ar><k>wallet</k>
-lompakko</ar>
-<ar><k>wallop</k>
-rökittää</ar>
-<ar><k>wallow</k>
-kieriskellä</ar>
-<ar><k>wallpaper</k>
-tapetti</ar>
-<ar><k>walnut</k>
-saksanpähkinä, pähkinäpuu</ar>
-<ar><k>walrus</k>
-mursu</ar>
-<ar><k>waltz</k>
-valssi (tanssi)</ar>
-<ar><k>waltz off with</k>
-voittaa leikiten [puhek.]</ar>
-<ar><k>wander</k>
-astuskella, hourailla, käyskennellä, vaeltaa</ar>
-<ar><k>wander about</k>
-kuljeksia</ar>
-<ar><k>wandering</k>
-vaelus</ar>
-<ar><k>waning moon</k>
-alakuu</ar>
-<ar><k>wank **</k>
-runkata [alat.]</ar>
-<ar><k>wanker **</k>
-nuija, runkkari [alat.]</ar>
-<ar><k>want</k>
-puute, tarve
-
-haluta, tarvita
-
-köyhyys</ar>
-<ar><k>war</k>
-sota</ar>
-<ar><k>war-like</k>
-sotainen</ar>
-<ar><k>warble</k>
-liverrys</ar>
-<ar><k>ward</k>
-hoidokki, holhotti, vuodeosasto</ar>
-<ar><k>ward off</k>
-torjua</ar>
-<ar><k>ward sister</k>
-sairaanosastonhoitaja</ar>
-<ar><k>wardrobe</k>
-vaatekomero, puvusto, vaatekaappi</ar>
-<ar><k>warehouse</k>
-varasto</ar>
-<ar><k>warm</k>
-lämmittää
-
-harras, lämmin, lämpöinen</ar>
-<ar><k>warm oneself</k>
-lämmitellä</ar>
-<ar><k>warm up</k>
-lämmetä, lämmittää, lämmitä</ar>
-<ar><k>warming cupboard</k>
-lämpökaappi</ar>
-<ar><k>warmly</k>
-lämpimästi</ar>
-<ar><k>warmth</k>
-hartaus, lämpimyys, lämpö</ar>
-<ar><k>warn</k>
-varoittaa</ar>
-<ar><k>warning</k>
-varoitus</ar>
-<ar><k>warp</k>
-loimi (kankaan)</ar>
-<ar><k>warrant</k>
-taata, valuutus</ar>
-<ar><k>warrior</k>
-soturi</ar>
-<ar><k>wart</k>
-syylä</ar>
-<ar><k>wartime</k>
-sodanaikainen</ar>
-<ar><k>wash</k>
-huuhtelu
-
-huljuttaa, huuhdella, huuhtoa, pestä</ar>
-<ar><k>wash-basin</k>
-pesuallas</ar>
-<ar><k>washbasin</k>
-pesuvati</ar>
-<ar><k>washer</k>
-aluslevy</ar>
-<ar><k>washing facilities</k>
-pesutilat</ar>
-<ar><k>washing powder</k>
-pesuaine</ar>
-<ar><k>washout</k>
-häipymä</ar>
-<ar><k>wasp</k>
-ampiainen</ar>
-<ar><k>waste</k>
-autio, haaskata, hukata (turhaan), menettää (tuhlata), tuhlata, tuhota
-
-viemäri</ar>
-<ar><k>waste disposal</k>
-jätehuolto</ar>
-<ar><k>waste grating</k>
-viemärisiivilä</ar>
-<ar><k>waste paper</k>
-makulatuuri</ar>
-<ar><k>waste timber</k>
-hylkypuu</ar>
-<ar><k>waste water</k>
-jätevesi, viemärivesi</ar>
-<ar><k>wasteful person</k>
-haaskaja</ar>
-<ar><k>wastefulness</k>
-tulaavaisuus</ar>
-<ar><k>wastepipe</k>
-laskuputki</ar>
-<ar><k>waster</k>
-hulttio</ar>
-<ar><k>wasting</k>
-haaskaus, hivuttattava</ar>
-<ar><k>watch</k>
-rannekello, tarkkailu, vahti, vahtivuoro, vartio
-
-katsella, katsoa, tarkkailla, valvoa, vartioida</ar>
-<ar><k>watch dog</k>
-vahtikoira</ar>
-<ar><k>watch-dog</k>
-kahlekoira</ar>
-<ar><k>watchful</k>
-valpas</ar>
-<ar><k>watchmaker</k>
-kelloseppä</ar>
-<ar><k>watchman</k>
-vartija</ar>
-<ar><k>water</k>
-juottaa (hevosta ym), kastaa, kastella
-
-vesi</ar>
-<ar><k>water extraction</k>
-veden otto</ar>
-<ar><k>water main</k>
-päävesijohto</ar>
-<ar><k>water meter</k>
-vesimittari</ar>
-<ar><k>water pipe</k>
-vesijohto</ar>
-<ar><k>water pipes</k>
-vesijohto</ar>
-<ar><k>water preservation</k>
-vedensuojelu</ar>
-<ar><k>water proofing</k>
-vedeneristys</ar>
-<ar><k>water supply</k>
-vesijohdot</ar>
-<ar><k>water vapour</k>
-vesihöyry</ar>
-<ar><k>water-blister</k>
-vesirakko</ar>
-<ar><k>water-colour</k>
-akvarelli</ar>
-<ar><k>water-diviner</k>
-kaivonkatsoja</ar>
-<ar><k>water-fall</k>
-koski (putous)</ar>
-<ar><k>water-jump</k>
-vesihauta (urh)</ar>
-<ar><k>water-lily</k>
-lumme</ar>
-<ar><k>water-melon</k>
-arpuusi</ar>
-<ar><k>water-nymph</k>
-aallotar</ar>
-<ar><k>water-repellent</k>
-hylkivä</ar>
-<ar><k>water-soluble</k>
-vesiliukoinen</ar>
-<ar><k>water-tap</k>
-vesihana</ar>
-<ar><k>watercourse</k>
-vesistö</ar>
-<ar><k>waterfall</k>
-vesiputous</ar>
-<ar><k>waterfalls</k>
-vesiputous</ar>
-<ar><k>waterfowl</k>
-vesilintu</ar>
-<ar><k>watering</k>
-juotto, kastelu</ar>
-<ar><k>watermark</k>
-vesileima</ar>
-<ar><k>waterproof</k>
-vedenpitävä
-
-vedenkestävä</ar>
-<ar><k>watertight</k>
-vedenpitävä</ar>
-<ar><k>waterway</k>
-vesitie</ar>
-<ar><k>watery</k>
-vetinen</ar>
-<ar><k>watt</k>
-watti</ar>
-<ar><k>wattle</k>
-heltta</ar>
-<ar><k>wave</k>
-aalto, käherrys, laine, vilkutus
-
-heiluttaa (kättä), huiskuttaa, hulmuta (tukka ym), kihartua, kähertää</ar>
-<ar><k>wave one's arms about</k>
-huitoa</ar>
-<ar><k>wave-like</k>
-aaltomainen</ar>
-<ar><k>wave-motion</k>
-aaltoliike</ar>
-<ar><k>waver</k>
-horjua (kuv), häilyä (horjua), häälyä</ar>
-<ar><k>wavering</k>
-epäröivä, horjuva, häilyvä</ar>
-<ar><k>waving</k>
-käherrys, vilkutus</ar>
-<ar><k>wavy</k>
-kihara</ar>
-<ar><k>wavy line</k>
-aaltoviiva</ar>
-<ar><k>wax</k>
-vaha, vahata</ar>
-<ar><k>waxed thread</k>
-pikilanka</ar>
-<ar><k>waxing</k>
-vahaus</ar>
-<ar><k>waxwing</k>
-tilhi (zo)</ar>
-<ar><k>way</k>
-keino, rata, suunta, tapa, tie</ar>
-<ar><k>way of life</k>
-elämäntapa</ar>
-<ar><k>way of presenting</k>
-esitystapa</ar>
-<ar><k>way of thinking</k>
-ajatustapa</ar>
-<ar><k>way out</k>
-uloskäytävä, ulospääsy</ar>
-<ar><k>wc</k>
-klosetti</ar>
-<ar><k>weak</k>
-heikko, hento (pieni), laimea, mieto</ar>
-<ar><k>weak point</k>
-heikko (luonteenvika)</ar>
-<ar><k>weak-minded</k>
-heikkotahtoinen</ar>
-<ar><k>weak-sighted</k>
-huononäköinen</ar>
-<ar><k>weaken</k>
-heikentyä, heikentää, heiketä, herpaista, laimentaa, laimeta, raueta</ar>
-<ar><k>weakening</k>
-heikkeneminen</ar>
-<ar><k>weakness</k>
-heikkous, laimeus</ar>
-<ar><k>wealth</k>
-rikkaus, varallisuus, vauraus, äveriäisyys</ar>
-<ar><k>wealthy</k>
-rikas, varakas, vauras, äveriäs</ar>
-<ar><k>weapon</k>
-ase</ar>
-<ar><k>wear</k>
-kuluma
-
-käyttö (vaatteet)</ar>
-<ar><k>wear and tear</k>
-kuluminen</ar>
-<ar><k>wear away</k>
-hivuttaa (kalvaa), kuihduttaa, kulua, riuduttaa</ar>
-<ar><k>wear down</k>
-kuihduttaa</ar>
-<ar><k>wear out</k>
-uuvuttaa</ar>
-<ar><k>wear smooth</k>
-hioutua (kulua)</ar>
-<ar><k>weariness</k>
-väsyksissä</ar>
-<ar><k>weary</k>
-uupunut, väsynyt</ar>
-<ar><k>weasel</k>
-lumikko</ar>
-<ar><k>weather</k>
-ilma (sää), rapautua, sää</ar>
-<ar><k>weather chart</k>
-sääkartta</ar>
-<ar><k>weather conditions</k>
-sääsuhteet</ar>
-<ar><k>weather forecast</k>
-sääennuste</ar>
-<ar><k>weather report</k>
-säätiedotus</ar>
-<ar><k>weather-glass</k>
-ilmapuntari</ar>
-<ar><k>weathercock</k>
-tuuliviiri</ar>
-<ar><k>weatherproof</k>
-säänkestävä</ar>
-<ar><k>weatherstrip</k>
-ikkunatiiviste</ar>
-<ar><k>weaver</k>
-kankuri, kutoja</ar>
-<ar><k>web</k>
-höyty</ar>
-<ar><k>wedding</k>
-häät, vihkiminen, vihkiäiset</ar>
-<ar><k>wedding ceremony</k>
-häämenot</ar>
-<ar><k>wedding present</k>
-häälahja</ar>
-<ar><k>wedge</k>
-kiila</ar>
-<ar><k>weed</k>
-kitkeä, rikkaruoho</ar>
-<ar><k>week</k>
-viikko</ar>
-<ar><k>week-day</k>
-arki, arkipäivä</ar>
-<ar><k>week-end</k>
-viikonloppu</ar>
-<ar><k>weekly</k>
-jokaviikkoinen, viikoittain, viikoittainen</ar>
-<ar><k>weeping</k>
-itku</ar>
-<ar><k>weft</k>
-kude</ar>
-<ar><k>weigh</k>
-punnita</ar>
-<ar><k>weigh anchor</k>
-nostaa ankkuri</ar>
-<ar><k>weighing machine</k>
-talousvaaka</ar>
-<ar><k>weight</k>
-paino</ar>
-<ar><k>weight-lifting</k>
-painonnosto</ar>
-<ar><k>welcome</k>
-tervetulotoivotus
-
-tervetullut
-
-tervehtiä (ilolla), tervetuloa</ar>
-<ar><k>weld</k>
-hitsata</ar>
-<ar><k>welded</k>
-hitsattu</ar>
-<ar><k>welded joint</k>
-hitsaussauma</ar>
-<ar><k>welder</k>
-hitsataja</ar>
-<ar><k>welding</k>
-hitsaus</ar>
-<ar><k>welding torch</k>
-hitsauspoltin</ar>
-<ar><k>welfare</k>
-hyvinvointi, huolto</ar>
-<ar><k>welfare work</k>
-huoltotyö</ar>
-<ar><k>well</k>
-kaivo</ar>
-<ar><k>well behaved</k>
-hyväntapainen</ar>
-<ar><k>well brought up</k>
-hyvinkasvatettu</ar>
-<ar><k>well cared for</k>
-hyvinhoidettu</ar>
-<ar><k>well kept</k>
-hyvinhoidettu</ar>
-<ar><k>well off</k>
-vauras</ar>
-<ar><k>well up</k>
-pulpahtaa</ar>
-<ar><k>well-being</k>
-hyvinvointi</ar>
-<ar><k>well-deserved</k>
-hyvinansaittu</ar>
-<ar><k>well-disposed</k>
-suopea</ar>
-<ar><k>well-founded</k>
-aiheellinen</ar>
-<ar><k>well-known</k>
-tunnettu</ar>
-<ar><k>well-made</k>
-hyvätekoinen</ar>
-<ar><k>well-meaning</k>
-hyväntahtoinen</ar>
-<ar><k>well-paid</k>
-hyväpalkkainen</ar>
-<ar><k>well-proportioned</k>
-sopusuhtainen</ar>
-<ar><k>well-read</k>
-lukenut</ar>
-<ar><k>well-shaped</k>
-siromuotoinen</ar>
-<ar><k>well-to-do</k>
-hyvinvoipa (varakas), vauras</ar>
-<ar><k>welterweight</k>
-välisarja</ar>
-<ar><k>west</k>
-länsi, läntinen</ar>
-<ar><k>western</k>
-lännenfilmi
-
-länsimainen, läntinen</ar>
-<ar><k>wet</k>
-märkä
-
-märkä, vetinen
-
-kastaa, kastella</ar>
-<ar><k>wet behind the ears</k>
-märkäkorva (kokematon) [puhek.]</ar>
-<ar><k>wet nurse</k>
-imettäjä</ar>
-<ar><k>wet snow</k>
-räntä</ar>
-<ar><k>wet through</k>
-likomärkä, läpimärkä</ar>
-<ar><k>wether</k>
-oinas</ar>
-<ar><k>wethervane</k>
-tuuliviiri</ar>
-<ar><k>whale</k>
-valas</ar>
-<ar><k>whalebone</k>
-hetula (zo)</ar>
-<ar><k>wharf</k>
-lastauslaituri</ar>
-<ar><k>what</k>
-mikä, mitä</ar>
-<ar><k>what about</k>
-entä</ar>
-<ar><k>what kind of</k>
-millainen</ar>
-<ar><k>what sort of</k>
-millainen</ar>
-<ar><k>what the hell</k>
-mitä pirua [puhek.]</ar>
-<ar><k>what's new</k>
-mitä kuuluu [puhek.]</ar>
-<ar><k>what's up</k>
-mitä täällä on tekeillä [puhek.]</ar>
-<ar><k>whatever</k>
-mitä hyvänsä</ar>
-<ar><k>wheat</k>
-vehnä</ar>
-<ar><k>wheel</k>
-kehrä, pyörä, ratas, ratti (ohjauspyörä), ruori
-
-pyörittää</ar>
-<ar><k>wheel chair</k>
-rullatuoli</ar>
-<ar><k>wheel pressure</k>
-pyöräkuorma</ar>
-<ar><k>wheelbarrow</k>
-kottikärryt
-
-käsikärryt</ar>
-<ar><k>wheeze</k>
-sähinä
-
-kähistä, sähistä</ar>
-<ar><k>when</k>
-jolloin, koska, kun, milloin</ar>
-<ar><k>when you get time</k>
-kun ehdit</ar>
-<ar><k>whenever</k>
-joka kerran kun</ar>
-<ar><k>where to</k>
-minne</ar>
-<ar><k>where's the fire</k>
-onpa kiire [puhek.]</ar>
-<ar><k>whereabouts</k>
-olinpaikka</ar>
-<ar><k>whereas</k>
-jotavastoin</ar>
-<ar><k>whether</k>
-ko, kö, tokko</ar>
-<ar><k>whetstone</k>
-kovasin, siera, tahkokivi</ar>
-<ar><k>whey</k>
-hera</ar>
-<ar><k>whiff</k>
-haiku (tuprut), henkäys (tuulen)</ar>
-<ar><k>whim</k>
-oikku</ar>
-<ar><k>whimper</k>
-ruikutus
-
-inistä, ruikuttaa, vikistä</ar>
-<ar><k>whine</k>
-ruikutus
-
-inistä, mankua, ruikuttaa, vikistä</ar>
-<ar><k>whinny</k>
-hirnua</ar>
-<ar><k>whip</k>
-piiska, ruoska
-
-kurittaa (lyödä), peistä, piiskata, ruoskia, suomia (piestä)</ar>
-<ar><k>whipped cream</k>
-kermavaahto, kuohukerma</ar>
-<ar><k>whir</k>
-humahdus</ar>
-<ar><k>whirl</k>
-pyörre
-
-pyryttää, tupruta</ar>
-<ar><k>whirlpool</k>
-kurimus</ar>
-<ar><k>whisk</k>
-vatkata, vispilä</ar>
-<ar><k>whisk of birch twigs</k>
-vihta</ar>
-<ar><k>whisker</k>
-kuonokarva, vatkain</ar>
-<ar><k>whisky</k>
-viski</ar>
-<ar><k>whisky and soda</k>
-grogi</ar>
-<ar><k>whisper</k>
-hiiskahdus, kuiskaus, supatus, supina
-
-humista (tuuli ym), kuiskailla, kuiskata, supattaa, supista</ar>
-<ar><k>whistle</k>
-vihellyspilli, ujellus, vihellys
-
-suhista, viheltää, vinkua</ar>
-<ar><k>white</k>
-valkea, valkoinen</ar>
-<ar><k>white frost</k>
-huurre, härmä</ar>
-<ar><k>white lie</k>
-hätävalhe</ar>
-<ar><k>white poplar</k>
-hopeahaapa</ar>
-<ar><k>white with frost</k>
-huurteinen</ar>
-<ar><k>whiteness</k>
-valkeus</ar>
-<ar><k>whitewash</k>
-kalkita (seinää ym)</ar>
-<ar><k>whitewood</k>
-kuusipuu (liik)</ar>
-<ar><k>whitlow</k>
-kynsiajos</ar>
-<ar><k>whittle</k>
-veistellä, vuoleksia</ar>
-<ar><k>whiz</k>
-humahdus, suhahdus, viuhina</ar>
-<ar><k>who</k>
-ken, kenelle, ketä, kuka</ar>
-<ar><k>whodunit</k>
-dekkari [puhek.]</ar>
-<ar><k>whole</k>
-eheä, kaikki (koko), koko, kokonainen, täysi (koko)</ar>
-<ar><k>whole of</k>
-koko</ar>
-<ar><k>whole-meal bread</k>
-kokojyväleipä</ar>
-<ar><k>wholeness</k>
-eheys</ar>
-<ar><k>wholesale</k>
-tukku-</ar>
-<ar><k>wholesale murder</k>
-joukkomurha</ar>
-<ar><k>wholesale price</k>
-tukkuhinta</ar>
-<ar><k>wholesaler</k>
-tukkukauppa, tukkukauppias</ar>
-<ar><k>wholly</k>
-aivan (täysin), kokonaan, tykkänään, tyyten, täysin (kokonaan)</ar>
-<ar><k>whom</k>
-jota</ar>
-<ar><k>whoop</k>
-hinkua</ar>
-<ar><k>whooping-cough</k>
-hinkuyskä</ar>
-<ar><k>whore</k>
-huora, portto</ar>
-<ar><k>whose</k>
-joiden</ar>
-<ar><k>why</k>
-kas, miksi, minkätähden</ar>
-<ar><k>wicked</k>
-huono (paha), ilkeä, jumalaton, paha, pahanilkinen</ar>
-<ar><k>wickedness</k>
-ilkeys, pahuus</ar>
-<ar><k>wicker basket</k>
-pajukuoppa</ar>
-<ar><k>wicker furniture</k>
-korihuonekalut</ar>
-<ar><k>wicker-basket</k>
-juurikori</ar>
-<ar><k>wickerwork</k>
-koriteos</ar>
-<ar><k>wide</k>
-aava, avara, laaja, lavea, leveä, väljä</ar>
-<ar><k>wide screen</k>
-laajakangas (elok)</ar>
-<ar><k>wide-brimmed</k>
-leveälierinen</ar>
-<ar><k>widely</k>
-laajalti</ar>
-<ar><k>widely known</k>
-maankuulu</ar>
-<ar><k>widen</k>
-avartaa, laajentaa, laajentua, leventää, levetä, suurentaa, väljetä</ar>
-<ar><k>wideness</k>
-avaruus</ar>
-<ar><k>widow</k>
-leski</ar>
-<ar><k>widower</k>
-leskimies, leskimies</ar>
-<ar><k>widowhood</k>
-leskeys</ar>
-<ar><k>width</k>
-leveys</ar>
-<ar><k>width guide</k>
-rajoitin</ar>
-<ar><k>wife</k>
-aviovaimo, vaimo</ar>
-<ar><k>wig</k>
-peruukki</ar>
-<ar><k>wiggle</k>
-heilua</ar>
-<ar><k>wild</k>
-huima (hurja), hurja, jylhä, rasavilli, villi</ar>
-<ar><k>wild beast</k>
-peto, villipeto</ar>
-<ar><k>wild boar</k>
-metsäkarju</ar>
-<ar><k>wild fowl</k>
-metsälintu</ar>
-<ar><k>wild pansy</k>
-ketoorvokki</ar>
-<ar><k>wild reindeer</k>
-peura</ar>
-<ar><k>wild rose</k>
-villiruusu</ar>
-<ar><k>wild-boar</k>
-villisika</ar>
-<ar><k>wildcat strike</k>
-korpilakko</ar>
-<ar><k>wilderness</k>
-erämaa, korpi</ar>
-<ar><k>wildfire</k>
-kulovalkea (kuv)</ar>
-<ar><k>wildness</k>
-hurjuus, jylhyys, raisuus, villiys</ar>
-<ar><k>wilds</k>
-salo</ar>
-<ar><k>wilful</k>
-omapäinen</ar>
-<ar><k>wilfully</k>
-itsepäisesti</ar>
-<ar><k>will</k>
-jälkisäädös, tahto, testamentti
-
-futuuri muoto</ar>
-<ar><k>will to live</k>
-elämänhalu</ar>
-<ar><k>willing</k>
-altis (taipuvainen), halukas</ar>
-<ar><k>willingly</k>
-halukkaasti, kernaasti, mielellään</ar>
-<ar><k>willow</k>
-paju, raita</ar>
-<ar><k>willow grouse</k>
-riekko (zo)</ar>
-<ar><k>willow herb</k>
-horsma</ar>
-<ar><k>willow warbler</k>
-pajulintu</ar>
-<ar><k>wilt</k>
-kuihtua</ar>
-<ar><k>win</k>
-voittaa</ar>
-<ar><k>winch</k>
-kela (laivan), vintturi</ar>
-<ar><k>wind brace</k>
-tuuliside</ar>
-<ar><k>wind in</k>
-vyyhtiä</ar>
-<ar><k>wind instrument</k>
-puhallin (mus)</ar>
-<ar><k>wind load</k>
-tuulikuorma</ar>
-<ar><k>wind up</k>
-vyyhtiä</ar>
-<ar><k>winding</k>
-käämi, käämitys
-
-koukeroinen, mutkainen, mutkikas</ar>
-<ar><k>windlass</k>
-vintturi</ar>
-<ar><k>windmill</k>
-tuulimylly</ar>
-<ar><k>window</k>
-ikkuna, aukko</ar>
-<ar><k>window frame</k>
-ikkunankehys</ar>
-<ar><k>window hinge</k>
-ikkunan sarana</ar>
-<ar><k>window ledge</k>
-ikkunalauta</ar>
-<ar><k>window pane</k>
-ikkunaruutu</ar>
-<ar><k>window recess</k>
-ikkunakomero</ar>
-<ar><k>window-dresser</k>
-ikkunansomistaja</ar>
-<ar><k>window-pane</k>
-ikkunaruutu</ar>
-<ar><k>window-sill</k>
-ikkunalauta</ar>
-<ar><k>windpipe</k>
-henkitorvi</ar>
-<ar><k>windward</k>
-tuulenpuoli</ar>
-<ar><k>windy</k>
-tuulinen</ar>
-<ar><k>wing</k>
-kylkirakennus, siipi</ar>
-<ar><k>wing print-out</k>
-siipijälki</ar>
-<ar><k>winged</k>
-lennokas, siivekäs</ar>
-<ar><k>wink</k>
-räpytys, silmänisku
-
-vilkuttaa</ar>
-<ar><k>winking</k>
-silmänisku, vilkutus</ar>
-<ar><k>winner</k>
-voittaja</ar>
-<ar><k>winning-post</k>
-maali (urh)</ar>
-<ar><k>winter</k>
-talvehtia</ar>
-<ar><k>winter bather</k>
-avantouimari</ar>
-<ar><k>winter sports</k>
-talviurheilu</ar>
-<ar><k>wintry</k>
-talvinen</ar>
-<ar><k>wipe</k>
-pyyhkiä</ar>
-<ar><k>wire</k>
-johto, lanka, nitomalanka
-
-lanka</ar>
-<ar><k>wire cutter</k>
-lamkaleikkuri</ar>
-<ar><k>wire harness</k>
-johtonippu</ar>
-<ar><k>wired glass</k>
-lankalasi</ar>
-<ar><k>wireless</k>
-radio
-
-langaton</ar>
-<ar><k>wisdom</k>
-viisaus</ar>
-<ar><k>wise</k>
-viisas</ar>
-<ar><k>wise crack</k>
-huuli (sutkautus)</ar>
-<ar><k>wisely</k>
-viisaasti</ar>
-<ar><k>wish</k>
-halu (toivo), tahto, toive, toivoa, toivomus
-
-toivottaa, haluta</ar>
-<ar><k>wisp of cloud</k>
-hahtuva (pilven), hattara</ar>
-<ar><k>wistful</k>
-kaihoisa</ar>
-<ar><k>witch</k>
-noitaakka</ar>
-<ar><k>witch hunt</k>
-ajojahti</ar>
-<ar><k>witchcraft</k>
-noitua, taika</ar>
-<ar><k>with</k>
-kanssa, keralla, mukana, ohella</ar>
-<ar><k>with a narrow margin</k>
-hädintuskin</ar>
-<ar><k>with anxiety</k>
-huolestuneesti</ar>
-<ar><k>with care</k>
-hellävaroin, huolellisesti</ar>
-<ar><k>with difficulty</k>
-hankalasti</ar>
-<ar><k>with dignity</k>
-arvokkaasti</ar>
-<ar><k>with emotion</k>
-intohimoisesti</ar>
-<ar><k>with emphasis</k>
-ponnekkaasti</ar>
-<ar><k>with favour</k>
-suosiollisesti</ar>
-<ar><k>with great interest</k>
-innostuneesti</ar>
-<ar><k>with it</k>
-sillä</ar>
-<ar><k>with merit</k>
-ansiokkaasti</ar>
-<ar><k>with open arms</k>
-avosylin</ar>
-<ar><k>with pleasure</k>
-ilomielin, mielellään</ar>
-<ar><k>with prejudice</k>
-ennakkoluuloisesti</ar>
-<ar><k>with sensory defects</k>
-aistiviallinen</ar>
-<ar><k>with sleeves</k>
-hihallinen</ar>
-<ar><k>with suspicion</k>
-epäluuloisesti</ar>
-<ar><k>with tearful eyes</k>
-itkusilmin</ar>
-<ar><k>withdrawal</k>
-otto (tililtä ym), luopuminen</ar>
-<ar><k>withdrawl</k>
-lakkautus, luopuminen</ar>
-<ar><k>wither</k>
-kuihtua, näivettyä</ar>
-<ar><k>wither away</k>
-lakastua</ar>
-<ar><k>within</k>
-sisällä</ar>
-<ar><k>within earshot</k>
-kuulomatka</ar>
-<ar><k>without</k>
-ilman, vailla, vaille</ar>
-<ar><k>without charm</k>
-suloton</ar>
-<ar><k>without consideration</k>
-ajattelemattomasti</ar>
-<ar><k>without deserving it</k>
-ansaitsematta</ar>
-<ar><k>without difficulty</k>
-helposti</ar>
-<ar><k>without effect</k>
-vaiketukseton</ar>
-<ar><k>without fear</k>
-pelkäämättä</ar>
-<ar><k>without help</k>
-avutta</ar>
-<ar><k>without influence</k>
-vaiketukseton</ar>
-<ar><k>without intermission</k>
-lakkaamatta</ar>
-<ar><k>without means</k>
-varaton</ar>
-<ar><k>without merit</k>
-ansioton</ar>
-<ar><k>without prejudice</k>
-ennakkoluulottomasti</ar>
-<ar><k>without preparation</k>
-valmistamatta</ar>
-<ar><k>without reason</k>
-aiheettomasti</ar>
-<ar><k>without stopping</k>
-lakkaamatta</ar>
-<ar><k>without sufficient cause</k>
-asiattomasti</ar>
-<ar><k>withstand</k>
-kestää (sietää)</ar>
-<ar><k>witness</k>
-todistaja</ar>
-<ar><k>witticism</k>
-huuli (sutkautus), kokkapuhe</ar>
-<ar><k>witty</k>
-vitsikäs</ar>
-<ar><k>wizard</k>
-taikuri, velho</ar>
-<ar><k>wolf</k>
-susi</ar>
-<ar><k>wolf down</k>
-hotkia</ar>
-<ar><k>wolf-cub</k>
-sudenpentu</ar>
-<ar><k>woman</k>
-nainen</ar>
-<ar><k>woman traffic warden</k>
-lappuliisa</ar>
-<ar><k>womanly</k>
-naisellinen</ar>
-<ar><k>womb</k>
-kohtu</ar>
-<ar><k>wonder</k>
-ihme, ihmettely
-
-ihmetellä</ar>
-<ar><k>wonderful</k>
-ihana, ihmeellinen, ihmeteltävä</ar>
-<ar><k>wood</k>
-metsikkö, metsä</ar>
-<ar><k>wood anemone</k>
-valkovuokko</ar>
-<ar><k>wood grouse</k>
-metso</ar>
-<ar><k>wood plane</k>
-puuhöylä</ar>
-<ar><k>wood primer</k>
-pohjustus</ar>
-<ar><k>wood screw</k>
-puuruuvi</ar>
-<ar><k>wood shingle</k>
-puupaanu</ar>
-<ar><k>wood species</k>
-puulajit</ar>
-<ar><k>wood wool</k>
-lastuvilla</ar>
-<ar><k>wood-grouse</k>
-koppelo</ar>
-<ar><k>wood-pigeon</k>
-sepelkyykynen</ar>
-<ar><k>wood-shed</k>
-halkovaja</ar>
-<ar><k>wood-sorrel</k>
-käenkaali (bot)</ar>
-<ar><k>wood-yard</k>
-halkotarha</ar>
-<ar><k>woodcock</k>
-kurppa, lehtokurppa</ar>
-<ar><k>woodcraft</k>
-eränkäynti</ar>
-<ar><k>woodcutter</k>
-halonhakkaaja</ar>
-<ar><k>wooden</k>
-puinen
-
-puinen</ar>
-<ar><k>wooden rule</k>
-puumitta</ar>
-<ar><k>woodland</k>
-metsä, metsämaa</ar>
-<ar><k>woodpecker</k>
-tikka</ar>
-<ar><k>woodsman</k>
-metsämies</ar>
-<ar><k>woodwork</k>
-puutyö, veisto
-
-puutyöt</ar>
-<ar><k>woollen</k>
-villainen</ar>
-<ar><k>word</k>
-sana, viesti</ar>
-<ar><k>wording</k>
-sanamuoto</ar>
-<ar><k>work</k>
-teos, työ, työskentely
-
-tehdä (työtä), toimia, työskennellä</ar>
-<ar><k>work hard</k>
-ahertaa, ahkeroida, uurastaa</ar>
-<ar><k>work loose</k>
-höltyä</ar>
-<ar><k>work of art</k>
-taideesine</ar>
-<ar><k>work overtime</k>
-ylityö</ar>
-<ar><k>work party</k>
-talkoot</ar>
-<ar><k>work permit</k>
-työlupa</ar>
-<ar><k>work place</k>
-työpaikka</ar>
-<ar><k>work up</k>
-muokata</ar>
-<ar><k>work wonders</k>
-aikaanihmeitä</ar>
-<ar><k>work-place</k>
-työmaa</ar>
-<ar><k>work-to-rule</k>
-jarrutuslakko</ar>
-<ar><k>workday</k>
-arkipäivä</ar>
-<ar><k>worker</k>
-työläinen, työmies</ar>
-<ar><k>workers</k>
-työvoima</ar>
-<ar><k>workers' association</k>
-työväenyhdistys</ar>
-<ar><k>working capital</k>
-käyttöpääoma, liikepääoma</ar>
-<ar><k>working class</k>
-työväenluokka</ar>
-<ar><k>working platform</k>
-työskentelytaso</ar>
-<ar><k>workman</k>
-työmies</ar>
-<ar><k>workmanship</k>
-ammattitaito</ar>
-<ar><k>workmate</k>
-työkaveri</ar>
-<ar><k>workpeople</k>
-työväestö</ar>
-<ar><k>works</k>
-tehdas</ar>
-<ar><k>workshop</k>
-paja (työ), verstas, askarteluhuone, työpaja</ar>
-<ar><k>world</k>
-maailma</ar>
-<ar><k>world of business</k>
-liikemaailma</ar>
-<ar><k>world of ideas</k>
-ajatusmaailma</ar>
-<ar><k>worldwide</k>
-maailmanlaajuinen</ar>
-<ar><k>worm</k>
-kierre (ruuvin), liero, mato, ruuvikierre</ar>
-<ar><k>worm-eaten</k>
-madonsyömä</ar>
-<ar><k>worn out</k>
-risainen, uupunut</ar>
-<ar><k>worn with years</k>
-ikäloppu</ar>
-<ar><k>worn-out</k>
-elähtänyt</ar>
-<ar><k>worried</k>
-huolestunut, kiusaantunut</ar>
-<ar><k>worry</k>
-huoli, mieliharmi, vaiva
-
-huolettaa, kiusata (vaivata), vaivata</ar>
-<ar><k>worse</k>
-huonompi, pahemmin, pahempi</ar>
-<ar><k>worship</k>
-palvoa</ar>
-<ar><k>worst</k>
-pahin</ar>
-<ar><k>worsted yarn</k>
-kampalanka</ar>
-<ar><k>worth</k>
-arvo</ar>
-<ar><k>worth mentioning</k>
-mainittava</ar>
-<ar><k>worth reading</k>
-luettava</ar>
-<ar><k>worth seeing</k>
-nähtävä</ar>
-<ar><k>worthless</k>
-hultiomainen, kelvoton, kunnoton</ar>
-<ar><k>worthy</k>
-arvoisa, arvokas, kunnianarvoinen</ar>
-<ar><k>worthy of consideration</k>
-huomioonotettava</ar>
-<ar><k>worthy of support</k>
-kannatettava</ar>
-<ar><k>wound</k>
-haava
-
-haavoittaa</ar>
-<ar><k>woven fabric</k>
-kangas, kudelma, kudos</ar>
-<ar><k>wrangle</k>
-kina, tora</ar>
-<ar><k>wrap up</k>
-kietoa (kääriä), kääriä, verhota, sulkea suunsa [puhek.]</ar>
-<ar><k>wrapper</k>
-kääre</ar>
-<ar><k>wreath</k>
-kukkaseppele, seppele</ar>
-<ar><k>wreck</k>
-hylky (mer), laivanhylky, ihmisraunio</ar>
-<ar><k>wrench</k>
-temmata</ar>
-<ar><k>wrestle</k>
-painia, painiskella</ar>
-<ar><k>wrestling</k>
-paini</ar>
-<ar><k>wretched</k>
-huono (kurja), kunnoton, kurja, rähjä (kurja), surkea (kurja), vaivainen, viheliäinen</ar>
-<ar><k>wretchedness</k>
-kurjuus</ar>
-<ar><k>wriggle</k>
-luikerrella</ar>
-<ar><k>wrinkle</k>
-kurttu (ihossa), ryppy</ar>
-<ar><k>wrinkled</k>
-kurttuinen</ar>
-<ar><k>wrist</k>
-ranne</ar>
-<ar><k>wrist watch</k>
-rannekello</ar>
-<ar><k>wristband</k>
-hihansuu</ar>
-<ar><k>writ</k>
-haaste (lak)</ar>
-<ar><k>write</k>
-kirjailla, kirjoittaa, kyhäillä (kirjoittaa)</ar>
-<ar><k>write down</k>
-merkitä (muistiin)</ar>
-<ar><k>write music</k>
-säveltää</ar>
-<ar><k>writer</k>
-kirjailija, kirjoittaja, kynäilijä</ar>
-<ar><k>writing</k>
-kirjoitus</ar>
-<ar><k>writing set</k>
-kirjoitusneuvot</ar>
-<ar><k>written</k>
-kirjallinen, kirjeellinen</ar>
-<ar><k>written application</k>
-anokirjelmä, hakupaperit</ar>
-<ar><k>written by hand</k>
-käsikirjoitettu</ar>
-<ar><k>wrong</k>
-nurja, virheellinen, väärin, väärinpäin, väärä (ei oikea)</ar>
-<ar><k>wrong idea</k>
-harhanluulo</ar>
-<ar><k>wrong way</k>
-hullusti, takaperoisesti, väärin, väärinpäin</ar>
-<ar><k>wrong way up</k>
-ylösalaisin</ar>
-<ar><k>wrongful</k>
-epäoikeudenmukainen, vääryydellinen</ar>
-<ar><k>wrongly</k>
-hullusti, virheellisesti, väärin</ar>
-<ar><k>wrought iron</k>
-takorauta</ar>
-<ar><k>wryneck</k>
-käenpiika (zo)</ar>
-<ar><k>x-ray</k>
-röntgen</ar>
-<ar><k>xylophone</k>
-ksylofoni</ar>
-<ar><k>yacht</k>
-purjevene, huvipursi</ar>
-<ar><k>yacht club</k>
-pursiseura</ar>
-<ar><k>yachtsman</k>
-purjehtija</ar>
-<ar><k>yankee</k>
-jenkki</ar>
-<ar><k>yard</k>
-piha, raaka (laivan)</ar>
-<ar><k>yarn</k>
-tarina</ar>
-<ar><k>yawl</k>
-jaala</ar>
-<ar><k>yawn</k>
-haukotus
-
-ammottaa (esim kuilu), haukotella</ar>
-<ar><k>year</k>
-vuosi, vuosiluku</ar>
-<ar><k>yearly</k>
-jokavuotinen, vuosittain, vuotuinen</ar>
-<ar><k>yearly review</k>
-vuosikatsaus</ar>
-<ar><k>yearn for</k>
-halata (haluta), ikävöidä, kaihota</ar>
-<ar><k>yearning</k>
-kaiho</ar>
-<ar><k>years old</k>
-vuotias (yhd)</ar>
-<ar><k>yeast</k>
-hiiva</ar>
-<ar><k>yeast fungus</k>
-hiivasieni</ar>
-<ar><k>yell</k>
-huuto, kiljahdus
-
-hihkua, hoilata (ark), huutaa, kiljua, kirkua, ärjyä</ar>
-<ar><k>yelling</k>
-kiljunta</ar>
-<ar><k>yellow</k>
-keltainen</ar>
-<ar><k>yellow fever</k>
-keltakuume</ar>
-<ar><k>yellowhammer</k>
-keltasirkku</ar>
-<ar><k>yelp</k>
-haukahtaa, ulista, älähtää</ar>
-<ar><k>yelping</k>
-ulina</ar>
-<ar><k>yesterday</k>
-eilen</ar>
-<ar><k>yet</k>
-kumminkin, sentään, silti, sittenkin, vielä</ar>
-<ar><k>yew</k>
-marjakuusi</ar>
-<ar><k>yield</k>
-alistua, antaa (luottaa), hellittää (antaa perään), luovuttaa, tuottaa, väistyä</ar>
-<ar><k>yielding</k>
-myöntyväinen</ar>
-<ar><k>yob</k>
-poikanulikka [puhek.]</ar>
-<ar><k>yoghurt</k>
-jogurtti</ar>
-<ar><k>yoke</k>
-ies, munanruskuainen</ar>
-<ar><k>yonks</k>
-valtavan pitkä aika [puhek.]</ar>
-<ar><k>you bet you</k>
-usko pois [puhek.]</ar>
-<ar><k>you can say that again</k>
-niin se on [puhek.]</ar>
-<ar><k>yummy</k>
-nami [puhek.]</ar>
-<ar><k>yuppy</k>
-juppi</ar>
-<ar><k>zap</k>
-tappaa [puhek.]</ar>
-<ar><k>zeal</k>
-into, hartaus</ar>
-<ar><k>zebra</k>
-seepra</ar>
-<ar><k>zero</k>
-nolla</ar>
-<ar><k>zest</k>
-halu, innostus</ar>
-<ar><k>zinc</k>
-sinkki</ar>
-<ar><k>zip</k>
-vetoketju
-
-kiinnittää vetoketjulla</ar>
-<ar><k>zodiac</k>
-eläinrata</ar>
-<ar><k>zombie</k>
-hölmö</ar>
-<ar><k>zone</k>
-alue</ar>
-<ar><k>zoo</k>
-eläinpuisto, eläintarha</ar>
-</xdxf>
diff --git a/data/dictionaries/EnglishFinnish/icon16.png b/data/dictionaries/EnglishFinnish/icon16.png
deleted file mode 100644 (file)
index 9de8a24..0000000
Binary files a/data/dictionaries/EnglishFinnish/icon16.png and /dev/null differ
diff --git a/data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.dict.dz b/data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.dict.dz
deleted file mode 100644 (file)
index e927f60..0000000
Binary files a/data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.dict.dz and /dev/null differ
diff --git a/data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.idx b/data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.idx
deleted file mode 100644 (file)
index 8b8e17e..0000000
Binary files a/data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.idx and /dev/null differ
diff --git a/data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.ifo b/data/dictionaries/FinnishEnglish/comn_sdict02_finnish-english.ifo
deleted file mode 100644 (file)
index 361115b..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-StarDict's dict ifo file
-version=2.4.2
-wordcount=2063
-idxfilesize=37181
-bookname=Finnish-English dictionary
-date=2006.04.19
-sametypesequence=x
-description=Copyright: Converted by swaj under GNU Public License; Version: 1.1
diff --git a/data/dictionaries/StarDictSampleDict/sample.dict.dz b/data/dictionaries/StarDictSampleDict/sample.dict.dz
deleted file mode 100644 (file)
index f6d5541..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Thank you very much.WhitestorkBe careful!I would like a ticket to...I would like to change dollars.I think I am lost.What town is this?What?traveller's checksJunefortyfourteenfourfour thousandfour hundredThursdayfourthCan I get there on foot?Is there a taxi standby nearby?Is there a currency exchange office nearby?Is there a sleeping car on the train?Do you have a map of the city?May we have an extra bed?Can I pay with my credit card?Could you help me?Could you show me this on the map, please?Do you speak English?Why?Good-bye.Good night.(Goodbye at night time)Good evening.Okay.seconda lot ofmuchtwotwo thousandtwentytwenty-onetwelvetwo hundredtwicetenthtenten percentten thousandninthnineteenninenine thousandninetynine hundreddayGood day.Good morning.todayThank you.Where is the nearest...Where is the nearest bank?Where is... ?Where?DecemberHow much do I owe you?How much is it per night?How much is the fare?How old are you?What is your name?How late it is?How do I get to this address?How far is it?How?Which line goes to...?oneelevena thirdautumnIt is two in the afternoon.It is 4:30 am.It is two o'clock.It is 6:15 pm.It is one o'clock.It is three in the afternoon.It is 3:40 am.It is three o'clock.It is one in the afternoon.tomorrowWhen does it leave?When does it arrive?When?fewblanketsupperWho?What time is it?AprilsummerdoctorleftJulyNovemberFebruaryMayMy name is...I have a reservation.MarchDo you have any vacancies?Can we switch rooms?Can you show me the room?on the cornerI do not speak Polish.I do not understand.No.SundaynightsdinnerOf course.eighteight thousandeightyeighteeneight hundredOctoberplatformfirstFridayfifthfifteenfivefive minutes agofive thousandfiftyfive hundreddouble bedroomHelp!MondayRepeat, please.halfnoonrightstraight aheadPlease tell me when to get off.The bill, please.Please call me a taxi.Please speak more slowly.Please.You are welcome.private bathExcuse me.Excuse me.I am sorry.bus stationtram stationmidnightlateronceKeep the change.roll of toilet paperI understand a little.bath towelssevenseven thousandseventyseventeenseven hundredAugustseventhSaturdaytrain stationsubway stationone hundredStop!Januarysixteensixsix thousandsixtysix hundredsixthYes.nowtracksomethirdthreethree thousandthirtythirteenthree hundredone thousandWatch out!earlieryesterdaymanyspringHello.soonSeptemberAll aboard.TuesdayzeroThat's right.Agreed.wintereightha quarterI am in a hurry.breakfastWednesday
\ No newline at end of file
diff --git a/data/dictionaries/StarDictSampleDict/sample.idx b/data/dictionaries/StarDictSampleDict/sample.idx
deleted file mode 100644 (file)
index e140e95..0000000
Binary files a/data/dictionaries/StarDictSampleDict/sample.idx and /dev/null differ
diff --git a/data/dictionaries/StarDictSampleDict/sample.ifo b/data/dictionaries/StarDictSampleDict/sample.ifo
deleted file mode 100644 (file)
index a37e79e..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-StarDict's dict ifo file
-version=2.4.2
-wordcount=209
-idxfilesize=4539
-bookname=sample
-sametypesequence=m
diff --git a/data/dictionaries/XDXFSampleDict/dict.xdxf b/data/dictionaries/XDXFSampleDict/dict.xdxf
deleted file mode 100644 (file)
index 8abfd5c..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>\r
-<xdxf lang_from="ENG" lang_to="POL" format="visual">\r
-       <full_name>English - Polish dictionary</full_name>\r
-       <description>Sample dictionary with some usefull expressions. Any suggestions? Please conntact marcin.biedron@comarch.pl. This file is part of mdictionary application. Copyright 2007, ComArch S.A. All rights reserved.</description>\r
-       <ar><k>a lot of</k> - dużo</ar>\r
-       <ar><k>a quarter</k> - ćwiartka</ar>\r
-       <ar><k>a third</k> - jedna trzecia</ar>\r
-       <ar><k>Agreed.</k> - Zgoda.</ar>\r
-       <ar><k>All aboard.</k> - Wsiadać proszę.</ar>\r
-       <ar><k>April</k> - kwiecień</ar>\r
-       <ar><k>August</k> - sierpień</ar>\r
-       <ar><k>autumn</k> - jesień</ar>\r
-       <ar><k>bath towels</k> - ręczniki</ar>\r
-       <ar><k>Be careful!</k> - Bądź ostrożny!</ar>\r
-       <ar><k>blanket</k> - koc</ar>\r
-       <ar><k>breakfast</k> - śniadanie</ar>\r
-       <ar><k>bus station</k> - przystanek autobusowy</ar>\r
-       <ar><k>Can I get there on foot?</k> - Czy dojdę tam na pieszo?</ar>\r
-       <ar><k>Can I pay with my credit card?</k> - Czy można płacić kartą (kredytową)?</ar>\r
-       <ar><k>Can we switch rooms?</k> - Możemy zamienić pokoje?</ar>\r
-       <ar><k>Can you show me the room?</k> - Możesz pokazać mi pokój?</ar>\r
-       <ar><k>Could you help me?</k> - Czy mógłbyś mi pomóc?</ar>\r
-       <ar><k>Could you show me this on the map, please?</k> - Czy mógłbyś pokazać mi to miejsce na mapie?</ar>\r
-       <ar><k>day</k> - dzień</ar>\r
-       <ar><k>December</k> - grudzień</ar>\r
-       <ar><k>dinner</k> - obiad</ar>\r
-       <ar><k>Do you have a map of the city?</k> - Czy masz mapę miasta?</ar>\r
-       <ar><k>Do you have any vacancies?</k> - Masz wolne pokoje?</ar>\r
-       <ar><k>Do you speak English?</k> - Czy mówisz po angielsku?</ar>\r
-       <ar><k>doctor</k> - lekarz</ar>\r
-       <ar><k>double bed</k> - podwójne łóżko</ar>\r
-       <ar><k>earlier</k> - wcześniej</ar>\r
-       <ar><k>eight</k> - osiem</ar>\r
-       <ar><k>eight hundred</k> - osiemset</ar>\r
-       <ar><k>eight thousand</k> - osiem tysięcy</ar>\r
-       <ar><k>eighteen</k> - osiemnaście</ar>\r
-       <ar><k>eighth</k> - ósmy</ar>\r
-       <ar><k>eighty</k> - osiemdziesiąt</ar>\r
-       <ar><k>eleven</k> - jedenaście</ar>\r
-       <ar><k>Excuse me.</k> - Przepraszam.</ar>\r
-       <ar><k>Excuse me.</k> - Przepraszam.</ar>\r
-       <ar><k>February</k> - luty</ar>\r
-       <ar><k>few</k> - kilka</ar>\r
-       <ar><k>fifteen</k> - piętnaście</ar>\r
-       <ar><k>fifth</k> - piąty</ar>\r
-       <ar><k>fifty</k> - pięćdziesiąt</ar>\r
-       <ar><k>first</k> - pierwszy</ar>\r
-       <ar><k>five</k> - pięć</ar>\r
-       <ar><k>five hundred</k> - pięćset</ar>\r
-       <ar><k>five minutes ago</k> - pięć minut temu</ar>\r
-       <ar><k>five thousand</k> - pięć tysiące</ar>\r
-       <ar><k>forty</k> - czterdzieści</ar>\r
-       <ar><k>four</k> - cztery</ar>\r
-       <ar><k>four hundred</k> - czterysta</ar>\r
-       <ar><k>four thousand</k> - cztery tysiące</ar>\r
-       <ar><k>fourteen</k> - czternaście</ar>\r
-       <ar><k>fourth</k> - czwarty</ar>\r
-       <ar><k>Friday</k> - piątek</ar>\r
-       <ar><k>Good day.</k> - Dzień dobry.</ar>\r
-       <ar><k>Good evening.</k> - Dobry wieczór.</ar>\r
-       <ar><k>Good morning.</k> - Dzień dobry.</ar>\r
-       <ar><k>Good night.(Goodbye at night time)</k> - Dobranoc.</ar>\r
-       <ar><k>Good-bye.</k> - Do widzenia.</ar>\r
-       <ar><k>half</k> - połowa</ar>\r
-       <ar><k>Hello.</k> - Witam.</ar>\r
-       <ar><k>Help!</k> - Pomocy!</ar>\r
-       <ar><k>How do I get to this address?</k> - Jak się dostanę pod ten adres?</ar>\r
-       <ar><k>How far is it?</k> - Jak to daleko?</ar>\r
-       <ar><k>How late it is?</k> - Jak późno już jest?</ar>\r
-       <ar><k>How much do I owe you?</k> - Ile jestem winny?</ar>\r
-       <ar><k>How much is it per night?</k> - Ile kosztuje jedna noc?</ar>\r
-       <ar><k>How much is the fare?</k> - Ile kosztuje przejazd?</ar>\r
-       <ar><k>How old are you?</k> - Ile masz lat?</ar>\r
-       <ar><k>How?</k> - Jak?</ar>\r
-       <ar><k>I am in a hurry.</k> - Śpieszy mi się.</ar>\r
-       <ar><k>I am sorry.</k> - Przykro mi.</ar>\r
-       <ar><k>I do not speak Polish.</k> - Nie mówię po polsku.</ar>\r
-       <ar><k>I do not understand.</k> - Nie rozumiem.</ar>\r
-       <ar><k>I have a reservation.</k> - Mam rezerwację</ar>\r
-       <ar><k>I think I am lost.</k> - Chyba się zgubiłem.</ar>\r
-       <ar><k>I understand a little.</k> - Rozumiem trochę.</ar>\r
-       <ar><k>I would like a ticket to...</k> - Chciałbym bilet do...</ar>\r
-       <ar><k>I would like to change dollars.</k> - Chciałbym wymienić dolary.</ar>\r
-       <ar><k>Is there a currency exchange office nearby?</k> - Czy jest tam kantor wymiany walut?</ar>\r
-       <ar><k>Is there a sleeping car on the train?</k> - Czy jest tam wagon sypialny?</ar>\r
-       <ar><k>Is there a taxi standby nearby?</k> - Czy jest tam blisko postój taksówek?</ar>\r
-       <ar><k>It is 3:40 am.</k> - Jest trzecia czterdzieści.</ar>\r
-       <ar><k>It is 4:30 am.</k> - Jest czwarta czterdzieści.</ar>\r
-       <ar><k>It is 6:15 pm.</k> - Jest osiemnasta piętnaście.</ar>\r
-       <ar><k>It is one in the afternoon.</k> - Jest trzynasta.</ar>\r
-       <ar><k>It is one o'clock.</k> - Jest pierwsza.</ar>\r
-       <ar><k>It is three in the afternoon.</k> - Jest piętnasta.</ar>\r
-       <ar><k>It is three o'clock.</k> - Jest trzecia.</ar>\r
-       <ar><k>It is two in the afternoon.</k> - Jest czternasta.</ar>\r
-       <ar><k>It is two o'clock.</k> - Jest druga.</ar>\r
-       <ar><k>January</k> - styczeń</ar>\r
-       <ar><k>July</k> - lipiec</ar>\r
-       <ar><k>June</k> - czerwiec</ar>\r
-       <ar><k>Keep the change.</k> - Reszta dla ciebie.</ar>\r
-       <ar><k>later</k> - później</ar>\r
-       <ar><k>left</k> - lewo</ar>\r
-       <ar><k>many</k> - wiele</ar>\r
-       <ar><k>March</k> - marzec</ar>\r
-       <ar><k>May</k> - maj</ar>\r
-       <ar><k>May we have an extra bed?</k> - Czy możemy prosić dodatkowe łóżko?</ar>\r
-       <ar><k>midnight</k> - północ</ar>\r
-       <ar><k>Monday</k> - poniedziałek</ar>\r
-       <ar><k>much</k> - dużo</ar>\r
-       <ar><k>My name is...</k> - Mam na imię...</ar>\r
-       <ar><k>nights</k> - noce</ar>\r
-       <ar><k>nine</k> - dziewięć</ar>\r
-       <ar><k>nine hundred</k> - dziewięćset</ar>\r
-       <ar><k>nine thousand</k> - dziewięć tysięcy</ar>\r
-       <ar><k>nineteen</k> - dziewiętnaście</ar>\r
-       <ar><k>ninety</k> - dziewięćdziesiąt</ar>\r
-       <ar><k>ninth</k> - dziewiąty</ar>\r
-       <ar><k>No.</k> - Nie.</ar>\r
-       <ar><k>noon</k> - południe</ar>\r
-       <ar><k>November</k> - listopad</ar>\r
-       <ar><k>now</k> - teraz</ar>\r
-       <ar><k>October</k> - październik</ar>\r
-       <ar><k>Of course.</k> - Oczywiście.</ar>\r
-       <ar><k>Okay.</k> - Dobrze.</ar>\r
-       <ar><k>on the corner</k> - na rogu</ar>\r
-       <ar><k>once</k> - raz</ar>\r
-       <ar><k>one</k> - jeden</ar>\r
-       <ar><k>one hundred</k> - sto</ar>\r
-       <ar><k>one thousand</k> - tysiąc</ar>\r
-       <ar><k>platform</k> - peron</ar>\r
-       <ar><k>Please call me a taxi.</k> - Proszę wezwać mi taksówkę.</ar>\r
-       <ar><k>Please speak more slowly.</k> - Proszę, mów wolniej.</ar>\r
-       <ar><k>Please tell me when to get off.</k> - Proszę mi powiedzieć gdzie mam wysiąść.</ar>\r
-       <ar><k>Please.</k> - Proszę.</ar>\r
-       <ar><k>private bath</k> - prywata łazienka</ar>\r
-       <ar><k>Repeat, please.</k> - Powtórz proszę.</ar>\r
-       <ar><k>right</k> - prawo</ar>\r
-       <ar><k>roll of toilet paper</k> - rolka papieru toaletowego</ar>\r
-       <ar><k>room</k> - pokój</ar>\r
-       <ar><k>Saturday</k> - sobota</ar>\r
-       <ar><k>second</k> - drugi</ar>\r
-       <ar><k>September</k> - wrzesień</ar>\r
-       <ar><k>seven</k> - siedem</ar>\r
-       <ar><k>seven hundred</k> - siedemset</ar>\r
-       <ar><k>seven thousand</k> - siedem tysięcy</ar>\r
-       <ar><k>seventeen</k> - siedemnaście</ar>\r
-       <ar><k>seventh</k> - siódmy</ar>\r
-       <ar><k>seventy</k> - siedemdziesiąt</ar>\r
-       <ar><k>six</k> - sześć</ar>\r
-       <ar><k>six hundred</k> - sześćset</ar>\r
-       <ar><k>six thousand</k> - sześć tysięcy</ar>\r
-       <ar><k>sixteen</k> - szesnaście</ar>\r
-       <ar><k>sixth</k> - szósty</ar>\r
-       <ar><k>sixty</k> - sześćdziesiąt</ar>\r
-       <ar><k>some</k> - trochę</ar>\r
-       <ar><k>soon</k> - wkrótce</ar>\r
-       <ar><k>spring</k> - wiosna</ar>\r
-       <ar><k>Stop!</k> - Stop!</ar>\r
-       <ar><k>straight ahead</k> - prosto</ar>\r
-       <ar><k>subway station</k> - stacja metra</ar>\r
-       <ar><k>summer</k> - lato</ar>\r
-       <ar><k>Sunday</k> - niedziela</ar>\r
-       <ar><k>supper</k> - kolacja</ar>\r
-       <ar><k>ten</k> - dziesięć</ar>\r
-       <ar><k>ten percent</k> - dziesięć procent</ar>\r
-       <ar><k>ten thousand</k> - dziesięć tysięcy</ar>\r
-       <ar><k>tenth</k> - dziesiąty</ar>\r
-       <ar><k>Thank you very much.</k> - Bardzo dziękuję.</ar>\r
-       <ar><k>Thank you.</k> - Dziękuję.</ar>\r
-       <ar><k>That's right.</k> - Zgadza się.</ar>\r
-       <ar><k>The bill, please.</k> - Proszę o rachunek.</ar>\r
-       <ar><k>third</k> - trzeci</ar>\r
-       <ar><k>thirteen</k> - trzynaście</ar>\r
-       <ar><k>thirty</k> - trzydzieści</ar>\r
-       <ar><k>three</k> - trzy</ar>\r
-       <ar><k>three hundred</k> - trzysta</ar>\r
-       <ar><k>three thousand</k> - trzy tysiące</ar>\r
-       <ar><k>Thursday</k> - czwartek</ar>\r
-       <ar><k>today</k> - dzisiaj</ar>\r
-       <ar><k>tomorrow</k> - jutro</ar>\r
-       <ar><k>track</k> - tor</ar>\r
-       <ar><k>train station</k> - stacja kolejowa</ar>\r
-       <ar><k>tram station</k> - przystanek tramwajowy</ar>\r
-       <ar><k>traveller's checks</k> - czeki podróżne</ar>\r
-       <ar><k>Tuesday</k> - wtorek</ar>\r
-       <ar><k>twelve</k> - dwanaście</ar>\r
-       <ar><k>twenty</k> - dwadzieścia</ar>\r
-       <ar><k>twenty-one</k> - dwadzieścia jeden</ar>\r
-       <ar><k>twice</k> - dwukrotnie</ar>\r
-       <ar><k>two</k> - dwa</ar>\r
-       <ar><k>two hundred</k> - dwieście</ar>\r
-       <ar><k>two thousand</k> - dwa tysiące</ar>\r
-       <ar><k>Watch out!</k> - Uważaj!</ar>\r
-       <ar><k>Wednesday</k> - środa</ar>\r
-       <ar><k>What is your name?</k> - Jak masz na imię?</ar>\r
-       <ar><k>What time is it?</k> - Która godzina?</ar>\r
-       <ar><k>What town is this?</k> - Co to za miasto?</ar>\r
-       <ar><k>What?</k> - Co?</ar>\r
-       <ar><k>When does it arrive?</k> - Kiedy przyjeżdża?</ar>\r
-       <ar><k>When does it leave?</k> - Kiedy odjeżdża?</ar>\r
-       <ar><k>When?</k> - Kiedy?</ar>\r
-       <ar><k>Where is the nearest bank?</k> - Gdzie jest najbliższy bank?</ar>\r
-       <ar><k>Where is the nearest...</k> - Gdzie jest najbliższa...</ar>\r
-       <ar><k>Where is... ?</k> - Gdzie jest... ?</ar>\r
-       <ar><k>Where?</k> - Gdzie?</ar>\r
-       <ar><k>Which line goes to...?</k> - Jaka linia kursuje do...?</ar>\r
-       <ar><k>Whitestork</k> - Bocian</ar>\r
-       <ar><k>Who?</k> - Kto?</ar>\r
-       <ar><k>Why?</k> - Dlaczego?</ar>\r
-       <ar><k>winter</k> - zima</ar>\r
-       <ar><k>Yes.</k> - Tak.</ar>\r
-       <ar><k>yesterday</k> - wczoraj</ar>\r
-       <ar><k>You are welcome.</k> - Proszę.</ar>\r
-       <ar><k>zero</k> - zero</ar>\r
-</xdxf>
\ No newline at end of file
diff --git a/data/docs/mdictionary/changelog b/data/docs/mdictionary/changelog
deleted file mode 100644 (file)
index 44f6a4f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-mdictionary (0.1.0)
-
-  * Testing changelog.
-  * mdictionary
- -- author <email>  2006-09-07
diff --git a/data/docs/mdictionary/changelog.Debian b/data/docs/mdictionary/changelog.Debian
deleted file mode 100644 (file)
index 279aa65..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-mdictionary Debian maintainer and upstream author are identical.
-Therefore see also normal changelog file for Debian changes.
\ No newline at end of file
diff --git a/data/docs/mdictionary/copyright b/data/docs/mdictionary/copyright
deleted file mode 100644 (file)
index e91c14d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-mdictionary
-
-All programs are either under the GPL or LGPL. The complete text of the GPL and LGPL licenses can be found in the /usr/share/common-licenses/GPL and /usr/share/common-licenses/LGPL files.
\ No newline at end of file
diff --git a/data/docs/whitestorkdictionary/changelog b/data/docs/whitestorkdictionary/changelog
deleted file mode 100644 (file)
index 8b4e027..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-enginexdxf (0.1.0)
-
-  * Testing changelog.
-  * enginexdxf
- -- author <email>  2006-09-07
diff --git a/data/docs/whitestorkdictionary/changelog.Debian b/data/docs/whitestorkdictionary/changelog.Debian
deleted file mode 100644 (file)
index 8023d75..0000000
+++ /dev/null
@@ -1 +0,0 @@
-See changelog.
\ No newline at end of file
diff --git a/data/docs/whitestorkdictionary/copyright b/data/docs/whitestorkdictionary/copyright
deleted file mode 100644 (file)
index 70d19ad..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-mdictionary Dictionary
-
-All programs are either under the GPL or LGPL. The complete text of the GPL and LGPL licenses can be found in the /usr/share/common-licenses/GPL and /usr/share/common-licenses/LGPL files.
\ No newline at end of file
diff --git a/data/docs/whitestorkgui/changelog b/data/docs/whitestorkgui/changelog
deleted file mode 100644 (file)
index 403d4bf..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-mdictionarygui (0.1.0)
-
-  * Testing changelog.
-  * mdictionarygui
- -- author <email>  2006-09-07
diff --git a/data/docs/whitestorkgui/changelog.Debian b/data/docs/whitestorkgui/changelog.Debian
deleted file mode 100644 (file)
index 826b2cf..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-mdictionarygui Debian maintainer and upstream author are identical.
-Therefore see also normal changelog file for Debian changes.
\ No newline at end of file
diff --git a/data/docs/whitestorkgui/copyright b/data/docs/whitestorkgui/copyright
deleted file mode 100644 (file)
index cfcccf1..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-mdictionarygui
-
-All programs are either under the GPL or LGPL. The complete text of the GPL and LGPL licenses can be found in the /usr/share/common-licenses/GPL and /usr/share/common-licenses/LGPL files.
\ No newline at end of file
diff --git a/data/docs/whitestorkplugins/changelog b/data/docs/whitestorkplugins/changelog
deleted file mode 100644 (file)
index 746cca3..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-mdictionaryplugins (0.6.0)
-
-  * Testing changelog.
-  * enginexdxf
- -- author <email>  2006-09-07
diff --git a/data/docs/whitestorkplugins/changelog.Debian b/data/docs/whitestorkplugins/changelog.Debian
deleted file mode 100644 (file)
index 938b130..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-mdictionaryplugins
-Debian maintainer and upstream author are identical.
-Therefore see also normal changelog file for Debian changes.
\ No newline at end of file
diff --git a/data/docs/whitestorkplugins/copyright b/data/docs/whitestorkplugins/copyright
deleted file mode 100644 (file)
index eff69d6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-mdictionaryplugins
-
-All programs are either under the GPL or LGPL. The complete text of the GPL and LGPL licenses can be found in the /usr/share/common-licenses/GPL and /usr/share/common-licenses/LGPL files.
\ No newline at end of file
diff --git a/data/icons/engine_xdxf_icon.png b/data/icons/engine_xdxf_icon.png
deleted file mode 100644 (file)
index b35c0cc..0000000
Binary files a/data/icons/engine_xdxf_icon.png and /dev/null differ
diff --git a/data/icons/engine_xdxf_icon_2.png b/data/icons/engine_xdxf_icon_2.png
deleted file mode 100644 (file)
index ec8ca10..0000000
Binary files a/data/icons/engine_xdxf_icon_2.png and /dev/null differ
diff --git a/data/icons/mdictionary.png b/data/icons/mdictionary.png
deleted file mode 100644 (file)
index 3768425..0000000
Binary files a/data/icons/mdictionary.png and /dev/null differ
diff --git a/data/icons/mdictionary_about.png b/data/icons/mdictionary_about.png
deleted file mode 100644 (file)
index 1569623..0000000
Binary files a/data/icons/mdictionary_about.png and /dev/null differ
diff --git a/data/icons/mdictionary_icon.png b/data/icons/mdictionary_icon.png
deleted file mode 100644 (file)
index 1cf4528..0000000
Binary files a/data/icons/mdictionary_icon.png and /dev/null differ
diff --git a/data/icons/qgn_indi_search_mdictionary.png b/data/icons/qgn_indi_search_mdictionary.png
deleted file mode 100644 (file)
index 11f7830..0000000
Binary files a/data/icons/qgn_indi_search_mdictionary.png and /dev/null differ
diff --git a/data/icons/qgn_indi_search_whitestork.png b/data/icons/qgn_indi_search_whitestork.png
deleted file mode 100644 (file)
index 482de9b..0000000
Binary files a/data/icons/qgn_indi_search_whitestork.png and /dev/null differ
diff --git a/data/icons/whitestork.png b/data/icons/whitestork.png
deleted file mode 100644 (file)
index 751eb6e..0000000
Binary files a/data/icons/whitestork.png and /dev/null differ
diff --git a/data/icons/whitestork_icon.png b/data/icons/whitestork_icon.png
deleted file mode 100644 (file)
index 2c3563b..0000000
Binary files a/data/icons/whitestork_icon.png and /dev/null differ
diff --git a/data/icons/ws_top.png b/data/icons/ws_top.png
deleted file mode 100644 (file)
index 26496e9..0000000
Binary files a/data/icons/ws_top.png and /dev/null differ
diff --git a/data/icons/ws_tra.png b/data/icons/ws_tra.png
deleted file mode 100644 (file)
index 0fb96bc..0000000
Binary files a/data/icons/ws_tra.png and /dev/null differ
diff --git a/data/icons/ws_warning_icon.png b/data/icons/ws_warning_icon.png
deleted file mode 100644 (file)
index 7e4f7b6..0000000
Binary files a/data/icons/ws_warning_icon.png and /dev/null differ
diff --git a/data/locale/POTFILES.in b/data/locale/POTFILES.in
deleted file mode 100644 (file)
index 08090ce..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of source files containing translatable strings.
-
-# Package source files
-../gui/src/ws_gui_layout.c
-../gui/src/ws_gui_callbacks.c
\ No newline at end of file
diff --git a/data/locale/en_GB.po b/data/locale/en_GB.po
deleted file mode 100644 (file)
index 4216175..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-# Copyright (C) 2006
-# This file is distributed under the same license as the PACKAGE package.
-# Anna Gadomska <Anna.Gadomska@comarch.pl>, 2006.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-14 11:34+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Anna Gadomska <Anna.Gadomska@comarch.pl>\n"
-"Language-Team: polish <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../gui/src/ws_gui.c:49
-msgid "ws_check"
-msgstr "OK"
-
-#: ../gui/src/ws_gui_layout.c:42
-msgid "ws_ni_welcome"
-msgstr "Welcome to mDictionary!"
-
-#: ../gui/src/ws_gui_layout.c:174 ../gui/src/ws_gui_layout.c:351
-msgid "ws_me_search_find"
-msgstr "Find"
-
-#: ../gui/src/ws_gui_layout.c:266
-msgid "ws_me_dictionaries"
-msgstr "Dictionaries"
-
-#: ../gui/src/ws_gui_layout.c:268
-msgid "ws_me_bookmarks"
-msgstr "Bookmarks"
-
-#: ../gui/src/ws_gui_layout.c:270
-msgid "ws_me_edit"
-msgstr "Edit"
-
-#: ../gui/src/ws_gui_layout.c:272
-msgid "ws_me_view"
-msgstr "View"
-
-#: ../gui/src/ws_gui_layout.c:274
-msgid "ws_me_search"
-msgstr "Search"
-
-#: ../gui/src/ws_gui_layout.c:276
-msgid "ws_me_about"
-msgstr "About..."
-
-#: ../gui/src/ws_gui_layout.c:278
-msgid "ws_me_close"
-msgstr "Close"
-
-#: ../gui/src/ws_gui_layout.c:285
-msgid "ws_me_dictionaries_load"
-msgstr "Load dictionary..."
-
-#: ../gui/src/ws_gui_layout.c:287
-msgid "ws_me_dictionaries_select"
-msgstr "Select dictionaries..."
-
-#: ../gui/src/ws_gui_layout.c:289
-msgid "ws_me_dictionaries_remove"
-msgstr "Remove dictionaries..."
-
-#: ../gui/src/ws_gui_layout.c:291
-msgid "ws_me_dictionaries_optimize"
-msgstr "Optimize dictionaries..."
-
-#: ../gui/src/ws_gui_layout.c:303
-msgid "ws_me_bookmarks_open"
-msgstr "Open Bookmarks"
-
-#: ../gui/src/ws_gui_layout.c:305
-msgid "ws_me_bookmarks_close"
-msgstr "Close Bookmarks"
-
-#: ../gui/src/ws_gui_layout.c:307
-msgid "ws_me_bookmarks_add"
-msgstr "Add Bookmark..."
-
-#: ../gui/src/ws_gui_layout.c:309
-msgid "ws_me_bookmarks_remove"
-msgstr "Remove Bookmark..."
-
-#: ../gui/src/ws_gui_layout.c:321
-msgid "ws_me_edit_copy"
-msgstr "Copy"
-
-#: ../gui/src/ws_gui_layout.c:323
-msgid "ws_me_edit_paste"
-msgstr "Paste"
-
-#: ../gui/src/ws_gui_layout.c:325
-msgid "ws_me_edit_select_all"
-msgstr "Select All"
-
-#: ../gui/src/ws_gui_layout.c:334
-msgid "ws_me_view_hide_words_list"
-msgstr "Hide words list"
-
-#: ../gui/src/ws_gui_layout.c:336
-msgid "ws_me_view_zoom_in"
-msgstr "Zoom in"
-
-#: ../gui/src/ws_gui_layout.c:338
-msgid "ws_me_view_zoom_out"
-msgstr "Zoom out"
-
-#: ../gui/src/ws_gui_layout.c:340
-msgid "ws_me_view_fullscreen"
-msgstr "Full screen"
-
-#: ../gui/src/ws_gui_layout.c:353
-msgid "ws_me_search_find_next"
-msgstr "Find next"
-
-#: ../gui/src/ws_gui_layout.c:355
-msgid "ws_me_search_find_prev"
-msgstr "Find previous"
-
-#: ../gui/src/ws_gui_layout.c:357
-msgid "ws_me_search_stop"
-msgstr "Stop"
-
-#: ../gui/src/ws_gui_layout.c:560
-msgid "ws_mp_search"
-msgstr "Search"
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_add_bookmark"
-msgstr "Add Bookmark..."
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_edit_copy"
-msgstr "Copy"
-
-#: ../gui/src/ws_gui_layout.c:585
-msgid "ws_mp_edit_paste"
-msgstr "Paste"
-
-#: ../gui/src/ws_gui_layout.c:590
-msgid "ws_mp_edit_select_all"
-msgstr "Select All"
-
-#: ../gui/src/ws_gui_layout.c:597
-msgid "ws_mp_edit"
-msgstr "Edit"
-
-#: ../gui/src/ws_gui_layout.c:605
-msgid "ws_mp_zoom_in"
-msgstr "Zoom in"
-
-#: ../gui/src/ws_gui_layout.c:610
-msgid "ws_mp_zoom_out"
-msgstr "Zoom out"
-
-#: ../gui/src/ws_gui_layout.c:712 ../gui/src/ws_gui_layout.c:904
-msgid "ws_ti_choose_dictionaries_title"
-msgstr "Select dictionaries..."
-
-#: ../gui/src/ws_gui_layout.c:767 ../gui/src/ws_gui_layout.c:941
-#: ../gui/src/ws_gui_layout.c:1233 ../gui/src/ws_gui_layout.c:1427
-#: ../gui/src/ws_gui_layout.c:1488 ../gui/src/ws_gui_layout.c:1432
-msgid "ws_db_cancel"
-msgstr "Cancel"
-
-#: ../gui/src/ws_gui_layout.c:773 ../gui/src/ws_gui_layout.c:946
-#: ../gui/src/ws_gui_layout.c:1422 ../gui/src/ws_gui_layout.c:1483
-#: ../gui/src/ws_gui_layout.c:1427
-msgid "ws_db_ok"
-msgstr "OK"
-
-#: ../gui/src/ws_gui_layout.c:892
-msgid "ws_ni_no_dictionaries_to_optimize"
-msgstr "There are no dictionaries to optimize."
-
-#: ../gui/src/ws_gui_layout.c:1022
-msgid "ws_ti_load_dictionary_title"
-msgstr "Load dictionary"
-
-#: ../gui/src/ws_gui_layout.c:1074
-msgid "ws_ni_dictionaries_activation_question"
-msgstr "Would you like to start using this dictionary now?"
-
-#: ../gui/src/ws_gui_layout.c:1106
-msgid "ws_ni_dictionaries_optimalization_question"
-msgstr "Would you like to optimize this dictionary?"
-
-#: ../gui/src/ws_gui_layout.c:1131
-msgid "ws_ni_dictionary_added"
-msgstr "New dictionary has been added."
-
-#: ../gui/src/ws_gui_callbacks.c:439
-msgid "ws_ni_dictionary_not_added"
-msgstr "Dictionary could not be added."
-
-#: ../gui/src/ws_gui_layout.c:1138
-msgid "ws_ni_dictionary_wrong_file"
-msgstr "Wrong dictionary file."
-
-#: ../gui/src/ws_gui_layout.c:1189
-msgid "ws_ti_remove_dictionaries_title"
-msgstr "Remove dictionaries"
-
-#: ../gui/src/ws_gui_layout.c:1239
-msgid "ws_bd_remove_dictionaries_remove_selected"
-msgstr "Remove selected"
-
-#: ../gui/src/ws_gui_layout.c:1305
-msgid "ws_ti_about_title"
-msgstr "About"
-
-#: ../gui/src/ws_gui_layout.c:1339
-msgid "ws_ib_dictionary_removed"
-msgstr "Dictionary has been removed."
-
-#: ../gui/src/ws_gui_layout.c:1401
-msgid "ws_ti_add_bookmark"
-msgstr "Add Bookmark"
-
-#: ../gui/src/ws_gui_layout.c:1413
-msgid "ws_ti_bookmarks_add_question"
-msgstr "Add to Bookmarks?"
-
-#: ../gui/src/ws_gui_layout.c:1449
-msgid "ws_ni_bookmark_added"
-msgstr "Bookmark has been added."
-
-#: ../gui/src/ws_gui_layout.c:1457
-msgid "ws_ni_bookmark_not_added"
-msgstr "Bookmark could not be added."
-
-#: ../gui/src/ws_gui_layout.c:1462
-msgid "ws_ti_remove_bookmark"
-msgstr "Remove Bookmark"
-
-#: ../gui/src/ws_gui_layout.c:1474
-msgid "ws_ni_remove_bookmark_question"
-msgstr "Remove from Bookmarks?"
-
-#: ../gui/src/ws_gui_layout.c:1515
-msgid "ws_ni_bookmark_removed"
-msgstr "Bookmark has been removed."
-
-#: ../gui/src/ws_gui_layout.c:1522
-msgid "ws_ni_bookmark_not_removed"
-msgstr "Bookmark could not be removed."
-
-#: ../gui/src/ws_gui_callbacks.c:114
-msgid "ws_ni_error_occured"
-msgstr "An error occured"
-
-#: ../gui/src/ws_gui_callbacks.c:133
-msgid "ws_ni_no_dictionary_available"
-msgstr "There is no dictionary available."
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_caching"
-msgstr "Caching..."
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_extracting"
-msgstr "Extracting..."
-
-#: ../gui/src/ws_gui_callbacks.c:212
-msgid "ws_ni_dictionary_unavailable"
-msgstr "Dictionary unavailable."
-
-#: ../gui/src/ws_gui_callbacks.c:289
-#: ../gui/src/ws_gui_layout.c:1534
-msgid "ws_ni_no_words_found"
-msgstr "No words found."
-
-#: ../gui/src/ws_gui_callbacks.c:867
-msgid "ws_ni_no_text_selected"
-msgstr "No text selected."
-
-#: ../gui/src/ws_gui_callbacks.c:970
-msgid "ws_ab_searching"
-msgstr "Searching..."
-
-#: ../gui/src/ws_gui_callbacks.c:987
-msgid "ws_ni_no_word_typed"
-msgstr "No word typed."
-
-#: ../gui/src/ws_gui_callbacks.c:1008
-msgid "ws_ni_search_aborted"
-msgstr "Search has been aborted."
-
-#: ../gui/src/ws_gui_callbacks.c:1412
-msgid "ws_ni_select_word_to_add"
-msgstr "Select word to add."
-
-#: ../gui/src/ws_gui_callbacks.c:1436
-msgid "ws_ni_select_word_to_remove"
-msgstr "Select word to remove."
-
-#: ../gui/src/ws_gui_callbacks.c:1128
-msgid "ws_ib_max_zoom"
-msgstr "Max zoom level reached."
-
-#: ../gui/src/ws_gui_callbacks.c:1152
-msgid "ws_ib_min_zoom"
-msgstr "Min zoom level reached."
-
-#: ../gui/src/ws_gui_callbacks.c:1161
-msgid "ws_ib_zoom_in"
-msgstr "Zoom in"
-
-#: ../gui/src/ws_gui_callbacks.c:1134
-msgid "ws_ib_zoom_out"
-msgstr "Zoom out"
-
-#: ../gui/src/ws_gui_callbacks.c:1018
-msgid "ws_ib_fullscreen_on"
-msgstr "Fullscreen"
-
-#: ../gui/src/ws_gui_callbacks.c:1029
-msgid "ws_ib_fullscreen_off"
-msgstr "Fullscreen off"
-
-#: ../gui/src/ws_gui_callbacks.c:1124
-#: ../gui/src/ws_gui_callbacks.c:1157
-msgid "ws_ib_zoom_default"
-msgstr "Default Zoom"
-
-#: ../gui/src/ws_gui_callbacks.c:1069
-msgid "ws_ib_copied"
-msgstr "Copied."
-
-#: ../gui/src/ws_gui_callbacks.c:1096
-msgid "ws_ib_pasted"
-msgstr "Pasted."
-
-#: ../gui/src/ws_gui_callbacks.c:268
-msgid "ws_ni_bookmarks_unavailable"
-msgstr "Bookmarks could not be loaded. Please install libsqlite package."
-
-msgid "ws_ab_loading"
-msgstr "Loading translation..."
-
-#: ../gui/src/ws_gui_layout.c:156
-msgid "ws_ti_list_full"
-msgstr "Too many words"
-
-#: ../gui/src/ws_gui_layout.c:1780
-msgid "ws_ni_words_list_full"
-msgstr "Query was too wide, mdictionary is not able to show all words matching it. Please, elaborate your query."
-
-msgid "ws_ib_dictionary_nothing_to_remove"
-msgstr "No dictionary was selected, nothing to remove."
diff --git a/data/locale/es.po b/data/locale/es.po
deleted file mode 100644 (file)
index bc34d28..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-# Copyright (C) 2006
-# This file is distributed under the same license as the PACKAGE package.
-# Anna Gadomska <Anna.Gadomska@comarch.pl>, 2006.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-14 11:34+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Anna Gadomska <Anna.Gadomska@comarch.pl>\n"
-"Language-Team: polish <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../gui/src/ws_gui.c:49
-msgid "ws_check"
-msgstr "OK"
-
-#: ../gui/src/ws_gui_layout.c:42
-msgid "ws_ni_welcome"
-msgstr "Bienvenido a mDictionary"
-
-#: ../gui/src/ws_gui_layout.c:174 ../gui/src/ws_gui_layout.c:351
-msgid "ws_me_search_find"
-msgstr "Encontrar"
-
-#: ../gui/src/ws_gui_layout.c:266
-msgid "ws_me_dictionaries"
-msgstr "Diccionarios"
-
-#: ../gui/src/ws_gui_layout.c:268
-msgid "ws_me_bookmarks"
-msgstr "Marcadores"
-
-#: ../gui/src/ws_gui_layout.c:270
-msgid "ws_me_edit"
-msgstr "Editar"
-
-#: ../gui/src/ws_gui_layout.c:272
-msgid "ws_me_view"
-msgstr "Ver"
-
-#: ../gui/src/ws_gui_layout.c:274
-msgid "ws_me_search"
-msgstr "Buscar"
-
-#: ../gui/src/ws_gui_layout.c:276
-msgid "ws_me_about"
-msgstr "Acerca de..."
-
-#: ../gui/src/ws_gui_layout.c:278
-msgid "ws_me_close"
-msgstr "Cerrar"
-
-#: ../gui/src/ws_gui_layout.c:285
-msgid "ws_me_dictionaries_load"
-msgstr "Cargar diccionario..."
-
-#: ../gui/src/ws_gui_layout.c:287
-msgid "ws_me_dictionaries_select"
-msgstr "Seleccionar diccionarios..."
-
-#: ../gui/src/ws_gui_layout.c:289
-msgid "ws_me_dictionaries_remove"
-msgstr "Eliminar diccionarios..."
-
-#: ../gui/src/ws_gui_layout.c:291
-msgid "ws_me_dictionaries_optimize"
-msgstr "Optimizar diccionarios..."
-
-#: ../gui/src/ws_gui_layout.c:303
-msgid "ws_me_bookmarks_open"
-msgstr "Abrir marcadores"
-
-#: ../gui/src/ws_gui_layout.c:305
-msgid "ws_me_bookmarks_close"
-msgstr "Cerrar marcadores"
-
-#: ../gui/src/ws_gui_layout.c:307
-msgid "ws_me_bookmarks_add"
-msgstr "Añadir marcado..."
-
-#: ../gui/src/ws_gui_layout.c:309
-msgid "ws_me_bookmarks_remove"
-msgstr "Eliminar marcador..."
-
-#: ../gui/src/ws_gui_layout.c:321
-msgid "ws_me_edit_copy"
-msgstr "Copiar"
-
-#: ../gui/src/ws_gui_layout.c:323
-msgid "ws_me_edit_paste"
-msgstr "Pegar"
-
-#: ../gui/src/ws_gui_layout.c:325
-msgid "ws_me_edit_select_all"
-msgstr "Seleccionar todo"
-
-#: ../gui/src/ws_gui_layout.c:334
-msgid "ws_me_view_hide_words_list"
-msgstr "Ocultar la lista de palabras"
-
-#: ../gui/src/ws_gui_layout.c:336
-msgid "ws_me_view_zoom_in"
-msgstr "Aumentar"
-
-#: ../gui/src/ws_gui_layout.c:338
-msgid "ws_me_view_zoom_out"
-msgstr "Disminuir"
-
-#: ../gui/src/ws_gui_layout.c:340
-msgid "ws_me_view_fullscreen"
-msgstr "Pantalla completa"
-
-#: ../gui/src/ws_gui_layout.c:353
-msgid "ws_me_search_find_next"
-msgstr "Buscar siguiente"
-
-#: ../gui/src/ws_gui_layout.c:355
-msgid "ws_me_search_find_prev"
-msgstr "Buscar anterior"
-
-#: ../gui/src/ws_gui_layout.c:357
-msgid "ws_me_search_stop"
-msgstr "Detener"
-
-#: ../gui/src/ws_gui_layout.c:560
-msgid "ws_mp_search"
-msgstr "Buscar"
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_add_bookmark"
-msgstr "Añadir marcado..."
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_edit_copy"
-msgstr "Copiar"
-
-#: ../gui/src/ws_gui_layout.c:585
-msgid "ws_mp_edit_paste"
-msgstr "Pegar"
-
-#: ../gui/src/ws_gui_layout.c:590
-msgid "ws_mp_edit_select_all"
-msgstr "Seleccionar todo"
-
-#: ../gui/src/ws_gui_layout.c:597
-msgid "ws_mp_edit"
-msgstr "Editar"
-
-#: ../gui/src/ws_gui_layout.c:605
-msgid "ws_mp_zoom_in"
-msgstr "Aumentar"
-
-#: ../gui/src/ws_gui_layout.c:610
-msgid "ws_mp_zoom_out"
-msgstr "Disminuir"
-
-#: ../gui/src/ws_gui_layout.c:712 ../gui/src/ws_gui_layout.c:904
-msgid "ws_ti_choose_dictionaries_title"
-msgstr "Elegir diccionarios"
-
-#: ../gui/src/ws_gui_layout.c:767 ../gui/src/ws_gui_layout.c:941
-#: ../gui/src/ws_gui_layout.c:1233 ../gui/src/ws_gui_layout.c:1427
-#: ../gui/src/ws_gui_layout.c:1488 ../gui/src/ws_gui_layout.c:1432
-msgid "ws_db_cancel"
-msgstr "Cancelar"
-
-#: ../gui/src/ws_gui_layout.c:773 ../gui/src/ws_gui_layout.c:946
-#: ../gui/src/ws_gui_layout.c:1422 ../gui/src/ws_gui_layout.c:1483
-#: ../gui/src/ws_gui_layout.c:1427
-msgid "ws_db_ok"
-msgstr "OK"
-
-#: ../gui/src/ws_gui_layout.c:892
-msgid "ws_ni_no_dictionaries_to_optimize"
-msgstr "No hay ningún diccionario para optimizar."
-
-#: ../gui/src/ws_gui_layout.c:1022
-msgid "ws_ti_load_dictionary_title"
-msgstr "Cargar diccionario"
-
-#: ../gui/src/ws_gui_layout.c:1074
-msgid "ws_ni_dictionaries_activation_question"
-msgstr "¿Quiere comenzar a usar este diccionario?"
-
-#: ../gui/src/ws_gui_layout.c:1106
-msgid "ws_ni_dictionaries_optimalization_question"
-msgstr "¿Quiere optimizar este diccionario?"
-
-#: ../gui/src/ws_gui_layout.c:1131
-#: ../gui/src/ws_gui_callbacks.c:447
-msgid "ws_ni_dictionary_added"
-msgstr "Se ha añadido un diccionario nuevo."
-
-#: ../gui/src/ws_gui_callbacks.c:439
-msgid "ws_ni_dictionary_not_added"
-msgstr "No se ha añadido un diccionario nuevo."
-
-#: ../gui/src/ws_gui_layout.c:1138
-msgid "ws_ni_dictionary_wrong_file"
-msgstr "Archivo de diccionario incorrecto."
-
-#: ../gui/src/ws_gui_layout.c:1189
-msgid "ws_ti_remove_dictionaries_title"
-msgstr "Eliminar diccionarios"
-
-#: ../gui/src/ws_gui_layout.c:1239
-msgid "ws_bd_remove_dictionaries_remove_selected"
-msgstr "Eliminar la selección"
-
-#: ../gui/src/ws_gui_layout.c:1305
-msgid "ws_ti_about_title"
-msgstr "Acerca de"
-
-#: ../gui/src/ws_gui_layout.c:1339
-msgid "ws_ib_dictionary_removed"
-msgstr "El diccionario se ha eliminado."
-
-#: ../gui/src/ws_gui_layout.c:1401
-msgid "ws_ti_add_bookmark"
-msgstr "Añadir marcadr"
-
-#: ../gui/src/ws_gui_layout.c:1413
-msgid "ws_ti_bookmarks_add_question"
-msgstr "¿Añadir a los marcadores?"
-
-#: ../gui/src/ws_gui_layout.c:1449
-msgid "ws_ni_bookmark_added"
-msgstr "Se ha añadido el marcador."
-
-#: ../gui/src/ws_gui_layout.c:1457
-msgid "ws_ni_bookmark_not_added"
-msgstr "No se ha podido añadir el marcado."
-
-#: ../gui/src/ws_gui_layout.c:1462
-msgid "ws_ti_remove_bookmark"
-msgstr "Eliminar marcador"
-
-#: ../gui/src/ws_gui_layout.c:1474
-msgid "ws_ni_remove_bookmark_question"
-msgstr "¿Eliminar de los marcadores?"
-
-#: ../gui/src/ws_gui_layout.c:1515
-msgid "ws_ni_bookmark_removed"
-msgstr "Se ha eliminado el marcador."
-
-#: ../gui/src/ws_gui_layout.c:1522
-msgid "ws_ni_bookmark_not_removed"
-msgstr "No se ha podido eliminar el marcador."
-
-#: ../gui/src/ws_gui_callbacks.c:114
-msgid "ws_ni_error_occured"
-msgstr "Ocurrió un error"
-
-#: ../gui/src/ws_gui_callbacks.c:133
-msgid "ws_ni_no_dictionary_available"
-msgstr "No hay ningún diccionario disponibl."
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_caching"
-msgstr "Almacenando..."
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_extracting"
-msgstr "Extracting..."
-
-#: ../gui/src/ws_gui_callbacks.c:212
-msgid "ws_ni_dictionary_unavailable"
-msgstr "Diccionario no disponible."
-
-#: ../gui/src/ws_gui_callbacks.c:289
-#: ../gui/src/ws_gui_layout.c:1534
-msgid "ws_ni_no_words_found"
-msgstr "No se ha encontrado ninguna palabra."
-
-#: ../gui/src/ws_gui_callbacks.c:867
-msgid "ws_ni_no_text_selected"
-msgstr "No se ha seleccionado ningún text."
-
-#: ../gui/src/ws_gui_callbacks.c:970
-msgid "ws_ab_searching"
-msgstr "Buscando..."
-
-#: ../gui/src/ws_gui_callbacks.c:987
-msgid "ws_ni_no_word_typed"
-msgstr "No se ha escrito ninguna palabra."
-
-#: ../gui/src/ws_gui_callbacks.c:1008
-msgid "ws_ni_search_aborted"
-msgstr "La búsqueda ha sido cancelada."
-
-#: ../gui/src/ws_gui_callbacks.c:1412
-msgid "ws_ni_select_word_to_add"
-msgstr "Seleccione la palabra a añadir."
-
-#: ../gui/src/ws_gui_callbacks.c:1436
-msgid "ws_ni_select_word_to_remove"
-msgstr "Seleccione la palabra a eliminar."
-
-#: ../gui/src/ws_gui_callbacks.c:1128
-msgid "ws_ib_max_zoom"
-msgstr "Máximo nivel de zoo."
-
-#: ../gui/src/ws_gui_callbacks.c:1152
-msgid "ws_ib_min_zoom"
-msgstr "Mínimo nivel de zoo."
-
-#: ../gui/src/ws_gui_callbacks.c:1161
-msgid "ws_ib_zoom_in"
-msgstr "Aumentar"
-
-#: ../gui/src/ws_gui_callbacks.c:1134
-msgid "ws_ib_zoom_out"
-msgstr "Disminuir"
-
-#: ../gui/src/ws_gui_callbacks.c:1018
-msgid "ws_ib_fullscreen_on"
-msgstr "Pantalla completa"
-
-#: ../gui/src/ws_gui_callbacks.c:1029
-msgid "ws_ib_fullscreen_off"
-msgstr "Salir de pantalla completa"
-
-#: ../gui/src/ws_gui_callbacks.c:1124
-#: ../gui/src/ws_gui_callbacks.c:1157
-msgid "ws_ib_zoom_default"
-msgstr "Nivel de zoom por defecto"
-
-#: ../gui/src/ws_gui_callbacks.c:1069
-msgid "ws_ib_copied"
-msgstr "Copiado."
-
-#: ../gui/src/ws_gui_callbacks.c:1096
-msgid "ws_ib_pasted"
-msgstr "Pegado."
-
-#: ../gui/src/ws_gui_callbacks.c:268
-msgid "ws_ni_bookmarks_unavailable"
-msgstr "No se han podido cargar los marcadores. Instale el paquete libsqlite."
-
-msgid "ws_ab_loading"
-msgstr "Preparando traducción"
-
-#: ../gui/src/ws_gui_layout.c:156
-msgid "ws_ti_list_full"
-msgstr "Número excesivo de palabras"
-
-#: ../gui/src/ws_gui_layout.c:1780
-msgid "ws_ni_words_list_full"
-msgstr "La consulta es demasiado general. mDictionary no puede mostrar todas las palabras coincidentes. Por favor, reformule la consulta."
-
-msgid "ws_ib_dictionary_nothing_to_remove"
-msgstr "No ha sido seleccionado ningún diccionario para ser borrado."
diff --git a/data/locale/pl_PL.po b/data/locale/pl_PL.po
deleted file mode 100644 (file)
index 8974d5d..0000000
+++ /dev/null
@@ -1,352 +0,0 @@
-# Copyright (C) 2006
-# This file is distributed under the same license as the PACKAGE package.
-# Anna Gadomska, <Anna.Gadomska@comarch.pl>, 2006.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-14 11:34+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Anna Gadomska <Anna.Gadomska@comarch.pl>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../gui/src/ws_gui.c:49
-msgid "ws_check"
-msgstr "OK"
-
-#: ../gui/src/ws_gui_layout.c:42
-msgid "ws_ni_welcome"
-msgstr "Witamy w mDictionary!"
-
-#: ../gui/src/ws_gui_layout.c:174 ../gui/src/ws_gui_layout.c:351
-msgid "ws_me_search_find"
-msgstr "Znajdź"
-
-#: ../gui/src/ws_gui_layout.c:266
-msgid "ws_me_dictionaries"
-msgstr "Słowniki"
-
-#: ../gui/src/ws_gui_layout.c:268
-msgid "ws_me_bookmarks"
-msgstr "Zakładki"
-
-#: ../gui/src/ws_gui_layout.c:270
-msgid "ws_me_edit"
-msgstr "Edycja"
-
-#: ../gui/src/ws_gui_layout.c:272
-msgid "ws_me_view"
-msgstr "Widok"
-
-#: ../gui/src/ws_gui_layout.c:274
-msgid "ws_me_search"
-msgstr "Znajdź"
-
-#: ../gui/src/ws_gui_layout.c:276
-msgid "ws_me_about"
-msgstr "O programie..."
-
-#: ../gui/src/ws_gui_layout.c:278
-msgid "ws_me_close"
-msgstr "Zamknij"
-
-#: ../gui/src/ws_gui_layout.c:285
-msgid "ws_me_dictionaries_load"
-msgstr "Załaduj słownik..."
-
-#: ../gui/src/ws_gui_layout.c:287
-msgid "ws_me_dictionaries_select"
-msgstr "Wybierz słowniki..."
-
-#: ../gui/src/ws_gui_layout.c:289
-msgid "ws_me_dictionaries_remove"
-msgstr "Usuń słowniki..."
-
-#: ../gui/src/ws_gui_layout.c:291
-msgid "ws_me_dictionaries_optimize"
-msgstr "Optymalizuj słowniki..."
-
-#: ../gui/src/ws_gui_layout.c:303
-msgid "ws_me_bookmarks_open"
-msgstr "Otwórz Zakładki"
-
-#: ../gui/src/ws_gui_layout.c:305
-msgid "ws_me_bookmarks_close"
-msgstr "Zamknij Zakładki"
-
-#: ../gui/src/ws_gui_layout.c:307
-msgid "ws_me_bookmarks_add"
-msgstr "Dodaj do Zakładek..."
-
-#: ../gui/src/ws_gui_layout.c:309
-msgid "ws_me_bookmarks_remove"
-msgstr "Usuń z Zakładek..."
-
-#: ../gui/src/ws_gui_layout.c:321
-msgid "ws_me_edit_copy"
-msgstr "Kopiuj"
-
-#: ../gui/src/ws_gui_layout.c:323
-msgid "ws_me_edit_paste"
-msgstr "Wklej"
-
-#: ../gui/src/ws_gui_layout.c:325
-msgid "ws_me_edit_select_all"
-msgstr "Zaznacz wszystko"
-
-#: ../gui/src/ws_gui_layout.c:334
-msgid "ws_me_view_hide_words_list"
-msgstr "Ukryj listę słów"
-
-#: ../gui/src/ws_gui_layout.c:336
-msgid "ws_me_view_zoom_in"
-msgstr "Powiększ"
-
-#: ../gui/src/ws_gui_layout.c:338
-msgid "ws_me_view_zoom_out"
-msgstr "Pomniejsz"
-
-#: ../gui/src/ws_gui_layout.c:340
-msgid "ws_me_view_fullscreen"
-msgstr "Pełny ekran"
-
-#: ../gui/src/ws_gui_layout.c:353
-msgid "ws_me_search_find_next"
-msgstr "Znajdź następny"
-
-#: ../gui/src/ws_gui_layout.c:355
-msgid "ws_me_search_find_prev"
-msgstr "Znajdź poprzedni"
-
-#: ../gui/src/ws_gui_layout.c:357
-msgid "ws_me_search_stop"
-msgstr "Zatrzymaj"
-
-#: ../gui/src/ws_gui_layout.c:560
-msgid "ws_mp_search"
-msgstr "Znajdź"
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_edit_copy"
-msgstr "Kopiuj"
-
-#: ../gui/src/ws_gui_layout.c:585
-msgid "ws_mp_edit_paste"
-msgstr "Wklej"
-
-#: ../gui/src/ws_gui_layout.c:590
-msgid "ws_mp_edit_select_all"
-msgstr "Zaznacz wszystko"
-
-#: ../gui/src/ws_gui_layout.c:597
-msgid "ws_mp_edit"
-msgstr "Edycja"
-
-#: ../gui/src/ws_gui_layout.c:605
-msgid "ws_mp_zoom_in"
-msgstr "Powiększ"
-
-#: ../gui/src/ws_gui_layout.c:610
-msgid "ws_mp_zoom_out"
-msgstr "Pomniejsz"
-
-#: ../gui/src/ws_gui_layout.c:712 ../gui/src/ws_gui_layout.c:904
-msgid "ws_ti_choose_dictionaries_title"
-msgstr "Wybierz słowniki"
-
-#: ../gui/src/ws_gui_layout.c:767 ../gui/src/ws_gui_layout.c:941
-#: ../gui/src/ws_gui_layout.c:1233 ../gui/src/ws_gui_layout.c:1427
-#: ../gui/src/ws_gui_layout.c:1488
-msgid "ws_db_cancel"
-msgstr "Anuluj"
-
-#: ../gui/src/ws_gui_layout.c:773 ../gui/src/ws_gui_layout.c:946
-#: ../gui/src/ws_gui_layout.c:1422 ../gui/src/ws_gui_layout.c:1483
-msgid "ws_db_ok"
-msgstr "OK"
-
-#: ../gui/src/ws_gui_layout.c:892
-msgid "ws_ni_no_dictionaries_to_optimize"
-msgstr "Brak słowników do zoptymalizowania."
-
-#: ../gui/src/ws_gui_layout.c:1022
-msgid "ws_ti_load_dictionary_title"
-msgstr "Załaduj słownik"
-
-#: ../gui/src/ws_gui_layout.c:1074
-msgid "ws_ni_dictionaries_activation_question"
-msgstr "Czy chcesz zacząć używać ten słownik już teraz?"
-
-#: ../gui/src/ws_gui_layout.c:1106
-msgid "ws_ni_dictionaries_optimalization_question"
-msgstr "Czy chcesz zoptymalizowac ten słownik teraz?"
-
-#: ../gui/src/ws_gui_layout.c:1131
-msgid "ws_ni_dictionary_added"
-msgstr "Nowy słownik został dodany."
-
-#: ../gui/src/ws_gui_callbacks.c:439
-msgid "ws_ni_dictionary_not_added"
-msgstr "Słownik nie mógł zostać dodany."
-
-#: ../gui/src/ws_gui_layout.c:1138
-msgid "ws_ni_dictionary_wrong_file"
-msgstr "Zły plik słownika."
-
-#: ../gui/src/ws_gui_layout.c:1189
-msgid "ws_ti_remove_dictionaries_title"
-msgstr "Usuń słowniki"
-
-#: ../gui/src/ws_gui_layout.c:1239
-msgid "ws_bd_remove_dictionaries_remove_selected"
-msgstr "Usuń zaznaczone"
-
-#: ../gui/src/ws_gui_layout.c:1305
-msgid "ws_ti_about_title"
-msgstr "O Programie"
-
-#: ../gui/src/ws_gui_layout.c:1401
-msgid "ws_ti_add_bookmark"
-msgstr "Dodaj do zakładk"
-
-#: ../gui/src/ws_gui_layout.c:1413
-msgid "ws_ti_bookmarks_add_question"
-msgstr "Dodać do zakładek?"
-
-#: ../gui/src/ws_gui_layout.c:1449
-msgid "ws_ni_bookmark_added"
-msgstr "Zakładka została dana."
-
-#: ../gui/src/ws_gui_layout.c:1457
-msgid "ws_ni_bookmark_not_added"
-msgstr "Zakładka nie mogła być dod."
-
-
-#: ../gui/src/ws_gui_layout.c:1462
-msgid "ws_ti_remove_bookmark"
-msgstr "Usuń zakładk"
-
-#: ../gui/src/ws_gui_layout.c:1474
-msgid "ws_ni_remove_bookmark_question"
-msgstr "Usunąć z zakładek?"
-
-#: ../gui/src/ws_gui_layout.c:1515
-msgid "ws_ni_bookmark_removed"
-msgstr "Zakładkę usunieto."
-
-#: ../gui/src/ws_gui_layout.c:1522
-msgid "ws_ni_bookmark_not_removed"
-msgstr "Zakładka nie mogła zostać usunięta."
-
-#: ../gui/src/ws_gui_callbacks.c:114
-msgid "ws_ni_error_occured"
-msgstr "Wystąpił błąd."
-
-#: ../gui/src/ws_gui_callbacks.c:119
-msgid "response"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:133
-msgid "ws_ni_no_dictionary_available"
-msgstr "Brak dostępnych słowników."
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_caching"
-msgstr "Trwa optymalizacja..."
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_extracting"
-msgstr "Trwa rozpakowywanie..."
-
-#: ../gui/src/ws_gui_callbacks.c:212
-msgid "ws_ni_dictionary_unavailable"
-msgstr "Słownik niedostępny."
-
-#: ../gui/src/ws_gui_callbacks.c:289
-msgid "ws_ni_no_words_found"
-msgstr "Nie znaleziono słów."
-
-#: ../gui/src/ws_gui_callbacks.c:867
-msgid "ws_ni_no_text_selected"
-msgstr "Zaznacz tekst."
-
-#: ../gui/src/ws_gui_callbacks.c:970
-msgid "ws_ab_searching"
-msgstr "Wyszukiwanie..."
-
-#: ../gui/src/ws_gui_callbacks.c:987
-msgid "ws_ni_no_word_typed"
-msgstr "Nie wpisano słowa."
-
-#: ../gui/src/ws_gui_callbacks.c:1008
-msgid "ws_ni_search_aborted"
-msgstr "Wyszukiwanie zostało przerwane."
-
-#: ../gui/src/ws_gui_callbacks.c:1412
-msgid "ws_ni_select_word_to_add"
-msgstr "Wybierz słowo do dodania."
-
-#: ../gui/src/ws_gui_callbacks.c:1436
-msgid "ws_ni_select_word_to_remove"
-msgstr "Wybierz słowo do usunięcia."
-
-#: ../gui/src/ws_gui_callbacks.c:1128
-msgid "ws_ib_max_zoom"
-msgstr "Nie można bardziej powiększy."
-
-#: ../gui/src/ws_gui_callbacks.c:1152
-msgid "ws_ib_min_zoom"
-msgstr "Nie można bardziej pomniejszyć."
-
-#: ../gui/src/ws_gui_callbacks.c:1161
-msgid "ws_ib_zoom_in"
-msgstr "Powiększenie"
-
-#: ../gui/src/ws_gui_callbacks.c:1134
-msgid "ws_ib_zoom_out"
-msgstr "Pomniejszenie"
-
-#: ../gui/src/ws_gui_callbacks.c:1018
-msgid "ws_ib_fullscreen_on"
-msgstr "Pełen ekran włączony"
-
-#: ../gui/src/ws_gui_callbacks.c:1029
-msgid "ws_ib_fullscreen_off"
-msgstr "Pełen ekran wyłączony"
-
-#: ../gui/src/ws_gui_callbacks.c:1124
-#: ../gui/src/ws_gui_callbacks.c:1157
-msgid "ws_ib_zoom_default"
-msgstr "Domyślna wartość powiększenia"
-
-#: ../gui/src/ws_gui_callbacks.c:1069
-msgid "ws_ib_copied"
-msgstr "Skopiowano."
-
-#: ../gui/src/ws_gui_callbacks.c:1096
-msgid "ws_ib_pasted"
-msgstr "Wklejono."
-
-#: ../gui/src/ws_gui_callbacks.c:268
-msgid "ws_ni_bookmarks_unavailable"
-msgstr "Moduł Zakładek nie mógl być załadowany. Proszę doinstalować paczkę libsqlite."
-
-msgid "ws_ab_loading"
-msgstr "Wczytywanie tłumaczenia..."
-
-#: ../gui/src/ws_gui_layout.c:156
-msgid "ws_ti_list_full"
-msgstr "Za dużo wynikow"
-
-#: ../gui/src/ws_gui_layout.c:1780
-msgid "ws_ni_words_list_full"
-msgstr "Jeśli nie znalazłeś szukanego słowa sprecyzuj zapytanie."
-
-msgid "ws_ib_dictionary_nothing_to_remove"
-msgstr "Nie zaznaczono żadnego słownika. Nie ma nic do usunięcia."
-
diff --git a/data/mis/mdictionary-search.xml b/data/mis/mdictionary-search.xml
deleted file mode 100644 (file)
index 19fdd6b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<search name="mdictionary"
-       icon="/usr/share/pixmaps/qgn_indi_search_mdictionary.png"
-       action="mdict://"
-       user-input="p">
-</search>
\ No newline at end of file
diff --git a/data/mis/whitestork-search.xml b/data/mis/whitestork-search.xml
deleted file mode 100644 (file)
index 63abce4..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<search name="mDictionary"
-       icon="/usr/share/pixmaps/qgn_indi_search_whitestork.png"
-       action="mdict://"
-       user-input="p">
-</search>
\ No newline at end of file
diff --git a/data/other/mdictionary.desktop b/data/other/mdictionary.desktop
deleted file mode 100644 (file)
index fd3cda5..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Name=mDictionary
-Comment=Multilingual dictionary
-Exec=/usr/bin/mdictionary
-Icon=mdictionary_icon
-Terminal=true
-Type=Application
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
-X-Window-Icon=mdictionary_icon
-
-[X-Osso-URI-Actions]
-mdict=X-Osso-URI-Action-trans
-
-[X-Osso-URI-Action-trans]
-X-Osso-Service=org.maemo.mdictionaryGui
-Method=search_home_applet
-Name=uri_link_open_link
-TranslationDomain=osso-uri
diff --git a/data/other/org.maemo.WhiteStorkGui.service b/data/other/org.maemo.WhiteStorkGui.service
deleted file mode 100644 (file)
index 6eaf142..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sample service description file
-[D-BUS Service]
-Name=org.maemo.WhiteStorkGui
-Exec=/usr/bin/WhiteStork
diff --git a/data/other/org.maemo.WhiteStorkManager.service b/data/other/org.maemo.WhiteStorkManager.service
deleted file mode 100644 (file)
index 92c3155..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sample service description file
-[D-BUS Service]
-Name=org.maemo.WhiteStorkManager
-Exec=/usr/bin/WhiteStorkManager
diff --git a/data/other/org.maemo.mdictionaryGui.service b/data/other/org.maemo.mdictionaryGui.service
deleted file mode 100644 (file)
index 13b2ce3..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sample service description file
-[D-BUS Service]
-Name=org.maemo.mdictionaryGui
-Exec=/usr/bin/mdictionary
diff --git a/data/other/org.maemo.mdictionaryManager.service b/data/other/org.maemo.mdictionaryManager.service
deleted file mode 100644 (file)
index 09673b3..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sample service description file
-[D-BUS Service]
-Name=org.maemo.mdictionaryManager
-Exec=/usr/bin/mdictionaryManager
diff --git a/data/other/whitestork.desktop b/data/other/whitestork.desktop
deleted file mode 100644 (file)
index 8870c02..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Name=WhiteStork Dictionary
-Comment=Multilingual dictionary
-Exec=/usr/bin/WhiteStork
-X-Osso-Service=org.maemo.WhiteStorkGui
-Icon=whitestork_icon
-Terminal=true
-Type=Application
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
-X-Window-Icon=whitestork_icon
-
-X-Osso-URI-Actions=mdict;
-
-[X-Osso-URI-Action Handler mdict]
-Method=search_home_applet
-Name=uri_link_open_link
-TranslationDomain=osso-uri
\ No newline at end of file
diff --git a/data/package_contents/whitestork/DEBIAN/control b/data/package_contents/whitestork/DEBIAN/control
deleted file mode 100644 (file)
index c3810bd..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-Package: mdictionary
-Version:
-Section: user/office
-Priority: optional
-Architecture: all   
-Installed-Size:
-Depends: libexpat1 (>= 1.95.8)        
-Maintainer: ComArch S.A. <contact@comarch.com>
-Description: Multilingual dictionary.
- mdictionary Multilingual Dictionary is a very functional
- application allowing the use of many dictionary engines.
- You can either download them from our homepage at 
- http://garage.maemo.org, or write your own, provided
- that You stick to the API (also available on our homepage).
- The graphical user interface of our application can also 
- be replaced by a product of Your own programming skills.
- Copyright 2006, ComArch S.A. 
-Maemo-Icon-26: 
- iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
- WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wEJDBUeRyfCHgAAAk5JREFUSMftlk9LVGEUxn937lzv
- nROjZDOpYdg/E3XQoiCEsk1R0CosXPUJ2rVp0baP0Aco2rRxE0FhRFGRmzbRH9IW0SJBLFKpR67j
- eFv4DkyTOtMoLaKzet/3POc8nHuf+7wX/rXwGqyLgHNuHUdRNJFKpeYlLa9X4NfZuAXYAWSjKOpK
- kmQoSZK7wAhwC7ji+35zEASFIAi+FItFrTXRNiAPcAT25+AQwGHo7YQ+gD2wtxXaJ0GXff+8SqUs
- MA58BHLAJUAAYRimfN9/Imm2kig9BFd7YdQ1TI/CvnIyB7RWgK+H4TXF8bibZAWYcSkBYwBxHI+Y
- 2XB5v947SgO95c0p6M9DD0AHtN3JZCamFxdvA4XVIwQ0A+/ddC1Aj5ntljTWsHLMrNvMBty2GTgI
- WBXmuJm1bVp1ZtYNDLhp5ipSeSAAnkua2Sp5Y2ZZ4IIj+wBMSiquh083QNAGDALHHEE38G4jkron
- MrPTQNbhZ4BXVZAunGiAJeCRJNVNZGYF1+ChpJPAV+BFjZpgVbD8kPS0JpEjKUqarDjuAC669Sfg
- fsUUv0Qmk9npeV6/pMe1iEZqfAtp4Kzr0bRGfiUMw3bf929KWkxvwpCXgXsbAXzfP1P209QGuFkz
- y29C/k1AIOl7PWIYBmLgpaTSH5D0ONk/KF8dXh1FncBR9wjeAguSpqsw24F8LkkKyxDOed5rSW8a
- dgYz63PGuasq9e3G0tLgiVLp2YEkWfBgasssqDqS1atjCojXIkr9rX+G/0QNR3oLe30G5p1j/BY/
- AaknsXLnUsw8AAAAAElFTkSuQmCC
diff --git a/data/package_contents/whitestork/DEBIAN/postinst b/data/package_contents/whitestork/DEBIAN/postinst
deleted file mode 100755 (executable)
index c3c2ed0..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-echo -e "Postinstalling actions..." 
-
-if [ "$1" != "upgrade" ]
-then
-# End automatically added section
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/elements/name "Elements Database"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/elements/path "/usr/share/mdictionary/dictionaries/elements"'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/elements/active true'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/elements/optimized true'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/us-en/name "American - English Dictionary"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/us-en/path "/usr/share/mdictionary/dictionaries/us-en"'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/us-en/active true'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/us-en/optimized false'
-
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/engines/bookmarks/path "/usr/lib/mdictionary/ws_bookmark.so"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/bookmarks/name "Bookmarks"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/bookmarks/path "/usr/share/mdictionary/dictionaries/bookmarks"'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/bookmarks/active false'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/bookmarks/optimized true'
-chmod -R 0777 /usr/share/mdictionary/dictionaries
-fi
\ No newline at end of file
diff --git a/data/package_contents/whitestork/DEBIAN/postrm b/data/package_contents/whitestork/DEBIAN/postrm
deleted file mode 100755 (executable)
index 36c6660..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Postremoving actions..."
diff --git a/data/package_contents/whitestork/DEBIAN/preinst b/data/package_contents/whitestork/DEBIAN/preinst
deleted file mode 100755 (executable)
index 302910b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Preinstallation actions..."
diff --git a/data/package_contents/whitestork/DEBIAN/prerm b/data/package_contents/whitestork/DEBIAN/prerm
deleted file mode 100755 (executable)
index 362bb3a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-echo -e "Preremoving actions..."
-
-#su $USER -c 'rm -rf /usr/share/mdictionary'
-
-if [ "$1" != "upgrade" ]
-then
-       echo -e -n "Removing gconf configuration..\n"
-       su $USER -c 'gconftool-2 --recursive-unset /apps/maemo/mdictionary/dictionaries'
-       su $USER -c 'gconftool-2 --recursive-unset /apps/maemo/mdictionary/engines/bookmarks'
-fi
-
-# End automatically added section
diff --git a/data/package_contents/whitestorkdictionary/DEBIAN/control b/data/package_contents/whitestorkdictionary/DEBIAN/control
deleted file mode 100644 (file)
index 1bb9a62..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Package: mdictionarydictionary                                                         
-Version:
-Section: user/office
-Priority: optional                                                           
-Architecture: all  
-Installed-Size:                                                           
-Depends: mdictionarygui (>= 0.1.0), mdictionary (>= 0.1.0), mdictionaryplugins (>= 0.1.0)       
-Maintainer: ComArch S.A. <contact@comarch.com>                              
-Description: metapackage binding all mdictionary Dictionary's components
- This package gathers all mdictionary's components together, increasing
- the ease of use of mdictionary Multilingual Dictionary.
- Copyright 2006, ComArch S.A. 
diff --git a/data/package_contents/whitestorkdictionary/DEBIAN/postinst b/data/package_contents/whitestorkdictionary/DEBIAN/postinst
deleted file mode 100755 (executable)
index d7b09f0..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Postinstalling actions..." 
diff --git a/data/package_contents/whitestorkdictionary/DEBIAN/postrm b/data/package_contents/whitestorkdictionary/DEBIAN/postrm
deleted file mode 100755 (executable)
index 36c6660..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Postremoving actions..."
diff --git a/data/package_contents/whitestorkdictionary/DEBIAN/preinst b/data/package_contents/whitestorkdictionary/DEBIAN/preinst
deleted file mode 100755 (executable)
index 302910b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Preinstallation actions..."
diff --git a/data/package_contents/whitestorkdictionary/DEBIAN/prerm b/data/package_contents/whitestorkdictionary/DEBIAN/prerm
deleted file mode 100755 (executable)
index 9bd24b7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Preremoving actions..."
diff --git a/data/package_contents/whitestorkgui/DEBIAN/control b/data/package_contents/whitestorkgui/DEBIAN/control
deleted file mode 100644 (file)
index 685062c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-Package: mdictionarygui                                                         
-Version:
-Section: user/office
-Priority: optional                                                           
-Architecture: all  
-Installed-Size: 
-Depends: libexpat1 (>= 1.95.8), mdictionary (>= 0.1.0)        
-Maintainer: ComArch S.A. <contact@comarch.com>                              
-Description: GUI for mdictionary.
- This package contain an example of GUI for 
- Whitestork - Multilingual Dictionary for 
- Maemo platform.
- Copyright 2006, ComArch S.A. 
-Maemo-Icon-26: 
- iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
- WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wEJDBUeRyfCHgAAAk5JREFUSMftlk9LVGEUxn937lzv
- nROjZDOpYdg/E3XQoiCEsk1R0CosXPUJ2rVp0baP0Aco2rRxE0FhRFGRmzbRH9IW0SJBLFKpR67j
- eFv4DkyTOtMoLaKzet/3POc8nHuf+7wX/rXwGqyLgHNuHUdRNJFKpeYlLa9X4NfZuAXYAWSjKOpK
- kmQoSZK7wAhwC7ji+35zEASFIAi+FItFrTXRNiAPcAT25+AQwGHo7YQ+gD2wtxXaJ0GXff+8SqUs
- MA58BHLAJUAAYRimfN9/Imm2kig9BFd7YdQ1TI/CvnIyB7RWgK+H4TXF8bibZAWYcSkBYwBxHI+Y
- 2XB5v947SgO95c0p6M9DD0AHtN3JZCamFxdvA4XVIwQ0A+/ddC1Aj5ntljTWsHLMrNvMBty2GTgI
- WBXmuJm1bVp1ZtYNDLhp5ipSeSAAnkua2Sp5Y2ZZ4IIj+wBMSiquh083QNAGDALHHEE38G4jkron
- MrPTQNbhZ4BXVZAunGiAJeCRJNVNZGYF1+ChpJPAV+BFjZpgVbD8kPS0JpEjKUqarDjuAC669Sfg
- fsUUv0Qmk9npeV6/pMe1iEZqfAtp4Kzr0bRGfiUMw3bf929KWkxvwpCXgXsbAXzfP1P209QGuFkz
- y29C/k1AIOl7PWIYBmLgpaTSH5D0ONk/KF8dXh1FncBR9wjeAguSpqsw24F8LkkKyxDOed5rSW8a
- dgYz63PGuasq9e3G0tLgiVLp2YEkWfBgasssqDqS1atjCojXIkr9rX+G/0QNR3oLe30G5p1j/BY/
- AaknsXLnUsw8AAAAAElFTkSuQmCC
diff --git a/data/package_contents/whitestorkgui/DEBIAN/postinst b/data/package_contents/whitestorkgui/DEBIAN/postinst
deleted file mode 100755 (executable)
index 841eefb..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-#echo $1 >> /home/krzsas/log.txt
-echo -e "Postinstalling actions..." 
-su $USER -c 'ln -s /usr/share/applications/hildon/mdictionary.desktop /etc/others-menu/extra_applications/0112_mdictionarygui.desktop' ;
-#maemo-confirm-text /usr/share/doc/mdictionarygui/copyright
-
-#case $? in
-#0)su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/configuration/licence true';;
-  # maemo-select-menu-location mdictionary.desktop
-#1)su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/configuration/licence false';;
-#esac
-maemo-select-menu-location mdictionary.desktop
-
-exit 0
-
-# End automatically added section
diff --git a/data/package_contents/whitestorkgui/DEBIAN/postrm b/data/package_contents/whitestorkgui/DEBIAN/postrm
deleted file mode 100755 (executable)
index 816ca18..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-echo -e "Postremoving actions..."
-su $USER -c 'rm -f /etc/others-menu/extra_applications/0112_mdictionarygui.desktop' ;
\ No newline at end of file
diff --git a/data/package_contents/whitestorkgui/DEBIAN/preinst b/data/package_contents/whitestorkgui/DEBIAN/preinst
deleted file mode 100755 (executable)
index 302910b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Preinstallation actions..."
diff --git a/data/package_contents/whitestorkgui/DEBIAN/prerm b/data/package_contents/whitestorkgui/DEBIAN/prerm
deleted file mode 100755 (executable)
index 46ce117..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-echo -e "Preremoving actions..."
-
-
-
-# End automatically added section
diff --git a/data/package_contents/whitestorkplugins/DEBIAN/control b/data/package_contents/whitestorkplugins/DEBIAN/control
deleted file mode 100644 (file)
index 2594469..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Package: mdictionaryplugins
-Version:
-Section: user/office
-Priority: optional                                                           
-Architecture: all    
-Installed-Size:
-Depends: libexpat1 (>= 1.95.8)       
-Maintainer: ComArch S.A. <contact@comarch.com>                              
-Description: Parsing engines for mdictionary Multilingual Dictionary
- This package enables the use of XDXF and stardict dictionaries. Additional information about the XDXF format can be found here: xdxf.sourceforge.net.
- Copyright 2006, ComArch S.A. 
-Maemo-Icon-26: 
- iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
- WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wEJDBUeRyfCHgAAAk5JREFUSMftlk9LVGEUxn937lzv
- nROjZDOpYdg/E3XQoiCEsk1R0CosXPUJ2rVp0baP0Aco2rRxE0FhRFGRmzbRH9IW0SJBLFKpR67j
- eFv4DkyTOtMoLaKzet/3POc8nHuf+7wX/rXwGqyLgHNuHUdRNJFKpeYlLa9X4NfZuAXYAWSjKOpK
- kmQoSZK7wAhwC7ji+35zEASFIAi+FItFrTXRNiAPcAT25+AQwGHo7YQ+gD2wtxXaJ0GXff+8SqUs
- MA58BHLAJUAAYRimfN9/Imm2kig9BFd7YdQ1TI/CvnIyB7RWgK+H4TXF8bibZAWYcSkBYwBxHI+Y
- 2XB5v947SgO95c0p6M9DD0AHtN3JZCamFxdvA4XVIwQ0A+/ddC1Aj5ntljTWsHLMrNvMBty2GTgI
- WBXmuJm1bVp1ZtYNDLhp5ipSeSAAnkua2Sp5Y2ZZ4IIj+wBMSiquh083QNAGDALHHEE38G4jkron
- MrPTQNbhZ4BXVZAunGiAJeCRJNVNZGYF1+ChpJPAV+BFjZpgVbD8kPS0JpEjKUqarDjuAC669Sfg
- fsUUv0Qmk9npeV6/pMe1iEZqfAtp4Kzr0bRGfiUMw3bf929KWkxvwpCXgXsbAXzfP1P209QGuFkz
- y29C/k1AIOl7PWIYBmLgpaTSH5D0ONk/KF8dXh1FncBR9wjeAguSpqsw24F8LkkKyxDOed5rSW8a
- dgYz63PGuasq9e3G0tLgiVLp2YEkWfBgasssqDqS1atjCojXIkr9rX+G/0QNR3oLe30G5p1j/BY/
- AaknsXLnUsw8AAAAAElFTkSuQmCC
diff --git a/data/package_contents/whitestorkplugins/DEBIAN/postinst b/data/package_contents/whitestorkplugins/DEBIAN/postinst
deleted file mode 100755 (executable)
index d6c4e9a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-echo -e "Postinstalling actions..." 
-
-if [ "$1" != "upgrade" ]
-then
-# End automatically added section
-
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/engines/xdxf/path "/usr/lib/mdictionary/engine_xdxf.so"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/engines/stardict/path "/usr/lib/mdictionary/engine_stardict.so"'
-
-fi
-# End automatically added section
diff --git a/data/package_contents/whitestorkplugins/DEBIAN/postrm b/data/package_contents/whitestorkplugins/DEBIAN/postrm
deleted file mode 100755 (executable)
index 36c6660..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Postremoving actions..."
diff --git a/data/package_contents/whitestorkplugins/DEBIAN/preinst b/data/package_contents/whitestorkplugins/DEBIAN/preinst
deleted file mode 100755 (executable)
index 302910b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo -e "Preinstallation actions..."
diff --git a/data/package_contents/whitestorkplugins/DEBIAN/prerm b/data/package_contents/whitestorkplugins/DEBIAN/prerm
deleted file mode 100755 (executable)
index e2128b1..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-echo -e "Preremoving actions..."
-
-if [ "$1" != "upgrade" ]
-then
-       echo -e -n "Removing gconf configuration..\n"
-       su $USER -c 'gconftool-2 --recursive-unset /apps/maemo/mdictionary/engines'
-fi
-
-
-# End automatically added section
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644 (file)
index a2e8902..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-mdictionary (1.0.2-1) unstable; urgency=low
-
-  * major bugfixes in manager module
-
- -- unknown <Michal.Wysokinski@comarch.com>  Tue, 18 Nov 2008 16:08:36 +0300
-
-mdictionary (1.0.1-1) unstable; urgency=low
-
-  * minor bugfixes in manager module
-
- -- unknown <Lukasz.Pawlik@comarch.com>  Fri, 08 Feb 2008 10:12:00 +0300
-
-mdictionary (1.0.0-2) unstable; urgency=low
-
-  * minor bugfixes in debian package
-
- -- unknown <Dariusz.Wiechecki@comarch.com>  Mon, 20 Nov 2007 13:11:00 +0300
-
-mdictionary (1.0.0-1) unstable; urgency=low
-
-  * the first release of mDictionary (previously known as a WhiteStork)
-  * new icons and name
-
- -- unknown <Dariusz.Wiechecki@comarch.com>  Mon, 19 Nov 2007 16:06:00 +0300
diff --git a/debian/compat b/debian/compat
deleted file mode 100644 (file)
index b8626c4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-4
diff --git a/debian/control b/debian/control
deleted file mode 100644 (file)
index 160fbce..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-Source: mdictionary
-Section: user/office
-Priority: extra
-Maintainer: Lukasz Pawlik <Lukasz.Pawlik@comarch.com>
-Build-Depends: debhelper (>= 4), libdb1-dev, libosso-dev (>= 1.14-1), libgtk2.0-dev (>= 2.6.10), gtkhtml-dev (>= 3.9.1) libart-2.0-dev (>= 2.3.17), 
-Standards-Version: 3.6.1
-
-
-Package: mdictionary
-Section: user/office
-Priority: optional
-Architecture: any
-Depends:  ${shlibs:Depends}
-Conflicts: whitestork
-Description: multilingual dictionary for maemo.org
- mDictionary Multilingual Dictionary (known as WhiteStork) is 
- a very functional application allowing the use of many dictionary
- engines. There are included XDXF and StarDict engines in the package,
- but You can write your own, provided that You stick to the API 
- (also available on our homepage). The graphical user interface of
- our application can also be replaced by a product of Your own
- programming skills. This package contains all three modules 
- integrated that is: gui, engines and plugins.
- Copyright 2006 - 2007, ComArch S.A.
-XB-Maemo-Icon-26: 
- iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAAL
- EwEAmpwYAAABRWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjalZC/SsNgFEfP
- 14pSwU5BHD9w0cHSKi24KDG2UqGNpEGabDYNaaHa8DVWqz6Bk5trX0BwEGefwMU/
- L+ALCIKzQ5QqFIpnOvd34d7LhYSs1Ep2QsLhUaSsnS1Zd1w588IU08yRpHDg9cJK
- rWQDFNtnXf4i4PMVAfC0MqY/iVTT73nAO+CpuuOCsAEtiL0FaI3YLwBN2ZYB4gpI
- B7EPgXQj9lsgfRKFEYgHQPNCFYF4Bna/dwGkarn1XHa7kP99y5js39QdV8Y2uIaN
- WUi+jTLnEm6GsHA+yhbvQNuH+0fvWPV//ppYg0n1aMbHJgIQ837kn0YARjccqHbQ
- iuSSsSxXs9m8LJZdU1b1qm5Kw7T2TEu3y2Y1I6Xe6UjVDlpRTyq/56u+38wAfAFp
- qFJd29bLeQAAAARnQU1BAACxnmFMQfcAAAAgY0hSTQAAejAAAICYAAD5/wAAgOgA
- AHFHAADsUwAAOKQAAB1LzdW7PwAABG1JREFUeNq8lktsVVUUhr99nvec3tte7AVa
- 7ZVXkWgLFKEECgNAVGIEqsx00KKJQx8DY3QCJkYTDUFNSgJGxARjwghJdEINiIGB
- CbFpQKgpXKBpKaWUS9v7PI/loKVQ+4AyYI3O3met/997rT9rLyUiPA4zAJRSMw6M
- Ne3ZgAQQ+G1DP32Sns5XRFAiMiVRrGlPHRAn9ONoRhNInMBrA9WIZsxHKQiDK0jw
- 6dDhjw89EpG+47PbdsSK64Y+6h0CENilBKaLCgqgNIqlTxHqFkAbsJEvNqYnIzKm
- OkXgB/HscA4jVkZY8Qyh6aAVM4RWyVQhdUAz8PVkP7UH1cIPFaHpAEwgUaGP8nL3
- b8WnwtFmpIChW+h3eu6lpLsDejoeKnRmRAPdBEXv3joMkIeE0HhM9tiIDICfv6c5
- WcXyUeXEgbr1+2YO1jzv8K6mX0vmmUbmg/Uvk55wo8HM0villPt+JsuGUTKidn4C
- UNQapzDeqj/B4vLrLI52siLexspZZzGNTDOQ+uM3e/eRw/VjKlQiwncHDjYj2R/E
- b8W1jjNndhbRIxxpX8vBfxph3jJWxNt4t7qFv3uriUWhItLL4mgnUWN48ppoYEUW
- pR1nzs7nVp45epdoN7BrRLNZxG8lFvmFygowzalTZRpg2LXYkTI0swHHLUO0Whw3
- CVpy5CbFr07OrfpyowFghW8vN6x1eGzD8xMocxvDfgP/po5RkThN1dPrcNxSNKMW
- O5LEsJ7GsGtAlT2E3JbcS51SigPf6O9YFp/bzpryfDBCOHLqfra8uvOR1aYKu4/O
- Tba8ZgAc2r/qxfLyMHAc+ai35/wLeti23bQ2uwV/8xjhAy3sQkkXBOcIQvOKJhd6
- lD77uCruOwotI/LOh2/2dl3vSDhWuyTKFx7T9VzrzRu/bzFV6ytuZHMJbB0FO4eS
- QQhO4wfJc+KdyHhemAq9E9lc3k3l8m7f4HDZzdGG7Ylw4aWtXBYZTd2B/QcrgdVI
- QQK/Hcdql8qKHEGQc4v57k11dTUlXuFiX9Gzb6QHZ13OF5wMMPY0R2xPNE2wLV80
- TbAsH9tZLqblEhROdS+ouXbeANDkpBOqDVmUjW7WUwyXyeWrpyktuZgtT1QfSV3N
- i2VWYRghkUggZaVD6HqJRNz5GGYFSn9SNGMJSisV3Vo91nMBcrde18c6QzF/cVBp
- t9OaucZWWiUoW3RrE8PFVZR6p6R26SJQMXSrXpSKoZnP3j9oTPuttERhnOoAWvbW
- J5SeTGrG85rSKscCGnds/z/I/etx4KHficgwYfGsiAzhZX68taDmWs+Ep7xlb70O
- JEK1MGHZDaCiNO7YPg408NogHCL0OyQMesgXeulLd4pjpHOzXC8LFIAAKCys7Qqm
- nRne+LC+OhmDFQsWScNal8Fcjv7+v+gftiRQOl23Iwylfbl03eaJudbdQ6S/fe/P
- mc0MfkghdQdupq7KmYERt4G+BJatSbTMAJCBviKocakMpn0mprDCJDWYWBsZt+9P
- BfbfAGyC8jpg6wjHAAAAAElFTkSuQmCC
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644 (file)
index 25eba2b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-This package was debianized by Krzysztof Sasiak <Krzysztof.Sasiak@comarch.com> on
-Thu, 29 Mar 2007 13:28:58 +0200.
-
-It was downloaded from https://garage.maemo.org
-
-Upstream Author: mdictionary development team
-
-Copyright: Comarch 2006-2007
-
-License:
-
-All components are either under the GPL or LGPL. The complete text of the GPL and LGPL licenses can be found in the /usr/share/common-licenses/GPL and /usr/share/common-licenses/LGPL files.
-
-The Debian packaging is (C) 2007, Krzysiek Sasiak <Krzysztof.Sasiak@comarch.com> and
-is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
diff --git a/debian/docs b/debian/docs
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/debian/mdictionary.dirs b/debian/mdictionary.dirs
deleted file mode 100644 (file)
index 7ef9c5c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/share/mdictionary/dictionaries
-usr/share/mdictionary/dictionaries/bookmarks
-usr/lib/mdictionary
\ No newline at end of file
diff --git a/debian/mdictionary.install b/debian/mdictionary.install
deleted file mode 100644 (file)
index e295ae0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-bin/mdictionaryManager /usr/bin/
-bin/engine_bookmarks.so usr/lib/mdictionary/
-data/other/mdictionaryManager.service usr/share/dbus-1/services/
-data/dictionaries/elements/dict.cache usr/share/mdictionary/dictionaries/elements/ 
-data/dictionaries/elements/dict.xdxf usr/share/mdictionary/dictionaries/elements/
-data/dictionaries/us-en/dict.xdxf usr/share/mdictionary/dictionaries/us-en/
-data/bookmarks/bdb/* usr/share/mdictionary/dictionaries/bookmarks/
-bin/mdictionary /usr/bin/
-data/icons/mdictionary_icon.png usr/share/pixmaps/
-data/icons/mdictionary.png usr/share/pixmaps/
-data/icons/ws_top.png usr/share/pixmaps/
-data/icons/ws_tra.png usr/share/pixmaps/
-data/other/mdictionaryGui.service usr/share/dbus-1/services/
-data/other/mdictionary.desktop usr/share/applications/hildon/
-data/locale/out/* usr/share/locale/
-bin/engine_stardict.so usr/lib/mdictionary/
-bin/engine_xdxf.so usr/lib/mdictionary/
-data/icons/engine_xdxf_icon.png usr/share/pixmaps/
\ No newline at end of file
diff --git a/debian/mdictionary.postinst b/debian/mdictionary.postinst
deleted file mode 100644 (file)
index e1e28c1..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh
-
-if [ "$1" != "upgrade" ]
-then
-# End automatically added section
-echo -e "Selecting menu location" 
-maemo-select-menu-location mdictionary.desktop
-# End automatically added section
-
-echo -e "Creating 'Finnish - English' dictionary" 
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/FinnishEnglish/name Finnish-English'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/FinnishEnglish/path /usr/share/mdictionary/dictionaries/FinnishEnglish'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/FinnishEnglish/active true'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/FinnishEnglish/optimized true'
-
-
-echo -e "Creating 'English - Finnish Sample Dictionary' dictionary"
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/EnglishFinnish/name English-Finnish'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/EnglishFinnish/path /usr/share/mdictionary/dictionaries/EnglishFinnish'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/EnglishFinnish/active true'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/EnglishFinnish/optimized true'
-
-
-echo -e "Adding gconf entries for search engines" 
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/engines/xdxf/path /usr/lib/mdictionary/engine_xdxf.so'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/engines/stardict/path /usr/lib/mdictionary/engine_stardict.so'
-
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/engines/bookmarks/path /usr/lib/mdictionary/engine_bookmarks.so'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/bookmarks/name Bookmarks'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/mdictionary/dictionaries/bookmarks/path /usr/share/mdictionary/dictionaries/bookmarks'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/bookmarks/active false'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/mdictionary/dictionaries/bookmarks/optimized true'
-
-echo -e "Changing privilages" 
-chmod -R 0777 /usr/share/mdictionary/dictionaries
-
-if [ -f /usr/share/applications/uri-action-defaults.list ]
-then
-   if [ -z $(grep mdict=hildon-mdictionary.desktop /usr/share/applications/uri-action-defaults.list) ]
-   then
-      echo -e "Adding mdict URI action - uri-action-defaults.list"
-      echo -en "mdict=hildon-mdictionary.desktop" >> /usr/share/applications/uri-action-defaults.list
-   else
-      echo -en "\n\nThere is an entry about mdictionary in uri-action already ... \n\n"
-   fi
-   if [ -z `grep 'mdict=hildon-mdictionary.desktop' /usr/share/applications/schemeinfo.cache` ]
-   then
-      echo -e "Adding mdict URI action - schemeinfo.cache"
-      echo -en "mdict=hildon-mdictionary.desktop" >> /usr/share/applications/schemeinfo.cache
-   else
-      echo -en "\n\nThere is an entry about mdictionary in schemeinfo already ... \n\n"
-   fi
-
-fi
-
-fi
diff --git a/debian/mdictionary.prerm b/debian/mdictionary.prerm
deleted file mode 100644 (file)
index 8d91037..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-# End automatically added section
-
-if [ "$1" != "upgrade" ]
-then
-       echo -e -n "Removing gconf configuration..\n"
-       su $USER -c 'gconftool-2 --recursive-unset /apps/maemo/mdictionary/dictionaries'
-       su $USER -c 'gconftool-2 --recursive-unset /apps/maemo/mdictionary/engines'
-
-   if [ -f /usr/share/applications/uri-action-defaults.list ]
-   then
-      if [ ! -z `grep 'mdict=hildon-mdictionary.desktop' /usr/share/applications/uri-action-defaults.list` ]
-      then
-         echo -e "Removing mdict URI action - uri-action-defaults.list"
-         grep -v 'mdict=hildon-mdictionary.desktop' /usr/share/applications/uri-action-defaults.list > /tmp/wsrm.temp
-         cat /tmp/wsrm.temp > /usr/share/applications/uri-action-defaults.list
-      fi
-
-      if [ ! -z `grep 'mdict=hildon-mdictionary.desktop' /usr/share/applications/schemeinfo.cache` ]
-      then
-         echo -e "Removing mdict URI action - schemeinfo.cache"
-         grep -v 'mdict=hildon-mdictionary.desktop' /usr/share/applications/schemeinfo.cache > /tmp/wsrm.temp
-         cat /tmp/wsrm.temp > /usr/share/applications/schemeinfo.cache
-         rm -fr /tmp/wsrm.temp
-      fi
-   fi
-fi
-
-
-
-
diff --git a/debian/rules b/debian/rules
deleted file mode 100755 (executable)
index ff479d7..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# GNU copyright 1997 to 1999 by Joey Hess.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-
-
-
-CFLAGS = -Wall -g
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-       CFLAGS += -O0
-else
-       CFLAGS += -O2
-endif
-ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
-       INSTALL_PROGRAM += -s
-endif
-
-configure: configure-stamp
-configure-stamp:
-       dh_testdir
-       # Add here commands to configure the package.
-
-       touch configure-stamp
-
-
-build: build-stamp
-
-build-stamp: configure-stamp 
-       dh_testdir
-
-       # Add here commands to compile the package.
-       $(MAKE)
-       #/usr/bin/docbook-to-man debian/mdictionary.sgml > mdictionary.1
-
-       touch build-stamp
-
-clean:
-       dh_testdir
-       dh_testroot
-       rm -f build-stamp configure-stamp
-
-       # Add here commands to clean up after the build process.
-       -$(MAKE) clean
-
-       dh_clean 
-
-install: build
-       dh_testdir
-       dh_testroot
-       dh_clean -k 
-       dh_installdirs
-
-       # Add here commands to install the package into debian/mdictionary.
-       #$(MAKE) install-manager DESTDIR=$(CURDIR)/debian/mdictionary
-       #$(MAKE) install-gui DESTDIR=$(CURDIR)/debian/mdictionarygui
-       #$(MAKE) install-plugins DESTDIR=$(CURDIR)/debian/mdictionaryplugins
-       $(MAKE) install-mdictionary DESTDIR=$(CURDIR)/debian/mdictionary
-
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
-       dh_testdir
-       dh_testroot
-       dh_installchangelogs 
-       dh_installdocs
-#      dh_installexamples
-#      dh_install
-#      dh_installmenu
-#      dh_installdebconf       
-#      dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installmime
-#      dh_installinit
-#      dh_installcron
-#      dh_installinfo
-#      dh_installman
-#      dh_link
-       dh_strip
-       dh_compress
-       dh_fixperms
-#      dh_perl
-#      dh_python
-#      dh_makeshlibs
-       dh_installdeb
-       dh_shlibdeps
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/debian/whitestork.postinst b/debian/whitestork.postinst
deleted file mode 100755 (executable)
index 6fb9e91..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-echo -e "Postinstalling actions..." 
-
-if [ "$1" != "upgrade" ]
-then
-# End automatically added section
-echo -e "Creating 'bookmarks' dictionary" 
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Engines/bookmarks/path "/usr/lib/WhiteStork/ws_bookmark.so"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Dictionaries/bookmarks/name "Bookmarks"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Dictionaries/bookmarks/path "/usr/share/WhiteStork/dictionaries/bookmarks"'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/WhiteStork/Dictionaries/bookmarks/active false'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/WhiteStork/Dictionaries/bookmarks/optimized true'
-
-echo -e "Changing privilages" 
-chmod -R 0777 /usr/share/WhiteStork/dictionaries
-
-fi
diff --git a/debian/whitestork.prerm b/debian/whitestork.prerm
deleted file mode 100755 (executable)
index 6279e7f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-echo -e "Preremoving actions..."
-
-#su $USER -c 'rm -rf /usr/share/WhiteStork'
-
-if [ "$1" != "upgrade" ]
-then
-       echo -e -n "Removing gconf configuration..\n"
-       su $USER -c 'gconftool-2 --recursive-unset /apps/maemo/WhiteStork/Dictionaries'
-       su $USER -c 'gconftool-2 --recursive-unset /apps/maemo/WhiteStork/Engines'
-fi
-
-# End automatically added section
diff --git a/debian/whitestork.substvars b/debian/whitestork.substvars
deleted file mode 100644 (file)
index 3fe52c0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-shlibs:Depends=libbz2-1.0, libc6 (>= 2.3.5-1), libdb1, libdbus-1-2 (>= 0.61), libdbus-glib-1-2 (>= 0.61), libgconf2-6 (>= 2.6.4.14), libglib2.0-0 (>= 2.8.6-1osso1), libosso1 (>= 1.14-1)
diff --git a/debian/whitestorkgui.postinst b/debian/whitestorkgui.postinst
deleted file mode 100755 (executable)
index 4ec6a4e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-if [ "$1" != "upgrade" ]
-then
-# End automatically added section
-echo -e "Selecting menu location" 
-maemo-select-menu-location whitestork.desktop
-
-
-if [ -f /usr/share/applications/uri-action-defaults.list ]
-then
-   if [ -z $(grep mdict=hildon-whitestork.desktop /usr/share/applications/uri-action-defaults.list) ]
-   then
-      echo -e "Adding mdict URI action - uri-action-defaults.list"
-      echo -en "\nmdict=hildon-whitestork.desktop" >> /usr/share/applications/uri-action-defaults.list
-   else
-      echo -en "\n\nThere is an entry about WhiteStork in uri-action already ... \n\n"
-   fi
-   if [ -z `grep 'mdict=hildon-whitestork.desktop' /usr/share/applications/schemeinfo.cache` ]
-   then
-      echo -e "Adding mdict URI action - schemeinfo.cache"
-      echo -en "\nmdict=hildon-whitestork.desktop" >> /usr/share/applications/schemeinfo.cache
-   else
-      echo -en "\n\nThere is an entry about WhiteStork in schemeinfo already ... \n\n"
-   fi
-fi
-
-fi
diff --git a/debian/whitestorkgui.prerm b/debian/whitestorkgui.prerm
deleted file mode 100755 (executable)
index b3db91c..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-# End automatically added section
-
-if [ "$1" != "upgrade" ]
-then
-
-   if [ -f /usr/share/applications/uri-action-defaults.list ]
-   then
-      if [ ! -z `grep 'mdict=hildon-whitestork.desktop' /usr/share/applications/uri-action-defaults.list` ]
-      then
-         echo -e "Removing mdict URI action - uri-action-defaults.list"
-         grep -v 'mdict=hildon-whitestork.desktop' /usr/share/applications/uri-action-defaults.list > /tmp/wsrm.temp
-         cat /tmp/wsrm.temp > /usr/share/applications/uri-action-defaults.list
-      fi
-
-      if [ ! -z `grep 'mdict=hildon-whitestork.desktop' /usr/share/applications/schemeinfo.cache` ]
-      then
-         echo -e "Removing mdict URI action - schemeinfo.cache"
-         grep -v 'mdict=hildon-whitestork.desktop' /usr/share/applications/schemeinfo.cache > /tmp/wsrm.temp
-         cat /tmp/wsrm.temp > /usr/share/applications/schemeinfo.cache
-         rm -fr /tmp/wsrm.temp
-      fi
-   fi
-fi
-
-
-
-
diff --git a/debian/whitestorkplugins.postinst b/debian/whitestorkplugins.postinst
deleted file mode 100755 (executable)
index 2130e19..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-echo -e "Postinstalling actions..." 
-
-if [ "$1" != "upgrade" ]
-then
-# End automatically added section
-echo -e "Creating 'Polish - English Sample Dictionary' dictionary" 
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Dictionaries/StarDictSampleDict/name "Polish-English_Sample_Dictionary"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Dictionaries/StarDictSampleDict/path "/usr/share/WhiteStork/dictionaries/StarDictSampleDict"'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/WhiteStork/Dictionaries/StarDictSampleDict/active true'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/WhiteStork/Dictionaries/StarDictSampleDict/optimized false'
-echo -e "Creating 'English - Polish Sample Dictionary' dictionary" 
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Dictionaries/XDXFSampleDict/name "English-Polish_Sample_Dictionary"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Dictionaries/XDXFSampleDict/path "/usr/share/WhiteStork/dictionaries/XDXFSampleDict"'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/WhiteStork/Dictionaries/XDXFSampleDict/active true'
-su $USER -c 'gconftool-2 --type bool --set /apps/maemo/WhiteStork/Dictionaries/XDXFSampleDict/optimized false'
-
-echo -e "Adding gconf entries for search engines" 
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Engines/xdxf/path "/usr/lib/WhiteStork/engine_xdxf.so"'
-su $USER -c 'gconftool-2 --type string --set /apps/maemo/WhiteStork/Engines/stardict/path "/usr/lib/WhiteStork/engine_stardict.so"'
-
-fi
diff --git a/generate_locale b/generate_locale
deleted file mode 100755 (executable)
index 1b0c738..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-echo -e -n "Generating locale...\n"
-for nazwa in `find $1 -name *.po -type f -printf "%f\n"`
-       do
-       tekst=${nazwa%.po}
-       install -d $2/$tekst/LC_MESSAGES/
-       msgfmt $1/$nazwa -o $2/$tekst/LC_MESSAGES/mDictionary.mo
-       done
diff --git a/generate_repo b/generate_repo
deleted file mode 100755 (executable)
index bdf5a3b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-test=`arch | tr -d [:space:]`
-case $test in
-       i686) ARCH=i386;;
-       arm) ARCH=armel;;
-esac
-
-echo $ARCH
-install -d $1/dists/mistral/free/binary-$ARCH
-cp *.deb $1/dists/mistral/free/binary-$ARCH
-cd $1 && dpkg-scanpackages dists/mistral/free/binary-$ARCH /dev/null | gzip -9c > dists/mistral/free/binary-$ARCH/Packages.gz
diff --git a/include/dictionary_engine.h b/include/dictionary_engine.h
deleted file mode 100644 (file)
index 5566d4d..0000000
+++ /dev/null
@@ -1,855 +0,0 @@
-/*******************************************************************************
-This file is part of mDictionary
-
-mDictionary 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.
-
-mDictionary 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 WhiteStork; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \file dictionary_engine.h
- * \brief API for dictionary engines.
- *
- * This file define engine API which should be implemented by each dictionary
- * and is being used by WhiteStork manager (or any other program that want to
- * use WhiteStork plug-in capabilities).
- * \author Dariusz Wiechecki \<dariusz.wiechecki\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- * \see EngineAPI
- */
-#ifndef   _DICTIONARY_ENGINE_BASE_API_
-#define   _DICTIONARY_ENGINE_BASE_API_
-#ifdef    __cplusplus
-       extern "C" {
-#endif
-
-/** \brief API for dictionary engines.
- * \defgroup EngineAPI Dictionary Engine API
- *
- * This file define engine API which should be implemented by each dictionary
- * and is being used by WhiteStork manager (or any other program that want to
- * use WhiteStork plug-in capabilities).
- * \author Dariusz Wiechecki \<dariusz.wiechecki\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- */
-/*@{*/
-
-/* GLib header - enigne API is based on GLib's basic types and functions */
-#include <glib.h>
-
-/** \name Names and Versions
- * These defines how should be called exported function and what is the version
- * of this Engine API.
- * */
-/*@{*/
-
-/** \brief ENGINE_API_VERSION tells what version of API this header define.
- *
- * Numbers in version are:
- * \li 1st - major version number
- * \li 2nd - minor version number
- * \li 3rd - patch number \n
- *
- * All version with the same major number should be compatible (it is possible
- * that versions with different major number will be compatiblle but this is not
- * guaranteed).\n Minor number is for extension of basic major version (it is
- * not allow that version with the same major number and different minor number
- * are not compatible!).\n Patch number is only for internal use (e.g. when some
- * new comments has been added, one could change patch number of current API)
- *
- * \WARNING Each module should remember what version of API it had been
- *          compiled with!!!
- *
- * \changes
- * \li version 1.0.0 - First release of engine API. It is not compatible with
- *                   previous engine's API versions.
- * \li version < 1.0.0 - First version of engine API, when there was no engine
- *                     version yet.
- */
-#define ENGINE_API_VERSION "1.0.0"
-
-/** \brief Global functions structure name.
- *
- * This name defines what should be called function used for getting global
- * functions structure. It helps in dynamical loading of particular engine.\n
- * When writing new engine, there should be always function called like this
- * and returning particular EngineModule structure.
- * \see engine_global_functions | EngineModule
- */
-#define _GLOBAL_FUNCTIONS_ engine_global_functions
-
-/* We do not want this two defines in output documentation. */
-/** \cond */
-#define ___TOSTRING(x) #x
-#define __TOSTRING(x) ___TOSTRING(x)
-/** \endcond */
-
-/** \brief String containing global functions structure name.
- *
- * This string contains GLOBAL_FUNCTIONS name. It should be used while
- * trying to load global functions structure. It could look like this:
- * \code
- * getting_additional_t get_functions;
- * GModule *library = g_module_open("/path/to/module", G_MODULE_BIND_LAZY);
- * (...)
- * g_module_symbol(library, GLOBAL_FUNCTIONS_NAME, (gpointer)&get_functions);
- * \endcode
- * \see _GLOBAL_FUNCTIONS_ | getting_additional_t | engine_global_functions |
- * EngineModule
- */
-#define GLOBAL_FUNCTIONS_NAME   __TOSTRING(_GLOBAL_FUNCTIONS_)
-/*@}*/
-
-/** \name Global Module Macros
- *
- * These macros can be used to make it easier to work with many dictionary
- * engine modules.
- * */
-/*@{*/
-
-/** \brief Checks if given path points to dictionary is in compatible format.
- *
- * If there is no knowledge what format dictionary has, it is possible to check
- * if particular engine will handle given dictionary.
- * \param module module which compatibility we want to check
- * \param location dictionary which compatibility with module we want to check
- * \return true if module and dictionary are compatible; otherwise it returns
- * false
- */
-#define dict_eng_module_check(module, location)\
-                            ((module).engine_check(location))
-
-/** \brief Get description of the module.
- *
- * If user would like to present some information about particular module, he
- * can use this function. It returns string (char*) that should contain basic
- * information about module (engine). It could return, for example, something
- * similiar to:
- * \code "XDXF Engine Module. Copyright (C) 2007, foo. Version 1.0" \endcode
- * 
- *
- * \param module module which description we want to get
- * \return string describes given module
- */
-#define dict_eng_module_get_description(module)\
-                                      ((module).engine_description())
-
-/** \brief Get version of the module.
- *
- * Each module (dictionary engine) shoul keep its version number. It could be
- * accessed by this function.
- * \Warning Module version and Engine API version are not the same !
- * \param module module which version we want to get
- * \return string containing version of given module
- */
-#define dict_eng_module_get_version(module)\
-                                  ((module).engine_version())
-
-/** \brief Get version of Engine API with which module was compiled.
- *
- * Use this function to get know which version of Engine API this particular
- * engine support.
- * \Warning Module version and Engine API version are not the same !
- * \param module module which supported API version we want to get
- * \return string containing version of engine API given module was compiled 
- * with
- */
-#define dict_eng_module_get_api_version(module)\
-                                      ((module).engine_api_version())
-
-/** \brief Get format of supported dictionaries.
- *
- * Call this function to get description of supported dictionary format.
- * \param module module which supported format we want to know
- * \return string describing supported format (e.g. XDXF, StarDict)
- * with
- */
-#define dict_eng_module_get_format(module)\
-                                 ((module).engine_format())
-
-/** \brief Create engine instance connected with particular dictionary.
- *
- * It is simplified version of macro dict_eng_module_create_ext. It do the same,
- * the only difference is that it takes less number of parameter and disable 
- * progress_handler while function is working.
- * \param module module which we want to use to handle dictionary
- * \param location path to dictionary file
- * \param flags define if we want to optimize dictionary
- * \return pointer to Engine structure connected with dictionary or NULL if 
- * creating failed.
- */
-#define dict_eng_module_create(module, location, flags)\
-                            ( (module).engine_create((location),\
-                                                     (flags),\
-                                                      NULL,\
-                                                      NULL,\
-                                                      0.01) )
-
-/** \brief Create engine instance connected with particular dictionary.
- *
- * To start using particular dictionary it is required to create concrete
- * instance of engine structure, connected with that dictionary (file). This
- * function allow to create such a structure. In addition to this, this function
- * set a callback for caching progress bar, while this proccess take place
- * before final engine structure is created. Setting other callbacks is possible
- * only after this function finished.
- * \param module module which we want to use to handle dictionary
- * \param location path to dictionary file
- * \param flags define if we want to optimize dictionary
- * \param progress_handler callback for progress bar
- * \param progress_data pointer to data which will be passed to progress_handler
- * \param seed defines how often will be progress_handler called (0.01 means
- * that progress_handler will be called at each 1% of progress)
- * \return pointer to Engine structure connected with dictionary or NULL if 
- * creating failed.
- * \see cb_progress
- */
-#define dict_eng_module_create_ext(module, location, flags, progress_handler,\
-                                   progress_data, seed)\
-                                ( (module).engine_create((location),\
-                                                         (flags),\
-                                                         (progress_handler),\
-                                                         (progress_data),\
-                                                         (seed)) )
-/*@}*/
-
-/** \name Particular Dictionary Macros
- *
- * These macros are working on particular dictionary. It makes it easier to work
- * through these macros than by calling member of engine structure.
- * \see Engine
- */
-/*@{*/
-
-
-/** \brief Set seed value for particular progress callback.
- *
- * While engine is working it is possible to call progress callback sometimes.
- * Seed define after how big progress such a calback will be called.
- * \param engine pointer to engine (particular dictionary)
- * \param signal signal for which we want to set a seed
- * \param val progress step for progress callback
- */
-#define dict_eng_set_progress_seed(engine, signal, val)\
-                                 ((engine)->engine_set_progress_seed( (engine),\
-                                                                      (signal),\
-                                                                      (val) ))
-
-/** \brief Set-up auto-freeing of memory allocated by engine.
- *
- * Auto-freeing mechanism allows user to not thinking about memory chunks
- * allocated by engine. If it is enabled user do not need to free received
- * GArray with words or translation in callback functions.
- * \param engine pointer to engine (particular dictionary)
- * \param state boolean value deciding if auto-freeing shoul be enabled
- */
-#define dict_eng_set_auto_free(engine, state)\
-                              (engine)->engine_set_auto_free((engine), (state))
-
-/** \brief Activate optimization mechanizms for particular dictionary.
- *
- * Every engine could have some optimization methods. By calling this function 
- * we enabled this option. For the user of the engine it is not important what 
- * kind of optimization is used in current engine, how does it work etc.
- * It should be opaque for engine's users.
- *
- * \param engine pointer to engine which should be optimized
- * \see dict_eng_module_create() | dict_eng_is_optimized() | Engine
- */
-#define dict_eng_optimize(engine) ((engine)->engine_optimize((engine)))
-
-/** \brief Find out if specified engine is using optimization now.
- *
- * \param engine pointer to engine
- * \return boolean value telling if particular dictionary is optimized at this
- * moment
- */
-#define dict_eng_is_optimized(engine) ((engine)->engine_is_optimized((engine)))
-
-/** \brief To get know from what location was created current dictionary.
- *
- * If user of engine want to get know from what locatione exactly was created 
- * particular engine, he could call this function. It returns string, most
- * likely the same as the one passed earlier to dict_eng_module_create() 
- * function as a location argument.
- * \param engine pointer to the engine
- * \return gchar* containing path to dictionary path
- * \see dict_eng_module_create | dict_eng_module_create_ext
- */
-#define dict_eng_get_location(engine) ((engine)->engine_location((engine)))
-
-/** \brief Tells if last operation was sucesfull.
- *
- * If user want to be sure that everything was ok, during last operation 
- * (it has finished with success), he has to check if dict_eng_get_last_status()
- * is equal to ENGINE_NO_ERROR. If not, he can also find the reason 
- * why operation failed.
- * \param engine pointer to the engine
- * \return EngineStatus defining finish code of last operation
- * \see EngineStatus | dict_eng_status_message
- */
-#define dict_eng_get_last_status(engine) ((engine)->engine_status((engine)))
-
-/** \brief Translate pure state code to meaningfull message.
- *
- * If there was a error during engine was working, we can present to the user
- * the reason for this error in meaningfull form.
- * \param engine pointer to the engine
- * \param error code which we want to translate
- * \return gchar* message describing concrete error code
- * \see EngineStatus | dict_eng_get_last_status
- */
-#define dict_eng_status_message(engine, status)\
-                              ((engine)->engine_status_message((status)))
-
-/** \brief Destroy gently and completely given dictionary engine.
- *
- * When user do not need anymore particular dictionary, he must destroy it to
- * free memory allocated by this dictionary. It will close every opened file
- * descriptor, free any additional memory block allocated while engine was
- * working etc. User are not allowed to call free() on dictionary without
- * calling before dict_eng_destroy().
- *
- * \param engine pointer to the engine which is not needed anymore
- * \see dict_eng_module_create | Engine
- */
-#define dict_eng_destroy(engine) ((engine)->engine_close(engine))
-
-/** \brief Start searching for words matching given pattern.
- *
- * \param engine pointer to the engine to search in
- * \param pattern string describing pattern to search
- * \param data pointer do data which should be passed to callback function after
- * searching has been completed. If it is NULL, plugin will use data pointer
- * given while setting callback function for searching words list
- * \see dict_eng_search_word_translation | Engine
- */
-#define dict_eng_search_word_list(engine, pattern, data)\
-                        ((engine)->engine_search_word_list( (engine),\
-                                                            (pattern),\
-                                                            (data) ))
-
-/** \brief Start searching for word's translation.
- *
- * \param engine pointer to the engine to search in
- * \param word word which translation we are searching
- * \param data pointer do data which should be passed to callback function after
- * searching has been completed. If it is NULL, plugin will use data pointer
- * given while setting callback function for searching translation
- * \see dict_eng_search_word_list | Engine
- */
-#define dict_eng_search_word_translation(engine, word, data)\
-                        ((engine)->engine_search_word_translation( (engine),\
-                                                                   (word),\
-                                                                   (data) ))
-
-/** \brief Set callback function for particular signal.
- *
- * \param engine pointer to the engine
- * \param signal defines for what signal we are setting callback
- * \param c_handler function which will be called on signal
- * \param data pointer to data which will be passed to c_handler. It could be
- * overwritten while starting search
- * \return gpointer to the previously set callback
- * \see dict_eng_search_word_list | dict_eng_search_word_translation  | Engine
- */
-#define dict_eng_set_callback(engine, signal, c_handler, data)\
-                            ((engine)->engine_set_callback( (engine),\
-                                                            (signal),\
-                                                            (c_handler),\
-                                                            (data) ))
-
-/** \brief Add new word to the dictionary.
- *
- * This method should be implemented by every engine, but it is in API only for
- * bookmark engine. Other enignes should do nothing but return FALSE.
- *
- * \param engine pointer to the engine
- * \param word string with word which we want to add
- * \param tran string containing translation of word
- * \return boolean telling if word has been added. FALSE value could be returned
- * for few reasons: engine do not support adding word, word already exists in
- * dictionary etc.
- */
-#define dict_eng_add_word(engine,word,tran)\
-                        ((engine)->engine_add_word( (engine),\
-                                                    (word),\
-                                                    (tran) ))
-
-
-/** \brief Remove word from the dictionary.
- *
- * This method should be implemented by every engine, but it is in API only for
- * bookmark engine. Other enignes should do nothing but return FALSE.
- *
- * \param engine pointer to the engine
- * \param word string with word which we want to remove
- * \return boolean telling if word has been removed. FALSE value could be 
- * returned for few reasons: engine do not support adding word, word already 
- * exists in dictionary etc.
- */
-#define dict_eng_remove_word(engine,word)\
-                           ((engine)->engine_remove_word( (engine),\
-                                                          (word) ))
-
-/** \brief Get language from which this dictionary translates.
- *
- * Method returns language description from which given dictionary engine
- * translates.
- *
- * \param engine pointer to the engine
- * \return string describing language
- * \sa dict_eng_get_lang_to
- */
-#define dict_eng_get_lang_from(engine) ((engine)->engine_get_lang_from(engine))
-
-/** \brief Get language to which this dictionary translates.
- *
- * Method returns language description to which given dictionary engine
- * translates.
- *
- * \param engine pointer to the engine
- * \return string describing language
- * \sa dict_eng_get_lang_from
- */
-#define dict_eng_get_lang_to(engine) ((engine)->engine_get_lang_to(engine))
-
-/** \brief Get dictionary title.
- *
- * Each dictionary has title describing data in it, its sources etc. This
- * function returns this title which could be used in UI for the end user.
- *
- * \param engine pointer to the engine
- * \return string containing dictionary title
- * \sa dict_eng_get_lang_from | dict_eng_get_lang_to
- */
-#define dict_eng_get_title(engine) ((engine)->engine_get_title(engine))
-
-/** \brief Get dictionary icon path.
- *
- * Some dictionaries have own icons, which could be used in UI. If such a icon
- * exists, this function should return path to it. Otherwise it should return
- * path to the default icon.
- *
- * \param engine pointer to the engine
- * \return string containing path to icon
- */
-#define dict_eng_get_icon_path(engine) ((engine)->engine_get_icon_path(engine))
-/*@}*/
-
-/** \name Callbacks' Signals
- *
- * These strings identify signals which will be emitted after dictionary engine
- * finished some work.
- *
- * Signals are defined as a strings to make it easier to keep compatibility and
- * to be more flexible for future changes.
- */
-/*@{*/
-
-/** \brief Signals that words list matching for given pattern is available.
- *
- * ENGINE_WORD_LIST_SIGNAL defines name for signal passed to 
- * dict_eng_set_callback() function as a signal parameter. Function set 
- * to handle this signal should be called only from dict_eng_search_word_list()
- * and have cb_word_list type.
- * \note Programmers must not use value of ENGINE_WORD_LIST_SIGNAL
- * directly!
- * \see cb_word_list | dict_eng_set_callback | dict_eng_search_word_list |
- *  ENGINE_WORD_TRANSLATION_SIGNAL
- */
-#define ENGINE_WORD_LIST_SIGNAL                 "on_word_list_found"
-
-/** \brief Signals that translation is available for given word.
- *
- * ENGINE_WORD_TRANSLATION_SIGNAL defines name for signal passed to
- * dict_eng_set_callback() function as a signal parameter. Function set
- * to handle this signal should be called only from
- * dict_eng_search_word_translation() and have cb_word_translation
- * \note Programmers must not use value of ENGINE_WORD_TRANSLATION_SIGNAL_SIGNAL
- * directly!
- * \see cb_word_translation | dict_eng_set_callback |
- * dict_eng_search_word_translation ENGINE_WORD_LIST_SIGNAL
- */
-#define ENGINE_WORD_TRANSLATION_SIGNAL          "on_word_translation_found"
-
-/** \brief Signals progress event for optimization proccess.
- *
- * ENGINE_PROGRESS_OPTIMIZING_SIGNAL defines name for signal passed to
- * dict_eng_set_callback() function as a signal parameter. Function set
- * to handle this signal should be called only while creating cache files and
- * other resources needed for optimization. This function should have
- * cb_word_translation type.
- * \note Programmers must not use value of ENGINE_PROGRESS_OPTIMIZING_SIGNAL
- * directly!
- * \see cb_progress | dict_eng_set_progress_seed
- */
-#define ENGINE_PROGRESS_OPTIMIZING_SIGNAL       "on_progress_optimizing"
-/*@}*/
-
-/** \name Flags and Error Codes */
-/*@{*/
-
-/** \brief Flags defining how to use optimization for particular dictionary.
- *
- * This flags are used while calling dict_eng_module_create_ext and 
- * dict_eng_module_create functions. After instance of engine was created it is
- * possible to enable optimization by function dict_eng_optimize.
- * \see dict_eng_optimize | dict_eng_module_create | dict_eng_module_create_ext
- * | dict_eng_is_optimized
- */
-typedef enum
-{
-       ENGINE_CREATE   = 1 << 0,
-       /**< use optimization. If cache file does not exist - create it. */
-       ENGINE_NO       = 1 << 1,
-       /**< disables optimization at all */
-       ENGINE_REFRESH  = 1 << 2
-       /**< always recreate cache file and use optimization */
-} EngineOptimizationFlag;
-
-/** \brief Codes of possible errors which can occure while engine is working.
- * 
- * Enum type for errors' codes. One of this code is always in last error
- * variable (variable 'last error' is invisible for programmers - they should 
- * use function dict_eng_get_last_status() and optionally 
- * dict_eng_get_status_message() to get know what kind of error occured).
- * \see dict_eng_get_last_status | dict_eng_status_message
- */
-typedef enum
-{
-       ENGINE_NO_ERROR        = 0,
-       /**< there was no error - last action successed */
-       ENGINE_WRONG_FILE      = 1 << 0,
-       /**< file which engine tried to read, has wrong format or it is 
-        * corrupted.*/
-       ENGINE_COULDNT_READ    = 1 << 1,
-       /**< user do not have permission to read file which engine tried
-        * to use */
-       ENGINE_COULDNT_WRITE   = 1 << 2,
-       /**< engine could not write data into dictionary (also when engine does
-        * not support such a action) */
-       ENGINE_INTERNAL_ERROR  = 1 << 3,
-       /**< there was engine's internal error */
-       ENGINE_NO_FILE         = 1 << 4,
-       /**< file on which engine tried to operate, do not exist */
-       ENGINE_OUT_OF_MEMORY   = 1 << 5
-       /**< there was no sufficient available memory to execute last action */
-}
-EngineStatus;
-/*@}*/
-
-
-/** \name Callbacks' Types
- *
- * Types defining of what types should be particular callbacks to properly work
- * with Engine API.
- * \see dict_eng_set_callback
- */
-/*@{*/
-
-/** \brief Type of callback functions for retrieving word list.
- *
- * Function which is set by dict_eng_set_callback() to signal 
- * ENGINE_WORD_LIST_SIGNAL should be exactly this type.
- *
- * \param list GArray with all words matching given pattern
- * \param pattern string containing pattern for words
- * \param error error code; if everything was ok it is ENGINE_NO_ERROR
- * \param user_data pointer to data set by user to be passing to each callback
- * for ENGINE_WORD_LIST_SIGNAL signal
- */
-typedef void (*cb_word_list)(GArray* list,
-                             gchar* pattern,
-                             gpointer user_data,
-                             EngineStatus error);
-
-/** \brief Type of callback functions for retrieving word's translation.
- *
- * Function which is set by dict_eng_set_callback() to signal
- * ENGINE_WORD_TRANSLATION_SIGNAL should be exactly this type.
- *
- * \param translation translation of given word
- * \param word word which translation we already retrieved
- * \param error error code; if everything was ok it is ENGINE_NO_ERROR
- * \param user_data pointer to data set by user to be passing to each callback
- * for ENGINE_WORD_TRANSLATION_SIGNAL signal
- */
-typedef void (*cb_word_translation)(gchar* translation,
-                                    gchar* word,
-                                    gpointer user_data,
-                                    EngineStatus error);
-
-/** \brief Type of callback functions for handling progress of optimization.
- *
- * Function which is set by dict_eng_set_callback() to signal
- * ENGINE_PROGRESS_OPTIMIZING_SIGNAL should be exactly this type.
- *
- * \param value number telling what percentage (0.00 - 1.00) of optimization
- * proccess is finished.
- * \param error error code; if everything was ok it is ENGINE_NO_ERROR
- * \param user_data pointer to data set by user to be passing to each callback
- * for ENGINE_PROGRESS_OPTIMIZING_SIGNAL signal
- */
-typedef void (*cb_progress)(gdouble value,
-                            gpointer user_data,
-                            EngineStatus error);
-/*@}*/
-
-
-
-struct _Engine;
-
-
-typedef struct _Engine Engine;
-
-/** \brief Structure describing particular dictionary.
- *
- */
-struct _Engine
-{
-       /* dictionary independent data. REMEMBER: always at the beggining of
-          structure!!! */
-       gpointer engine_data;
-       /**< engine independent data - this should be always placed as the first
-        * field in engine structure. It must not be used by the user of engine
-        * and there should be all data needed for engine to work. Structure
-        * of data pointed by this pointer is free-form. */
-
-        // 0.1 API specification
-       void (*engine_set_auto_free)( Engine* engine,
-                                     gboolean state );
-       /**< pointer to dictionary 'dict_eng_set_auto_free' function
-        * \sa dict_eng_set_auto_free */
-
-       gchar* (*engine_location)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_get_location' function
-        * \sa dict_eng_get_location */
-
-       gboolean (*engine_is_optimized)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_is_optimized' function
-        * \sa dict_eng_is_optimized */
-
-       void (*engine_optimize)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_optimize' function
-        * \sa dict_eng_optimize */
-
-       void (*engine_search_word_list)( Engine* engine,
-                                        gchar* pattern,
-                                        gpointer data );
-       /**< pointer to dictionary 'dict_eng_search_word_list' function
-        * \sa dict_eng_search_word_list */
-
-       void (*engine_search_word_translation)( Engine* engine,
-                                               gchar* word,
-                                               gpointer data );
-       /**< pointer to dictionary 'dict_eng_search_word_translation' function
-        * \sa dict_eng_search_word_translation */
-
-       void (*engine_close)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_destroy' function
-        * \sa dict_eng_destroy */
-
-       EngineStatus (*engine_status)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_get_last_status' function
-        * \sa dict_eng_get_last_status */
-
-       gchar* (*engine_status_message)(EngineStatus error);
-       /**< pointer to dictionary 'dict_eng_get_status_message' function
-        * \sa dict_eng_get_status_message */
-
-       gpointer (*engine_set_callback)( Engine* engine,
-                                        gchar* signal,
-                                        gpointer c_handler,
-                                        gpointer user_data );
-       /**< pointer to dictionary 'dict_eng_set_callback' function
-        * \sa dict_eng_set_callback */
-
-       void (*engine_set_progress_seed)( Engine* engine,
-                                         gchar* signal,
-                                         gdouble seed );
-       /**< pointer to dictionary 'dict_eng_set_progress_seed' function
-        * \sa dict_eng_set_progress_seed */
-
-
-       /* 0.2 API specification's functions */
-       gboolean (*engine_add_word)( Engine* engine,
-                                    gchar*  word,
-                                    gchar*  translation );
-       /**< pointer to dictionary 'dict_eng_add_word' function
-        * \sa dict_eng_add_word */
-
-       gboolean (*engine_remove_word)( Engine* engine,
-                                       gchar*  word );
-       /**< pointer to dictionary 'dict_eng_remove_word' function
-        * \sa dict_eng_remove_word */
-
-       gchar* (*engine_get_lang_from)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_get_lang_from' function
-        * \sa dict_eng_get_lang_from */
-
-       gchar* (*engine_get_lang_to)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_get_lang_to' function
-        * \sa dict_eng_get_lang_to */
-
-       gchar* (*engine_get_title)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_get_title' function
-        * \sa dict_eng_get_title */
-
-       gchar* (*engine_get_icon_path)(Engine* engine);
-       /**< pointer to dictionary 'dict_eng_get_icon_path' function
-        * \sa dict_eng_get_icon_path */
-};
-
-//------------------------------------------------------------------------------
-/** \brief Global functions structure.
- *
- * This structure holds pointers to helpful functions, that could be used for
- * creating engines for particular dictionary. It helps programmers to work with
- * dictionary API while they need only to import one function
- * (engine_global_functions) and it will return this structure. After that
- * programmers can start using this dictionary module by calling accesible
- * functions.
- */
-typedef struct  {
-       gboolean (*engine_check)(gchar* location);
-       /**< pointer to 'dict_eng_module_check' function
-        * \sa dict_eng_module_check */
-
-       gchar*   (*engine_description)(void);
-       /**< pointer to 'dict_eng_module_get_description' function
-        * \sa dict_eng_module_get_description */
-
-       gchar*   (*engine_format)(void);
-       /**< pointer to 'dict_eng_module_get_format' function
-        * \sa dict_eng_module_get_format */
-
-       gchar*   (*engine_version)(void);
-       /**< pointer to 'dict_eng_module_get_version' function
-        * \sa dict_eng_module_get_version */
-
-       gchar*   (*engine_api_version)(void);
-       /**< pointer to 'dict_eng_module_get_api_version' function
-        * \sa dict_eng_module_get_api_version */
-
-       Engine*  (*engine_create)( gchar* location,
-                                  EngineOptimizationFlag flags,
-                                  cb_progress progress_handler,
-                                  gpointer progress_data,
-                                  gdouble seed );
-       /**< pointer to 'dict_eng_module_create' function
-        * \sa dict_eng_module_create */
-}
-EngineModule;
-//------------------------------------------------------------------------------
-typedef EngineModule (*getting_additional_t)(void);
-//------------------------------------------------------------------------------
-extern EngineModule engine_global_functions(void);
-//------------------------------------------------------------------------------
-
-
-/*@}*/
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* _DICTIONARY_ENGINE_BASE_API_ */
-
-/** \example test_dictionary_engine.c
- *
- * Example below show how Dictionary Engine API simplify proccess of searching
- * translation in different dictionaries.
- * \li At first we need to define callbacks which will be called after engine
- * sucesfully find words list or translation:
- * \code
- * // Callback for returning words list
- * void words_list_cb(GArray* list,
- *                    gchar* pattern,
- *                    gpointer user_data,
- *                    EngineStatus error)
- * {
- *     if ( ENGINE_NO_ERROR == error )
- *     {
- *             printf("Word matching to pattern: %s\n",pattern);
- *             int i = 0;
- *             while(g_array_index(list, gchar*, i) != NULL) 
- *             {
- *                     printf("%d.: %s\n", i, g_array_index(list, gchar*, i));
- *                     i++;
- *             }
- *     }
- * }
- *
- * // Callback for returning translation of word
- * void translation_cb(gchar* translation,
- *                     gchar* word,
- *                     gpointer user_data,
- *                     EngineStatus error)
- * {
- *     if ( ENGINE_NO_ERROR == error )
- *     {
- *             printf("Translation for word %s:\n",word);
- *             printf("%s\n",translation);
- *     }
- * }
- * \endcode
- *
- * \li Secondly we need to load module:
- * \code
- * getting_additional_t get_functions;
- * GModule *library = g_module_open(library_to_path, G_MODULE_BIND_LAZY);
- * g_module_symbol(library, GLOBAL_FUNCTIONS_NAME, (gpointer)&get_functions);
- * \endcode
- * \li Next, we need to get basic, global functions which will allow us to 
- * create Engine for particular dictionary:
- * \code
- * EngineModule module = get_functions();
- * \endcode
- * \li Now it is possbile to check if we can handle particular dictionary with
- * current engine:
- * \code
- * gchar* dictionary = "/path/to/dictionary/file"
- * gboolean compatible = dict_eng_module_check(module, dictionary);
- * if ( TRUE == compatible )
- * {
- *     // we can use this engine to work with dictionary
- *     ...
- * }
- * else {
- *     // we must use other engine to work with this dictionary
- * }
- * \endcode
- * \li If current module is compatible with dictionary we can create engine
- * instance, connected with particular dictionary (file). It is also recommended
- * to set-up callback as far as possible:
- * \code
- * Engine* xdxf;
- * xdxf = dict_eng_module_create(module, dictionary, ENGINE_CREATE);
- * dict_eng_set_callback(xdxf, ENGINE_WORD_LIST_SIGNAL, words_list_cb, NULL);
- * dict_eng_set_callback(xdxf,
- *                       ENGINE_WORD_TRANSLATION_SIGNAL,
- *                       translation_cb,
- *                       NULL);
- * \endcode
- * \li Now we can start working with particular dictionary. To search in
- * dictionary words matching pattern "pol", just call:
- * \code
- * dict_eng_search_word_list(xdxf, "pol");
- * \endcode
- * If You want to find out what is the translation of word "car" simple call:
- * \code
- * dict_eng_search_word_translation(xdxf, "car");
- * \endcode
- */
diff --git a/include/ws_dbus.h b/include/ws_dbus.h
deleted file mode 100644 (file)
index 7116a5a..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-/*******************************************************************************
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation;
-version 2.1 of the License.
-
-This library 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
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \defgroup DBusWrapperAPI mDictionary D-Bus Wrapper API
- * \brief Wrapper for GLib D-Bus bindings for mDictionary project.
- *
- */
-/*@{*/
-/** \file ws_dbus.h
- * \brief API for D-Bus Wrapper Library.
- *
- * Declaration of methods used to communicate between
- * dictionary UI and searching module
- * \author Krzysztof Sasiak \<krzysztof.sasiak\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- * \see DBusWrapperAPI
- */
-
-#ifndef _WS_DBUS
-#define _WS_DBUS
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <libosso.h>
-#include <dbus/dbus-protocol.h>
-#include <string.h>
-#include <dbus-1.0/dbus/dbus-protocol.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <glib-2.0/glib.h>
-
-/** \brief Callback function definition
- *
- * @param error - pointer to a GError structure. Currently not used
- * @param data - GArray of osso_rpc_t structures containing sent data
- * @param user_data - data passed by user while setting the callback 
- * function with ::ws_dbus_set_cb
- * \sa ws_dbus_set_cb
- */
-typedef void (* ws_dbus_cb) (GError *error, gpointer data, gpointer user_data); 
-
-/** \brief An enumeration of data types to be sent via DBUS*/
-typedef enum 
-{
-        WS_DBUS_TYPE_STRING = DBUS_TYPE_STRING,
-        WS_DBUS_TYPE_INT = DBUS_TYPE_INT32,
-        WS_DBUS_TYPE_UINT  = DBUS_TYPE_UINT32,
-        WS_DBUS_TYPE_BOOLEAN  = DBUS_TYPE_BOOLEAN,
-        WS_DBUS_TYPE_DOUBLE  = DBUS_TYPE_DOUBLE,
-        WS_DBUS_TYPE_INVALID  = DBUS_TYPE_INVALID,
-        WS_DBUS_TYPE_GARRAY = ((int) 'a'),
-        WS_DBUS_TYPE_SIGNAL = DBUS_TYPE_INT32
-} WSDBusDataType;
-
-/** \brief This structure contains data vital for DBUS communication.
- *
- * The fields shouldn't be modified directly. It should be done by
- * ws_dbus_config function
- * \sa ws_dbus_config
- */
-struct _WSDBusData 
-{
-       osso_context_t * context; 
-       /**< a pointer needed by osso_initiallize*/
-       gchar *service; 
-       /**< owner service path*/
-       gchar *object; 
-       /**< owner object path*/
-       gchar *iface; 
-       /**< owner interface path*/
-
-       gchar *remote_service; 
-       /**< remote service path*/
-       gchar *remote_object; 
-       /**< remote object path*/
-       gchar *remote_iface; 
-       /**< remote interface path*/
-
-       gchar *name; 
-       /**< program's name*/
-       gchar *version; 
-       /**< program's version*/
-
-       GArray *method_data; 
-       /**< A GArray of local methods*/
-       GArray *remote_method_data; 
-       /**< A GArray of remote methods 
-        *(obsolete as no introspection has been
-        * implemented
-        */
-};
-
-/** \brief An enumeration of return values.
- */
-typedef enum 
-{
-       WS_DBUS_STATUS_OK = 0, 
-       /**< Transmission succeeded*/
-       WS_DBUS_STATUS_ERROR 
-       /**< Transmission error*/
-} WSDBusStatus;
-
-/** \brief Specifies the possible kinds of event notifications that can be sent 
- * via DBus
- */
-typedef enum
-{
-       WS_DBUS_INFO_TERMINATE = 1,
-       /**<GUI signal - terminate the application*/
-       WS_DBUS_INFO_STOP_SEARCH, 
-       /**<GUI signal - stop the current search*/
-       WS_DBUS_INFO_SEARCH_FINISHED, 
-       /**<Manager signal - informs the GUI, that there will be no more results 
-        *returned
-        */
-       WS_DBUS_INFO_CACHING, 
-       /**<Manager signal - informs the GUI, that caching has started*/
-       WS_DBUS_INFO_CACHING_FINISHED, 
-       /**<Manager signal - informs the GUI, that caching has finished*/
-       WS_DBUS_INFO_CONFIG_CHANGED, 
-       /**<GUI signal - informs the Manager about changes in the GConf 
-        *configuration
-        */
-       WS_DBUS_ERROR_INVALID_FILE_FORMAT, 
-       /**<Parser error - dictionary file has invalid format*/
-       WS_DBUS_ERROR_FILE_NOT_FOUND, 
-       /**<Parser error - dictionary file not found*/
-       WS_DBUS_ERROR_NO_PERMISSION, 
-       /**<Parser error - no permission to read the dictionary file*/
-       WS_DBUS_ERROR_UNKNOWN, 
-       /**<Parser error - unknown error*/
-       WS_DBUS_ERROR_OUT_OF_MEMORY, 
-       /**<Either the UI or the manager is out of memory*/
-       WS_DBUS_ERROR_ENGINE_NOT_FOUND, 
-       /**<Manager error - dictionary engine module, couldn't be located*/
-
-       WS_DBUS_ERROR_DICTIONARY_NOT_LOAD, 
-       /**<Manager signal - informs the GUI,that history record can not be 
-        *found because dictionary is not activate
-        */
-       WS_DBUS_BOOKMARKS_ADDED_OK, 
-       /**<GUI signal - send if bookmark has been added succesfully*/
-       WS_DBUS_BOOKMARKS_REMOVED_OK, 
-       /**<GUI signal - send if bookmark has been removed succesfully*/
-       WS_DBUS_BOOKMARKS_ADDED_FAIL, 
-       /**<GUI signal - send if bookmark has not been added succesfully*/
-       WS_DBUS_BOOKMARKS_REMOVED_FAIL, 
-       /**<GUI signal - send if bookmark has not been removed succesfully*/
-       WS_DBUS_LOAD_BOOKMARK_FAILED, 
-       /**<GUI signal - blocks bookmarks*/
-       WS_DBUS_BOOKMARK_MODE_ON, 
-       /**<GUI signal - bookmark mode is ON*/
-       WS_DBUS_BOOKMARK_MODE_OFF, 
-       /**<GUI signal - bookmark mode is OFF*/
-       WS_DBUS_EXTRACT_FILE, 
-       /**<GUI signal - decompress a file*/
-       WS_DBUS_EXTRACT_FILE_FINISHED, 
-       /**<Manager signal - file decompression finished*/
-       WS_DBUS_WORDS_LIST_STARTED, 
-       /**<Manager signal - words' list started*/
-       WS_DBUS_TRANSLATION_STARTED, 
-       /**<Manager signal - translations' list started*/
-       WS_DBUS_WORDS_LIST_FINISHED, 
-       /**<Manager signal - words' list finished*/
-       WS_DBUS_TRANSLATION_FINISHED, 
-       /**<Manager signal - translations' list finished*/
-       WS_DBUS_WORDS_LIST_FULL, 
-       /**<Manager signal - words' list full*/
-       WS_DBUS_WORDS_LIST_FILLED_NOT_FULL 
-       /**<Manager signal - words' list filled but not full*/
-} WSDBusNotify;
-
-
-/** \brief This structure is used for specifying the field of WSDBusData
- * structure one would like to modify.
- *
- * It is used in the ws_dbus_config function. Its main purpose is to clarify
- * D-BUS configuration.
- */
-typedef enum 
-{
-       WS_DBUS_CONFIG_SERVICE = 1,
-       WS_DBUS_CONFIG_OBJECT,
-       WS_DBUS_CONFIG_IFACE,
-       WS_DBUS_CONFIG_REMOTE_SERVICE,
-       WS_DBUS_CONFIG_REMOTE_OBJECT,
-       WS_DBUS_CONFIG_REMOTE_IFACE
-} WSDBusConfig;
-
-typedef struct _WSDBusData WSDBusData;
-
-
-/** \brief First function to be called in every program using this wrapper
- *
- * This function is used for allocating memory for the WSDBusData structure and 
- * setting some basic parameters. 
- * \param name - name of the application
- * \param version - app's version
- * \return pointer to WSDBusData structure\n
- * \sa WSDBusData
- */
-WSDBusData * ws_dbus_create (gchar *name, gchar *version);
-
-/** \brief This function is used for setting dbus service/client parameters.
- *
- * These include the addresses of both remote and local apps communicating
- * \param ws_dbus_data - pointer to a structure uniquely identifying 
- * the application for DBus. The possible values of 
- * this parameter are listed here: ::WSDBusConfig
- * \param field - the name of the variable, this function is supposed to set. 
- * \param value - the value of the variable
- * \return WS_STATUS_OK - on success \n
- * WS_STATUS_ERROR - on error
- * \sa WSDBusConfig
- */
-WSDBusStatus ws_dbus_config (WSDBusData * ws_dbus_data,
-                             WSDBusConfig field,
-                             gchar *value);
-
-/**
- * \brief Initialize D-BUS communication.
- *
- * It should be the called after <B>ws_dbus_create</B> and after setting all D-BUS
- * parameters with the <B>ws_dbus_config</B> function. 
- * The structure it returns is necessary to call out every function implemented in
- * this wrapper library.
- * \param ws_dbus_data - it's a structure containing the unique paths to objects 
- * and interfaces to be registered in the DBus session daemon
- * \return WS_STATUS_OK - on success \n
- * WS_STATUS_ERROR - on error
- * \sa WSDBusConfig | ws_dbus_create | ws_dbus_config
- */
-WSDBusStatus ws_dbus_connect (WSDBusData * ws_dbus_data);
-
-/** \brief Function deinitializing D-BUS wrapper library
- *
- * Before the program exits, all memory allocated by D-BUS should be freed.
- * \param ws_dbus_data - pointer to a structure uniquely identifying the 
- * application for DBus
- * \return \li WS_STATUS_OK - on success \li WS_STATUS_ERROR - on error
- */
-void ws_dbus_destroy (WSDBusData * ws_dbus_data);
-
-/** \brief This function is used for setting a callback function for a
- * specific method name
- *
- * \param ws_dbus_data - pointer to a structure uniquely identifying the 
- * application for D-BUS
- * \param detailed_signal - string containing the signal name which will trigger 
- * the function passed in the c_func parameter.
- * \param c_func - is a pointer to the signal handling function.
- * \param user_data - is the data passed directly to the signal handling
- *  function
- * \return \li WS_STATUS_OK - on success \li WS_STATUS_ERROR - on error
- * \sa WSDBusConfig | ws_dbus_cb
- */
-WSDBusStatus ws_dbus_set_cb (WSDBusData * ws_dbus_data,
-                             gchar * detailed_signal,
-                             gpointer c_func,
-                             gpointer user_data);
-
-/** \brief Function registering a method to be called remotely
- *
- * \param ws_dbus_data - pointer to a structure uniquely identifying the 
- * application for DBus
- * \param method - method name\n
- * \param arglist - a comma separated list of method's arguments (actually just
- * their datatypes) finished with WS_DBUS_TYPE_INVALID
- * \return \li WS_STATUS_OK - on success \li WS_STATUS_ERROR - on error
- * \sa WSDBusDataType
- */
-WSDBusStatus ws_dbus_add_method (WSDBusData * ws_dbus_data, gchar *method, ...);
-
-/** \brief Function deinitializing D-BUS wrapper library
- *
- * Before the program exits, all memory allocated by D-BUS should be freed
- *
- * \param ws_dbus_data - pointer to a structure uniquely identifying the 
- * application for DBus
- * \param method - method name
- * \param arglist - a comma separated list of pairs: datatype, value finished 
- * with WS_DBUS_TYPE_INVALID
- * \return \li WS_STATUS_OK - on success \li WS_STATUS_ERROR - on error
- * \sa WSDBusDataType
- */
-WSDBusStatus ws_dbus_call_method (WSDBusData * ws_dbus_data, gchar *method,...);
-
-/** \name Functions to be called by client (GUI)*/
-/*@{*/
-/** \brief Instructs the manager to start search of words matching a given
- * pattern
- */
-#define ws_dbus_client_find_word(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "find_word",\
-                                   WS_DBUS_TYPE_STRING,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-
-/** \brief Instructs the manager to start search of translations for a specific 
- * word
- */
-#define ws_dbus_client_find_translation(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "find_translation",\
-                                   WS_DBUS_TYPE_STRING,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-
-/** \brief Instructs the manager to bookmark a given pair of word, translation
- */
-#define ws_dbus_client_add_bookmark(structure,arg1,arg2)\
-               ws_dbus_call_method(structure,\
-                                   "add_bookmark",\
-                                   WS_DBUS_TYPE_STRING,\
-                                   arg1,\
-                                   WS_DBUS_TYPE_STRING,\
-                                   arg2,\
-                                   WS_DBUS_TYPE_INVALID)
-
-/** \brief Instructs the manager to remove the specified bookmark
- */
-#define ws_dbus_client_remove_bookmark(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "remove_bookmark",\
-                                   WS_DBUS_TYPE_STRING,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-
-/** \brief Instructs the manager to extract a dictionary from a tar.bz2 archive
- */
-#define ws_dbus_client_extract_dictionary(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "extract_dictionary",\
-                                   WS_DBUS_TYPE_STRING,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-/*@}*/
-
-/** \name Functions to be called by server (thread's manager)*/
-/*@{*/
-
-/** \brief Informs GUI that a dictionary has been extracted
- */
-#define ws_dbus_server_return_extracted_dict(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "return_extracted_dict",\
-                                   WS_DBUS_TYPE_STRING,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-
-/** \brief Returns a list of words to GUI
- */
-#define ws_dbus_server_return_words(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "return_words",\
-                                   WS_DBUS_TYPE_GARRAY,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-
-/** \brief Returns to GUI a list of translations for a given word
- */
-#define ws_dbus_server_return_translations(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "return_translations",\
-                                   WS_DBUS_TYPE_STRING,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-
-/** \brief Updates the search progressbar
- */
-#define ws_dbus_server_update_progressbar(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "update_progressbar",\
-                                   WS_DBUS_TYPE_DOUBLE,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-/*@}*/
-
-/** \name Functions to be called by both client and server*/
-/*@{*/
-
-/** \brief Sends a predefined signal
- */
-#define ws_dbus_notify(structure,arg)\
-               ws_dbus_call_method(structure,\
-                                   "signal",\
-                                   WS_DBUS_TYPE_SIGNAL,\
-                                   arg,\
-                                   WS_DBUS_TYPE_INVALID)
-
-/*@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/*@}*/
diff --git a/include/ws_services.h b/include/ws_services.h
deleted file mode 100644 (file)
index e9e7c23..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
-This file is part of mDictionary
-
-mDictionary 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.
-
-mDictionary 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 WhiteStork; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup DBusWrapperAPI
- */
-/*@{*/
-/** \file ws_services.h
- * \brief D-Bus Services and Interfaces names for mDictionary modules.
- *
- * This file defines names for D-Bus services, interfaces and remote objects
- * for mDictionary two main modules:
- * \li GUI
- * \li manager
- *
- * \author Dariusz Wiechecki \<dariusz.wiechecki\@comarch.com\>
- * \date 31-12-2007
- */
-#ifndef WS_SERVICES_H
-#define WS_SERVICES_H
-
-/** \name D-Bus Services and Interfaces names for mDictionary modules
- * These defines how are called services, remote objects and interfaces in both
- * mDictionary modules.
- * */
-/*@{*/
-
-/** \brief Service's name for manager module.
- */
-#define MANAGER_SERVICE "org.maemo.mdictionaryManager"
-
-/** \brief Remote object's name for manager module.
- */
-#define MANAGER_OBJECT "/org/maemo/mdictionaryManager"
-
-/** \brief Interface's name for manager module.
- */
-#define MANAGER_IFACE "org.maemo.mdictionaryManager"
-
-
-
-/** \brief Service's name for GUI module.
- */
-#define GUI_SERVICE "org.maemo.mdictionaryGui"
-
-/** \brief Remote object's name for GUI module.
- */
-#define GUI_OBJECT "/org/maemo/mdictionaryGui"
-
-/** \brief Interface's name for GUI module.
- */
-#define GUI_IFACE "org.maemo.mdictionaryGui"
-
-/*@}*/
-/*@}*/
-
-#endif
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100644 (file)
index 08090ce..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of source files containing translatable strings.
-
-# Package source files
-../gui/src/ws_gui_layout.c
-../gui/src/ws_gui_callbacks.c
\ No newline at end of file
diff --git a/po/domain.mo b/po/domain.mo
deleted file mode 100644 (file)
index dd44fee..0000000
Binary files a/po/domain.mo and /dev/null differ
diff --git a/po/en_GB.po b/po/en_GB.po
deleted file mode 100644 (file)
index 6afd6b1..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-# Copyright (C) 2006
-# This file is distributed under the same license as the PACKAGE package.
-# Anna Gadomska <Anna.Gadomska@comarch.pl>, 2006.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-14 11:34+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Anna Gadomska <Anna.Gadomska@comarch.pl>\n"
-"Language-Team: polish <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../gui/src/ws_gui_layout.c:42
-msgid "ws_ni_welcome"
-msgstr "Welcome to mdictionary!"
-
-#: ../gui/src/ws_gui_layout.c:174 ../gui/src/ws_gui_layout.c:351
-msgid "ws_me_search_find"
-msgstr "Find"
-
-#: ../gui/src/ws_gui_layout.c:266
-msgid "ws_me_dictionaries"
-msgstr "dictionaries"
-
-#: ../gui/src/ws_gui_layout.c:268
-msgid "ws_me_bookmarks"
-msgstr "Bookmarks"
-
-#: ../gui/src/ws_gui_layout.c:270
-msgid "ws_me_edit"
-msgstr "Edit"
-
-#: ../gui/src/ws_gui_layout.c:272
-msgid "ws_me_view"
-msgstr "View"
-
-#: ../gui/src/ws_gui_layout.c:274
-msgid "ws_me_search"
-msgstr "Search"
-
-#: ../gui/src/ws_gui_layout.c:276
-msgid "ws_me_about"
-msgstr "About ..."
-
-#: ../gui/src/ws_gui_layout.c:278
-msgid "ws_me_close"
-msgstr "Close"
-
-#: ../gui/src/ws_gui_layout.c:285
-msgid "ws_me_dictionaries_load"
-msgstr "Load dictionary"
-
-#: ../gui/src/ws_gui_layout.c:287
-msgid "ws_me_dictionaries_select"
-msgstr "Select dictionaries"
-
-#: ../gui/src/ws_gui_layout.c:289
-msgid "ws_me_dictionaries_remove"
-msgstr "Remove dictionaries"
-
-#: ../gui/src/ws_gui_layout.c:291
-msgid "ws_me_dictionaries_optimize"
-msgstr "Optimize dictionaries"
-
-#: ../gui/src/ws_gui_layout.c:303
-msgid "ws_me_bookmarks_open"
-msgstr "Open Bookmarks"
-
-#: ../gui/src/ws_gui_layout.c:305
-msgid "ws_me_bookmarks_close"
-msgstr "Close Bookmarks"
-
-#: ../gui/src/ws_gui_layout.c:307
-msgid "ws_me_bookmarks_add"
-msgstr "Add Bookmark"
-
-#: ../gui/src/ws_gui_layout.c:309
-msgid "ws_me_bookmarks_remove"
-msgstr "Remove Bookmark"
-
-#: ../gui/src/ws_gui_layout.c:321
-msgid "ws_me_edit_copy"
-msgstr "Copy"
-
-#: ../gui/src/ws_gui_layout.c:323
-msgid "ws_me_edit_paste"
-msgstr "Paste"
-
-#: ../gui/src/ws_gui_layout.c:325
-msgid "ws_me_edit_select_all"
-msgstr "Select All"
-
-#: ../gui/src/ws_gui_layout.c:334
-msgid "ws_me_view_hide_words_list"
-msgstr "Hide words list"
-
-#: ../gui/src/ws_gui_layout.c:336
-msgid "ws_me_view_zoom_in"
-msgstr "Zoom in"
-
-#: ../gui/src/ws_gui_layout.c:338
-msgid "ws_me_view_zoom_out"
-msgstr "Zoom out"
-
-#: ../gui/src/ws_gui_layout.c:340
-msgid "ws_me_view_fullscreen"
-msgstr "Full screen"
-
-#: ../gui/src/ws_gui_layout.c:353
-msgid "ws_me_search_find_next"
-msgstr "Find next"
-
-#: ../gui/src/ws_gui_layout.c:355
-msgid "ws_me_search_find_prev"
-msgstr "Find previous"
-
-#: ../gui/src/ws_gui_layout.c:357
-msgid "ws_me_search_stop"
-msgstr "Stop"
-
-#: ../gui/src/ws_gui_layout.c:560
-msgid "ws_mp_search"
-msgstr "Search"
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_add_bookmark"
-msgstr "Add Bookmark"
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_edit_copy"
-msgstr "Copy"
-
-#: ../gui/src/ws_gui_layout.c:585
-msgid "ws_mp_edit_paste"
-msgstr "Paste"
-
-#: ../gui/src/ws_gui_layout.c:590
-msgid "ws_mp_edit_select_all"
-msgstr "Select All"
-
-#: ../gui/src/ws_gui_layout.c:597
-msgid "ws_mp_edit"
-msgstr "Edit"
-
-#: ../gui/src/ws_gui_layout.c:605
-msgid "ws_mp_zoom_in"
-msgstr "Zoom in"
-
-#: ../gui/src/ws_gui_layout.c:610
-msgid "ws_mp_zoom_out"
-msgstr "Zoom out"
-
-#: ../gui/src/ws_gui_layout.c:712 ../gui/src/ws_gui_layout.c:904
-msgid "ws_ti_choose_dictionaries_title"
-msgstr "Select dictionaries"
-
-#: ../gui/src/ws_gui_layout.c:767 ../gui/src/ws_gui_layout.c:941
-#: ../gui/src/ws_gui_layout.c:1233 ../gui/src/ws_gui_layout.c:1427
-#: ../gui/src/ws_gui_layout.c:1488 ../gui/src/ws_gui_layout.c:1432
-msgid "ws_db_cancel"
-msgstr "Cancel"
-
-#: ../gui/src/ws_gui_layout.c:773 ../gui/src/ws_gui_layout.c:946
-#: ../gui/src/ws_gui_layout.c:1422 ../gui/src/ws_gui_layout.c:1483
-#: ../gui/src/ws_gui_layout.c:1427
-msgid "ws_db_ok"
-msgstr "OK"
-
-#: ../gui/src/ws_gui_layout.c:892
-msgid "ws_ni_no_dictionaries_to_optimize"
-msgstr "There are no dictionaries to optimize."
-
-#: ../gui/src/ws_gui_layout.c:1022
-msgid "ws_ti_load_dictionary_title"
-msgstr "Load dictionary"
-
-#: ../gui/src/ws_gui_layout.c:1074
-msgid "ws_ni_dictionaries_activation_question"
-msgstr "Would you like to start using this dictionary now?"
-
-#: ../gui/src/ws_gui_layout.c:1106
-msgid "ws_ni_dictionaries_optimalization_question"
-msgstr "Would you like to optimize this dictionary?"
-
-#: ../gui/src/ws_gui_layout.c:1131
-msgid "ws_ni_dictionary_added"
-msgstr "New dictionary has been added."
-
-#: ../gui/src/ws_gui_layout.c:1138
-msgid "ws_ni_dictionary_wrong_file"
-msgstr "Wrong dictionary file."
-
-#: ../gui/src/ws_gui_layout.c:1189
-msgid "ws_ti_remove_dictionaries_title"
-msgstr "Remove dictionaries"
-
-#: ../gui/src/ws_gui_layout.c:1239
-msgid "ws_bd_remove_dictionaries_remove_selected"
-msgstr "remove selected"
-
-#: ../gui/src/ws_gui_layout.c:1305
-msgid "ws_ti_about_title"
-msgstr "About ..."
-
-#: ../gui/src/ws_gui_layout.c:1339
-msgid "ws_ib_dictionary_removed"
-msgstr "Dictionary has been removed"
-
-#: ../gui/src/ws_gui_layout.c:1401
-msgid "ws_ti_add_bookmark"
-msgstr "Add bookmark"
-
-#: ../gui/src/ws_gui_layout.c:1413
-msgid "ws_ti_bookmarks_add_question"
-msgstr "Add to bookmarks?"
-
-#: ../gui/src/ws_gui_layout.c:1449
-msgid "ws_ni_bookmark_added"
-msgstr "Bookmark has been added"
-
-#: ../gui/src/ws_gui_layout.c:1457
-msgid "ws_ni_bookmark_not_added"
-msgstr "Bookmark could not be added"
-
-#: ../gui/src/ws_gui_layout.c:1462
-msgid "ws_ti_remove_bookmark"
-msgstr "Remove bookmark"
-
-#: ../gui/src/ws_gui_layout.c:1474
-msgid "ws_ni_remove_bookmark_question"
-msgstr "Remove from bookmarks?"
-
-#: ../gui/src/ws_gui_layout.c:1515
-msgid "ws_ni_bookmark_removed"
-msgstr "Bookmark has been removed"
-
-#: ../gui/src/ws_gui_layout.c:1522
-msgid "ws_ni_bookmark_not_removed"
-msgstr "Bookmark could not be removed"
-
-#: ../gui/src/ws_gui_callbacks.c:114
-msgid "ws_ni_error_occured"
-msgstr "An error occured"
-
-#: ../gui/src/ws_gui_callbacks.c:133
-msgid "ws_ni_no_dictionary_available"
-msgstr "There is no dictionary available"
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_caching"
-msgstr "Caching ..."
-
-#: ../gui/src/ws_gui_callbacks.c:212
-msgid "ws_ni_dictionary_unavailable"
-msgstr "Dictionary unavailable."
-
-#: ../gui/src/ws_gui_callbacks.c:289
-#: ../gui/src/ws_gui_layout.c:1534
-msgid "ws_ni_no_words_found"
-msgstr "No words found"
-
-#: ../gui/src/ws_gui_callbacks.c:867
-msgid "ws_ni_no_text_selected"
-msgstr "No text selected"
-
-#: ../gui/src/ws_gui_callbacks.c:970
-msgid "ws_ab_searching"
-msgstr "Searching ..."
-
-#: ../gui/src/ws_gui_callbacks.c:987
-msgid "ws_ni_no_word_typed"
-msgstr "No word typed."
-
-#: ../gui/src/ws_gui_callbacks.c:1008
-msgid "ws_ni_search_aborted"
-msgstr "Search has been aborted."
-
-#: ../gui/src/ws_gui_callbacks.c:1412
-msgid "ws_ni_select_word_to_add"
-msgstr "Select word to add."
-
-#: ../gui/src/ws_gui_callbacks.c:1436
-msgid "ws_ni_select_word_to_remove"
-msgstr "Select word to remove."
-
-#: ../gui/src/ws_gui_callbacks.c:1128
-msgid "ws_ib_max_zoom"
-msgstr "Max zoom level reached"
-
-#: ../gui/src/ws_gui_callbacks.c:1152
-msgid "ws_ib_min_zoom"
-msgstr "Min zoom level reached"
-
-#: ../gui/src/ws_gui_callbacks.c:1161
-msgid "ws_ib_zoom_in"
-msgstr "Zooming in"
-
-#: ../gui/src/ws_gui_callbacks.c:1134
-msgid "ws_ib_zoom_out"
-msgstr "Zooming out"
-
-#: ../gui/src/ws_gui_callbacks.c:1018
-msgid "ws_ib_fullscreen_on"
-msgstr "Fullscreen mode on"
-
-#: ../gui/src/ws_gui_callbacks.c:1029
-msgid "ws_ib_fullscreen_off"
-msgstr "Fullscreen mode off"
\ No newline at end of file
diff --git a/po/pl_PL.po b/po/pl_PL.po
deleted file mode 100644 (file)
index 851df61..0000000
+++ /dev/null
@@ -1,550 +0,0 @@
-# Copyright (C) 2006
-# This file is distributed under the same license as the PACKAGE package.
-# Anna Gadomska, <Anna.Gadomska@comarch.pl>, 2006.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-14 11:34+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Anna Gadomska <Anna.Gadomska@comarch.pl>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../gui/src/ws_gui_layout.c:42
-msgid "ws_ni_welcome"
-msgstr "<font size=+2><center><br>Witamy w słowniku<br><b>mdictionary</b><br>"
-       "</font><br><IMG SRC=file:/usr/share/pixmaps/mdictionary.png></center>"
-
-#: ../gui/src/ws_gui_layout.c:45 ../gui/src/ws_gui_callbacks.c:143
-#: ../gui/src/ws_gui_callbacks.c:854 ../gui/src/ws_gui_callbacks.c:980
-msgid " "
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:63 ../gui/src/ws_gui_layout.c:1318
-msgid "mdictionary"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:111 ../gui/src/ws_gui_layout.c:1328
-#: ../gui/src/ws_gui_layout.c:1335
-msgid "Tahoma 12"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:116
-msgid "url_requested"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:174 ../gui/src/ws_gui_layout.c:351
-msgid "ws_me_search_find"
-msgstr "Znajdz"
-
-#: ../gui/src/ws_gui_layout.c:212
-msgid "search"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:217
-msgid "toggled"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:222 ../gui/src/ws_gui_layout.c:227
-#: ../gui/src/ws_gui_layout.c:231
-msgid "clicked"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:266
-msgid "ws_me_dictionaries"
-msgstr "Slowniki"
-
-#: ../gui/src/ws_gui_layout.c:268
-msgid "ws_me_bookmarks"
-msgstr "Zakładki"
-
-#: ../gui/src/ws_gui_layout.c:270
-msgid "ws_me_edit"
-msgstr "Edycja"
-
-#: ../gui/src/ws_gui_layout.c:272
-msgid "ws_me_view"
-msgstr "Widok"
-
-#: ../gui/src/ws_gui_layout.c:274
-msgid "ws_me_search"
-msgstr "Znajdź"
-
-#: ../gui/src/ws_gui_layout.c:276
-msgid "ws_me_about"
-msgstr "O programie ..."
-
-#: ../gui/src/ws_gui_layout.c:278
-msgid "ws_me_close"
-msgstr "Zamknij"
-
-#: ../gui/src/ws_gui_layout.c:285
-msgid "ws_me_dictionaries_load"
-msgstr "Załaduj słownik"
-
-#: ../gui/src/ws_gui_layout.c:287
-msgid "ws_me_dictionaries_select"
-msgstr "Wybierz słowniki"
-
-#: ../gui/src/ws_gui_layout.c:289
-msgid "ws_me_dictionaries_remove"
-msgstr "Usuń słowniki"
-
-#: ../gui/src/ws_gui_layout.c:291
-msgid "ws_me_dictionaries_optimize"
-msgstr "Optymalizuj słowniki"
-
-#: ../gui/src/ws_gui_layout.c:303
-msgid "ws_me_bookmarks_open"
-msgstr "Otwórz Zakładki"
-
-#: ../gui/src/ws_gui_layout.c:305
-msgid "ws_me_bookmarks_close"
-msgstr "Zamknij Zakładki"
-
-#: ../gui/src/ws_gui_layout.c:307
-msgid "ws_me_bookmarks_add"
-msgstr "Dodaj do Zakładek"
-
-#: ../gui/src/ws_gui_layout.c:309
-msgid "ws_me_bookmarks_remove"
-msgstr "Usuń z Zakładek"
-
-#: ../gui/src/ws_gui_layout.c:321
-msgid "ws_me_edit_copy"
-msgstr "Kopiuj"
-
-#: ../gui/src/ws_gui_layout.c:323
-msgid "ws_me_edit_paste"
-msgstr "Wklej"
-
-#: ../gui/src/ws_gui_layout.c:325
-msgid "ws_me_edit_select_all"
-msgstr "Zaznacz wszystko"
-
-#: ../gui/src/ws_gui_layout.c:334
-msgid "ws_me_view_hide_words_list"
-msgstr "Ukryj listę słów"
-
-#: ../gui/src/ws_gui_layout.c:336
-msgid "ws_me_view_zoom_in"
-msgstr "Powiększ"
-
-#: ../gui/src/ws_gui_layout.c:338
-msgid "ws_me_view_zoom_out"
-msgstr "Pomniejsz"
-
-#: ../gui/src/ws_gui_layout.c:340
-msgid "ws_me_view_fullscreen"
-msgstr "Pełny ekran"
-
-#: ../gui/src/ws_gui_layout.c:353
-msgid "ws_me_search_find_next"
-msgstr "Znajdź następny"
-
-#: ../gui/src/ws_gui_layout.c:355
-msgid "ws_me_search_find_prev"
-msgstr "Znajdź poprzedni"
-
-#: ../gui/src/ws_gui_layout.c:357
-msgid "ws_me_search_stop"
-msgstr "Zatrzymaj"
-
-#: ../gui/src/ws_gui_layout.c:410 ../gui/src/ws_gui_layout.c:415
-#: ../gui/src/ws_gui_layout.c:420 ../gui/src/ws_gui_layout.c:425
-#: ../gui/src/ws_gui_layout.c:429 ../gui/src/ws_gui_layout.c:434
-#: ../gui/src/ws_gui_layout.c:439 ../gui/src/ws_gui_layout.c:444
-#: ../gui/src/ws_gui_layout.c:449 ../gui/src/ws_gui_layout.c:454
-#: ../gui/src/ws_gui_layout.c:459 ../gui/src/ws_gui_layout.c:464
-#: ../gui/src/ws_gui_layout.c:469 ../gui/src/ws_gui_layout.c:474
-#: ../gui/src/ws_gui_layout.c:479 ../gui/src/ws_gui_layout.c:484
-#: ../gui/src/ws_gui_layout.c:489 ../gui/src/ws_gui_layout.c:494
-#: ../gui/src/ws_gui_layout.c:499 ../gui/src/ws_gui_layout.c:504
-#: ../gui/src/ws_gui_layout.c:509 ../gui/src/ws_gui_layout.c:515
-#: ../gui/src/ws_gui_layout.c:521 ../gui/src/ws_gui_layout.c:621
-#: ../gui/src/ws_gui_layout.c:626 ../gui/src/ws_gui_layout.c:631
-#: ../gui/src/ws_gui_layout.c:636 ../gui/src/ws_gui_layout.c:641
-#: ../gui/src/ws_gui_layout.c:645
-msgid "activate"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:560
-msgid "ws_mp_search"
-msgstr "Znajdź"
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_edit_copy"
-msgstr "Kopiuj"
-
-#: ../gui/src/ws_gui_layout.c:585
-msgid "ws_mp_edit_paste"
-msgstr "Wklej"
-
-#: ../gui/src/ws_gui_layout.c:590
-msgid "ws_mp_edit_select_all"
-msgstr "Zaznacz wszystko"
-
-#: ../gui/src/ws_gui_layout.c:597
-msgid "ws_mp_edit"
-msgstr "Edycja"
-
-#: ../gui/src/ws_gui_layout.c:605
-msgid "ws_mp_zoom_in"
-msgstr "Powiększ"
-
-#: ../gui/src/ws_gui_layout.c:610
-msgid "ws_mp_zoom_out"
-msgstr "Pomniejsz"
-
-#: ../gui/src/ws_gui_layout.c:708 ../gui/src/ws_gui_layout.c:868
-#: ../gui/src/ws_gui_layout.c:1185
-msgid ""
-"\n"
-".::GUI::. /apps/mdictionary/dictionaries does not exist!!"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:712 ../gui/src/ws_gui_layout.c:904
-msgid "ws_ti_choose_dictionaries_title"
-msgstr "Wybierz słowniki"
-
-#: ../gui/src/ws_gui_layout.c:741 ../gui/src/ws_gui_layout.c:794
-#: ../gui/src/ws_gui_layout.c:811 ../gui/src/ws_gui_layout.c:1065
-msgid "/active"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:767 ../gui/src/ws_gui_layout.c:941
-#: ../gui/src/ws_gui_layout.c:1233 ../gui/src/ws_gui_layout.c:1427
-#: ../gui/src/ws_gui_layout.c:1488
-msgid "ws_db_cancel"
-msgstr "Anuluj"
-
-#: ../gui/src/ws_gui_layout.c:773 ../gui/src/ws_gui_layout.c:946
-#: ../gui/src/ws_gui_layout.c:1422 ../gui/src/ws_gui_layout.c:1483
-msgid "ws_db_ok"
-msgstr "OK"
-
-#: ../gui/src/ws_gui_layout.c:792 ../gui/src/ws_gui_layout.c:809
-#: ../gui/src/ws_gui_layout.c:966 ../gui/src/ws_gui_layout.c:986
-#: ../gui/src/ws_gui_layout.c:1055 ../gui/src/ws_gui_layout.c:1063
-#: ../gui/src/ws_gui_layout.c:1097 ../gui/src/ws_gui_layout.c:1257
-msgid "/"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:876 ../gui/src/ws_gui_layout.c:968
-#: ../gui/src/ws_gui_layout.c:988 ../gui/src/ws_gui_layout.c:1099
-msgid "/optimized"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:892
-msgid "ws_ni_no_dictionaries_to_optimize"
-msgstr "Brak słowników do zoptymalizowania."
-
-#: ../gui/src/ws_gui_layout.c:1022
-msgid "ws_ti_load_dictionary_title"
-msgstr "Załaduj słownik"
-
-#: ../gui/src/ws_gui_layout.c:1051
-msgid ".xdxf"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1055
-msgid "/path"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1074
-msgid "ws_ni_dictionaries_activation_question"
-msgstr "Czy chcesz zacząć używać ten słownik już teraz?"
-
-#: ../gui/src/ws_gui_layout.c:1106
-msgid "ws_ni_dictionaries_optimalization_question"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1131
-msgid "ws_ni_dictionary_added"
-msgstr "Nowy słownik został dodany."
-
-#: ../gui/src/ws_gui_layout.c:1138
-msgid "ws_ni_dictionary_wrong_file"
-msgstr "Zły plik słownika."
-
-#: ../gui/src/ws_gui_layout.c:1189
-msgid "ws_ti_remove_dictionaries_title"
-msgstr "Usuń słowniki"
-
-#: ../gui/src/ws_gui_layout.c:1226
-msgid "bookmarks"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1239
-msgid "ws_bd_remove_dictionaries_remove_selected"
-msgstr "usuń zaznaczone"
-
-#: ../gui/src/ws_gui_layout.c:1305
-msgid "ws_ti_about_title"
-msgstr "O Programie ..."
-
-#: ../gui/src/ws_gui_layout.c:1315
-msgid "/usr/share/pixmaps/mdictionary.png"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1319
-msgid "Tahoma 18"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1321
-msgid "__________"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1324
-msgid ""
-"Maemo Multilingual Dictionary\n"
-"ver. "
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1333
-msgid ""
-"Copyright 2006, ComArch S.A\n"
-"All rightsreserved"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1355
-msgid "Tahoma 10"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1363
-msgid ""
-"The following third party\n"
-"components may be\n"
-"included depending \n"
-"on your system configuration:\n"
-"\n"
-"D-BUS - License information:\n"
-"http://opensource.org/licenses/academic.php"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1401
-msgid "ws_ti_add_bookmark"
-msgstr "Dodaj do zakładek"
-
-#: ../gui/src/ws_gui_layout.c:1413
-msgid "ws_ti_bookmarks_add_question"
-msgstr "Dodać do zakładek?"
-
-#: ../gui/src/ws_gui_layout.c:1437
-msgid ""
-"\n"
-".::GUI::. Bookmark added, happy days! :D\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1444
-msgid ""
-"\n"
-".::GUI::. Sorry ;-("
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1449
-msgid "ws_ni_bookmark_added"
-msgstr "Zakładka została dodana"
-
-#: ../gui/src/ws_gui_layout.c:1457
-msgid "ws_ni_bookmark_not_added"
-msgstr "Zakładka nie mogła być dodana"
-
-
-#: ../gui/src/ws_gui_layout.c:1462
-msgid "ws_ti_remove_bookmark"
-msgstr "Usuń zakładkę"
-
-#: ../gui/src/ws_gui_layout.c:1474
-msgid "ws_ni_remove_bookmark_question"
-msgstr "Usunąć z zakładek?"
-
-#: ../gui/src/ws_gui_layout.c:1498
-msgid ""
-"\n"
-".::GUI::. Bookmark removed, well done! :D\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1504
-msgid ""
-"\n"
-".::GUI::. Sorry\n"
-msgstr ""
-
-
-#: ../gui/src/ws_gui_layout.c:1515
-msgid "ws_ni_bookmark_removed"
-msgstr "Zakładkę usunieto."
-
-#: ../gui/src/ws_gui_layout.c:1522
-msgid "ws_ni_bookmark_not_removed"
-msgstr "Zakładka nie mogła zostać usunięta"
-
-#: ../gui/src/ws_gui_callbacks.c:44
-#, c-format
-msgid "XDXF->%s() start counting time for function '%s()'.\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:74
-#, c-format
-msgid "XDXF->%s() function '%s()' was working for: %g [s] or %ld [us].\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:114
-msgid "ws_ni_error_occured"
-msgstr "Wystąpił błąd."
-
-#: ../gui/src/ws_gui_callbacks.c:119
-msgid "response"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:133
-msgid "ws_ni_no_dictionary_available"
-msgstr "Brak dostępnych słowników."
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_caching"
-msgstr "Optymalizacja ..."
-
-#: ../gui/src/ws_gui_callbacks.c:212
-msgid "ws_ni_dictionary_unavailable"
-msgstr "Słownik niedostępny."
-
-#: ../gui/src/ws_gui_callbacks.c:289
-msgid "ws_ni_no_words_found"
-msgstr "Nie znaleziono słów."
-
-#: ../gui/src/ws_gui_callbacks.c:758
-msgid "Name"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:760
-msgid "text"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:857 ../gui/src/ws_gui_callbacks.c:909
-#: ../gui/src/ws_gui_callbacks.c:915 ../gui/src/ws_gui_callbacks.c:960
-msgid "prefix"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:867
-msgid "ws_ni_no_text_selected"
-msgstr "Zaznacz tekst."
-
-#: ../gui/src/ws_gui_callbacks.c:913
-msgid "\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:970
-msgid "ws_ab_searching"
-msgstr "Wyszukiwanie ..."
-
-#: ../gui/src/ws_gui_callbacks.c:987
-msgid "ws_ni_no_word_typed"
-msgstr "Nie wpisano słowa."
-
-#: ../gui/src/ws_gui_callbacks.c:1008
-msgid "ws_ni_search_aborted"
-msgstr "Wyszukiwanie zostało przerwane."
-
-#: ../gui/src/ws_gui_callbacks.c:1112
-msgid "file:"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1160
-msgid "button-press-event"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1268 ../gui/src/ws_gui_callbacks.c:1270
-#: ../gui/src/ws_gui_callbacks.c:1283
-msgid "<PATTERN_OPEN>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1277
-msgid ""
-"<html><head></head><body><center><table width=\"95%\"><tr><td><table "
-"border=1 width=100%><tr><th background=\"file:/usr/share/pixmaps/ws_top.png"
-"\"><img align=left src=\"file:/usr/share/pixmaps/engine_xdxf_icon.png"
-"\"><font color=\"#eeeeee\">"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1289 ../gui/src/ws_gui_callbacks.c:1291
-#: ../gui/src/ws_gui_callbacks.c:1299
-msgid "<PATTERN_CLOSED>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1297
-msgid "</font></th></tr></table>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1305 ../gui/src/ws_gui_callbacks.c:1307
-#: ../gui/src/ws_gui_callbacks.c:1316
-msgid "<TRANSLATION_OPEN>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1313
-msgid ""
-"<table border=1 width=100%><tr><td background=\"file:/usr/share/pixmaps/"
-"ws_tra.png\">"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1322 ../gui/src/ws_gui_callbacks.c:1324
-#: ../gui/src/ws_gui_callbacks.c:1332
-msgid "<TRANSLATION_CLOSED>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1330
-msgid "</td></tr></table></center><br>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1339
-msgid "</td></tr></table></body></html>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1341
-#, c-format
-msgid ".::GUI::. Zawartosc stringa to: \"%s\""
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1345
-#, c-format
-msgid ".::GUI::. Zawartosc RAW to: \"%s\""
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1362 ../gui/src/ws_gui_callbacks.c:1384
-msgid "/bookmarks"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1362 ../gui/src/ws_gui_callbacks.c:1384
-msgid "active"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1366
-msgid ""
-"\n"
-".::GUI::. Bookmark mode on\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1388
-msgid ""
-"\n"
-".::GUI::. Bookmark mode off\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1402 ../gui/src/ws_gui_callbacks.c:1426
-#, c-format
-msgid ".::GUI::. LAST_WORD: \"%s\""
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1412
-msgid "ws_ni_select_word_to_add"
-msgstr "Wybierz słowo do dodania."
-
-#: ../gui/src/ws_gui_callbacks.c:1436
-msgid "ws_ni_select_word_to_remove"
-msgstr "Wybierz słowo do usunięcia."
diff --git a/po/pl_Pl.po b/po/pl_Pl.po
deleted file mode 100644 (file)
index cdf329d..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-
-msgid ""
-msgstr ""
-"Project-Id-Version: 1.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-10-20 12:32+0200\n"
-"PO-Revision-Date: 2006-10-21 12:50+0200\n"
-"Last-Translator: Ania Gadomska <gandzia@vp.pl>\n"
-"Language-Team: polish <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../gui/src/ws_gui_layout.c:57 ../gui/src/ws_gui_layout.c:1225
-msgid "mdictionary"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:105 ../gui/src/ws_gui_layout.c:1232
-#: ../gui/src/ws_gui_layout.c:1238
-msgid "Tahoma 12"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:109
-msgid "url_requested"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:159
-msgid "Find: "
-msgstr "Znajdź"
-
-#: ../gui/src/ws_gui_layout.c:249
-msgid "dictionaries"
-msgstr "Słowniki"
-
-#: ../gui/src/ws_gui_layout.c:251 ../gui/src/ws_gui_layout.c:529
-msgid "Edit"
-msgstr "Edycja"
-
-#: ../gui/src/ws_gui_layout.c:253
-msgid "View"
-msgstr "Widok"
-
-#: ../gui/src/ws_gui_layout.c:255 ../gui/src/ws_gui_layout.c:492
-msgid "Search"
-msgstr "Szukaj"
-
-#: ../gui/src/ws_gui_layout.c:257
-msgid "About..."
-msgstr "O programie..."
-
-#: ../gui/src/ws_gui_layout.c:259
-msgid "Close"
-msgstr "Zamknij"
-
-#: ../gui/src/ws_gui_layout.c:266 ../gui/src/ws_gui_layout.c:938
-msgid "Load dictionary"
-msgstr "Ładuj słowniki"
-
-#: ../gui/src/ws_gui_layout.c:268
-msgid "Select dictionaries ..."
-msgstr "Wybierz sowniki ..."
-
-#: ../gui/src/ws_gui_layout.c:270
-msgid "Remove dictionaries ..."
-msgstr "Usuń słowniki ..."
-
-#: ../gui/src/ws_gui_layout.c:272
-msgid "Optimize dictionaries ..."
-msgstr "Zopytmalizuj słwoniki ..."
-
-#: ../gui/src/ws_gui_layout.c:288 ../gui/src/ws_gui_layout.c:512
-msgid "Copy"
-msgstr "Kopiuj"
-
-#: ../gui/src/ws_gui_layout.c:290 ../gui/src/ws_gui_layout.c:517
-msgid "Paste"
-msgstr "Wklej"
-
-#: ../gui/src/ws_gui_layout.c:292 ../gui/src/ws_gui_layout.c:522
-msgid "Select All"
-msgstr "Zaznacz wszystko"
-
-#: ../gui/src/ws_gui_layout.c:301
-msgid "Hide words list"
-msgstr "Ukryj liste"
-
-#: ../gui/src/ws_gui_layout.c:303 ../gui/src/ws_gui_layout.c:537
-msgid "Zoom in"
-msgstr "Powiększ"
-
-#: ../gui/src/ws_gui_layout.c:305 ../gui/src/ws_gui_layout.c:542
-msgid "Zoom out"
-msgstr "Pomniejsz"
-
-#: ../gui/src/ws_gui_layout.c:307
-msgid "Full screen"
-msgstr "Pełen ekran"
-
-#: ../gui/src/ws_gui_layout.c:318
-msgid "Find"
-msgstr "Znajdź"
-
-#: ../gui/src/ws_gui_layout.c:320
-msgid "Find next"
-msgstr "Znajdź nastepne"
-
-#: ../gui/src/ws_gui_layout.c:322
-msgid "Find previous"
-msgstr "Znajdź poprzednie"
-
-#: ../gui/src/ws_gui_layout.c:324
-msgid "Stop"
-msgstr "Stop"
-
-#: ../gui/src/ws_gui_layout.c:639 ../gui/src/ws_gui_layout.c:790
-#: ../gui/src/ws_gui_layout.c:1100
-msgid ""
-"\n"
-".::GUI::. /apps/mdictionary/dictionaries does not exist!!"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:643 ../gui/src/ws_gui_layout.c:824
-msgid "Choose dictionaries"
-msgstr "Wybierz słowniki"
-
-#: ../gui/src/ws_gui_layout.c:692 ../gui/src/ws_gui_layout.c:859
-#: ../gui/src/ws_gui_layout.c:1143
-msgid "cancel"
-msgstr "anuluj"
-
-#: ../gui/src/ws_gui_layout.c:698 ../gui/src/ws_gui_layout.c:864
-msgid "ok"
-msgstr "ok"
-
-#: ../gui/src/ws_gui_layout.c:812
-msgid "There are no dictionaries to optimize"
-msgstr "Brak sowników do zoptymalizowania"
-
-#: ../gui/src/ws_gui_layout.c:990
-msgid "Would you like to activate this dictionary for use from now?"
-msgstr "Czy chcesz teraz aktywować słownik?"
-
-#: ../gui/src/ws_gui_layout.c:1021
-msgid ""
-"Would you like to optimize this dictionary to make it faster to search "
-"within?"
-msgstr "Czy chcesz zoptymalizować słownik teraz?"
-
-#: ../gui/src/ws_gui_layout.c:1045
-msgid "New dictionary has been added"
-msgstr "Nowy sownik został dodany"
-
-#: ../gui/src/ws_gui_layout.c:1052
-msgid "Wrong dictionary file"
-msgstr "Zły format sownika"
-
-#: ../gui/src/ws_gui_layout.c:1104
-msgid "Remove dictionaries"
-msgstr "Usuń słownik"
-
-#: ../gui/src/ws_gui_layout.c:1149
-msgid "remove selected"
-msgstr "Usuń zaznaczone"
-
-#: ../gui/src/ws_gui_layout.c:1212
-msgid "About"
-msgstr "O programie"
-
-#: ../gui/src/ws_gui_layout.c:1231
-msgid ""
-"Maemo Multilingual Dictionary\n"
-"ver. 0.5"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1237
-msgid ""
-"Copyright 2006, ComArch S.A\n"
-"All rights reserved"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1266
-msgid ""
-"The following third party\n"
-"components may be\n"
-"included depending \n"
-"on your system configuration:\n"
-"\n"
-"D-BUS - License information:\n"
-"http://opensource.org/licenses/academic.php"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1303
-msgid "Licence"
-msgstr "Licencja"
-
-#: ../gui/src/ws_gui_layout.c:1323
-msgid ""
-"Terms of use\n"
-"\n"
-"READ THE TERMS OF USE CAREFULLY BEFORE INSTALALTION OF THIS SOFTWARE. BY\n"
-"INSTALALTION OF THIS SOFTWARE, YOU AGREE TO THE FOLLOWING TERMS OF USE.\n"
-"\n"
-"1. LICENSE TO USE. ComArch grants you a non-exclusive and non-transferable\n"
-"license for the internal use only of the accompanying software and\n"
-"documentation and any error corrections provided by ComArch (collectively "
-"\"Software\"), by the one user.\n"
-"\n"
-"2. RESTRICTIONS. Software is confidential and copyrighted. Title to "
-"Software\n"
-"and all associated intellectual property rights is retained by ComArch\n"
-"and/or its licensors. Unless enforcement is prohibited by applicable law,\n"
-"you may not modify, decompile, or reverse engineer Software. You "
-"acknowledge\n"
-"that Software is not designed, licensed or intended for use in the design,\n"
-"construction, operation or maintenance of any nuclear facility. Sun ComArch\n"
-"disclaims any express or implied warranty of fitness for such uses. No\n"
-"right, title or interest in or to any trademark, service mark, logo or "
-"trade\n"
-"name of ComArch or its licensors is granted under this terms of use.\n"
-"\n"
-"3. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS AGREEMENT TERMS OF USE,\n"
-"ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, "
-"INCLUDING\n"
-"ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE "
-"OR\n"
-"NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT THESE "
-"DISCLAIMERS\n"
-"ARE HELD TO BE LEGALLY INVALID.\n"
-"\n"
-"4. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO "
-"EVENT\n"
-"WILL COMARCH OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR\n"
-"DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE\n"
-"DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT\n"
-"OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF COMARCH\n"
-"HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event will\n"
-"ComArch's liability to you, whether in contract, tort (including\n"
-"negligence), or otherwise, exceed []. The foregoing limitations will apply\n"
-"even if the above stated warranty fails of its essential purpose.\n"
-"\n"
-"5. Termination. This license is effective until terminated. You may\n"
-"terminate this license at any time by destroying all\n"
-"copies of Software.\n"
-"This license will terminate immediately without notice from ComArch if you\n"
-"fail to comply with any provision of this license. Upon Termination, you\n"
-"must destroy all copies of Software.\n"
-"\n"
-"6. Export Regulations. All Software and technical data delivered under this\n"
-"terms of use are subject to Polish export control laws and may be subject "
-"to\n"
-"export or import regulations in other countries. You agree to comply\n"
-"strictly with all such laws and regulations and acknowledge that you have\n"
-"the responsibility to obtain such licenses to export, re-export, or import\n"
-"as may be required after delivery to you.\n"
-"\n"
-"7. Governing Law. Any action related to this license will be governed by\n"
-"Polish Law.\n"
-"\n"
-"8. Severability. If any provision of this terms of use is held to be\n"
-"unenforceable, this terms of use will remain in effect with the provision\n"
-"omitted, unless omission would frustrate the intent of the parties, in "
-"which\n"
-"case this terms of use will immediately terminate.\n"
-"\n"
-"9. Integration. This document is the entire  agreement between you and\n"
-"ComArch relating to its subject matter. It supersedes all prior or\n"
-"contemporaneous oral or written communications, proposals, representations\n"
-"and warranties and prevails over any conflicting or additional\n"
-"terms of any\n"
-"quote, order, acknowledgment, or other communication between the parties\n"
-"relating to its subject matter during the term of these terms of use. No\n"
-"modification of this Agreement will be binding, unless in writing and "
-"signed\n"
-"by an authorized representative of each party."
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1325
-msgid "Agree"
-msgstr "Zgadzam się"
-
-#: ../gui/src/ws_gui_layout.c:1330
-msgid "Disagree"
-msgstr "Nie zgadzam się"
diff --git a/po/template.po b/po/template.po
deleted file mode 100644 (file)
index 40d5ca5..0000000
+++ /dev/null
@@ -1,534 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-28 11:49+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../gui/src/ws_gui_layout.c:43
-msgid "ws_ni_welcome"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:46 ../gui/src/ws_gui_callbacks.c:143
-#: ../gui/src/ws_gui_callbacks.c:855 ../gui/src/ws_gui_callbacks.c:981
-msgid " "
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:64 ../gui/src/ws_gui_layout.c:1324
-msgid "mdictionary"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:112 ../gui/src/ws_gui_layout.c:1334
-#: ../gui/src/ws_gui_layout.c:1341
-msgid "Tahoma 12"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:117
-msgid "url_requested"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:174 ../gui/src/ws_gui_layout.c:351
-msgid "ws_me_search_find"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:212
-msgid "search"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:217
-msgid "toggled"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:222 ../gui/src/ws_gui_layout.c:227
-#: ../gui/src/ws_gui_layout.c:231
-msgid "clicked"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:266
-msgid "ws_me_dictionaries"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:268
-msgid "ws_me_bookmarks"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:270
-msgid "ws_me_edit"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:272
-msgid "ws_me_view"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:274
-msgid "ws_me_search"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:276
-msgid "ws_me_about"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:278
-msgid "ws_me_close"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:285
-msgid "ws_me_dictionaries_load"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:287
-msgid "ws_me_dictionaries_select"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:289
-msgid "ws_me_dictionaries_remove"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:291
-msgid "ws_me_dictionaries_optimize"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:303
-msgid "ws_me_bookmarks_open"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:305
-msgid "ws_me_bookmarks_close"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:307
-msgid "ws_me_bookmarks_add"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:309
-msgid "ws_me_bookmarks_remove"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:321
-msgid "ws_me_edit_copy"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:323
-msgid "ws_me_edit_paste"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:325
-msgid "ws_me_edit_select_all"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:334
-msgid "ws_me_view_hide_words_list"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:336
-msgid "ws_me_view_zoom_in"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:338
-msgid "ws_me_view_zoom_out"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:340
-msgid "ws_me_view_fullscreen"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:353
-msgid "ws_me_search_find_next"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:355
-msgid "ws_me_search_find_prev"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:357
-msgid "ws_me_search_stop"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:410 ../gui/src/ws_gui_layout.c:415
-#: ../gui/src/ws_gui_layout.c:420 ../gui/src/ws_gui_layout.c:425
-#: ../gui/src/ws_gui_layout.c:429 ../gui/src/ws_gui_layout.c:434
-#: ../gui/src/ws_gui_layout.c:439 ../gui/src/ws_gui_layout.c:444
-#: ../gui/src/ws_gui_layout.c:449 ../gui/src/ws_gui_layout.c:454
-#: ../gui/src/ws_gui_layout.c:459 ../gui/src/ws_gui_layout.c:464
-#: ../gui/src/ws_gui_layout.c:469 ../gui/src/ws_gui_layout.c:474
-#: ../gui/src/ws_gui_layout.c:479 ../gui/src/ws_gui_layout.c:484
-#: ../gui/src/ws_gui_layout.c:489 ../gui/src/ws_gui_layout.c:494
-#: ../gui/src/ws_gui_layout.c:499 ../gui/src/ws_gui_layout.c:504
-#: ../gui/src/ws_gui_layout.c:509 ../gui/src/ws_gui_layout.c:515
-#: ../gui/src/ws_gui_layout.c:521 ../gui/src/ws_gui_layout.c:621
-#: ../gui/src/ws_gui_layout.c:626 ../gui/src/ws_gui_layout.c:631
-#: ../gui/src/ws_gui_layout.c:636 ../gui/src/ws_gui_layout.c:641
-#: ../gui/src/ws_gui_layout.c:645
-msgid "activate"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:560
-msgid "ws_mp_search"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:580
-msgid "ws_mp_edit_copy"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:585
-msgid "ws_mp_edit_paste"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:590
-msgid "ws_mp_edit_select_all"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:597
-msgid "ws_mp_edit"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:605
-msgid "ws_mp_zoom_in"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:610
-msgid "ws_mp_zoom_out"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:708 ../gui/src/ws_gui_layout.c:869
-#: ../gui/src/ws_gui_layout.c:1188
-msgid ""
-"\n"
-".::GUI::. /apps/mdictionary/dictionaries does not exist!!"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:713 ../gui/src/ws_gui_layout.c:905
-msgid "ws_ti_choose_dictionaries_title"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:742 ../gui/src/ws_gui_layout.c:795
-#: ../gui/src/ws_gui_layout.c:812 ../gui/src/ws_gui_layout.c:1066
-#: ../gui/src/ws_gui_callbacks.c:1519 ../gui/src/ws_gui_callbacks.c:1555
-#: ../gui/src/ws_gui_callbacks.c:1601
-msgid "/active"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:768 ../gui/src/ws_gui_layout.c:942
-#: ../gui/src/ws_gui_layout.c:1237 ../gui/src/ws_gui_layout.c:1433
-#: ../gui/src/ws_gui_layout.c:1501
-msgid "ws_db_cancel"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:774 ../gui/src/ws_gui_layout.c:947
-#: ../gui/src/ws_gui_layout.c:1428 ../gui/src/ws_gui_layout.c:1496
-msgid "ws_db_ok"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:793 ../gui/src/ws_gui_layout.c:810
-#: ../gui/src/ws_gui_layout.c:967 ../gui/src/ws_gui_layout.c:987
-#: ../gui/src/ws_gui_layout.c:1056 ../gui/src/ws_gui_layout.c:1064
-#: ../gui/src/ws_gui_layout.c:1099 ../gui/src/ws_gui_layout.c:1262
-msgid "/"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:877 ../gui/src/ws_gui_layout.c:969
-#: ../gui/src/ws_gui_layout.c:989 ../gui/src/ws_gui_layout.c:1101
-msgid "/optimized"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:893
-msgid "ws_ni_no_dictionaries_to_optimize"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1023
-msgid "ws_ti_load_dictionary_title"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1052
-msgid ".xdxf"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1056
-msgid "/path"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1075
-msgid "ws_ni_dictionaries_activation_question"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1108
-msgid "ws_ni_dictionaries_optimalization_question"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1133
-msgid "ws_ni_dictionary_added"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1140
-msgid "ws_ni_dictionary_wrong_file"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1193
-msgid "ws_ti_remove_dictionaries_title"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1230 ../gui/src/ws_gui_callbacks.c:1522
-#: ../gui/src/ws_gui_callbacks.c:1558
-msgid "bookmarks"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1244
-msgid "ws_bd_remove_dictionaries_remove_selected"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1311
-msgid "ws_ti_about_title"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1321
-msgid "/usr/share/pixmaps/mdictionary.png"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1325
-msgid "Tahoma 18"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1327
-msgid "__________"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1330
-msgid ""
-"Maemo Multilingual Dictionary\n"
-"ver. "
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1339
-msgid ""
-"Copyright 2006, ComArch S.A\n"
-"All rightsreserved"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1361
-msgid "Tahoma 10"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1369
-msgid ""
-"The following third party\n"
-"components may be\n"
-"included depending \n"
-"on your system configuration:\n"
-"\n"
-"D-BUS - License information:\n"
-"http://opensource.org/licenses/academic.php"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1407
-msgid "ws_ti_add_bookmark"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1419
-msgid "ws_ti_bookmarks_add_question"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1449
-msgid "ws_ni_bookmark_added"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1457
-msgid "ws_ni_bookmark_not_added"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1475
-msgid "ws_ti_remove_bookmark"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1487
-msgid "ws_ni_remove_bookmark_question"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1515
-msgid "ws_ni_bookmark_removed"
-msgstr ""
-
-#: ../gui/src/ws_gui_layout.c:1522
-msgid "ws_ni_bookmark_not_removed"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:44
-#, c-format
-msgid "XDXF->%s() start counting time for function '%s()'.\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:74
-#, c-format
-msgid "XDXF->%s() function '%s()' was working for: %g [s] or %ld [us].\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:114
-msgid "ws_ni_error_occured"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:119
-msgid "response"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:133
-msgid "ws_ni_no_dictionary_available"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:168
-msgid "ws_pb_caching"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:212
-msgid "ws_ni_dictionary_unavailable"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:289
-msgid "ws_ni_no_words_found"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:759
-msgid "Name"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:761
-msgid "text"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:858 ../gui/src/ws_gui_callbacks.c:910
-#: ../gui/src/ws_gui_callbacks.c:916 ../gui/src/ws_gui_callbacks.c:961
-msgid "prefix"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:868
-msgid "ws_ni_no_text_selected"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:914
-msgid "\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:971
-msgid "ws_ab_searching"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:988
-msgid "ws_ni_no_word_typed"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1009
-msgid "ws_ni_search_aborted"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1113
-msgid "file:"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1161
-msgid "button-press-event"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1269 ../gui/src/ws_gui_callbacks.c:1271
-#: ../gui/src/ws_gui_callbacks.c:1284
-msgid "<PATTERN_OPEN>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1278
-msgid ""
-"<html><head></head><body><center><table width=\"95%\"><tr><td><table "
-"border=1 width=100%><tr><th background=\"file:/usr/share/pixmaps/ws_top.png"
-"\"><img align=left src=\"file:/usr/share/pixmaps/engine_xdxf_icon.png"
-"\"><font color=\"#eeeeee\">"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1290 ../gui/src/ws_gui_callbacks.c:1292
-#: ../gui/src/ws_gui_callbacks.c:1300
-msgid "<PATTERN_CLOSED>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1298
-msgid "</font></th></tr></table>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1306 ../gui/src/ws_gui_callbacks.c:1308
-#: ../gui/src/ws_gui_callbacks.c:1317
-msgid "<TRANSLATION_OPEN>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1314
-msgid ""
-"<table border=1 width=100%><tr><td background=\"file:/usr/share/pixmaps/"
-"ws_tra.png\">"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1323 ../gui/src/ws_gui_callbacks.c:1325
-#: ../gui/src/ws_gui_callbacks.c:1333
-msgid "<TRANSLATION_CLOSED>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1331
-msgid "</td></tr></table></center><br>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1340
-msgid "</td></tr></table></body></html>"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1369
-msgid ""
-"\n"
-".::GUI::. Bookmark mode on\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1394
-msgid ""
-"\n"
-".::GUI::. Bookmark mode off\n"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1422
-msgid "ws_ni_select_word_to_add"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1436
-#, c-format
-msgid ".::GUI::. LAST_WORD: \"%s\""
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1446
-msgid "ws_ni_select_word_to_remove"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1521 ../gui/src/ws_gui_callbacks.c:1557
-#, c-format
-msgid ""
-"\n"
-"\n"
-"slownik (%d): %s - active: %d"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1530 ../gui/src/ws_gui_callbacks.c:1566
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Po przestawieniu: slownik (%d): %s - active: %d"
-msgstr ""
-
-#: ../gui/src/ws_gui_callbacks.c:1603
-#, c-format
-msgid ""
-"\n"
-"\n"
-"slownik (%d): %s - \n"
-"active: %d"
-msgstr ""
diff --git a/po/whitestork.mo b/po/whitestork.mo
deleted file mode 100644 (file)
index 17b8b35..0000000
Binary files a/po/whitestork.mo and /dev/null differ
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644 (file)
index 193256d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = dbus_wrapper gui  manager bookmarks plugins 
diff --git a/src/bookmarks/Makefile.am b/src/bookmarks/Makefile.am
deleted file mode 100644 (file)
index b007807..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = bdb
diff --git a/src/bookmarks/bdb/COPYING b/src/bookmarks/bdb/COPYING
deleted file mode 100755 (executable)
index fb6319b..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-    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 Lesser 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) <year>  <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) year 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 Lesser General
-Public License instead of this License.
\ No newline at end of file
diff --git a/src/bookmarks/bdb/Makefile b/src/bookmarks/bdb/Makefile
deleted file mode 100755 (executable)
index bdfcc35..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-COMPILER = gcc
-#DEBUG = -Wall -g -DNOLOGS
-DEBUG = -Wall -g
-SOURCES = ./src
-INCLUDE = ./include
-LIBS = `pkg-config --libs glib-2.0 gmodule-2.0` -ldb1
-FLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0` -I${INCLUDE} -I./.. -I../../../include
-BINARIES = bin
-FINAL = engine_bookmarks.so
-
-first: clean ${FINAL} bdbprint
-
-show1:
-               ./bdbprint s data/bm_words.db
-       
-show2:
-               ./bdbprint b data/bm_trans.db
-               
-bdbprint: ${SOURCES}/berkeleyRead.c
-               @echo -en "Berkeley DB reader building ...\n"
-               gcc ${DEBUG} `pkg-config --cflags --libs glib-2.0` -ldb1 $< -o $@
-
-${FINAL}: bookmark.o ${SOURCES}/engine_bookmark.c
-               gcc ${DEBUG} -shared -fPIC ${FLAGS} ${LIBS} bookmark.o -o ${FINAL}
-               cp ${FINAL} ../../../bin
-
-bookmark.o: ${SOURCES}/engine_bookmark.c
-               gcc ${DEBUG} -c -fPIC -o bookmark.o ${SOURCES}/engine_bookmark.c ${FLAGS}
-               
-clean:
-               @-rm -f ${BINARIES}/*
-               @-rm -f ${SOURCES}/test
-               @-rm -f ${SOURCES}/*~
-               @-rm -f *~
-               @-rm -f ${INCLUDE}/*~
-               @-rm -f ${SOURCES}/${FINAL}
-               @-rm -f ${SOURCES}/testDatabase
-               @-rm -f engine_bookmarks.so bookmark.o bdbprint
-               @echo -e -n "Project 'BookmarkEngine' directories has been cleaned.\n"
-
-
-       
-cleandata: bdbprint
-               @-rm -f ws_bookmarks-journal
-               @-rm -f ws_bookmarks
-               @-rm -f data/bm_words.db data/bm_trans.db
-               @./bdbprint s data/bm_words.db
-               @./bdbprint b data/bm_trans.db add 0 1
-
-
-data: ${SOURCES}/testMakeDatabase.c
-               @echo -e -n "Compiling testDatabase...\n"
-               @gcc ${DEBUG} -o ${SOURCES}/testDatabase ${SOURCES}/testMakeDatabase.c ${FLAGS} ${LIBS}
-
-datarun: data
-               @run-standalone.sh src/testDatabase     
-       
-test: test.o
-               @echo "Linking test program..."
-               @gcc ${LIBS} ${DEBUG} -o ${SOURCES}/test ${BINARIES}/test.o
-               @echo -e "Building test program finished.\n"
-
-test.o:
-               @echo "Compiling test program..."
-               @gcc ${FLAGS} ${DEBUG} -c -o ${BINARIES}/test.o ${SOURCES}/test.c
-
-check:
-               @echo "Running test program:"
-               @run-standalone.sh  ${SOURCES}/test     
-       
-       
\ No newline at end of file
diff --git a/src/bookmarks/bdb/Makefile.am b/src/bookmarks/bdb/Makefile.am
deleted file mode 100644 (file)
index 605bd0b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-
-SUBDIRS = src
\ No newline at end of file
diff --git a/src/bookmarks/bdb/Makefile_old b/src/bookmarks/bdb/Makefile_old
deleted file mode 100755 (executable)
index bdfcc35..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-COMPILER = gcc
-#DEBUG = -Wall -g -DNOLOGS
-DEBUG = -Wall -g
-SOURCES = ./src
-INCLUDE = ./include
-LIBS = `pkg-config --libs glib-2.0 gmodule-2.0` -ldb1
-FLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0` -I${INCLUDE} -I./.. -I../../../include
-BINARIES = bin
-FINAL = engine_bookmarks.so
-
-first: clean ${FINAL} bdbprint
-
-show1:
-               ./bdbprint s data/bm_words.db
-       
-show2:
-               ./bdbprint b data/bm_trans.db
-               
-bdbprint: ${SOURCES}/berkeleyRead.c
-               @echo -en "Berkeley DB reader building ...\n"
-               gcc ${DEBUG} `pkg-config --cflags --libs glib-2.0` -ldb1 $< -o $@
-
-${FINAL}: bookmark.o ${SOURCES}/engine_bookmark.c
-               gcc ${DEBUG} -shared -fPIC ${FLAGS} ${LIBS} bookmark.o -o ${FINAL}
-               cp ${FINAL} ../../../bin
-
-bookmark.o: ${SOURCES}/engine_bookmark.c
-               gcc ${DEBUG} -c -fPIC -o bookmark.o ${SOURCES}/engine_bookmark.c ${FLAGS}
-               
-clean:
-               @-rm -f ${BINARIES}/*
-               @-rm -f ${SOURCES}/test
-               @-rm -f ${SOURCES}/*~
-               @-rm -f *~
-               @-rm -f ${INCLUDE}/*~
-               @-rm -f ${SOURCES}/${FINAL}
-               @-rm -f ${SOURCES}/testDatabase
-               @-rm -f engine_bookmarks.so bookmark.o bdbprint
-               @echo -e -n "Project 'BookmarkEngine' directories has been cleaned.\n"
-
-
-       
-cleandata: bdbprint
-               @-rm -f ws_bookmarks-journal
-               @-rm -f ws_bookmarks
-               @-rm -f data/bm_words.db data/bm_trans.db
-               @./bdbprint s data/bm_words.db
-               @./bdbprint b data/bm_trans.db add 0 1
-
-
-data: ${SOURCES}/testMakeDatabase.c
-               @echo -e -n "Compiling testDatabase...\n"
-               @gcc ${DEBUG} -o ${SOURCES}/testDatabase ${SOURCES}/testMakeDatabase.c ${FLAGS} ${LIBS}
-
-datarun: data
-               @run-standalone.sh src/testDatabase     
-       
-test: test.o
-               @echo "Linking test program..."
-               @gcc ${LIBS} ${DEBUG} -o ${SOURCES}/test ${BINARIES}/test.o
-               @echo -e "Building test program finished.\n"
-
-test.o:
-               @echo "Compiling test program..."
-               @gcc ${FLAGS} ${DEBUG} -c -o ${BINARIES}/test.o ${SOURCES}/test.c
-
-check:
-               @echo "Running test program:"
-               @run-standalone.sh  ${SOURCES}/test     
-       
-       
\ No newline at end of file
diff --git a/src/bookmarks/bdb/autogen.sh b/src/bookmarks/bdb/autogen.sh
deleted file mode 100755 (executable)
index e11bdd0..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-rm -rf compile config.sub config.guess depcomp install-sh ltmain.sh missing aclocal.m4  autom4te.cache/ Makefile.in configure
-rm config.log config.status libtool Makefile
-
-rm -rf src/.libs src/*.la src/.lo src/.deps src/*.o src/*.lo src/Makefile
-
-
-[ "_""$1" != "_nogen" ] && ( aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake )
diff --git a/src/bookmarks/bdb/configure.ac b/src/bookmarks/bdb/configure.ac
deleted file mode 100644 (file)
index 721885e..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-AC_INIT([src/berkeleyRead.c])
-AC_CONFIG_AUX_DIR([.])
-
-AM_INIT_AUTOMAKE(bdbprint, 1.0)
-
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.0)
-PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= 2.0)
-
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-
-AC_SUBST(GMODULE_CFLAGS)
-AC_SUBST(GMODULE_LIBS)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-AM_PROG_LIBTOOL
-
-AC_OUTPUT([  Makefile 
-                          src/Makefile])
\ No newline at end of file
diff --git a/src/bookmarks/bdb/data/bm_trans.db b/src/bookmarks/bdb/data/bm_trans.db
deleted file mode 100755 (executable)
index 7abe57a..0000000
Binary files a/src/bookmarks/bdb/data/bm_trans.db and /dev/null differ
diff --git a/src/bookmarks/bdb/data/bm_words.db b/src/bookmarks/bdb/data/bm_words.db
deleted file mode 100755 (executable)
index d7d2019..0000000
Binary files a/src/bookmarks/bdb/data/bm_words.db and /dev/null differ
diff --git a/src/bookmarks/bdb/include/.kateconfig b/src/bookmarks/bdb/include/.kateconfig
deleted file mode 100755 (executable)
index 7f9ed54..0000000
+++ /dev/null
@@ -1 +0,0 @@
-kate hl Sources/C;
\ No newline at end of file
diff --git a/src/bookmarks/bdb/include/engine_bookmark.h b/src/bookmarks/bdb/include/engine_bookmark.h
deleted file mode 100755 (executable)
index 0f75000..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \defgroup BookmarkEngine Dictionary Engine - Bookmark format
- * \brief Bookmark Dictionary Engine.
- *
- * This is library with dictionary engine supporting bookmarks. It uses Berkeley
- * DB as a storage method.
- *
- * TODO: currently bookmark engine does not support all function from engine
- * API! It need implementation of API version 0.2 function, like getting icon
- * path etc.
- */
-/*@{*/
-/** \file engine_bookmark.h
- * \brief Header for bookmark dictionary engine.
- */
-
-#ifndef _DICTIONARY_ENGINE_BOOKMARK
-#define _DICTIONARY_ENGINE_BOOKMARK
-
-#ifdef __cplusplus
-        extern "C" {
-#endif
-
-
-/* headers with unix types/functions - only for timers */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-/* header with GLIB definitions/functions/types */
-#include <glib.h>
-
-/* header wit engine API */
-#include <dictionary_engine.h>
-
-/* header with Berkeley DB API */
-#include <db/db.h>
-
-/* operation on strings */
-#include <string.h>
-
-
-/** \name Timers */
-/*@{*/
-/** \brief Flags telling that we want to start timer. */
-#define TIMER_START     TRUE
-/** \brief Flags telling that we want to stop timer. */
-#define TIMER_STOP      FALSE
-
-/** \brief Start/stop timers.
- *
- * \param start do we want start new timer or end the last one
- * \param message string which shoul be printed by function while debbuging
- * \return -1.0 if we start or seconds passed from start if we want to 
- * stop timer
- */
-/* in final releases timer capapilities should be removed for increase
- * performance */
-/* static double bm_timer(gboolean start, gchar* message); */
-
-/*@}*/
-
-/** \brief Version of bookmark engine. */
-static const gchar* DIC_ENG_VERSION = "0.2";
-
-/** \brief Short description of format supported by the current engine. */
-static const gchar* DIC_ENG_FORMAT = "Users' Bookmarks";
-
-/** \brief Short description of engine */
-static const gchar* DIC_ENG_DESCRIPTION = "This module handles users' book"
-                                          "marks. Based on Berkeley DB 1.85";
-
-/** \brief Translate boolean value into string. */
-#define PRINT_STATE(state) ( (state) ? "TRUE" : "FALSE" )
-
-
-/** \brief Internal data structure of Bookmark Engine.
- */
-struct _BookData {
-       DB*                     db_words;
-       /**< \brief Pointer to the database with words */
-
-       DB*                     db_trans;
-       /**< \brief Pointer to the database with translations */
-
-       BTREEINFO               info_words;
-       /**< \brief Structure describing search method in words database */
-
-       BTREEINFO               info_trans;
-       /**<\brief Structure describing search method in translations database*/
-
-       guint                   freeID;
-       /**< \brief next free available id for word */
-
-       /**< \brief pointer to cache file */
-       gchar*                  dict_path;
-       /**< \brief path to dictionary */
-       EngineStatus            last_error;
-       /**< \brief status of last taken action */
-       gboolean                auto_free;
-       /**< \brief auto free mechanism status: FALSE - off, TRUE - on */
-
-       cb_progress             cb_progress_caching;
-       /**< \brief pointer to callback function called while informing about 
-        * caching progress */
-       gpointer                cb_progress_caching_data;
-       /**< \brief pointer to data passed to callback function called while
-        * informing about caching progress */
-       gdouble                 cb_progress_caching_seed;
-       /**< \brief how often progress callback should be called. 0.01 mean 
-        * that after each 1% of work callback shoul be called */
-
-       cb_progress             cb_progress_word_list;
-       /**< \brief pointer to callback function called while informing about
-        * words list searching progress */
-       gpointer                cb_progress_word_list_data;
-       /**< \brief pointer to data passed to callback function called while
-        * informing about words list searching progress */
-       gdouble                 cb_progress_word_list_seed;
-       /**< \brief how often progress callback should be called. 0.01 mean
-        * that after each 1% of work callback shoul be called */
-
-       cb_progress             cb_progress_word_trans;
-       /**< \brief pointer to callback function called while informing about
-        * word's translation searching progress */
-       gpointer                cb_progress_word_trans_data;
-       /**< \brief pointer to data passed to callback function called while
-        * informing about word's translation searching progress */
-       gdouble                 cb_progress_word_trans_seed;
-       /**< \brief how often progress callback should be called. 0.01 mean
-        * that after each 1% of work callback shoul be called */
-
-       cb_word_list            cb_search_word_list;
-       /**< \brief pointer to callback function called after words list is
-        * found */
-       gpointer                cb_search_word_list_data;
-       /**< \brief pointer to data passed to callback function called after
-        * words list is found */
-
-       cb_word_translation     cb_search_word_trans;
-       /**< \brief pointer to callback function called after word's translation
-        * is found */
-       gpointer                cb_search_word_trans_data;
-       /**< \brief pointer to data passed to callback function called after
-        * word's translation is found */
-};
-typedef struct _BookData        BookData;
-
-
-/** \brief Convert string to proper path name. */
-static gchar* string_to_path(gchar** string);
-
-/** \brief Tells if file is in Bookmarks format (file should exist). */
-static gboolean is_Bookmark_db_file(gchar* file);
-
-/** \brief Add new translation for word */
-static gboolean bm_add_new_entry( gchar* word,
-                                  gchar* translation,
-                                  BookData* data );
-
-/** \brief Get minimal free value available for word's id */
-static void bm_load_freeID(BookData* data);
-
-/** \brief Get minimal free value available for word's id */
-static void bm_save_freeID(BookData* data);
-
-/** \brief Add only new translation with id */
-static gboolean bm_add_only_translation( BookData* data,
-                                         gchar* translation,
-                                         guint id );
-
-/** \brief Compare method for searching in translation file */
-static gint bm_compare_key_trans(const DBT *a, const DBT *b);
-
-/** \brief Compare method for searching in words file */
-static gint bm_compare_key_words(const DBT *a, const DBT *b);
-
-
-/** \name Module functions */
-/*@{*/
-
-/** \brief dict_eng_module_check() function implementation. */
-gboolean        bm_engine_check(gchar* location);
-
-/** \brief dict_eng_module_get_description() function implementation. */
-gchar*          bm_engine_description();
-
-/** \brief dict_eng_module_get_format() function implementation. */
-gchar*          bm_engine_format();
-
-/** \brief dict_eng_module_get_version() function implementation. */
-gchar*          bm_engine_version();
-
-/** \brief dict_eng_module_create() function implementation. */
-Engine*         bm_engine_create( gchar* location, 
-                                  EngineOptimizationFlag flags,
-                                  cb_progress progress_handler,
-                                  gpointer progress_data,
-                                  gdouble seed );
-/*@}*/
-
-/** \name Particular dictionary function */
-/*@{*/
-
-/** \brief dict_eng_add_word() function implementation. */
-gboolean        bm_engine_add_word( Engine* engine,
-                                    gchar*  word,
-                                    gchar*  translation );
-
-/** \brief dict_eng_remove_word() function implementation. */
-gboolean        bm_engine_remove_word( Engine* engine, gchar*  word );
-
-/** \brief dict_eng_get_lang_from() function implementation. */
-gchar*          bm_engine_get_lang_from(Engine* engine);
-
-/** \brief dict_eng_get_lang_to() function implementation. */
-gchar*          bm_engine_get_lang_to(Engine* engine);
-
-/** \brief dict_eng_get_title() function implementation. */
-gchar*          bm_engine_get_title(Engine* engine);
-
-/** \brief dict_eng_get_icon_path() function implementation. */
-gchar*          bm_engine_get_icon_path(Engine* engine);
-
-/** \brief dict_eng_destroy() function implementation. */
-void            bm_engine_close(Engine* engine);
-
-/** \brief dict_eng_get_location() function implementation. */
-gchar*          bm_engine_location(Engine* engine);
-
-/** \brief dict_eng_optimize() function implementation. */
-void            bm_engine_optimize(Engine* engine);
-
-/** \brief dict_eng_is_optimized() function implementation. */
-gboolean        bm_engine_is_optimized(Engine* engine);
-
-/** \brief dict_eng_set_auto_free() function implementation. */
-void            bm_engine_set_auto_free(Engine* engine, gboolean state);
-
-/** \brief dict_eng_set_callback() function implementation. */
-gpointer        bm_engine_set_callback( Engine* engine,
-                                        gchar* event,
-                                        gpointer c_handler,
-                                        gpointer user_data );
-
-/** \brief dict_eng_set_progress_seed() function implementation. */
-void            bm_engine_set_progress_seed( Engine* engine,
-                                             gchar* signal,
-                                             gdouble seed );
-
-/** \brief dict_eng_search_word_list() function implementation. */
-void            bm_engine_search_word_list( Engine* engine,
-                                            gchar* pattern,
-                                            gpointer data );
-
-/** \brief dict_eng_search_word_translation() function implementation. */
-void            bm_engine_search_word_translation( Engine* engine,
-                                                   gchar* word,
-                                                   gpointer data );
-
-/** \brief dict_eng_get_last_status() function implementation. */
-EngineStatus    bm_engine_status(Engine* engine);
-
-
-/** \brief dict_eng_status_message() function implementation. */
-gchar*          bm_engine_status_message(EngineStatus error);
-
-/*@}*/
-
-/** \brief implementation of engine_global_functions(void) function. */
-EngineModule    engine_global_functions();
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* #ifndef _DICTIONARY_ENGINE_STARDICT */
-
-/*@}*/
diff --git a/src/bookmarks/bdb/src/.kateconfig b/src/bookmarks/bdb/src/.kateconfig
deleted file mode 100755 (executable)
index 7f9ed54..0000000
+++ /dev/null
@@ -1 +0,0 @@
-kate hl Sources/C;
\ No newline at end of file
diff --git a/src/bookmarks/bdb/src/Makefile.am b/src/bookmarks/bdb/src/Makefile.am
deleted file mode 100644 (file)
index 5477140..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-lib_LTLIBRARIES = libengine_bookmark.la
-libengine_bookmark_la_SOURCES = engine_bookmark.c
-libengine_bookmark_la_CFLAGS =$(GLIB_CFLAGS) $(GMODULE_CFLAGS)  -I$(top_srcdir)/include -I$(top_srcdir)/../.. -I$(top_srcdir)/../../../include
-libengine_bookmark_la_LDFLAGS = -shared -ldb1  $(GLIB_LIBS) $(GMODULE_LIBS)
-
-bin_PROGRAMS = bdbprint 
-bdbprint_SOURCES = berkeleyRead.c
-bdbprint_CFLAGS = $(GLIB_CFLAGS)  
-bdbprint_LDFLAGS = $(GLIB_LIBS) -ldb1
\ No newline at end of file
diff --git a/src/bookmarks/bdb/src/berkeleyRead.c b/src/bookmarks/bdb/src/berkeleyRead.c
deleted file mode 100644 (file)
index 5145db5..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <db/db.h>
-#include <string.h>
-#include <glib.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-
-
-typedef unsigned int uint;
-
-static int bm_compare_key_trans(const DBT *a, const DBT *b) {
-       uint* tmpa = (uint*)(a->data);
-       uint* tmpb = (uint*)(b->data);
-
-       if((*tmpa) == (*tmpb)) return 0;
-       if(*tmpa > *tmpb)  return 1;
-       else               return -1;
-}
-//------------------------------------------------------------------------------
-static int bm_compare_key_words(const DBT *a, const DBT *b) {
-       char* tmpa = g_utf8_casefold((char*)(a->data),-1);
-       char* tmpb = g_utf8_casefold((char*)(b->data),-1);
-       int result = g_utf8_collate(tmpa,tmpb);
-       g_free(tmpa);
-       g_free(tmpb);
-       return result;
-}
-
-//------------------------------------------------------------------------------
-int read_berkeley_in_string_mode(DB* dbp) {
-       DBT key = { NULL , 0 };
-       DBT val = { NULL , 0 };
-
-       int result = dbp->seq(dbp, &key, &val, R_FIRST);
-       uint count = 1;
-       uint a = 0;
-       uint b = 0;
-       uint c = 0;
-       uint i = 0;
-       uint* t = NULL;
-       while(1 != result) {
-               if(-1 == result) {
-                       printf("---Error! While sequentiall reading database\n");
-                       return 10;
-               };
-               memcpy(&a, val.data, sizeof(uint));
-               t = (uint*)(val.data + sizeof(uint));
-               printf("%4d. word = %-30s [%-2d record(s)] => \n",count, (char*)(key.data), a);
-
-               for(i=0; i < a; ++i) {
-                       b = t[i*2];
-                       c = t[i*2 + 1];
-                       printf("\t%4u.%u. ID = %u [hash = %#x]\n",count,i+1,b,c);
-               }
-               
-               result = dbp->seq(dbp, &key, &val, R_NEXT);
-               ++count;
-       }
-       return 0;
-}
-//------------------------------------------------------------------------------
-int read_berkeley_in_binary_mode(DB* dbp) {
-       DBT key = { NULL , 0 };
-       DBT val = { NULL , 0 };
-
-       uint count = 1;
-       uint a = 0;
-       char* s = NULL;
-       int result = dbp->seq(dbp, &key, &val, R_FIRST);
-       while(1 != result) {
-               if(-1 == result) {
-                       printf("---Error! While sequentiall reading database\n");
-                       return 10;
-               };
-               memcpy(&a, key.data, sizeof(uint));
-               s = (char*) (val.data);
-               if(a == 0) {
-                       uint b = 0;
-                       memcpy(&b , val.data, sizeof(uint));
-                       printf("%4u. ID = %-4u value(freeID)=%u\n",count,a,b);
-               }
-               else {
-                       printf("%4u. ID = %-4u string=\'%s\'\n",count,a,s);
-               }
-
-               result = dbp->seq(dbp, &key, &val, R_NEXT);
-               ++count;
-       }
-       return 0;
-}
-//------------------------------------------------------------------------------
-int berkeley_del_record(DB* dbp,char mode,char* id) {
-       uint a;
-       DBT key = { NULL , 0 };
-       if('s' == mode) {
-               printf("Delete key: %s...",id);
-               key.data = id;
-               key.size = strlen(id) + 1;
-       }
-       else if('b' == mode) {
-               if(1 != sscanf(id,"%u",&a)) {
-                       printf("ID has wrong format - it should be unsigned int!\n");
-                       return 25;
-               };
-               printf("Deleting record with id=%u\n",a);
-               key.size = sizeof(uint);
-               key.data = &a;
-       }
-       else {
-               printf("not supported mode for delete action!\n");
-               return 24;
-       };
-
-       int result = dbp->del(dbp,&key,0);
-       if(1 == result) {
-               printf("... there was no such an element!\n");
-       }
-       else if(-1 == result) {
-               printf("---Error while deleteing record!\n");
-               return 29;
-       }
-       else {
-               printf("... record deleted!\n");
-       }
-
-       return 0;
-}
-//------------------------------------------------------------------------------
-int berkeley_fnd_record(DB* dbp,char mode,char* id) {
-       uint a = 0;
-       DBT key = { NULL , 0 };
-       DBT val = { NULL , 0 };
-       if('s' == mode) {
-               printf("Searching for key: %s...\n",id);
-               key.data = id;
-               key.size = strlen(id) + 1;
-       }
-       else if('b'== mode) {
-               if(1 != sscanf(id,"%u",&a)) {
-                       printf("ID has wrong format - it should be unsigned int!\n");
-                       return 35;
-               };
-               printf("Searching for record with id=%u\n",a);
-               key.size = sizeof(uint);
-               key.data = &a;
-       }
-       else {
-               printf("not supported mode for find action!\n");
-               return 30;
-       };
-
-       int result = dbp->get(dbp,&key,&val,0);
-       if(1 == result) {
-               printf("... there was no such a record\n");
-       }
-       else if(-1 == result) {
-               printf("---Error while searching for the record!\n");
-               return 29;
-       }
-       else {
-               uint* t = NULL;
-               uint b = 0, c = 0, i = 0;
-               char* s = NULL;
-               switch(mode) {
-                       case 's':
-// ------------------------------
-       memcpy(&a, val.data, sizeof(uint));
-       t = (uint*)(val.data + sizeof(uint));
-       printf("Element word = %-30s [%-2d record(s)] => \n", (char*)(key.data), a);
-
-       for(i=0; i < a; ++i) {
-               b = t[i*2];
-               c = t[i*2 + 1];
-               printf("\t%2u. ID = %u [hash = %#xu]\n",i+1,b,c);
-       }
-                       break;
-// ------------------------------
-                       case 'b':
-// ------------------------------
-       s = (char*) (val.data);
-       if(a == 0) {
-               memcpy(&b , val.data, sizeof(uint));
-               printf("Element ID = %-4u value(freeID)=%u\n",a,b);
-       }
-       else {
-               printf("Element ID = %-4u string=\'%s\'\n",a,s);
-       }
-                       break;
-// ------------------------------
-                       default:
-                               printf("Not supported mode!\n");
-                               return 30;
-               }
-       }
-       return 0;
-}
-//------------------------------------------------------------------------------
-int berkeley_fnd_pattern_record(DB* dbp,char mode,char* id) {
-       DBT key = { NULL , 0 };
-       DBT val = { NULL , 0 };
-
-       if('s' == mode) {
-               int result = dbp->seq(dbp, &key, &val, R_FIRST);
-               uint count = 1;
-               uint a = 0;
-               uint b = 0;
-               uint c = 0;
-               uint i = 0;
-               uint* t = NULL;
-               char* tmp = g_utf8_casefold(id,-1);
-               uint len = strlen(tmp);
-       printf("dlugosc: %u\n",len);
-               char* tmp2 = NULL;
-               while(1 != result) {
-                       if(-1 == result) {
-                               printf("---Error! While sequentiall reading database\n");
-                               return 10;
-                       };
-                       tmp2 = g_utf8_casefold((char*)(key.data),len);
-                       if(0 == g_utf8_collate(tmp2,tmp) || len == 0) {
-                               memcpy(&a, val.data, sizeof(uint));
-                               t = (uint*)(val.data + sizeof(uint));
-                               printf("%4d. word = %-30s [%-2d record(s)] => \n",count, (char*)(key.data), a);
-               
-                               for(i=0; i < a; ++i) {
-                                       b = t[i*2];
-                                       c = t[i*2 + 1];
-                                       printf("\t%4u.%u. ID = %u [hash = %#xu]\n",count,i+1,b,c);
-                               }
-                       }
-                       result = dbp->seq(dbp, &key, &val, R_NEXT);
-                       ++count;
-               }
-               free(tmp);
-               return 0;
-       }
-       else {
-               printf("Searching for pattern is not supported in binary mode!");
-               return 65;
-       }
-}
-//------------------------------------------------------------------------------
-int berkeley_del_pattern_record(DB* dbp,char mode,char *id) {
-       DBT key = { NULL , 0 };
-       DBT val = { NULL , 0 };
-
-       if('s' == mode) {
-               int result = dbp->seq(dbp, &key, &val, R_FIRST);
-               uint count = 0;
-               uint a = 0;
-               uint b = 0;
-               uint c = 0;
-               uint i = 0;
-               uint* t = NULL;
-               char* tmp = g_utf8_casefold(id,-1);
-               uint len = strlen(tmp);
-               char* tmp2 = NULL;
-               while(1 != result) {
-                       if(-1 == result) {
-                               printf("---Error! While sequentiall reading database\n");
-                               return 10;
-                       };
-                       tmp2 = g_utf8_casefold((char*)(key.data),len);
-                       if(0 == g_utf8_collate(tmp2,tmp) || len == 0) {
-                               // delete actual record
-
-                               memcpy(&a, val.data, sizeof(uint));
-                               t = (uint*)(val.data + sizeof(uint));
-                               printf("Deleting record %4d. word = %-30s [%-2d record(s)] => \n",count, (char*)(key.data), a);
-               
-                               for(i=0; i < a; ++i) {
-                                       b = t[i*2];
-                                       c = t[i*2 + 1];
-                                       printf("\t%4u.%u. ID = %u [hash = %#xu]\n",count,i+1,b,c);
-                               }
-                               int result = dbp->del(dbp,&key,0);
-                               if(1 == result) {
-                                       printf("---Error find element but could not delete it!\n");
-                               }
-                               else if(-1 == result) {
-                                       printf("---Error while deleteing record!\n");
-                                       return 29;
-                               }
-                               else {
-                                       printf("... record deleted!\n");
-                               }
-                               count++;
-                       }
-                       free(tmp2); tmp2 = NULL;
-                       result = dbp->seq(dbp, &key, &val, R_NEXT);
-               }
-               printf("%u record were deleted totaly.\n",count);
-               free(tmp);
-               return 0;
-       }
-       else {
-               printf("Searching for pattern is not supported in binary mode!");
-               return 65;
-       }
-}
-//------------------------------------------------------------------------------
-int berkeley_add_record(DB* dbp,char mode,char* id, char* value) {
-       DBT key = { NULL , 0 };
-       DBT val = { NULL , 0 };
-       
-       int result = 0;
-       uint a = 0, i = 0, error = 0, b = 0, c = 0;
-       uint* t = NULL;
-       char* tmp = malloc(200);
-       char* tmp_original = tmp;
-       if('s' == mode) {
-               printf("Adding record with key = %s...\n",id);
-               key.data = id;
-               key.size = strlen(id) + 1;
-               while(1) {
-               if(2 != sscanf(value,"%u%[ 0-9]",&a,tmp)) {
-                       result = 43;
-                       break;
-               }
-               val.size = sizeof(uint) * (a*2 + 1);
-               t = (uint*)malloc( val.size );
-               t[0] = a;
-               for(i=0; i< a; ++i) {
-                       if(2 != sscanf(tmp,"%u%[ 0-9]",&b,tmp)) {
-                               error = 1;
-                               break;
-                       };
-                       t[1+i*2] = b;
-                       int n = sscanf(tmp,"%u%[ 0-9]",&b,tmp);
-                       if(( (2 != n) && (i!=(a-1)) ) || ((1!=n) && (i==(a-1)))) {
-                               error = 1;
-                               break;
-                       };
-                       t[1+i*2+1] = b;
-               }
-               if(error) {
-                       printf("Wrong value for string database!\n");
-                       result = 44;
-                       break;
-               }
-               val.data = t;
-               break ;}
-       }
-       else if('b'== mode) {
-               if(1 != sscanf(id,"%u",&a)) {
-                       printf("ID has wrong format - it should be unsigned int!\n");
-                       return 45;
-               };
-               printf("Adding record with id=%u\n",a);
-               key.size = sizeof(uint);
-               key.data = &a;
-               if(0 == a) {
-                       if(1 != sscanf(value,"%u",&c)) {
-                               printf("Value has wrong format for record with ID=0 (freeID - unsinged int)\n");
-                               return 46;
-                       };      
-                       val.size = key.size;
-                       val.data = &c;
-               }
-               else {
-                       val.size = strlen(value) + 1;
-                       val.data = value;
-               }
-       }
-       else {
-               printf("---Not supported mode for add action!\n");
-               return 40;
-       };
-       
-       if(0 != result) {
-               if(t) free(t);
-               free(tmp_original);
-               return result;
-       }
-       
-       result = dbp->put(dbp, &key, &val, R_NOOVERWRITE);
-       if(1 == result) {
-               printf("Such a key already exist in database!\n");
-               result = 41;
-       }
-       else if(-1 == result) {
-               printf("---Error while adding new record!\n");
-               result =  49;
-       }
-       else {
-               printf("New record has been added.\n");
-               if(-1 == dbp->sync(dbp, 0)) {
-                       printf("---Error while saving data to file! Record could be lost.\n");
-                       result = 48;
-               }
-       }
-       if(t) free(t);
-       return result;
-}
-//------------------------------------------------------------------------------
-int main(int argc, char* argv[]) {
-       int help = 0, i = 0;
-       for(i=1;i<argc;++i) {
-               if((0 == strcmp("help",argv[i])) ||
-                  (0 == strcmp("--help",argv[i])) ||
-                  (0 == strcmp("-help",argv[i])) ||
-                  (0 == strcmp("-h",argv[i])) ||
-                  (0 == strcmp("/h",argv[i])) ||
-                  (0 == strcmp("/help",argv[i]))) {
-                       help = 1;
-                       break;
-               }
-       }
-       if((argc < 3) || help) {
-               printf("[Usage: bdbprint s|b file_name.db (action identifier_of_record (optional_value))]\n"
-                      "\tfile_name.db - database to open and print\n"
-                      "\t           s - open in string mode, every key is treated as a string\n"
-                      "\t           b - open in binary mode, every key is treated as a unsigned integer\n"
-                      "\t      action - optional action to do on the base\n"
-                      "\t\t       del - delete record with key=identifier_of_record\n"
-                      "\t\t       add - add new record with key=identifier_of_record\n"
-                      "\t\t       fnd - find record with key=identifier_of_record\n"
-                      "\t\t\t    optional_value - value for add action\n");
-               return 100;
-       };
-
-       char* filename = argv[2];
-       char* _mode = argv[1];
-       if((strlen(_mode) > 1) || ( ('s' != _mode[0]) && ('b' != _mode[0]) )) {
-               printf("Wrong mode! Mode could be only s or b [\'s\' , \'b\']!\n");
-               return 2;
-       }
-       char mode = _mode[0];
-
-       BTREEINFO info = {
-         0,                    /* permit duplicate keys? */
-         0,                    /* cache size; 0 - default size */
-         0,                    /* page size; 0 - default */
-         0,                    /* byte order; 0 - use host order */
-         0,                    /* min page number per page; 0 - default=2 */
-         bm_compare_key_words, /* comparision function */
-         NULL                  /* prefix comparision function */
-       };
-       if('b' == mode) {
-               info.compare = bm_compare_key_trans;
-       }
-       u_int32_t flags = O_CREAT | O_RDWR;
-       DB *dbp = dbopen(filename, flags, 0755, DB_BTREE, &info);
-       if(NULL == dbp) {
-               printf("Could not open database: %s!\n",filename);
-               return 1;
-       };
-
-       int result = 0;
-       if(argc == 3) {
-               printf("Printing database: \'%s\' in mode %s :\n", filename, _mode);
-               if('s' == mode) {
-                       result = read_berkeley_in_string_mode(dbp);
-               }
-               else if('b' == mode) {
-                       result = read_berkeley_in_binary_mode(dbp);
-               }
-       }
-       else if(argc > 3) {
-               printf("Do not print - only action... [mode=%s]\n",_mode);
-               if(argc < 5) {
-                       printf("Wrong number of parameters! probably You did not give id of record for action.\n");
-                       return 21;
-               };
-               char* action = argv[3];
-               if(strcmp(action,"del") == 0) {
-                       if('*' == argv[4][0]) {
-                               result = berkeley_del_pattern_record(dbp,mode,&(argv[4][1]));
-                       }
-                       else {
-                               result = berkeley_del_record(dbp,mode,argv[4]);
-                       }
-               }
-               else if(strcmp(action,"fnd") == 0) {
-                       if('*' == argv[4][0]) {
-                               result = berkeley_fnd_pattern_record(dbp,mode,argv[4]+1);
-                       }
-                       else {
-                               result = berkeley_fnd_record(dbp,mode,argv[4]);
-                       }
-               }
-               else if(strcmp(action,"add") == 0) {
-                       if(argc < 6) {
-                               printf("You did not give value for new record!\n");
-                               return 22;
-                       };
-                       result = berkeley_add_record(dbp,mode,argv[4],argv[5]);
-               }
-               else {
-                       printf("Not supported action: %s! The only good values are: add, del, fnd.\n",action);
-                       result = 20;
-               }
-       }
-
-       dbp->close(dbp);
-       return result;
-}
-//------------------------------------------------------------------------------
diff --git a/src/bookmarks/bdb/src/engine_bookmark.c b/src/bookmarks/bdb/src/engine_bookmark.c
deleted file mode 100755 (executable)
index ea2d31d..0000000
+++ /dev/null
@@ -1,1377 +0,0 @@
-/******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-******************************************************************************/
-/** \addtogroup BookmarkEngine
- */
-/*@{*/
-/** \file engine_bookmark.c
- * \brief Code of bookmark dictionary engine.
- */
-#include "engine_bookmark.h"
-
-#ifndef NOLOGS
-       #include <glib/gstdio.h>
-       #define LOGS g_debug
-#else
-       #define LOGS(frm,...) while(FALSE)
-#endif
-
-
-static gint bm_compare_key_trans(const DBT *a, const DBT *b)
-{
-       guint tmpa;// = (guint*)(a->data);
-       guint tmpb;// = (guint*)(b->data);
-       memcpy(&tmpa, a->data, sizeof(guint));
-       memcpy(&tmpb, b->data, sizeof(guint));
-
-       if(tmpa == tmpb) return 0;
-       if(tmpa  > tmpb) return 1;
-       else return -1;
-}
-
-static gint bm_compare_key_words(const DBT *a, const DBT *b)
-{
-       gchar* tmpa = g_utf8_casefold((gchar*)(a->data),-1);
-       gchar* tmpb = g_utf8_casefold((gchar*)(b->data),-1);
-       gint result = g_utf8_collate(tmpa,tmpb);
-       g_free(tmpa); tmpa = NULL;
-       g_free(tmpb); tmpb = NULL;
-       return result;
-}
-
-static void bm_save_freeID(BookData* data)
-{
-       LOGS("Saveing new freeID=%u...\n",data->freeID);
-       guint temp = 0;
-       DBT key = {     &temp       , sizeof(guint)};
-       DBT val = { &(data->freeID) , sizeof(guint) };
-
-       gint res = data->db_trans->del(data->db_trans, &key, 0);
-       if(-1 == res)
-       {
-               data->last_error = ENGINE_INTERNAL_ERROR;
-               LOGS("Error while trying to delete old freeID!\n");
-               return;
-       }
-       else
-       {
-               LOGS("Old freeID=%u deleted successfully!\n",data->freeID-1);
-       }
-
-       res = data->db_trans->put(data->db_trans, &key, &val, R_NOOVERWRITE);
-       if(-1 == res || 1 == res)
-       {
-               data->last_error = ENGINE_INTERNAL_ERROR;
-               LOGS("Error while trying to write new value for freeID!\n");
-       }
-       else
-       {
-               LOGS("New freeID=%u written successfully!\n",data->freeID);
-       }
-
-       res = data->db_trans->sync(data->db_trans, 0);
-       if(-1 == res || 1 == res)
-       {
-               data->last_error = ENGINE_INTERNAL_ERROR;
-               LOGS("Error while trying to write data to fuile!\n");
-       }
-       else
-       {
-               LOGS("New data saved successfully to file!\n");
-       }       
-}
-
-static void bm_load_freeID(BookData* data)
-{
-       guint temp = 0;
-       DBT key = { &temp , sizeof(guint) };
-       DBT val = { NULL  , 0 };
-
-       gint res = data->db_trans->get(data->db_trans, &key, &val, 0);
-       if(-1 == res)
-       {
-               data->last_error = ENGINE_INTERNAL_ERROR;
-               LOGS("Bookmark/%s->%s() Error while getting access to trans "
-                    "database!",
-                    (gchar*)__FILE__,
-                    (gchar*)__FUNCTION__
-                   );
-       }
-       else if( 1 != res)
-       {
-               memcpy(&(data->freeID), val.data, sizeof(guint));
-               //data->freeID = *((guint*)(val.data));
-               LOGS("Bookmark/%s->%s() Available next free ID is equal = %d",
-                    (gchar*)__FILE__,
-                    (gchar*)__FUNCTION__,
-                    data->freeID
-                   );
-       }
-       else
-       {
-               LOGS("Bookmark/%s->%s() Could not load the minimal, available"
-                    " ID for next record - translation!",
-                    (gchar*)__FILE__,
-                    (gchar*)__FUNCTION__
-                   );
-               data->freeID = 1;
-               data->last_error = ENGINE_INTERNAL_ERROR;
-       }
-}
-
-
-
-gboolean bm_engine_add_word( Engine* engine,
-                             gchar*  word,
-                             gchar*  translation)
-{
-        LOGS("Bookmark/%s->%s() called. Param\nEngine at address: %p\n"
-             "word: %s\ntranslation address: %p\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             engine,
-             word,
-             translation
-            );
-        g_assert(engine != NULL);
-        g_assert(word != NULL);
-        g_assert(translation != NULL);
-
-        /* start bm_timer for this function */
-        /* bm_timer(TIMER_START, (gchar*)(gchar*)__FUNCTION__); */
-
-       gboolean result = TRUE;
-       BookData* data = (BookData*)(engine->engine_data);
-       guint length = strlen(word) + 1;
-       DBT key = { word , length };
-       DBT val = { NULL , 0 };
-               
-
-       gint db_res = data->db_words->get(data->db_words, &key, &val, 0);
-       if ( 0 == db_res )
-       {
-       // there is already entry for this key - check if this translation is in
-       // database - check string hash equality
-               LOGS("Bookmark/%s->%s() updating entry for key: %s",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       (gchar*)(key.data)
-                       );
-
-               guint hash = g_str_hash(translation);
-               guint* values = (guint*)(val.data);
-               guint  N = values[0];
-               memcpy(&N, values, sizeof(guint));
-               guint  i = N;
-               guint  tmp_hash = 0;
-               gboolean exist = FALSE;
-               ++values;
-               while(i--)
-               {
-                       memcpy(&tmp_hash, values + (i*2+1), sizeof(guint));
-                       if( tmp_hash == hash)
-                       {
-                               exist = TRUE;
-                               break;
-                       }
-               }
-               if(!exist)
-               {
-                       LOGS("Bookmark/%s->%s() Adding new translation to "
-                               "already exist word in dictionary.\n",
-                               (gchar*)__FILE__,
-                               (gchar*)__FUNCTION__
-                               );
-                       values = (guint*)(val.data);
-                       guint* tmp = g_malloc(val.size + sizeof(guint)*2);
-                       g_memmove(tmp, values, val.size);
-                       tmp[0]++;
-                       tmp[N*2+1] = data->freeID;
-                       tmp[N*2+2] = hash;
-                       val.data = tmp;
-                       val.size += 2*sizeof(guint);
-                       gint o = data->db_words->del(data->db_words,&key,0);
-                       if(0 != o)
-                       {
-                               LOGS("Bookmark/%s->%s() Error while removing!",
-                                    (gchar*)__FILE__,
-                                    (gchar*)__FUNCTION__
-                                   );                          
-                       }
-                       o = data->db_words->sync(data->db_words, 0);
-                       if(0 != o) {
-                               LOGS("Error while 1st synchronizing file with data!\n");
-                       }
-                       
-                       o = data->db_words->put(data->db_words,
-                                           &key,
-                                           &val,
-                                           R_NOOVERWRITE);
-                       if(0 != o) {
-                               LOGS("Error while putting new info about word!\n");
-                       }
-                       o = data->db_words->sync(data->db_words, 0);
-                       if(0 != o) {
-                               LOGS("Error while 2nd synchronizing file with data!\n");
-                       }
-                       bm_add_only_translation(data,translation,data->freeID);
-                       (data->freeID)++;
-                       bm_save_freeID(data);
-                       if(NULL != tmp) {
-                               g_free(tmp);
-                               tmp = NULL;
-                       }
-               }
-               else
-               {
-                       LOGS("Bookmark/%s->%s() This translation already exist!",
-                               (gchar*)__FILE__,
-                               (gchar*)__FUNCTION__
-                               );
-               }
-       }
-       else if ( 1 == db_res )
-       {
-       // there is no such a key - word in database - create new entry
-               LOGS("Bookmark/%s->%s() adding new entry for key: %s",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       (gchar*)(key.data)
-                       );
-               result = bm_add_new_entry(word,translation,data);
-       }
-       else {
-       // there was an error, while accessing to the database
-               LOGS("Bookmark/%s->%s() Error while trying to add new word: %s",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       (gchar*)(key.data)
-                       );
-               data->last_error = ENGINE_COULDNT_READ;
-               result = FALSE;
-       }
-
-        /* bm_timer(TIMER_STOP, (gchar*)(gchar*)__FUNCTION__); */
-        return result;
-}
-
-static gboolean bm_add_only_translation(BookData* data,
-                                       gchar* translation,
-                                       guint id)
-{
-       DBT key = { &id , sizeof(id) };
-       DBT val = { translation , strlen(translation) + 1 };
-       gint res = data->db_trans->put(data->db_trans,
-                                       &key,
-                                       &val,
-                                       R_NOOVERWRITE);
-       if(-1 == res) {
-               LOGS("Error while adding only translation!\n");
-               return FALSE;
-       }
-       res = data->db_trans->sync(data->db_trans, 0);
-       if(-1 == res) {
-               LOGS("Error while synchronizing file with data\n");
-               return FALSE;
-       }
-       return TRUE;
-}
-
-static gboolean bm_add_new_entry(gchar* word,gchar* translation,BookData* data)
-{
-       guint hash = g_str_hash(translation);
-       gboolean result = TRUE;
-
-       DBT new_key = { &(data->freeID) , sizeof(guint) };
-       DBT new_val = { translation , strlen(translation) + 1};
-       gint db_res = data->db_trans->put(data->db_trans,
-                                         &new_key,
-                                         &new_val,
-                                         R_NOOVERWRITE
-                                        );
-       if(-1 == db_res)
-       {
-               data->last_error = ENGINE_COULDNT_WRITE;
-               result = FALSE;
-       }
-       else
-       {
-               new_key.data = word;
-               new_key.size = strlen(word) + 1;
-
-               // { number of entries , id of the first entry , hash #1 }
-               guint temp[3] = { 1 , data->freeID, hash };
-               new_val.data = temp;
-               new_val.size = sizeof(guint) * 3;
-
-               db_res = data->db_words->put(data->db_words,
-                                            &new_key,
-                                            &new_val,
-                                            R_NOOVERWRITE
-                                           );
-               if(-1 == db_res)
-               {
-                       new_key.data = &(data->freeID);
-                       new_key.size =  sizeof(guint);
-                       data->db_trans->del(data->db_trans, &new_key, 0);
-                       result = FALSE;
-                       data->last_error = ENGINE_INTERNAL_ERROR;
-               }
-               else
-               {
-                       result = TRUE;
-                       (data->freeID)++;
-                       bm_save_freeID(data);
-               }
-       }
-       db_res = data->db_words->sync(data->db_words,0);
-       db_res |= data->db_trans->sync(data->db_trans,0);
-       if(0 == db_res)
-       {
-               LOGS("Bookmark/%s->%s() adding new bookmark successful.\n",
-                     (gchar*)__FILE__,(gchar*)__FUNCTION__);
-       }
-       else
-       {
-               LOGS("Bookmark/%s->%s() adding new bookmark failed.\n",
-                     (gchar*)__FILE__,(gchar*)__FUNCTION__);
-       }
-       return result;  
-}
-
-gboolean bm_engine_remove_word(Engine* engine,
-                             gchar*  word)
-{
-        gboolean result = TRUE;
-
-        LOGS("Bookmark/%s->%s() called. Param\nEngine at address: %p\n"
-             "word: %s\n",(gchar*)__FILE__,(gchar*)__FUNCTION__,engine,word);
-        g_assert(engine != NULL);
-        g_assert(word != NULL);
-        /* bm_timer(TIMER_START, (gchar*)(gchar*)__FUNCTION__); */
-
-        BookData* data = (BookData*)(engine->engine_data);
-
-       DBT key = { word , strlen(word) + 1 };
-       DBT val = { NULL , 0 };
-               
-       gint db_res = data->db_words->get(data->db_words, &key, &val, 0);
-       if ( 0 == db_res )
-       {
-               guint* t = (guint*)(val.data);
-               guint  N = t[0];
-               guint  id = 0;
-               memcpy(&N, t, sizeof(guint));
-               ++t;
-               guint  i = 0;
-               key.size = sizeof(guint);
-               key.data = &id;
-               while( i < N ) {
-                       memcpy(&id, t + i*2, sizeof(guint));
-                       db_res = data->db_trans->del(data->db_trans, &key, 0);
-                       if(0 != db_res) {
-                               LOGS("Error while removing translation # %u for word: %s",i+1,word);
-                       }
-                       ++i;
-               }
-       }
-       else if( -1 == db_res) {
-               LOGS("Bookmark/%s->%s() Error while removing word: %s!",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       word
-                       );
-               return FALSE;
-       }
-       else {
-               LOGS("Bookmark/%s->%s() Ther is no such a word!",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__
-                       );
-               return TRUE;
-       };
-
-       // all data from trnaslation database has been deleted - now delete
-       // record in words database.
-
-       DBT key_del = { word , strlen(word) + 1 };
-       db_res = data->db_words->del(data->db_words,&key_del,0);
-       if(-1 == db_res)
-       {
-               LOGS("Bookmark/%s->%s() Error while removing!\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__
-                       );                              
-       }
-       else if(1 == db_res)
-       {
-               LOGS("Bookmark/%s->%s() There is no such a word!\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__
-                       );
-       }
-       else if(0 == db_res)
-       {
-               LOGS("Bookmark/%s->%s() word deleted successfully!\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__
-                       );
-       }
-       db_res = data->db_words->sync(data->db_words, 0);
-
-       if((0 != db_res) || (NULL == data->db_words) || (NULL == data->db_trans)) {
-               LOGS("Error while 2nd synchronizing file with data!\n");
-       }
-
-
-        /* bm_timer(TIMER_STOP, (gchar*)(gchar*)__FUNCTION__); */
-        LOGS("Bookmark/%s->%s() finished work.\n",
-                (gchar*)__FILE__,
-                (gchar*)__FUNCTION__
-               );
-        return result;
-}
-
-gchar* bm_engine_get_lang_from(Engine* engine)
-{
-        LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-        gchar* result = g_strdup("any");
-        LOGS("Bookmark/%s->%s() return string=%s\n",
-                (gchar*)__FILE__,
-                (gchar*)__FUNCTION__,
-                result
-               );
-        return result;
-}
-
-gchar* bm_engine_get_lang_to(Engine* engine)
-{
-        LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-        gchar* result = g_strdup("any");
-        LOGS("Bookmark/%s->%s() return string=%s\n",
-                (gchar*)__FILE__,
-                (gchar*)__FUNCTION__,
-                result
-               );
-        return result;
-}
-
-gchar* bm_engine_get_title(Engine* engine)
-{
-        LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-        gchar* result = g_strconcat(g_get_user_name(),"s' bookmarks",NULL);
-        LOGS("Bookmark/%s->%s() return string=%s\n",
-                (gchar*)__FILE__,
-                (gchar*)__FUNCTION__,
-                result
-               );
-        return result;
-}
-
-gchar* bm_engine_get_icon_path(Engine* engine)
-{
-        LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-        gchar* result = g_strdup("/usr/share/pixmaps/ws_eng_bookmark_icon.png");
-        LOGS("Bookmark/%s->%s() return string=%s\n",
-                (gchar*)__FILE__,
-                (gchar*)__FUNCTION__,
-                result
-               );
-        return result;
-}
-
-void bm_engine_search_word_translation(Engine* engine,
-                                       gchar* word,
-                                       gpointer cb_data)
-{
-        LOGS("Bookmark/%s->%s() called.\n-->PARAM:engine at adress=%p\n"
-             "-->PARAM:word=\'%s\'\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             engine,
-             word
-            );
-        g_assert(engine != NULL);
-        g_assert(word != NULL);
-        // start bm_timer for this function
-        /* bm_timer(TIMER_START, (gchar*)(gchar*)__FUNCTION__); */
-       BookData* data = (BookData*)(engine->engine_data);
-
-       gchar* down_word = g_utf8_strdown(word,-1);
-       DBT search = { down_word , strlen(down_word) + 1 };
-       DBT info   = {    NULL   ,        0              };
-       DBT trans  = {    NULL   ,        0              };
-       gchar* tran = NULL;
-       gchar* tran_ = NULL;
-
-       gint tmp = data->db_words->get(data->db_words, &search, &info, 0);
-       if(0 == tmp)
-       {
-               // plugin found some information about this word
-               
-               guint* records = (guint*)(info.data);
-               guint count = records[0];
-               memcpy(&count, records, sizeof(guint));
-               //printf("Buffer (memcpy): %#x-%#x-%#x\n",count,records[1],records[2]);
-               ++records;
-               guint id = 0;
-               search.data = &id;
-               search.size = sizeof(guint);
-               
-               while(count-- > 0 && count < 100)
-               {
-                       //printf("--> LOOP:count = %#x\n",count);
-                       memcpy(search.data, records, sizeof(guint));
-                       records += 2;
-                       tmp = data->db_trans->get(data->db_trans, &search, &trans, 0);
-                       if(0 == tmp)
-                       {
-                               if(NULL == tran)
-                               {
-                                       tran = g_strdup(trans.data);
-                               }
-                               else
-                               {
-                                       tran_ = 
-                                       g_strconcat(tran,"<br />",trans.data,NULL);
-                                       g_free(tran);
-                                       tran = tran_;
-                                       tran_ = NULL;
-                               }
-                       }
-               }
-       };
-       g_free(down_word);
-        /* bm_timer(TIMER_STOP,(gchar*)(gchar*)__FUNCTION__);
-        bm_timer(TIMER_START,"callback for returning word's translation START");
-       */
-        // calling callback for word translation
-
-       if ( NULL == cb_data )
-       {
-               cb_data = data->cb_search_word_trans_data;
-       }
-        data->cb_search_word_trans(tran, word, cb_data, ENGINE_NO_ERROR);
-               
-        /* bm_timer(TIMER_STOP,"callback for returning word's translation END");
-       */
-//         if(data->auto_free) {
-//                 LOGS("Bookmark/%s->%s() deleting all dynamic data because "
-//                      "AUTO_FREE=TRUE\n",
-//                      (gchar*)__FILE__,
-//                      (gchar*)__FUNCTION__
-//                     );
-//                 g_free(tran);
-//         }
-       g_free(tran);
-        tran = NULL;
-}
-
-void bm_engine_close(Engine* engine)
-{
-        LOGS("Bookmark/%s->%s() called.\n-->PARAM: engine adress=%p\n",
-                (gchar*)__FILE__,
-                (gchar*)__FUNCTION__,
-                engine);
-        g_assert(engine != NULL);
-
-        BookData* data = (BookData*)(engine->engine_data);
-        data->db_words->close(data->db_words);
-       data->db_trans->close(data->db_trans);
-
-        LOGS("Bookmark/%s->%s() engine at adress=%p is deleted.\n",
-                (gchar*)__FILE__,
-                (gchar*)__FUNCTION__,
-                engine);
-       g_free(data->dict_path); 
-       g_free(data);
-       data = NULL;
-        g_free(engine);
-        engine = NULL;
-}
-
-Engine* bm_engine_create(gchar* location,
-                      EngineOptimizationFlag auto_cache,
-                      cb_progress progress_handler,
-                      gpointer progress_data,
-                      gdouble seed)
-{
-        LOGS("Bookmark/%s->%s() called.\n"
-             "-->PARAM:location=\'%s\'\n"
-             "-->PARAM:auto_cache=%d\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             location,
-             (guint)auto_cache
-            );
-        /* bm_timer(TIMER_START,(gchar*)(gchar*)__FUNCTION__); */
-
-        gchar* tmp = g_strdup(location);
-        string_to_path(&tmp);
-
-        Engine* result = (Engine*)g_try_malloc(sizeof(Engine));
-        result->engine_location = bm_engine_location;
-        result->engine_is_optimized = bm_engine_is_optimized;
-        result->engine_optimize = bm_engine_optimize;
-        result->engine_search_word_list = bm_engine_search_word_list;
-        result->engine_search_word_translation = 
-                        bm_engine_search_word_translation;        
-        result->engine_close = bm_engine_close;
-        result->engine_status = bm_engine_status;
-        result->engine_status_message = bm_engine_status_message;
-        result->engine_set_callback = bm_engine_set_callback;
-        result->engine_set_progress_seed = bm_engine_set_progress_seed;
-        result->engine_set_auto_free = bm_engine_set_auto_free;
-        // 0.2 API:
-        result->engine_add_word = bm_engine_add_word;
-        result->engine_remove_word = bm_engine_remove_word;
-        result->engine_get_lang_from = bm_engine_get_lang_from;
-        result->engine_get_lang_to = bm_engine_get_lang_to;
-        result->engine_get_title = bm_engine_get_title;
-        result->engine_get_icon_path = bm_engine_get_icon_path;
-
-
-        BookData* data = (BookData*)g_try_malloc(sizeof(BookData));
-        result->engine_data = (gpointer)data;
-
-        LOGS("Bookmark/%s->%s() opening file...\'%s\'.\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             location
-            );
-
-       u_int32_t flags = O_CREAT | O_RDWR;
-        gchar* tmp_w = g_strconcat(tmp,"/bm_words.db",NULL);
-       gchar* tmp_t = g_strconcat(tmp,"/bm_trans.db",NULL);
-
-       BTREEINFO inf = {
-         0,            /* permit duplicate keys? */
-         0,                    /* cache size; 0 - default size */
-         0,                    /* page size; 0 - default */
-         0,                    /* byte order; 0 - use host order */
-         0,                    /* min page number per page; 0 - default=2 */
-         bm_compare_key_words, /* comparision function */
-         NULL                  /* prefix comparision function */
-       };
-       data->info_words = inf;
-       inf.compare = bm_compare_key_trans;
-       data->info_trans = inf;
-
-        data->db_words = 
-               dbopen(tmp_w,       /* On-disk file that holds the database. */
-                      flags,       /* flags, like O_CREAT etc. */
-                      0755,        /* mode same as flags <hmmm> ? */
-                      DB_BTREE,    /* type */
-                      &(data->info_words)
-                     );
-        if(data->db_words == NULL)
-       {
-                g_free(data);
-                g_free(result);
-                result = NULL;
-        }
-       else {
-               data->db_trans = 
-                       dbopen(tmp_t,
-                       flags,
-                       0755,
-                       DB_BTREE,
-                       &(data->info_trans)
-                       );
-
-               if(data->db_trans == NULL)
-               {
-                       data->db_words->close(data->db_words);
-                       g_free(data);
-                       g_free(result);
-                       result = NULL;
-               }
-
-       }
-        g_free(tmp_w); tmp_w = NULL;
-       g_free(tmp_t); tmp_t = NULL;
-        if(result == NULL) {
-                LOGS("Bookmark/%s->%s() opening bookmark file failed.\n",
-                     (gchar*)__FILE__,
-                     (gchar*)__FUNCTION__
-                    );
-        }
-        else {
-                LOGS("Bookmark/%s->%s()opening dictionary file successed.\n",
-                        (gchar*)__FILE__,
-                        (gchar*)__FUNCTION__
-                       );
-                data->dict_path = g_strdup(tmp);
-                data->cb_progress_caching = progress_handler;
-                data->cb_progress_caching_data = progress_data;        
-                data->cb_progress_caching_seed = seed;        
-                data->cb_progress_word_list = NULL;
-                data->cb_progress_word_list_data = NULL;
-                data->cb_progress_word_list_seed = 0.01;
-                data->cb_progress_word_trans = NULL;
-                data->cb_progress_word_trans_data = NULL;
-                data->cb_progress_word_trans_seed = 0.01;
-
-                data->cb_search_word_list = NULL;
-                data->cb_search_word_list_data = NULL;
-
-                data->cb_search_word_trans = NULL;
-                data->cb_search_word_trans_data = NULL;
-
-                data->auto_free = FALSE;
-
-               bm_load_freeID(data);
-
-        }
-        g_free(tmp); tmp = NULL;
-        
-        /* bm_timer(TIMER_STOP,(gchar*)(gchar*)__FUNCTION__); */
-        LOGS("Bookmark/%s->%s() returned Engine at adress=%p\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             result
-            );
-        return result;
-}
-
-
-static gboolean is_Bookmark_db_file(gchar* file)
-{
-        LOGS("Bookmark/%s->%s() called.\n\
-                 -->PARAM:file=\'%s\'\n",
-                 (gchar*)__FILE__,
-                 (gchar*)__FUNCTION__,
-                 file
-               );
-
-       u_int32_t flags = O_RDWR;
-       DB* dbp = dbopen(file,flags,0755,DB_BTREE,NULL);
-
-        if(NULL == dbp) 
-       {
-               LOGS("Could no open! Wrong database! Not a bookmark.\n");
-                return FALSE;
-        };
-       
-       DBT search = {"four",sizeof("four")};
-       DBT result = {NULL, 0};
-
-       int errCode = dbp->get(dbp,&search,&result,0);
-       dbp->close(dbp);
-       g_free(result.data);
-
-       if(-1 == errCode)
-       {
-                LOGS("Could not read! Wrong database! Not a bookmark.\n");
-                return FALSE;
-        };
-        return TRUE;
-}
-
-
-void bm_engine_optimize(Engine* engine)
-{
-        LOGS("Bookmark/%s->%s() called for engine at adress=%p\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             engine
-            );
-        LOGS("Unsupported optimization mechanizm for this engine!\n");
-        LOGS("Bookmark/%s->%s()'s work finished.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-}
-
-gboolean bm_engine_check(gchar* location) 
-{
-        LOGS("Bookmark/%s->%s() called.\n-->PARAM:location=\'%s\'\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             location
-            );
-        /* bm_timer(TIMER_START,(gchar*)(gchar*)__FUNCTION__); */
-        gboolean result = TRUE;
-        gchar* filepath = g_strdup(location);
-        gchar* tmp = NULL;
-       gchar* tmp2 = NULL;
-
-        string_to_path(&filepath);
-        if (filepath == NULL) {
-                result = FALSE;
-                LOGS("Bookmark/%s->%s() location \'%s\' is not a proper "
-                     "path!\n",
-                     (gchar*)__FILE__,
-                     (gchar*)__FUNCTION__,
-                     location
-                    );
-        }
-        else
-       {
-                tmp = g_strconcat(filepath,"/bm_words.db",NULL);
-               tmp2 = g_strconcat(filepath,"/bm_trans.db",NULL);
-                g_free(filepath);
-                filepath = tmp;
-                tmp = NULL;
-
-                LOGS("Bookmark/%s->%s() finnal file to check is: %s\n",
-                     (gchar*)__FILE__,
-                     (gchar*)__FUNCTION__,
-                     filepath
-                    );
-                if (!g_file_test(filepath, G_FILE_TEST_IS_REGULAR) || 
-                   !g_file_test(tmp2, G_FILE_TEST_IS_REGULAR) 
-                  ) {
-                        LOGS("Bookmark/%s->%s() file \'%s\' does not exists!\n",
-                             (gchar*)__FILE__,
-                             (gchar*)__FUNCTION__,
-                             filepath
-                            );
-                        result = FALSE;
-                };
-        };
-        if (result != FALSE) {
-                result = is_Bookmark_db_file(filepath) & 
-                        is_Bookmark_db_file(tmp2);
-        };
-
-        g_free(filepath);  filepath = NULL;
-       g_free(tmp2);      tmp2 = NULL;
-        /* bm_timer(TIMER_STOP,(gchar*)(gchar*)__FUNCTION__); */
-        LOGS("Bookmark/%s->%s() returned bool statement=%s.\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             PRINT_STATE(result)
-            );
-        return result;
-}
-
-gboolean bm_engine_is_optimized(Engine* engine) 
-{
-        LOGS("Bookmark/%s->%s() called.\n-->PARAM: engine adress=%p\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             engine
-            );
-        g_assert(engine != NULL);
-        gboolean result = FALSE;
-        LOGS("Bookmark/%s->%s() returned bool statement=%s.\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             PRINT_STATE(result)
-            );
-        return result;
-}
-
-void bm_engine_search_word_list(Engine* engine,
-                                gchar* pattern,
-                                gpointer cb_data)
-{
-        LOGS("Bookmark/%s->%s() called. Searching words list\n"
-             "-->PARAM:engine at adress=%p\n"
-             "-->PARAM:pattern=\"%s\"\n",
-             (gchar*)__FILE__,
-             (gchar*)__FUNCTION__,
-             engine,
-             pattern
-            );
-        g_assert(engine != NULL);
-        g_assert(pattern != NULL);
-
-        /* bm_timer(TIMER_START,(gchar*)(gchar*)__FUNCTION__); */
-        BookData* data = (BookData*)(engine->engine_data);
-        if(data->cb_search_word_list == NULL) {
-                LOGS("Bookmark/%s->%s() callback for Word List not set. "
-                     "Searching aborted.\n",
-                     (gchar*)__FILE__,
-                     (gchar*)__FUNCTION__
-                    );
-                /* bm_timer(TIMER_STOP,(gchar*)(gchar*)__FUNCTION__); */
-                return;
-        };
-
-       GArray* result = g_array_new(TRUE, TRUE, sizeof(gchar*) );
-       guint a = G_MAXUINT32;
-       DBT search = { &a , sizeof(a) };
-       DBT reply  = { NULL , 0 };
-       gchar* down_word = NULL;
-       gchar *tmp;
-       
-       GPatternSpec* regex;
-       regex = g_pattern_spec_new (g_utf8_casefold(pattern,-1));
-
-       gint code = data->db_words->sync(data->db_words, 0);
-       code = data->db_words->seq(data->db_words, &search, &reply, R_FIRST);
-       
-/*
-       if((('*' == pattern[0]) && ('\0' == pattern[1])) || ('\0' == pattern[0]))
-       {
-               // especiall treat if user give only '*'
-               while(0 == code) {
-                       gchar* cos = g_strdup(search.data);
-                       g_array_append_val(result,cos);
-                       code = data->db_words->seq(data->db_words, &search, &reply, R_NEXT);
-                       // we are giving to the user all words from dictionary
-               }
-       }
-       else
-       {*/
-       while(0 == code) {
-               tmp = g_strconcat ((gchar*)(search.data), " ", NULL);
-               down_word = g_utf8_casefold(tmp,-1);
-               g_free (tmp);
-               tmp = g_utf8_casefold ((gchar*)(search.data),-1);
-               
-               if(( g_pattern_match_string( regex, down_word ) == TRUE ) ||
-                       ( g_pattern_match_string( regex, tmp ) == TRUE ))
-               {
-                       g_free (tmp);
-                       tmp = g_strdup(search.data);
-                       g_array_append_val(result, tmp );
-               };
-
-               /* eg_free(reply.data); */
-               if(NULL != down_word)
-               {
-                       g_free(down_word);
-                       down_word = NULL;
-               }
-               code = data->db_words->seq(data->db_words, &search, &reply, R_NEXT);
-       }
-       
-        /* bm_timer(TIMER_STOP,(gchar*)(gchar*)__FUNCTION__); */
-       g_pattern_spec_free (regex);
-
-
-        /* bm_timer(TIMER_START,"callback for returning words LIST START"); */
-        // calling callback for word translation
-
-       if ( NULL == cb_data )
-       {
-               cb_data = data->cb_search_word_list_data;
-       }
-        data->cb_search_word_list(result, pattern, cb_data, ENGINE_NO_ERROR);
-
-
-       /* if(data->auto_free) {
-                LOGS("Bookmark/%s->%s() deleting all dynamic data because "
-                     "AUTO_FREE=TRUE\n",
-                     (gchar*)__FILE__,
-                     (gchar*)__FUNCTION__
-                    );
-               len = 0;
-               while(NULL != (tmp = g_array_index(result,gchar*,len++)))
-               {
-                       g_free(tmp); tmp = NULL;
-               }
-               g_array_free(result, TRUE);
-        }*/
-       guint len = 0;
-       
-       while(NULL != (tmp = g_array_index(result,gchar*,len++)))
-       {
-               g_free(tmp); tmp = NULL;
-       }
-       g_array_free(result, TRUE);
-       /* bm_timer(TIMER_STOP,"callback for returning word LIST END"); */
-}
-
-EngineModule engine_global_functions()
-{
-       LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-       EngineModule result;        
-       result.engine_check             = bm_engine_check;
-       result.engine_description       = bm_engine_description;
-       result.engine_format            = bm_engine_format;
-       result.engine_version           = bm_engine_version;
-       result.engine_create            = bm_engine_create;
-       LOGS("Bookmark/%s->%s()returned EngineModule at adress=%p.\n",
-            (gchar*)__FILE__,
-            (gchar*)__FUNCTION__,
-             &result
-           );
-       return result;
-}
-
-gchar* bm_engine_status_message(EngineStatus error) 
-{
-       LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-       switch (error) {
-               case ENGINE_NO_ERROR:
-                       return "No error.";
-               case ENGINE_WRONG_FILE:
-                       return "File which You are trying to use is wrong type.";
-               case ENGINE_COULDNT_READ:
-                       return "Could not read from file.";
-               case ENGINE_NO_FILE:
-                       return "There is no such a file.";
-               case ENGINE_OUT_OF_MEMORY:
-                       return "There were no enough memory for this action.";
-               default:
-                       return "Wrong engine's status identifier!";
-       }
-}
-
-gchar* bm_engine_version() 
-{
-       LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-       gchar* result = g_strdup(DIC_ENG_VERSION);
-       LOGS("Bookmark/%s->%s() return string=%s\n",
-               (gchar*)__FILE__,
-               (gchar*)__FUNCTION__,
-               result
-              );
-       return result;
-}
-
-gchar* bm_engine_format() 
-{
-       LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-       gchar* result = g_strdup(DIC_ENG_FORMAT);
-       LOGS("Bookmark/%s->%s() return string=%s\n",
-            (gchar*)__FILE__,
-            (gchar*)__FUNCTION__,
-            result
-           );
-       return result;
-}
-
-gchar* bm_engine_description() 
-{
-       LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-       gchar* result = g_strdup(DIC_ENG_DESCRIPTION);
-       LOGS("Bookmark/%s->%s() return string=%s\n",
-            (gchar*)__FILE__,
-            (gchar*)__FUNCTION__,
-            result
-           );
-       return result;
-}
-
-gchar* bm_engine_location(Engine* engine)
-{
-       LOGS("Bookmark/%s->%s() called.\n-->PARAM: engine adress=%p\n",
-            (gchar*)__FILE__,
-            (gchar*)__FUNCTION__,
-            engine
-           );
-       g_assert(engine != NULL);
-       BookData* data = (BookData*)(engine->engine_data);
-       gchar* result;
-       if(data->auto_free) {
-               result = data->dict_path;
-       }
-       else {
-               result = g_strdup(data->dict_path);
-       }
-
-       LOGS("Bookmark/%s->%s() returned string=%s\n",
-            (gchar*)__FILE__,
-            (gchar*)__FUNCTION__,
-            result
-           );
-       return result;
-}
-
-void bm_engine_set_auto_free(Engine* engine, gboolean state) 
-{
-       LOGS("Bookmark/%s->%s() called.\n"
-            "-->PARAM:engine at adress=%p\n"
-            "-->PARAM:state=%s\n",
-            (gchar*)__FILE__,
-            (gchar*)__FUNCTION__,
-            engine,
-            PRINT_STATE(state)
-           );
-       g_assert(engine != NULL);
-       BookData* data = (BookData*)(engine->engine_data);
-        
-       data->auto_free = state;
-       LOGS("Bookmark/%s->%s() Current auto_free is %s\n",
-            (gchar*)__FILE__,
-            (gchar*)__FUNCTION__,
-            PRINT_STATE(data->auto_free)
-           );
-}
-
-EngineStatus bm_engine_status(Engine* engine) 
-{
-       LOGS("Bookmark/%s->%s() called.\n"
-               "-->PARAM:engine at adress=%p\n",
-               (gchar*)__FILE__,
-               (gchar*)__FUNCTION__,
-              engine
-              );
-       BookData* data = (BookData*)(engine->engine_data);
-       LOGS("Bookmark/%s->%s() returned error code: %d\n",
-            (gchar*)__FILE__,
-            (gchar*)__FUNCTION__,
-            (gint)(data->last_error)
-           );
-       return data->last_error;
-}
-
-void bm_engine_set_progress_seed(Engine* engine, gchar* signal, gdouble seed) {
-       LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-       BookData* data = (BookData*)(engine->engine_data);
-       if(g_ascii_strcasecmp(signal,ENGINE_PROGRESS_OPTIMIZING_SIGNAL) == 0)  {
-               data->cb_progress_caching_seed = seed;
-               LOGS("Bookmark/%s->%s() sets new seed=%0.2f for for signal "
-                    "\"%s\".\n",
-                    (gchar*)__FILE__,
-                    (gchar*)__FUNCTION__,
-                    seed,
-                    signal
-                   );        
-       } 
-       else {
-               LOGS("Bookmark/%s->%s() unsupported signalfor progress: %s.\n",
-                    (gchar*)__FILE__,
-                    (gchar*)__FUNCTION__,
-                    signal
-                   );
-       };
-}
-
-gpointer bm_engine_set_callback(Engine* engine,
-                            gchar* signal,
-                            gpointer c_handler,
-                            gpointer user_data)
-{
-       LOGS("Bookmark/%s->%s() called.\n",(gchar*)__FILE__,(gchar*)__FUNCTION__);
-       g_assert(engine != NULL);
-       g_assert(signal != NULL);
-       g_assert(c_handler != NULL);
-       BookData* data = (BookData*)(engine->engine_data);
-       if(g_ascii_strcasecmp(signal,ENGINE_PROGRESS_OPTIMIZING_SIGNAL) == 0)  {
-               gpointer result = data->cb_progress_caching;
-               data->cb_progress_caching = c_handler;
-               data->cb_progress_caching_data = user_data;
-               LOGS("Bookmark/%s->%s() sets handler for signal \"%s\".\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       signal
-                      );
-               LOGS("Bookmark/%s->%s() Function at adress =  %d.\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       (guint)c_handler
-                      );
-               LOGS("Bookmark/%s->%s()     Data at adress =  %d.\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       (guint)user_data
-                      );
-               return result;                
-       }
-       else if(g_ascii_strcasecmp(signal, ENGINE_WORD_LIST_SIGNAL) == 0) {
-               gpointer result = data->cb_search_word_list;
-               data->cb_search_word_list = c_handler;
-               data->cb_search_word_list_data = user_data;
-               LOGS("Bookmark/%s->%s() sets handler for signal \"%s\".\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       signal
-                      );
-               LOGS("Bookmark/%s->%s() Function at adress =  %d.\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       (guint)c_handler
-                      );
-               LOGS("Bookmark/%s->%s()     Data at adress =  %d.\n",
-                       (gchar*)__FILE__,
-                       (gchar*)__FUNCTION__,
-                       (guint)user_data
-                      );
-               return result;                        
-       }
-       else if(g_ascii_strcasecmp(signal,
-               ENGINE_WORD_TRANSLATION_SIGNAL) == 0)  {
-                       gpointer result = data->cb_search_word_trans;
-                       data->cb_search_word_trans = c_handler;
-                       data->cb_search_word_trans_data = user_data;
-                       LOGS("Bookmark/%s->%s() sets handler for signal \"%s\".\n",
-                               (gchar*)__FILE__,
-                               (gchar*)__FUNCTION__,
-                               signal
-                              );
-                       LOGS("Bookmark/%s->%s() Function at adress =  %d.\n",
-                               (gchar*)__FILE__,
-                               (gchar*)__FUNCTION__,
-                               (guint)c_handler
-                              );
-                       LOGS("Bookmark/%s->%s()     Data at adress =  %d.\n",
-                               (gchar*)__FILE__,
-                               (gchar*)__FUNCTION__,
-                               (guint)user_data
-                              );
-                       return result;                        
-               }
-               else {
-                       g_warning("Bookmark/%s->%s() unsupported signal: %s.\n",
-                                 (gchar*)__FILE__,
-                                 (gchar*)__FUNCTION__,
-                                 signal
-                                );
-                       return NULL;
-               }
-}
-/**
-* Translate given string to proper full file path. Function works "in-situ".
-* It means that string is translated and replaced by proper full file path if
-* this file path exists, or this string is cleared and setted to NULL, if string
-* was representing wrong path. This function is static - to use only 
-* within this module.
-*
-* @param string pointer to to string 
-*       representing file path - it will be replaced by a proper filepath.
-*       It should be path to directory or file, ended with "/" or not, absolute 
-*       or not
-* @return pointer to new full file path, it is the same
-*       as string[0] in fact and it is returned only for abillity of nesting of
-* functions by pointer to string identyfying full file path
-*/
-static gchar* string_to_path(gchar** string) {
-       g_debug("XDXF/%s->%s() called.\n"
-               "-->PARAM:string=\'%s\'\n",
-               __FILE__,
-               __FUNCTION__,
-               string[0] );
-       gchar* arg = string[0];
-       gchar* new = NULL;
-
-       /* cleaning from leading and trailing whitespaces */
-       g_strstrip(arg);
-
-       /* add current directory if this is not absolute directory */
-       if (!g_path_is_absolute(arg))
-       {
-               gchar* tmp = g_get_current_dir();
-               new = g_strconcat(tmp,"/",arg,NULL);
-               g_free(arg); arg = new; new = NULL;
-       };
-
-       /* this is not a directory */
-       if (!g_file_test(arg, G_FILE_TEST_IS_DIR))
-       {
-               /* if this is wrong filepath, string was wrong */
-               if (!g_file_test(arg, G_FILE_TEST_IS_REGULAR))
-               {
-                       g_free(arg);
-                       new = NULL;
-               }
-               else
-               {
-                       /* if this is a file, remove filename */
-                       new = g_path_get_dirname (arg);
-                       g_free(arg);
-               }
-       }
-       else
-       {
-               /* this is a directory ... */
-               /* remove suffix "/" if neded... */
-               if (g_str_has_suffix(arg,"/") )
-               {
-                       new = g_path_get_dirname (arg);
-                       g_free(arg);
-               }
-               else
-               {
-                       new = arg;
-               }
-       };
-
-       /* now in new should be proper filepath, if not, string was wrong */
-       if (!g_file_test(new, G_FILE_TEST_IS_DIR))
-       {
-               /* if that directory does not exist, passed string wasn't proper
-                */
-               g_free(new);
-               new = NULL;
-       };
-
-       /* replace string under passed address */
-       string[0] = new;
-       g_debug("XDXF/%s->%s() returned string=\'%s\'\n",
-                __FILE__,
-                __FUNCTION__,
-                string[0] );
-       return new;
-}
-
-/*
-static double bm_timer(gboolean start, gchar* message)
-{
-       static GArray* stack = NULL;
-       static gboolean first_run = TRUE;
-       static struct timeval actual_time;
-       static struct timeval last_time;
-       static struct timeval result;
-       static double seconds = 0.0;
-       if(first_run) {
-               first_run = FALSE;
-               stack = g_array_new(TRUE, TRUE, sizeof(struct timeval));
-       };
-
-       if (start) {
-               LOGS("Bookmark->%s() start bm_timer for function '%s()'.\n",
-                       (gchar*)__FUNCTION__,
-                       message
-                      );
-               g_array_prepend_val(stack, actual_time);
-               gettimeofday(&g_array_index(stack, struct timeval, 0),NULL);
-               return -1.0;
-       }
-       else
-       {
-               gettimeofday(&actual_time,NULL);
-               last_time = g_array_index(stack, struct timeval, 0);
-               g_array_remove_index(stack, 0);
-
-               if (actual_time.tv_usec < last_time.tv_usec) {
-                       int nsec = (last_time.tv_usec - actual_time.tv_usec) / 
-                                       (1000000 + 1);
-                       last_time.tv_usec -= 1000000 * nsec;
-                       last_time.tv_sec += nsec;
-               }
-               if (actual_time.tv_usec - last_time.tv_usec > 1000000) {
-                       int nsec = (last_time.tv_usec - actual_time.tv_usec) / 
-                                       1000000;
-                       last_time.tv_usec += 1000000 * nsec;
-                       last_time.tv_sec -= nsec;
-               }
-               result.tv_sec = actual_time.tv_sec - last_time.tv_sec;
-               result.tv_usec = actual_time.tv_usec - last_time.tv_usec;
-               seconds = (((double)(result.tv_usec)) / 1e6) +
-                          ((double)(result.tv_sec));
-
-               LOGS("Bookmark->%s() function \'%s()\' was working for: %g "
-                    "[s] or %ld [us].\n",
-                    (gchar*)__FUNCTION__,
-                    message,
-                    seconds,
-                    ((long)(result.tv_sec*1e6)+(result.tv_usec)) );
-               if(stack->len == 0)
-               {
-                       g_array_free(stack, TRUE);
-                       first_run = TRUE;
-               }
-       }
-       return seconds;
-}
-*/
diff --git a/src/bookmarks/bdb/src/test.c b/src/bookmarks/bdb/src/test.c
deleted file mode 100755 (executable)
index e390203..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-#include <gmodule.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <dictionary_engine.h>
-
-
-getting_additional get_functions; // additinal functions for concrete module (e.g. XDXF)
-
-void print_list(GArray* list, gchar* pattern, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,pattern);
-       int i = 0;
-       while(g_array_index(list, gchar*, i) != NULL) 
-       {
-               printf("  %d. : %s\n",i+1,g_array_index(list, gchar*, i));
-               i++;
-       }
-        printf("--------------------------------------------------\n");
-}
-
-void print_translation(gchar* translation, gchar* word, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,word);
-       printf("%s\nTRANSLATION ENDS.\n",translation);
-}
-
-void caching_progress(gdouble value, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,value);
-}
-
-int main(int argc, char** argv) 
-{
-       char* nameApp = "BerkeleyDB Bookmark Engine test: ";
-       printf("%sStarting test program of module: dictionary_engine.\n",nameApp);
-
-       
-       gchar* current_directory = g_get_current_dir();
-       printf("%sCurrent directory: %s\n",nameApp,current_directory);
-       gchar* library_to_path = g_strconcat(current_directory, "/ws_bookmark.so", NULL);
-       printf("%sEngine library should be in location:\n\t%s\n",nameApp,library_to_path);
-       
-       GModule *library = g_module_open(library_to_path, G_MODULE_BIND_LAZY);
-       if(!library) {
-               printf("%sLoading module failed. \nReason: %s\n",nameApp,g_module_error());
-               return 1;               
-       };
-       
-       //dict_eng_module_get_global_functions(library,get_functions);
-       g_module_symbol ( (library),_GLOBAL_FUNCTIONS_NAME_, (gpointer)&get_functions);
-       if(get_functions == NULL) {
-               printf("%sLoading function failed\n",nameApp);
-               return 2;
-       }
-       else printf("%sLoading function OK\n",nameApp);
-
-       EngineModule module = get_functions();
-       gchar* desc = dict_eng_module_get_description(module);
-       g_free(desc);
-       printf("Module description: %s\n",desc);
-       Engine* bm;
-
-        gboolean is_compatible = dict_eng_module_check(module,"/home/lukasz/MyDocs/release/mdictionary/trunk/src/bookmarks/bdb/data");
-       if(is_compatible == TRUE)
-       {
-               printf("Location is compatible with enigne!\n");
-       }
-       else {
-               printf("Location is not compatible with enigne!\n");
-               return 1;
-       }       
-
-        bm = dict_eng_module_create(module,
-            "/home/lukasz/MyDocs/release/mdictionary/trunk/src/bookmarks/bdb/data" ,
-             ENGINE_CREATE);
-       gchar* location = dict_eng_get_location(bm);
-       printf("Lokalizacja: %s\n",location);
-       g_free(location);
-       dict_eng_set_callback(bm,
-                             ENGINE_WORD_LIST_SIGNAL,
-                             print_list,
-                             "Word list matches to pattern: %s\n"
-                            );
-       dict_eng_set_callback(bm,
-                             ENGINE_WORD_TRANSLATION_SIGNAL ,
-                             print_translation,
-                             "Translation for word: \'%s\':\n");
-       
-       dict_eng_add_word(bm, "stranger", "translation number 1");
-       dict_eng_add_word(bm, "stranger", "translation number 2");
-       dict_eng_add_word(bm, "stranger", "translation number 3");
-       dict_eng_add_word(bm, "str", "translation number 1 shorter");
-       dict_eng_add_word(bm, "gandzia", "rulez forever!");
-       dict_eng_search_word_list(bm,"*");
-
-       //dict_eng_remove_word(bm, "stranger");
-       //dict_eng_search_word_list(bm,"*");
-
-       dict_eng_search_word_translation(bm,"stranger");
-
-       //dict_eng_remove_word(bm, "stranger");
-       //dict_eng_add_word(bm, "stranger", "author of the plugin you are using now!");
-       //dict_eng_add_word(bm, "stranger", "author of the plugin you are using now!");
-       //dict_eng_add_word(bm, "stranger", "He knows gandzia.");
-       //dict_eng_add_word(bm, "stranger", "He knows gandzia. 2 ");
-       //dict_eng_add_word(bm, "stranger", "He knows gandzia. 3");
-       //dict_eng_destroy(bm);
-       //dict_eng_add_word(bm, "gandzia", "super girl!");
-       //dict_eng_add_word(bm, "stranger", "He knows gandzia.");
-       //dict_eng_search_word_list(bm,"*");
-       //dict_eng_search_word_list(bm,"f");
-       //dict_eng_search_word_list(bm,"s");
-       //dict_eng_search_word_translation(sd,"1 word");
-       //dict_eng_destroy(bm);
-        //return 0;
-
-
-
-        dict_eng_remove_word(bm, "stranger");
-       dict_eng_remove_word(bm, "gandzia");
-       dict_eng_remove_word(bm, "lukas");
-        dict_eng_add_word(bm, "stranger", "autor pluginu tego wlasnie to jest!");
-        dict_eng_add_word(bm, "gandzia", "rulez");
-        dict_eng_add_word(bm, "lukas", "pawlik");
-        dict_eng_remove_word(bm, "stranger");
-
-        dict_eng_search_word_translation(bm,"stranger");
-       
-        dict_eng_add_word(bm, "stranger", "autor pluginu tego wlasnie to jest!");
-        dict_eng_search_word_translation(bm,"stranger");
-        dict_eng_search_word_list(bm,"gandzia");
-
-//         printf("Lang FROM:%s\n",dict_eng_get_lang_from(bm));
-//         printf("  Lang TO:%s\n",dict_eng_get_lang_to(bm));
-//         printf("    Title:%s\n",dict_eng_get_title(bm));
-//         printf("Icon path:%s\n",dict_eng_get_icon_path(bm));
-       
-       dict_eng_destroy(bm);
-       g_free(current_directory);
-       g_free(library_to_path);
-       printf("%sClosed.\n",nameApp);  
-       return 0;
-}
-
diff --git a/src/bookmarks/bdb/src/testMakeDatabase.c b/src/bookmarks/bdb/src/testMakeDatabase.c
deleted file mode 100755 (executable)
index cd5a095..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-
-#include <glib.h>
-#include <glib/gstdio.h>
-#include <sqlite.h>
-
-const guint records_number = 1000;
-
-// ----------------------------------------------------------------------------------
-sqlite* database_make(gchar* path) {
-        gchar* buffer = NULL;
-        sqlite* result = NULL;
-        // creatingh database
-        result = sqlite_open(path,
-                             0600,
-                             &buffer);
-        // check if everything was okey
-        if(!result) {
-                g_printf("Error while trying to create database:\n%s\n",buffer);
-                g_free(buffer); buffer = NULL;
-                return NULL;
-        };
-        // return pointer to database
-        return result;
-}
-// ----------------------------------------------------------------------------------
-gint database_add_test_table(sqlite* db) {
-        gint result = 0;
-        //gchar sql[] = "CREATE TABLE words(id INTEGER PRIMARY KEY, word TEXT UNIQUE);";
-        gchar sql2[] = "CREATE TABLE translations(id INTEGER PRIMARY KEY, word TEXT, translation TEXT);";
-        gchar* err = NULL;      
-/*
-        result = sqlite_exec(db, sql, NULL, NULL, &err);
-        if(err || result!=0) {
-                g_printf("Error while creating \'words\' table:\n%s\n",err);
-                return 1;
-        }
-*/
-        result = sqlite_exec(db, sql2, NULL, NULL, &err);
-        if(err || result!=0) {
-                g_printf("Error while creating \'translations\' table:\n%s\n",err);
-                return 2;
-        }
-
-        return result;
-}
-// ----------------------------------------------------------------------------------
-gint database_add_test_record(sqlite* db, guint i) {
-        gint result = 0;
-        gchar* sql = NULL;
-        gchar* err = NULL;
-        gint last_id = 0;
-        gint word_count = 1;
-        gchar buffer[] = "                     ";
-        gchar last_char[] = "                      ";
-        gchar tran[] = "this is a translation number 10.000 for word 10.000 word <-----";
-        g_sprintf(buffer,"%d word",i);
-/*
-        sql = g_strconcat("INSERT INTO words VALUES(NULL,\'",buffer,"\');", NULL);        
-        result = sqlite_exec(db, sql, NULL, NULL, &err);
-        if(err || result!=0) {
-                g_printf("Error while trying to add new word %d:\n%s\n",i,err);
-                g_free(sql);
-                return 1;
-        }
-        g_free(sql);
-        last_id = sqlite_last_insert_rowid(db);
-        g_sprintf(last_char,"%d",last_id);
-*/
-        if(i == 5000) {
-                word_count = 5;
-                g_printf("Adding more records for word - test\n");
-        }
-        gint j;
-        for(j=0; j<word_count; ++j) {
-                g_sprintf(tran,"this is a translation number %d for word %i",j,i);
-                sql = g_strconcat("INSERT INTO translations VALUES(NULL,\'",buffer,"\',\'",tran,"\');", NULL); 
-                result = sqlite_exec(db, sql, NULL, NULL, &err); 
-                if(err || result!=0) {
-                        g_printf("Error while trying to add new word trans %d:\n %s \n",j,err);
-                        g_free(sql);
-                        return 1;
-                }
-                g_free(sql);             
-        }
-        
-        return result;
-}
-// ----------------------------------------------------------------------------------
-gint main(gint argc, gchar* argv[]) {
-        g_printf("Making new database with %d records...\n",records_number);
-        
-        // create database
-        sqlite* db = database_make("ws_bookmarks");
-        if(!db) return 1;
-
-        // create table for records
-        database_add_test_table(db);
-
-        // create testing records
-        guint i;
-        gint code = 0;
-        for(i=0; i<records_number; ++i) {
-                code = database_add_test_record(db, i);
-                // if there were some errors, do not continue
-                if(code != 0) break;
-                // give to the user some feedback about progress of proccess
-                if(!(i % 50)) {
-                        g_printf("%d / %d records already added to database\n",i,records_number);
-                }
-        }
-
-        // close database
-        sqlite_close(db);
-        return 0;
-}
-// ----------------------------------------------------------------------------------
diff --git a/src/dbus_wrapper/COPYING b/src/dbus_wrapper/COPYING
deleted file mode 100644 (file)
index 5ab7695..0000000
+++ /dev/null
@@ -1,504 +0,0 @@
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 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.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-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 and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, 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 library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
-  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.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
-  If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be 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.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
-  9. 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 Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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 with
-this License.
-\f
-  11. 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 Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  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 library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; 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.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/src/dbus_wrapper/Doxyfile b/src/dbus_wrapper/Doxyfile
deleted file mode 100644 (file)
index 088aed7..0000000
+++ /dev/null
@@ -1,1237 +0,0 @@
-# Doxyfile 1.4.6
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-PROJECT_NAME           = White Stork DBus Wrapper Module
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-PROJECT_NUMBER         = 0.1
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-OUTPUT_DIRECTORY       = doc/
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of 
-# source files, where putting all generated files in the same directory would 
-# otherwise cause performance problems for the file system.
-CREATE_SUBDIRS         = NO
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, 
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, 
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, 
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, 
-# Swedish, and Ukrainian.
-OUTPUT_LANGUAGE        = English
-# This tag can be used to specify the encoding used in the generated output. 
-# The encoding is not always determined by the language that is chosen, 
-# but also whether or not the output is meant for Windows or non-Windows users. 
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
-# forces the Windows encoding (this is the default for the Windows binary), 
-# whereas setting the tag to NO uses a Unix-style encoding (the default for 
-# all platforms other than Windows).
-USE_WINDOWS_ENCODING   = NO
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-BRIEF_MEMBER_DESC      = YES
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-REPEAT_BRIEF           = YES
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is 
-# used as the annotated text. Otherwise, the brief description is used as-is. 
-# If left blank, the following values are used ("$name" is automatically 
-# replaced with the name of the entity): "The $name class" "The $name widget" 
-# "The $name file" "is" "provides" "specifies" "contains" 
-# "represents" "a" "an" "the"
-ABBREVIATE_BRIEF       = 
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-ALWAYS_DETAILED_SEC    = NO
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if those 
-# members were ordinary class members. Constructors, destructors and assignment 
-# operators of the base classes will not be shown.
-INLINE_INHERITED_MEMB  = NO
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-FULL_PATH_NAMES        = NO
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
-# path to strip.
-STRIP_FROM_PATH        = 
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
-# are normally passed to the compiler using the -I flag.
-STRIP_FROM_INC_PATH    = 
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-SHORT_NAMES            = NO
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like the Qt-style comments (thus requiring an 
-# explicit @brief command for a brief description.
-JAVADOC_AUTOBRIEF      = NO
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-MULTILINE_CPP_IS_BRIEF = NO
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-DETAILS_AT_TOP         = NO
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# re-implements.
-INHERIT_DOCS           = YES
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
-# a new page for each member. If set to NO, the documentation of a member will 
-# be part of the file/class/namespace that contains it.
-SEPARATE_MEMBER_PAGES  = NO
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-TAB_SIZE               = 8
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-ALIASES                = 
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-# sources only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-OPTIMIZE_OUTPUT_FOR_C  = YES
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
-# sources only. Doxygen will then generate output that is more tailored for Java. 
-# For instance, namespaces will be presented as packages, qualified scopes 
-# will look different, etc.
-OPTIMIZE_OUTPUT_JAVA   = NO
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
-# include (a tag file for) the STL sources as input, then you should 
-# set this tag to YES in order to let doxygen match functions declarations and 
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
-# func(std::string) {}). This also make the inheritance and collaboration 
-# diagrams that involve STL classes more complete and accurate.
-BUILTIN_STL_SUPPORT    = NO
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-DISTRIBUTE_GROUP_DOC   = NO
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
-# the \nosubgrouping command.
-SUBGROUPING            = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL            = YES
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-EXTRACT_PRIVATE        = YES
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-EXTRACT_STATIC         = YES
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-EXTRACT_LOCAL_CLASSES  = YES
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
-# If set to NO (the default) only methods in the interface are included.
-EXTRACT_LOCAL_METHODS  = NO
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-HIDE_UNDOC_MEMBERS     = NO
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-HIDE_UNDOC_CLASSES     = NO
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
-HIDE_FRIEND_COMPOUNDS  = NO
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
-HIDE_IN_BODY_DOCS      = NO
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-INTERNAL_DOCS          = NO
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# and Mac users are advised to set this option to NO.
-CASE_SENSE_NAMES       = YES
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-HIDE_SCOPE_NAMES       = NO
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
-# of that file.
-SHOW_INCLUDE_FILES     = YES
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-INLINE_INFO            = YES
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-SORT_MEMBER_DOCS       = YES
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
-# declaration order.
-SORT_BRIEF_DOCS        = NO
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
-# alphabetical list.
-SORT_BY_SCOPE_NAME     = NO
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-GENERATE_TODOLIST      = YES
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-GENERATE_TESTLIST      = YES
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-GENERATE_BUGLIST       = YES
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
-GENERATE_DEPRECATEDLIST= YES
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-ENABLED_SECTIONS       = 
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-MAX_INITIALIZER_LINES  = 30
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-SHOW_USED_FILES        = YES
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
-# in the documentation. The default is NO.
-SHOW_DIRECTORIES       = NO
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-# doxygen should invoke to get the current version for each file (typically from the 
-# version control system). Doxygen will invoke the program by executing (via 
-# popen()) the command <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
-# provided by doxygen. Whatever the program writes to standard output 
-# is used as the file version. See the manual for examples.
-FILE_VERSION_FILTER    = 
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-QUIET                  = NO
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-WARNINGS               = YES
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-WARN_IF_UNDOCUMENTED   = YES
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
-WARN_IF_DOC_ERROR      = YES
-# This WARN_NO_PARAMDOC option can be abled to get warnings for 
-# functions that are documented, but have no documentation for their parameters 
-# or return value. If set to NO (the default) doxygen will only warn about 
-# wrong or incomplete parameter documentation, but not about the absence of 
-# documentation.
-WARN_NO_PARAMDOC       = NO
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. Optionally the format may contain 
-# $version, which will be replaced by the version of the file (if it could 
-# be obtained via FILE_VERSION_FILTER)
-WARN_FORMAT            = "$file:$line: $text"
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-INPUT                  = ../../include/ws_dbus.h src/ws_dbus.c
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
-FILE_PATTERNS          = 
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-RECURSIVE              = YES
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-EXCLUDE                = 
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
-# directories that are symbolic links (a Unix filesystem feature) are excluded 
-# from the input.
-EXCLUDE_SYMLINKS       = NO
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. Note that the wildcards are matched 
-# against the file with absolute path, so to exclude all test directories 
-# for example use the pattern */test/*
-EXCLUDE_PATTERNS       = 
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-EXAMPLE_PATH           = 
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-EXAMPLE_PATTERNS       = 
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-EXAMPLE_RECURSIVE      = NO
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-IMAGE_PATH             = 
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
-# ignored.
-INPUT_FILTER           = 
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
-# is applied to all files.
-FILTER_PATTERNS        = 
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO.
-SOURCE_BROWSER         = YES
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-INLINE_SOURCES         = NO
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-STRIP_CODE_COMMENTS    = YES
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-REFERENCED_BY_RELATION = YES
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-REFERENCES_RELATION    = YES
-# If the USE_HTAGS tag is set to YES then the references to source code 
-# will point to the HTML generated by the htags(1) tool instead of doxygen 
-# built-in source browser. The htags tool is part of GNU's global source 
-# tagging system (see http://www.gnu.org/software/global/global.html). You 
-# will need version 4.8.6 or higher.
-USE_HTAGS              = NO
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-VERBATIM_HEADERS       = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-ALPHABETICAL_INDEX     = No
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-COLS_IN_ALPHA_INDEX    = 5
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-GENERATE_HTML          = YES
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-HTML_OUTPUT            = html
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
-HTML_FILE_EXTENSION    = .html
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-HTML_HEADER            = 
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-HTML_FOOTER            = 
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
-# stylesheet in the HTML output directory as well, or it will be erased!
-HTML_STYLESHEET        = 
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-HTML_ALIGN_MEMBERS     = YES
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation.
-GENERATE_HTMLHELP      = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output directory.
-CHM_FILE               = 
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-# the HTML help compiler on the generated index.hhp.
-HHC_LOCATION           = 
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-GENERATE_CHI           = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-BINARY_TOC             = NO
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the HTML help documentation and to the tree view.
-TOC_EXPAND             = NO
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-DISABLE_INDEX          = NO
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-ENUM_VALUES_PER_LINE   = 1
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
-# probably better off using the HTML help feature.
-GENERATE_TREEVIEW      = YES
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-GENERATE_LATEX         = YES
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-LATEX_OUTPUT           = latex
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
-LATEX_CMD_NAME         = latex
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
-MAKEINDEX_CMD_NAME     = makeindex
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-COMPACT_LATEX          = NO
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-PAPER_TYPE             = a4wide
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-EXTRA_PACKAGES         = 
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-LATEX_HEADER           = 
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-PDF_HYPERLINKS         = NO
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-USE_PDFLATEX           = NO
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-LATEX_BATCHMODE        = NO
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
-# in the output.
-LATEX_HIDE_INDICES     = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-GENERATE_RTF           = NO
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-RTF_OUTPUT             = rtf
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-COMPACT_RTF            = NO
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-RTF_HYPERLINKS         = NO
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-RTF_STYLESHEET_FILE    = 
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-GENERATE_MAN           = NO
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-MAN_OUTPUT             = man
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-MAN_EXTENSION          = .3
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation.
-GENERATE_XML           = NO
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `xml' will be used as the default path.
-XML_OUTPUT             = xml
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-XML_SCHEMA             = 
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-XML_DTD                = 
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
-# enabling this will significantly increase the size of the XML output.
-XML_PROGRAMLISTING     = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-GENERATE_PERLMOD       = NO
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
-PERLMOD_LATEX          = NO
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
-PERLMOD_PRETTY         = YES
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-ENABLE_PREPROCESSING   = YES
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-MACRO_EXPANSION        = NO
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-EXPAND_ONLY_PREDEF     = NO
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-SEARCH_INCLUDES        = YES
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-INCLUDE_PATH           = 
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-INCLUDE_FILE_PATTERNS  = 
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
-# instead of the = operator.
-PREDEFINED             = 
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-EXPAND_AS_DEFINED      = 
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse 
-# the parser if not removed.
-SKIP_FUNCTION_MACROS   = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
-# is run, you must also specify the path to the tagfile here.
-TAGFILES               = 
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-GENERATE_TAGFILE       = 
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-ALLEXTERNALS           = NO
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
-EXTERNAL_GROUPS        = YES
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-# or super classes. Setting the tag to NO turns the diagrams off. Note that 
-# this option is superseded by the HAVE_DOT option below. This is only a 
-# fallback. It is recommended to install and use dot, since it yields more 
-# powerful graphs.
-CLASS_DIAGRAMS         = YES
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-HIDE_UNDOC_RELATIONS   = YES
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-HAVE_DOT               = NO
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-CLASS_GRAPH            = YES
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-COLLABORATION_GRAPH    = YES
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for groups, showing the direct groups dependencies
-GROUP_GRAPHS           = YES
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
-# Language.
-UML_LOOK               = NO
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-TEMPLATE_RELATIONS     = NO
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-INCLUDE_GRAPH          = YES
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-INCLUDED_BY_GRAPH      = YES
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a call dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable call graphs for selected 
-# functions only using the \callgraph command.
-CALL_GRAPH             = NO
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-GRAPHICAL_HIERARCHY    = YES
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
-# then doxygen will show the dependencies a directory has on other directories 
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-DIRECTORY_GRAPH        = YES
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-DOT_IMAGE_FORMAT       = png
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found in the path.
-DOT_PATH               = 
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-DOTFILE_DIRS           = 
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-MAX_DOT_GRAPH_WIDTH    = 1024
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-MAX_DOT_GRAPH_HEIGHT   = 1024
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes 
-# that lay further from the root node will be omitted. Note that setting this 
-# option to 1 or 2 may greatly reduce the computation time needed for large 
-# code bases. Also note that a graph may be further truncated if the graph's 
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
-# the graph is not depth-constrained.
-MAX_DOT_GRAPH_DEPTH    = 0
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-# background. This is disabled by default, which results in a white background. 
-# Warning: Depending on the platform used, enabling this option may lead to 
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
-# read).
-DOT_TRANSPARENT        = NO
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-# files in one run (i.e. multiple -o and -T options on the command line). This 
-# makes dot run faster, but since only newer versions of dot (>1.8.10) 
-# support this, this feature is disabled by default.
-DOT_MULTI_TARGETS      = NO
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-GENERATE_LEGEND        = YES
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
-# the various graphs.
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-SEARCHENGINE           = NO
\ No newline at end of file
diff --git a/src/dbus_wrapper/Makefile b/src/dbus_wrapper/Makefile
deleted file mode 100644 (file)
index ffc74ad..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-CC=gcc
-LIBS=`pkg-config --libs glib-2.0 libosso`
-CFLAGS=`pkg-config --cflags glib-2.0 libosso`
-DEBUG = -g -Wall
-BINARY = bin
-MAIN_BINARY = ../../bin
-INCLUDE = ../../include
-SOURCE = src
-DOCS = doc
-
-all:           ${BINARY}/ws_dbus.o 
-                       @cp ${BINARY}/* ${MAIN_BINARY}
-
-docs:          
-               doxygen Doxyfile
-
-${BINARY}/ws_dbus.o:
-                       @${CC} ${DEBUG} -c ${SOURCE}/ws_dbus.c -o ${BINARY}/ws_dbus.o ${CFLAGS} -I${INCLUDE}
-clean:
-                       -rm -rf ${BINARY}/*
-                       -rm -rf ${DOCS}/*
diff --git a/src/dbus_wrapper/Makefile.am b/src/dbus_wrapper/Makefile.am
deleted file mode 100644 (file)
index f83dcbb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src
\ No newline at end of file
diff --git a/src/dbus_wrapper/Makefile_old b/src/dbus_wrapper/Makefile_old
deleted file mode 100644 (file)
index ffc74ad..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-CC=gcc
-LIBS=`pkg-config --libs glib-2.0 libosso`
-CFLAGS=`pkg-config --cflags glib-2.0 libosso`
-DEBUG = -g -Wall
-BINARY = bin
-MAIN_BINARY = ../../bin
-INCLUDE = ../../include
-SOURCE = src
-DOCS = doc
-
-all:           ${BINARY}/ws_dbus.o 
-                       @cp ${BINARY}/* ${MAIN_BINARY}
-
-docs:          
-               doxygen Doxyfile
-
-${BINARY}/ws_dbus.o:
-                       @${CC} ${DEBUG} -c ${SOURCE}/ws_dbus.c -o ${BINARY}/ws_dbus.o ${CFLAGS} -I${INCLUDE}
-clean:
-                       -rm -rf ${BINARY}/*
-                       -rm -rf ${DOCS}/*
diff --git a/src/dbus_wrapper/configure.ac b/src/dbus_wrapper/configure.ac
deleted file mode 100644 (file)
index f087a77..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-AC_INIT([src/ws_dbus.c])
-AC_CONFIG_AUX_DIR([.])
-AM_INIT_AUTOMAKE(ws_dbus, 1.0)
-
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.0)
-PKG_CHECK_MODULES(OSSO, libosso >= 2.0)
-
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-
-AC_SUBST(OSSO_CFLAGS)
-AC_SUBST(OSSO_LIBS)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-AM_PROG_LIBTOOL
-AC_CONFIG_FILES(Makefile   src/Makefile)
-AC_OUTPUT
diff --git a/src/dbus_wrapper/src/Makefile.am b/src/dbus_wrapper/src/Makefile.am
deleted file mode 100644 (file)
index 4d03703..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-lib_LTLIBRARIES = libws_dbus.la
-libws_dbus_la_SOURCES = ws_dbus.c
-libws_dbus_la_CFLAGS = -I$(top_srcdir)/../../include $(GLIB_CFLAGS) $(OSSO_CFLAGS) 
-libws_dbus_la_LDFLAGS = $(GLIB_LIBS) $(OSSO_LIBS)
diff --git a/src/dbus_wrapper/src/ws_dbus.c b/src/dbus_wrapper/src/ws_dbus.c
deleted file mode 100644 (file)
index 79d71f3..0000000
+++ /dev/null
@@ -1,810 +0,0 @@
-/*******************************************************************************
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation;
-version 2.1 of the License.
-
-This library 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
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup DBusWrapperAPI
- */
-/*@{*/
-/** \file ws_dbus.c
- * \brief API for D-Bus Wrapper Library - code.
- *
- * Bodies of methods used to communicate between
- * dictionary UI and searching module
- * \author Krzysztof Sasiak \<krzysztof.sasiak\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- * \see DBusWrapperAPI
- */
-#include <ws_dbus.h>
-
-
-struct _WSDBusMethodData
-{
-       GQuark id;
-       gchar *name;
-       gpointer handler;
-       gpointer user_data;
-       gchar* data_types;
-};
-
-
-typedef struct _WSDBusMethodData WSDBusMethodData;
-
-static gchar* ws_dbus_get_ptr2method (GArray *methods, gchar* name );
-static void ws_dbus_libosso_errors (osso_return_t result);
-static void ws_dbus_fill_message (DBusMessage *msg, void *data);
-
-/**This function will be used in future version of DBUS as soon as introspection
- * is implemented
- */
-static gchar* ws_dbus_get_ptr2method (GArray *methods, gchar* name)
-{
-       guint i;
-       gchar* temp;
-
-       g_debug ("%d", methods->len);
-       
-       return NULL;
-       
-        for (i = 0; i < methods->len; i+=2)
-        {
-               temp = g_array_index (methods, gchar *,i);
-
-               if (strcmp (name, temp) == 0) {
-                       temp = g_array_index (methods, gchar *,i+1);
-                       g_debug ("\nData types: %s\n", temp);
-                       return temp;
-               }
-
-        };
-
-        return NULL;
-};
-
-static void ws_dbus_libosso_errors (osso_return_t result)
-{
-       switch (result) 
-       {
-               case OSSO_OK: 
-                       g_debug ("All OK\n");
-               break;
-               case OSSO_ERROR: 
-                       g_debug ("Ordinary Error\n");
-               break;
-               case OSSO_INVALID: 
-                       g_debug ("At least one parameter is invalid\n");
-               break;
-               case OSSO_RPC_ERROR: 
-                       g_debug ("Osso RPC method returned an error\n");
-               break;
-               case OSSO_ERROR_NAME: 
-                       g_debug ("Error Name\n");
-               break;
-               case OSSO_ERROR_NO_STATE: 
-                       g_debug ("No state file found to read\n");
-               break;
-               case OSSO_ERROR_STATE_SIZE: 
-                       g_debug("The size of the given structure");
-                       g_debug(" is different from the saved size\n");
-               break;
-       };
-};
-
-
-static WSDBusStatus ws_dbus_run_cb( WSDBusMethodData *method_data,
-                                    gpointer data )
-{
-       g_debug ( "%s: Running cb for method %s\n",
-                 __FUNCTION__,
-                 method_data->name);
-
-       ws_dbus_cb cb;
-       osso_rpc_t osso_data;
-       GArray *args = (GArray *) data;
-
-       cb = (ws_dbus_cb) method_data->handler;
-       g_debug ("cb pointer address %p\n", cb);
-
-       if (cb != NULL) 
-       {
-               if (args->len == 0)
-               {
-                       osso_data.type = WS_DBUS_TYPE_STRING;
-                       osso_data.value.s = NULL;
-                       g_array_append_val (args, osso_data);
-               }
-                       
-               cb (NULL, data, method_data->user_data); 
-               return OSSO_OK;
-       }
-       else
-       {
-               g_debug ("DBUS: No callback defined for this function\n");
-               return OSSO_ERROR;
-       };
-};
-
-/* A dispatcher function */
-static gint ws_dbus_cb_handler (const gchar * interface,
-                                const gchar * method,
-                                GArray * arguments,
-                                gpointer data,
-                                osso_rpc_t * retval)
-{
-       WSDBusMethodData *method_data;
-       GArray *dbus_method_data;
-       GQuark temp;
-       guint i;
-       dbus_method_data = (GArray *) data;
-       retval = NULL;
-       g_debug ("DBUS: Method:  %s\n", method);
-
-       /* check if a unique identifier has been generated for this string */
-       temp = g_quark_try_string (method); 
-       if (temp != 0)
-       {
-               /*run through all available methods and run the one which was 
-               called remotely*/
-
-               for (i=0; i < dbus_method_data->len; ++i)
-               {
-                       method_data = g_array_index( dbus_method_data,
-                                                    WSDBusMethodData*,
-                                                    i );
-
-                       if (method_data->id == temp) 
-                       {
-                               g_debug( "DBUS: Running callback for %s\n",
-                                        method);
-                               ws_dbus_run_cb (method_data, arguments);
-                       };
-               };
-       }
-       else
-       {
-               g_debug( "Error in function %s, couldn't find the signal %s\n",
-                        __FUNCTION__,
-                        method );
-               return OSSO_ERROR;
-       };
-
-       return OSSO_OK;
-};
-
-
-/** This function adds words stored in a GArray as arguments to a DBUS message 
- * \param msg - DBusMessage structure
- * \param data - GArray of osso_rpc_t containing arguments and its types
- */
-static void ws_dbus_fill_message (DBusMessage *msg, void *data) 
-{
-       guint i;
-       osso_rpc_t *data_unit;
-       GArray *data_bundle;
-       gpointer buffer;
-
-       data_bundle = (GArray *) data;
-       
-       g_debug ("%s, number of fields: %d", __FUNCTION__, data_bundle->len);
-       
-       if (data_bundle->len > 255)
-       {
-               g_debug ("DBUS: Number of fields in message exceeds 255\n");
-       }
-
-       for (i = 0; ((i < data_bundle->len) && (i < 255)); ++i)
-       {
-               data_unit = g_array_index (data_bundle, osso_rpc_t *, i);
-               g_debug ("%s, type: %c, value: ", __FUNCTION__, data_unit->type);
-
-               switch (data_unit->type)
-               {
-                       case DBUS_TYPE_STRING:
-                               buffer = &data_unit->value.s;
-                               g_debug ("%s", data_unit->value.s);
-                       break;
-                       case DBUS_TYPE_INT32:
-                               buffer = &data_unit->value.i;
-                               g_debug ("%d", data_unit->value.i);
-                       break;
-                       case DBUS_TYPE_DOUBLE:
-                               buffer = &data_unit->value.d;
-                               g_debug ("%f", data_unit->value.d);
-                       break;
-                       case DBUS_TYPE_BOOLEAN:
-                               buffer = &data_unit->value.b;
-                               g_debug ("%d", data_unit->value.b);
-                       break;
-               };
-               
-                if (data_unit->value.s != NULL) {
-                       dbus_message_append_args( msg,
-                                                 data_unit->type,
-                                                 buffer,
-                                                 DBUS_TYPE_INVALID );
-               }
-               else
-               {
-                       if (data_bundle->len > 1)
-                       {
-                               g_debug ("One argument ommited");
-                       }
-               }
-       };
-
-       g_debug ("DBUS: Added %d words\n", i);
-};
-
-/**Function will be used in future version of dbus wrapper library, as soon as
- *introspection is implemented
- *\param error - a GError error
- *\param data - a GArray of methods (listed in a string form)
- *\param user_data - a pointer WSDBusData structure
-*/
-void ws_dbus_add_remote_methods (GError *error,
-                                 gpointer data,
-                                 gpointer user_data)
-{
-       WSDBusData *ws_dbus_data = (WSDBusData *) user_data;
-       GArray *methods_list = (GArray *) data;
-       guint i=0;
-
-       osso_rpc_t *temp;
-
-       for (i = 0; i < methods_list->len; ++i)
-       {
-               temp = g_array_index (methods_list, osso_rpc_t *, i);
-               g_array_append_val( ws_dbus_data->remote_method_data,
-                                   temp->value );
-       };
-
-       return;
-};
-
-/** This function is used for allocating memory for the WSDBusData structure and 
- * setting some basic parameters. 
- * \param name - name of the application
- * \param version - app's version
- * \return pointer to WSDBusData structure\n
- * \sa WSDBusData
- */
-WSDBusData * ws_dbus_create (gchar *name, gchar *version)
-{
-       WSDBusData *temp;
-       temp = (gpointer) g_try_malloc (sizeof (WSDBusData));
-       g_debug ("\nDBUS: ");
-
-       if (temp == NULL)
-       {
-               g_debug ("Error in function %s - cannot allocate memory\n",
-                       __FUNCTION__);
-               g_assert_not_reached();
-       }
-       else
-       {
-               g_debug ("Memory allocation successful\n");
-       }
-
-       temp->name = g_strconcat (name, NULL);
-       temp->version = g_strconcat (version, NULL);
-
-       temp->method_data = g_array_new( TRUE,
-                                        TRUE,
-                                        sizeof(WSDBusMethodData *) );
-       return temp;
-};
-
-/** Setting DBUS wrapper configuration.
- * \param ws_dbus_data - pointer to a structure uniquely identifying 
- * the application for DBus. The possible values of 
- * this parameter are listed here: ::WSDBusConfig
- * \param field - the name of the variable, this function is supposed to set. 
- * \param value - the value of the variable
- * \return WS_STATUS_OK - on success \n
- * WS_STATUS_ERROR - on error
- * \sa WSDBusConfig
- */
-WSDBusStatus ws_dbus_config (WSDBusData * ws_dbus_data,
-                             WSDBusConfig field,
-                             gchar *value)
-{
-       if (ws_dbus_data == NULL) 
-       {
-               g_debug ("DBUS: Error in function %s - ws_dbus_data is NULL\n",
-                        __FUNCTION__);
-               return WS_DBUS_STATUS_ERROR;
-       };
-
-       switch (field)
-       {
-               case WS_DBUS_CONFIG_SERVICE :
-                       ws_dbus_data->service = g_strconcat(value, NULL);
-               break;
-               case WS_DBUS_CONFIG_OBJECT :
-                       ws_dbus_data->object = g_strconcat(value, NULL);
-               break;
-               case WS_DBUS_CONFIG_IFACE :
-                       ws_dbus_data->iface = g_strconcat(value, NULL);
-               break;
-               case WS_DBUS_CONFIG_REMOTE_SERVICE :
-                       ws_dbus_data->remote_service = g_strconcat(value, NULL);
-               break;
-               case WS_DBUS_CONFIG_REMOTE_OBJECT :
-                       ws_dbus_data->remote_object = g_strconcat(value, NULL);
-               break;
-               case WS_DBUS_CONFIG_REMOTE_IFACE :
-                       ws_dbus_data->remote_iface = g_strconcat(value, NULL);
-               break;
-       };
-
-       return WS_DBUS_STATUS_OK;
-};
-
-/** It should be the called after <B>ws_dbus_create</B> and after setting all 
- * DBUS parameters with the <B>ws_dbus_config</B> function.
- * The structure it returns is necessary to call every function implemented in
- * this wrapper library.
- * \param ws_dbus_data - it's a structure containing the unique paths to objects 
- * and interfaces to be registered in the DBus session daemon
- * \return WS_STATUS_OK - on success \n
- * WS_STATUS_ERROR - on error
- * \sa WSDBusConfig | ws_dbus_create | ws_dbus_config
- */
-WSDBusStatus ws_dbus_connect (WSDBusData * ws_dbus_data)
-{
-       osso_return_t result;
-       /* initialize osso_rpc */
-       ws_dbus_data->context = osso_initialize (ws_dbus_data->name,
-                                                ws_dbus_data->version,
-                                                FALSE,
-                                                NULL);
-       osso_rpc_set_timeout (ws_dbus_data->context, 100);
-
-       /* set a dispatcher function which runs local methods when asked via 
-        * DBUS */
-       result = osso_rpc_set_cb_f(ws_dbus_data->context,
-                                  ws_dbus_data->service,
-                                  ws_dbus_data->object,
-                                  ws_dbus_data->iface,
-                                  ws_dbus_cb_handler,
-                                  ws_dbus_data->method_data);
-
-       g_debug ("\nSending method data\n");
-       /*sends methods list to remote receiver
-        * ws_dbus_send_method_data (ws_dbus_data); */
-
-       if (result == OSSO_OK)
-       {
-               return WS_DBUS_STATUS_OK;
-       }
-       else
-       {
-               return WS_DBUS_STATUS_ERROR;
-       }
-};
-
-/** Before the program exits, all memory allocated by DBUS wrapper should be 
- * freed.
- * \param ws_dbus_data - pointer to a structure uniquely identifying the 
- * application for DBus
- * \return \li WS_STATUS_OK - on success \li WS_STATUS_ERROR - on error
- */
-void ws_dbus_destroy (WSDBusData * ws_dbus_data)
-{
-       guint i;
-
-       if (ws_dbus_data == NULL) 
-       {
-               g_debug ("DBUS: Error in fun %s - cannot free osso_context\n",
-                        __FUNCTION__);
-               g_free (ws_dbus_data);
-               g_assert_not_reached();
-       };
-
-       g_debug( "DBUS deinitialization by %s:\n---------------------------\n",
-                ws_dbus_data->service);
-       osso_deinitialize (ws_dbus_data->context);
-       g_debug ("| Deinitializing osso context    |\n");
-       if (ws_dbus_data->method_data != NULL) 
-       {
-               for (i = 0; i < ws_dbus_data->method_data->len; ++i)
-               {
-                       WSDBusMethodData *temp = 
-                                       g_array_index(ws_dbus_data->method_data,
-                                       WSDBusMethodData *, i);
-                       g_free (temp->data_types);
-                       g_free (temp->name);
-                       g_free (temp);
-               };
-
-               g_array_free (ws_dbus_data->method_data, TRUE);
-               g_debug ("| Freeing callback pointers list |\n");
-       };
-
-       g_free (ws_dbus_data->name);
-       g_free (ws_dbus_data->version);
-       g_free (ws_dbus_data->service);
-       g_free (ws_dbus_data->object);
-       g_free (ws_dbus_data->iface);
-
-       g_free (ws_dbus_data->remote_service);
-       g_free (ws_dbus_data->remote_object);
-       g_free (ws_dbus_data->remote_iface);
-       
-       /* Introspection not implemented yet. This piece of code will be used 
-        *in future version.*/
-       /* if (ws_dbus_data->remote_method_data != NULL) 
-        * {
-        *      for (i = 0; i < ws_dbus_data->remote_method_data->len; ++i)
-        *      {
-        *              g_free (g_array_index(ws_dbus_data->remote_method_data,
-        *                      gchar*, i));
-        *      };
-        *      g_array_free (ws_dbus_data->remote_method_data, TRUE);
-        * };
-         */
-
-       g_free (ws_dbus_data);
-       g_debug ("| Freeing WSDBusData structure   |\n----------------------\n");
-};
-
-
-/** \param ws_dbus_data - pointer to a structure uniquely identifying the 
- * application for D-BUS
- * \param detailed_signal - string containing the signal name which will trigger 
- * the function passed in the c_func parameter.
- * \param c_func - is a pointer to the signal handling function.
- * \param user_data - is the data passed directly to the signal handling
- *  function
- * \return \li WS_STATUS_OK - on success \li WS_STATUS_ERROR - on error
- * \sa WSDBusConfig | ws_dbus_cb
- */
-WSDBusStatus ws_dbus_set_cb (WSDBusData * ws_dbus_data,
-                             gchar * method,
-                             gpointer c_func,
-                             gpointer user_data)
-{
-       WSDBusMethodData *method_data;
-       GQuark temp;
-       guint i;
-
-       /* check if a unique GQuark id for this method has been generated */
-       temp = g_quark_try_string  (method);
-
-       if (temp == 0) 
-       {
-               g_debug ("DBUS:%s- method not defined or invalid method name\n",
-                        method);
-               return WS_DBUS_STATUS_ERROR;
-       }
-       else
-       {
-               for (i = 0; i < ws_dbus_data->method_data->len; ++i)
-               {
-                       method_data = g_array_index (ws_dbus_data->method_data,
-                                                    WSDBusMethodData *,
-                                                    i);
-
-                       /* Add method data (callback pointer and data) for a 
-                        * given method */
-                       if (method_data->id == temp)
-                       {
-                               method_data->handler = c_func;
-                               method_data->user_data = user_data;
-                               g_array_insert_val(ws_dbus_data->method_data,
-                                                  i, method_data);
-                               g_array_remove_index (ws_dbus_data->method_data,
-                                                     i+1);
-                       };
-               };
-       };
-
-       /* ws_dbus_send_method_data (ws_dbus_data); */
-       return WS_DBUS_STATUS_OK;
-};
-
-/** \param ws_dbus_data - pointer to a structure uniquely identifying the 
- * application for DBus
- * \param method - method name\n
- * \param arglist - a comma separated list of method's arguments (actually just
- * their datatypes) finished with WS_DBUS_TYPE_INVALID
- * \return \li WS_STATUS_OK - on success \li WS_STATUS_ERROR - on error
- * \sa WSDBusDataType
- */
-WSDBusStatus ws_dbus_add_method (WSDBusData * ws_dbus_data, gchar *method, ...)
-{
-       WSDBusMethodData *method_data;
-       WSDBusDataType data_type;
-       GQuark temp;
-       gchar *buffer;
-       va_list arglist;
-
-       /* Check if a unique GQuark id exists for a given string */
-       temp = g_quark_try_string (method);
-
-       if (temp != 0)
-       {
-               g_debug( "DBUS:\"%s\"- method has already been registered\n",
-                        method );
-               return WS_DBUS_STATUS_ERROR;
-       }
-
-       method_data = g_try_malloc (sizeof (WSDBusMethodData));
-       if (method_data != NULL)
-       {
-               va_start (arglist, method);
-
-               method_data->id = g_quark_from_string (method);
-               method_data->name = g_strdup (method);
-               data_type = va_arg (arglist, WSDBusDataType);
-               method_data->data_types = g_strdup("");
-
-               /* Add all datatypes in arglist as arguments to method */
-               while (data_type != WS_DBUS_TYPE_INVALID)
-               {
-                       buffer = method_data->data_types;
-
-                       method_data->data_types = 
-                               g_strdup_printf( "%s%c",
-                                                method_data->data_types,
-                                                (gchar) data_type );
-                       g_free (buffer);
-                       data_type = va_arg (arglist, WSDBusDataType);
-               };
-
-               g_debug( "%d, %s, %s\n",
-                        method_data->id,
-                        method_data->name,
-                        method_data->data_types );
-               va_end (arglist);
-               g_array_append_val( ws_dbus_data->method_data,
-                                   method_data );
-       }
-       else
-       {
-               g_debug( "DBUS: Failed to allocate memory for method data");
-               return WS_DBUS_STATUS_ERROR;
-       }
-
-       return WS_DBUS_STATUS_OK;
-};
-
-/** Converts an array of strings to an array of osso_rpc_t which is necessary
- * then sending data via DBUS
- * \param data_bundle - a preallocated GArray of osso_rpc_t
- * \param strings - a GArray of strings to be converted
- * \return 
- */
-WSDBusStatus ws_dbus_add_garray (GArray *data_bundle, GArray *strings)
-{
-       osso_rpc_t *temp;
-       guint i;
-
-       if (strings != NULL)
-       {
-               for (i = 0; i < strings->len; ++i)
-               {
-                       temp = g_try_malloc (sizeof (osso_rpc_t));
-                       temp->type = WS_DBUS_TYPE_STRING;
-                       temp->value.s = g_array_index (strings, gchar *, i);
-                       g_debug ("%d, %s", temp->type, temp->value.s);
-                       g_array_append_val (data_bundle, temp);
-               };
-               return WS_DBUS_STATUS_OK;
-       }
-       else
-       {
-               printf ("\n%s - Error - GArray is NULL", __FUNCTION__);
-               return WS_DBUS_STATUS_ERROR;
-       };
-};
-
-/**Runs a remote method with specific name
- *
- * \param ws_dbus_data - pointer to a structure uniquely identifying the 
- * application for DBus
- * \param method - method name
- * \param arglist - a comma separated list of pairs: datatype, value finished 
- * with WS_DBUS_TYPE_INVALID
- * \return \li WS_STATUS_OK - on success \li WS_STATUS_ERROR - on error
- * \sa WSDBusDataType
- */
-WSDBusStatus ws_dbus_call_method (WSDBusData * ws_dbus_data, gchar *method, ...)
-{
-       va_list arglist;
-       GArray *data_to_send;
-       osso_rpc_t *temp, *retval;
-        osso_return_t result;
-       GArray *temp_garray;
-       
-       data_to_send = g_array_new (TRUE, TRUE, sizeof (osso_rpc_t *));
-       va_start (arglist, method);
-
-       /* convert all given arguments to a GArray of osso_rpc_t */
-       while (TRUE)
-       {
-               temp = g_try_malloc (sizeof (osso_rpc_t));
-               temp->type = va_arg (arglist, WSDBusDataType);
-               /* g_debug ("Type: %c ", temp->type); */
-               if (temp->type == WS_DBUS_TYPE_INVALID) 
-               {
-                       break;
-               }
-
-               switch (temp->type)
-               {
-                       case WS_DBUS_TYPE_STRING:
-                               temp->value.s = va_arg (arglist, gchar *);
-                               g_debug ("Value: %s\n", temp->value.s);
-                       break;
-                       case WS_DBUS_TYPE_INT:
-                               temp->value.i = va_arg (arglist, gint);
-                               g_debug ("Value: %d\n", temp->value.i);
-                       break;
-                       case WS_DBUS_TYPE_UINT:
-                               temp->value.u = va_arg (arglist, guint);
-                               g_debug ("Value: %d\n", temp->value.u);
-                       break;
-                       case WS_DBUS_TYPE_DOUBLE:
-                               temp->value.d = va_arg (arglist, gdouble);
-                               g_debug ("Value: %f\n", temp->value.d);
-                       break;
-                       case WS_DBUS_TYPE_BOOLEAN:
-                               temp->value.b = va_arg (arglist, gboolean);
-                               g_debug ("Value: %d\n", temp->value.b);
-                       break;
-                       case WS_DBUS_TYPE_GARRAY:
-                               temp_garray = va_arg (arglist, GArray *);
-                               ws_dbus_add_garray (data_to_send, 
-                                                       temp_garray);
-                               g_debug ("Value: GArray of strings");
-                       break;
-               };
-               g_debug ("Type: %c %d", temp->type, temp->value.i);
-
-               if (temp->type != WS_DBUS_TYPE_GARRAY)
-               {
-                       g_array_append_val (data_to_send, temp);
-               }
-       };
-
-       va_end (arglist);
-       g_debug( "%s, method %s, added %d arguments",
-                __FUNCTION__,
-                method, data_to_send->len);
-       
-       /* allocate memory for return value */
-       retval = g_try_malloc (sizeof (osso_rpc_t));
-       if (retval == NULL) 
-       {
-               g_debug("DBUS: Error in function %s:",__FUNCTION__);
-               g_debug("Couldn't allocate memory for message return value\n");
-       };
-
-       result = osso_rpc_run_with_argfill (ws_dbus_data->context,
-                                           ws_dbus_data->remote_service,
-                                           ws_dbus_data->remote_object,
-                                           ws_dbus_data->remote_iface,
-                                           method,
-                                           retval,
-                                           ws_dbus_fill_message,
-                                           data_to_send);
-
-       g_debug ("\nDBUS: %s: ", __FUNCTION__);
-       ws_dbus_libosso_errors (result);
-
-       guint i;
-       for (i = 0; i < data_to_send->len; ++i)
-       {
-               g_free (g_array_index(data_to_send, osso_rpc_t*,i));
-       };
-
-       g_array_free (data_to_send, TRUE);
-       if (result != OSSO_OK)
-       {
-               g_debug ("Error message: %s\n", retval->value.s);
-               osso_rpc_free_val (retval);
-               g_free (retval);
-               return WS_DBUS_STATUS_ERROR;
-       };
-
-       osso_rpc_free_val (retval);
-       g_free (retval);
-       return WS_DBUS_STATUS_OK;
-};
-
-/**This function will be used in future version of DBUS as soon as introspection
- * is implemented
- */
-WSDBusStatus ws_dbus_call_registered_method (WSDBusData * ws_dbus_data,
-                                             gchar *method, ...)
-{
-       va_list arglist;
-       guint i;
-       GArray *data_to_send;
-       osso_rpc_t *temp;
-       osso_return_t result;
-       osso_rpc_t *retval;
-
-       gchar* data_types = ws_dbus_get_ptr2method (
-                                 ws_dbus_data->remote_method_data,
-                                 method );
-       g_debug ("\n%s\n", data_types);
-
-       data_to_send = g_array_new (TRUE, TRUE, sizeof (osso_rpc_t *));
-
-       va_start (arglist, method);
-
-       for (i = 0; i < strlen (data_types); ++i)
-       {
-               temp = g_try_malloc (sizeof (osso_rpc_t));
-               
-               switch ((char) data_types[i])
-               {
-                       case WS_DBUS_TYPE_STRING:
-                               temp->value.s = va_arg (arglist, gchar *);
-                       break;
-                       case WS_DBUS_TYPE_INT:
-                               temp->value.i = va_arg (arglist, gint);
-                       break;
-                       case WS_DBUS_TYPE_UINT:
-                               temp->value.u = va_arg (arglist, guint);
-                       break;
-                       case WS_DBUS_TYPE_DOUBLE:
-                               temp->value.d = va_arg (arglist, gdouble);
-                       break;
-                       case WS_DBUS_TYPE_BOOLEAN:
-                               temp->value.b = va_arg (arglist, gboolean);
-                       break;
-               };
-               g_array_append_val (data_to_send, temp);
-       };
-       va_end (arglist);
-
-       retval = g_try_malloc (sizeof (osso_rpc_t));
-
-       if (retval == NULL) 
-       {
-               g_debug("DBUS: Error in function %s:",__FUNCTION__);
-               g_debug("Couldn't allocate memory for message return value\n");
-       };
-
-       result = osso_rpc_run_with_argfill (ws_dbus_data->context,
-                                           ws_dbus_data->remote_service,
-                                           ws_dbus_data->remote_object,
-                                           ws_dbus_data->remote_iface,
-                                           method,
-                                           retval,
-                                           ws_dbus_fill_message,
-                                           data_to_send);
-       g_debug ("\nDBUS: %s: ", __FUNCTION__);
-
-       ws_dbus_libosso_errors (result);
-
-       if (result != OSSO_OK)
-       {
-               g_debug ("Error message: %s\n", retval->value.s);
-               osso_rpc_free_val (retval);
-               g_free (retval);
-               return WS_DBUS_STATUS_ERROR;
-       };
-
-       osso_rpc_free_val (retval);
-       g_free (retval);
-       return WS_DBUS_STATUS_OK;
-};
-
-/*@}*/
diff --git a/src/gui/Makefile b/src/gui/Makefile
deleted file mode 120000 (symlink)
index 9578f75..0000000
+++ /dev/null
@@ -1 +0,0 @@
-makefile_old
\ No newline at end of file
diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am
deleted file mode 100644 (file)
index f83dcbb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src
\ No newline at end of file
diff --git a/src/gui/autogen.sh b/src/gui/autogen.sh
deleted file mode 100755 (executable)
index b545d89..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-rm -rf compile config.sub config.guess depcomp install-sh ltmain.sh missing aclocal.m4  autom4te.cache/ Makefile.in configure
-rm config.log config.status libtool Makefile
-
-rm -rf src/.libs src/*.la src/.lo src/.deps src/*.o src/*.lo src/Makefile src/Makefile.in src/mdictionary
-
-#[ "_""$1" != "_nogen" ] && aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake
-
-[ "_""$1" != "_nogen" ] && ( aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake )
diff --git a/src/gui/configure.ac b/src/gui/configure.ac
deleted file mode 100644 (file)
index e16af73..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-AC_INIT([src/ws_gui.c])
-AC_CONFIG_AUX_DIR([.])
-
-AM_INIT_AUTOMAKE(mDictionary, 1.0)
-
-# Defines
-APPVER=unofficialbuild
-AC_SUBST(APPVER)
-
-
-PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.0)
-PKG_CHECK_MODULES(GTKHTML, libgtkhtml-3.8 >= 3.8)
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.0)
-PKG_CHECK_MODULES(OSSO, libosso >= 1.0)
-PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.0)
-
-AC_SUBST(GTK_CFLAGS)
-AC_SUBST(GTK_LIBS)
-
-AC_SUBST(GTKHTML_CFLAGS)
-AC_SUBST(GTKHTML_LIBS)
-
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-
-AC_SUBST(OSSO_CFLAGS)
-AC_SUBST(OSSO_LIBS)
-
-AC_SUBST(GCONF_CFLAGS)
-AC_SUBST(GCONF_LIBS)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-AM_PROG_LIBTOOL
-
-AC_CONFIG_SUBDIRS(src/dbus_wrapper)
-
-AC_OUTPUT([  Makefile 
-                          src/Makefile])
\ No newline at end of file
diff --git a/src/gui/include/pc-instances.h b/src/gui/include/pc-instances.h
deleted file mode 100644 (file)
index 32a7e3d..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-#ifndef _PC_INSTANCES_H_
-#define _PC_INSTANCES_H_
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// stadards headers
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-// headers with unix types/functions - only for timers and files operations
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <dirent.h>
-
-//------------------------------------------------------------------------------
-/** \brief Get comandline by which process in /proc tree was invoked.
- *
- * @param process describes which process from /proc tree we want to check. It
- * should be only concrete directory from /proc nothing else. e.g.: /proc/self,
- * /proc/8321 etc. Something like /proc or /proc/self is not good.
- * @return string containing comandline which has invoked process. If NULL there
- * were some problems, possibly parameter were wrong or ther is no such
- * a process.
- */
-char* get_process_cmdline(char* process);
-
-//------------------------------------------------------------------------------
-/** \brief Cut from commandline only program file name.
- *
- * @param cmdline commandline which from which we want to remove options.
- * @return string with only program file name, or NULL if there was any problem
- */
-char* get_process_program_file(char* cmdline);
-
-//------------------------------------------------------------------------------
-/** \brief Get file name containing programm executing by current process.
- *
- * @return file name of program or NULL if there were some problems.
- */
-char* get_current_process_program_file();
-
-//------------------------------------------------------------------------------
-/** \brief Check if there is another instance of current programm.
- *
- * @return integer telling how many processes were initiated with the same
- * program as curent process. If it is 1, it means there is no other procces.
- * If > 1 there is another instance.
- */
-int is_already_running_this_application();
-
-
-
-#ifdef __cplusplus
-} /* extern "C" { */
-#endif
-#endif /* _PC_INSTANCES_H_ */
diff --git a/src/gui/include/ws_gui.h b/src/gui/include/ws_gui.h
deleted file mode 100644 (file)
index 3736201..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \defgroup GUI Dictionary's Graphical User Interface
- * \brief contains Graphical User Interface of mDictionary
- */
-
-/** \addtogroup GUI
- */
-/*@{*/
-/** \file ws_gui.h
- * \brief Definitions of structures used by ws_gui.c
- *
- * \author Anna Gadomska \<anna.gadomska\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- */
-#ifndef _WS_GUI
-#define _WS_GUI 
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#ifdef CHINOOK
-#include <hildon/hildon-program.h>
-#include <hildon/hildon-window.h>
-#include <hildon/hildon-banner.h>
-#include <hildon/hildon-find-toolbar.h>
-#include <hildon/hildon-file-chooser-dialog.h>
-#include <hildon/hildon-caption.h>
-#else
-#include <hildon-widgets/hildon-program.h>
-#include <hildon-widgets/hildon-window.h>
-#include <hildon-widgets/hildon-banner.h>
-#include <hildon-widgets/hildon-find-toolbar.h>
-#include <hildon-fm/hildon-widgets/hildon-file-chooser-dialog.h>
-#include <hildon-widgets/hildon-caption.h>
-#endif
-
-#include <gtk/gtkfilechooser.h>
-#include <gtk/gtkdialog.h>
-#include <gdk/gdkkeysyms.h>
-
-//#include <hildon-widgets/gtk-infoprint.h>
-#include <gdk/gdkkeysyms.h>
-#include <gtk/gtk.h>
-#include <gtkhtml/gtkhtml.h>
-#include <glib.h>
-#include <glib/gprintf.h>
-#include <string.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <sys/time.h>
-
-#include <ws_services.h>
-#include <ws_dbus.h>
-
-#include <gtkhtml/gtkhtml-stream.h>
-#include <gconf/gconf.h>
-#include <gconf/gconf-client.h>
-
-#define ZOOM_MIN 1.000000
-#define ZOOM_MAX 2.000000
-#define ZOOM_STEP 0.100000
-#define ZOOM_DEFAULT 1.300000
-#define PRESS_TIME 1.0
-#define HISTORY_LEN 5
-#define SCROLL_STEP_H 50
-#define SCROLL_STEP_V 20
-#define GCONF_PATH "/apps/maemo/mdictionary/dictionaries"
-#define GCONF_CONF "/apps/maemo/mdictionary/configuration"
-
-
-#include <libintl.h>
-#include <locale.h>
-
-#define _(String) gettext (String)
-#define WS_GUI_ABS(x) (((x)<0.0)?((-1)*(x)):(x))
-
-void html_engine_unselect_all(HTMLEngine   *e);
-void html_engine_block_selection (HTMLEngine   *e);
-gboolean html_engine_is_selection_active (HTMLEngine *e);
-
-typedef struct WSGuiAppData WSGuiApp;
-
-enum
-{
-  COL_WORD = 0,
-  NUM_COLS
-};
-
-
-/** \brief struct which manage layout of html (translation) area
- *
- * here are placed all components of application menu and popup menu
- */
-struct HtmlLayout {
-gchar *bg_color;
-gchar *bg_image;
-gchar *bg_font_color;
-
-gchar *th_color;
-gchar *th_image;
-gchar *th_font_color;
-
-gchar *td_color;
-gchar *td_image;
-gchar *td_font_color;
-};
-
-/** \brief struct which contains components of menu
- *
- * here are placed all components of application menu and popup menu
- */
-struct WSGuiMenu {
-       /*application menu*/
-       GtkWidget *ws_gui_main_menu; ///< application submenu
-       GtkWidget *ws_gui_menu_dictionaries; ///< dictionaries submenu (managing with the dictionary files)
-       GtkWidget *ws_gui_menu_load_dict; ///<menuitem in dictionaries submenu; load new dictionary file into application
-       GtkWidget *ws_gui_menu_select_dict; ///<menuitem in dictionaries submenu; allow to select which dictionaries are used
-       GtkWidget *ws_gui_menu_remove_dict; ///<menuitem in dictionaries submenu; remove dictionary files which are no longer used
-       GtkWidget *ws_gui_menu_optimize_dict; ///< menuitem used for optimizing dictionaries
-       
-       GtkWidget *ws_gui_menu_bookmarks; ///bookmarks submenu 
-       GtkWidget *ws_gui_menu_open_bookmark; ///menuitem, opens bookmark window
-       GtkWidget *ws_gui_menu_close_bookmark; ///menuitem, closes bookmark window
-       GtkWidget *ws_gui_menu_add_bookmark; ///menuitem used fot adding bookmarks
-       GtkWidget *ws_gui_menu_remove_bookmark; ///menuitem, allows for removing bookmarks
-       
-       GtkWidget *ws_gui_menu_edit; ///< edit submenu(connected with text editing)
-       GtkWidget *ws_gui_menu_copy; ///< menuitem in edit submenu; copy selected text to the clipboard
-       GtkWidget *ws_gui_menu_paste; ///< menuitem in edit submenu; paste content of the clipboard into find toolbar entry
-       GtkWidget *ws_gui_menu_select_all; ///< menuitem in edit submenu; select whole text in the translation (html) area 
-       GtkWidget *ws_gui_menu_view; ///< view submenu
-       GtkWidget *ws_gui_menu_hide_list; ///< menuitem which allows to hide/show words list
-       GtkWidget *ws_gui_menu_zoom_in; ///< menuitem which allows to zoom in text in the translation area
-       GtkWidget *ws_gui_menu_zoom_out; ///< menuitem which allows to zoom out text in the translation area
-       GtkWidget *ws_gui_menu_full_screen; ///< menuitem which allows to switch between fullscreen and normal mode
-       GtkWidget *ws_gui_menu_search; ///< search submenu (connected with searching)
-       GtkWidget *ws_gui_menu_find_word; ///< menuitem which allows to start searching
-       GtkWidget *ws_gui_menu_find_prev; ///< menuitem which allows to find previous word from the history
-       GtkWidget *ws_gui_menu_find_next; ///< menuitem which allows to find next word in the history 
-       GtkWidget *ws_gui_menu_stop; ///< menuitem which stops search
-       GtkWidget *ws_gui_menu_about; ///< menuitem which opens 'about application' dialog window
-       GtkWidget *ws_gui_menu_close; ///< menuitem which closes the application
-       
-       GtkWidget *ws_gui_submenu_0; ///< submenu which is necessaty to build dictionaries submenu
-       GtkWidget *ws_gui_submenu_1; ///< submenu which is necessary to build edit submenu
-       GtkWidget *ws_gui_submenu_2; ///< submenu which is necessary to build view submenu
-       GtkWidget *ws_gui_submenu_3; ///< submenu which is necessary to build search submenu
-       GtkWidget *ws_gui_submenu_4; ///< submenu which is necessary to build search submenu
-       GtkWidget *ws_gui_separator; ///< separator, it is used to provide nice layout
-       
-       /*ws_gui_menu popup*/
-       GtkWidget *ws_gui_popup_menu;  ///< popup menu
-       GtkWidget *ws_gui_popup_search;///< search option, allow to search selected text
-       GtkWidget *ws_gui_popup_bookmark;///< search option, allow to search selected text
-       GtkWidget *ws_gui_popup_edit; ///< edit submenu
-       GtkWidget *ws_gui_popup_submenu; ///< submenu (necessary to create edit submenu)
-       GtkWidget *ws_gui_popup_copy; ///< menuitem which allows to copy selected to the clipboard
-       GtkWidget *ws_gui_popup_paste; ///< menuitem which allows to paste content of the clipboard into find toolbar entry
-       GtkWidget *ws_gui_popup_select_all; ///<menuitem which allows to select whole text in translation area
-       GtkWidget *ws_gui_popup_zoom_in; ///< menuitem which allows to zoom in text in translation area
-       GtkWidget *ws_gui_popup_zoom_out; ///< menuitem which allows to zoom in text in translation area
-       
-       GtkWidget *ws_gui_separator1; ///< separator, it is used to provide nice layout
-       GtkWidget *ws_gui_separator2; ///< separator, it is used to provide nice layout
-};
-
-/** \brief struct which contains components of words list
- *
- * here are placed all components of words list (inside left scrollwindow)
- */
-struct WSGuiList {
-       GtkWidget* ws_gui_list; ///< list which contains words
-       GtkWidget* ws_gui_list_item; ///< item in words list (each word)
-       GtkWidget* ws_gui_list_label; ///< label, necessary to place word in words list
-       
-       GtkObject* ws_gui_list_item_object; ///< object which stores data of selected item (from words list)
-       //gchar* ws_gui_list_item_data_string; ///< variable which stores translation of word (html content)
-
-       GtkListStore* ws_gui_store; ///< list necessary to present words list
-       GtkTreeIter ws_gui_iter; ///< variable necessary to present words list
-       GtkCellRenderer* ws_gui_renderer; ///< variable necessary to draw GtkTree 
-       GtkTreeModel* ws_gui_model; ///< model of GtkTree
-       GtkWidget* ws_gui_view; ///< variable responsible for view of GtkTree
-       GtkTreeSelection* ws_gui_selection; ///< variable necessary to read selection (from words list)
-};
-
-/** \brief struct which contains all components of application
- *
- * here are placed all components of main window, toolbar, structures responsible for menus and variables responsible for adjustments, words history, banners, message dialogs and everything what user can see and use
- */
-struct WSGuiAppData {
-       HildonProgram *ws_gui_hildon_program; ///< handle to hildon program
-       HildonWindow *ws_gui_hildon_window; ///< handle to hildon window
-       gchar *welcome_note; ///< welcome note
-       GtkWidget *ws_gui_html; ///< translation (html) area 
-       GtkWidget *ws_gui_hpane; ///< pane; it allows to divide window into two separate panels
-       HildonFindToolbar *ws_gui_hildon_find_toolbar; ///< find toolbar (placed at the bottom of the window)
-       GtkToolItem *ws_gui_toobar_button_close; ///< close button at the find toolbar
-       GtkToolItem *ws_gui_toobar_button_back; ///< back button at the find toolbar (history navigator)
-       GtkToolItem *ws_gui_toobar_button_forward; ///< next button at the find toolbar (history navigator)
-       GtkToolItem *ws_gui_toobar_button_stop; ///< stop butoon at the find toolbar (allows to stop searching)
-       GtkToolItem *ws_gui_toobar_button_start; ///< stop butoon at the find toolbar (allows to stop searching)
-       GtkWidget *ws_gui_banner_list_searching; ///< banner, displays message that searching is in progress
-       GtkWidget *ws_gui_banner_caching; ///< banner, displays message that caching is in progress
-       GtkWidget *ws_gui_banner_translation_loading; ///< banner, displays message that translation is loading
-       gboolean caching_flag; ///< flag; used when caching is being performed
-       gboolean loading; 
-       gboolean stop_clicked; 
-       GtkWidget *ws_gui_banner_extracting;
-       GtkToolItem *ws_gui_toobar_button_hide; ///< button hide, allows to hide/show words list with button placed at find toolbar
-       GtkWidget *ws_gui_scrolledwindow_right; ///< right scrolledwindow (placed in right pane), necessary to provide scrollbars)
-       GtkWidget *ws_gui_scrolledwindow_left; ///< scrollwindow (placed in left pane), necessary to provide scrollbars)
-
-       GtkWidget *ws_gui_list_vbox;
-       GtkWidget *ws_gui_list_hbox;
-       GtkWidget *ws_gui_list_label;
-       GtkWidget *ws_gui_list_eventbox;
-       GtkWidget *ws_gui_list_image;
-
-       gchar *ws_gui_html_source; ///< string which contains html content (translation of word)
-       
-       GtkAdjustment* ws_gui_vadj; ///< vertical adjustment of left scrolledwindow (necessary to provide navigation (kardware keys) inside words list)
-       GtkAdjustment* ws_gui_hadj; ///< horizontal adjustment of left scrolledwindow (necessary to provide navigation (kardware keys) inside words list)
-       gdouble v_delta; ///< variable used for moving vertical scrollbar in words list
-       gdouble v_new_value; ///< variable used for moving vertical scrollbar in words list
-       gdouble h_delta; ///< variable used for moving horizontal scrollbar in words list
-       gdouble h_new_value; ///< variable used for moving horizontal scrollbar in words list
-       gdouble cur_vadj; ///< current vertical adjustment of vertical scrollbar in words list
-       gdouble prev_vadj; ///< previous vertical adjustment of vertical scrollbar in words list
-       gdouble cur_hadj; ///< current vertical adjustment of horizontal scrollbar in words list
-       gdouble prev_hadj; ///< previous vertical adjustment of horizontal scrollbar in words list
-       
-       GArray *ws_gui_history; ///< words history
-       GArray *ws_gui_history_list;
-       GArray *ws_gui_history_iter;
-       GArray *ws_gui_history_bookmarks;
-       gboolean history_flag;
-       gint ws_gui_history_cur_pos; ///< current position in words history array 
-       
-
-       struct WSGuiMenu *ws_gui_menu; ///< structure responsible for menus
-       struct WSGuiList *ws_gui_w_list; ///< structure responsible for words list
-       
-       gboolean ws_gui_banner_flag; ///< flag; used for notifing if searching is in progress and banner has to be displaying
-       gboolean ws_gui_full_screen_flag; ///< flag; used for informing if fullscreen mode is active
-       gboolean ws_gui_double_click; ///< flag; necessary to recognize double click
-       gboolean ws_gui_sel_flag; ///< flag; used to identify selected text
-       
-       WSDBusData *dbus_data; ///< DBUS declaration
-       
-       GtkWidget* ws_message_dialog; ///< message dialogs; used for informing user about errors
-       
-       GSList *directories; ///< list consist of directories previously read from gconf
-       GSList *directories_last; ///< list consist of directories previously read from gconf
-       GConfClient *client; ///< variable necessary to read from gconf
-       GtkClipboard *ws_gui_clipboard; ///< application clipboard (available outside the application as well)
-       GtkClipboard *ws_gui_clipboard_primary;
-       PangoFontDescription* p; ///< schema, which allows to format text on widgets
-       GtkWidget *licence_dialog; ///< variable necessary to create license dialog
-       GTimer *timer; ///< timer, counts how long user press button (stylus)
-       GArray *bookmarks_list; ///< array wchich contains bookmarked words
-       gboolean bookmark_on; ///< flag which switch beetween bookmark and normal mode
-       gchar *word_book; ///< word added to the bookmarks
-       gchar *translation_book; ///< translation of the word added to bookmarks
-       
-       gboolean bookmark_avail; ///< flag, denpends on availablity of bookmarks module
-       gboolean bookmark_mode; ///< flag, shows either bookmarks mode is on or off
-       gchar *last_word; ///< stores last choosen word on the words list (necessary for bookmarks)
-       GString *raw_translation; ///< stores current translation, if user wants to add it to bookmarks
-       gchar *last_searched;
-       gchar *last_searched_in_book;
-       gdouble zoom;
-       gboolean html_flag;
-       gboolean no_words_found;
-       
-       gboolean first_run;
-       gboolean dictionary_selection_changed;
-
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/*@}*/
diff --git a/src/gui/include/ws_gui_callbacks.h b/src/gui/include/ws_gui_callbacks.h
deleted file mode 100644 (file)
index cb93267..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup GUI
- */
-/*@{*/
-/** \file ws_gui_callbacks.h
- * \brief Declaration of structures used by ws_gui_callbacks.c
- *
- * \author Anna Gadomska \<anna.gadomska\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- */
-#ifndef _WS_GUI_CALLBACKS
-#define _WS_GUI_CALLBACKS 
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#include <ws_gui.h>
-
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <fcntl.h>     
-#include <unistd.h>   
-
-#define TIMER_START TRUE
-#define TIMER_STOP  FALSE
-
-
-/* added by Dariusz Wiechecki - HISA */
-void ws_gui_search_home_handler(GError *error, GArray *word, gpointer user_data);
-
-/** \brief handle dbus signals
- *
- */
-void ws_gui_signal_hander (GError *error, GArray *words, gpointer user_data);
-
-/** \brief handle signal from dbus and updates progress bar(in order to caching)
- *
- */
-void ws_dbus_progress_bar(GError *error, GArray *words, gpointer user_data);
-
-/** \brief clean words list
- *
- */
-void ws_gui_clear_list (GtkListStore* list, gpointer user_data);
-
-/** \brief handle dbus signal and transfer words to the words list
- *
- */
-void ws_gui_dbus_return_words (GError *error, 
-                              GArray *words, 
-                              gpointer user_data);
-
-/** \brief handle dbus signal and convert message into readable text 
- *
- */
-void ws_gui_dbus_return_translation (GError *error, 
-                                     GArray *words,
-                                     gpointer user_data);
-
-/** \brief handle dbus signal and load extracted dictionary 
- *
- */
-void ws_dbus_server_return_extracted_bzip(GError *error, 
-                                         GArray *words, 
-                                         gpointer user_data);
-
-/**  \brief is used to free memory, which was allocated
-*
-*/
-void ws_gui_free_memory(gpointer user_data);
-
-/**  \brief handle keys press signals (hardware keys in device)
-*
-*/
-gboolean hildon_key_press_listener (GtkWidget * widget,
-                                    GdkEventKey * keyevent,
-                                    gpointer user_data);
-
-/**  \brief allow to hide words list from menu
-*
-*/
-void ws_gui_words_list_hide_from_menu(GtkCheckMenuItem *checkmenuitem,
-                                      gpointer user_data);
-
-/**  \brief allow to hide words list from toolbar
-*
-*/
-void ws_gui_words_list_hide(GtkToggleButton *togglebutton, gpointer user_data);
-
-/**  \brief add word to the words history
-*
-*/
-void ws_gui_history_add(char *new_word, gpointer user_data);
-
-/**  \brief display translation of word stored in the history (if available)
-*
-*/
-void ws_gui_history_back(GtkButton *button, gpointer user_data);
-
-/**  \brief display translation of word stored in the history (if available)
-*
-*/
-void ws_gui_history_next(GtkButton *button, gpointer user_data);
-
-/** \brief check history and disable buttons or uncheck checkbuttons 
- *
- */
-void ws_gui_check_history(gpointer user_data);
-
-/** \brief creates model and view of words list
- *
- */
-GtkWidget * create_view_and_model (GArray *words_list, gpointer user_data);
-
-/** \brief creates words list and fill it with content
- *
- */
-GtkTreeModel * create_and_fill_model (GArray *words_list, gpointer user_data);
-
-/**  \brief switch view between full screen and normal mode 
-*
-*/
-void ws_gui_full_screen(GtkMenuItem *menuitem, gpointer user_data);
-
-/**  \brief search for selected text in a dictionary
-*
-*/
-void ws_gui_popup_search(GtkMenuItem *menuitem, gpointer user_data);
-
-/**  \brief allows to select whole text in translation (html) area
-*
-*/
-void ws_gui_html_select_all(GtkMenuItem *menuitem, gpointer user_data);
-
-/**  \brief allows to copy text from translation (html) area into clipboard
-*
-*/
-void ws_gui_html_copy(GtkMenuItem *menuitem, gpointer user_data);
-
-/**  \brief allows to paste text from the clipboard into find toolbar entry
-*
-*/
-void ws_gui_html_paste(GtkMenuItem *menuitem, gpointer user_data);
-
-/**  \brief magnify translation (html) area
-*
-*/
-void ws_gui_html_zoom_in(GtkMenuItem *menuitem, gpointer user_data);
-
-/**  \brief zoom out translation (html) area.
-*
-*/
-void ws_gui_html_zoom_out(GtkMenuItem *menuitem, gpointer user_data);
-
-/**  \brief start search (sends typed word to the engine)
-*
-*/
-void ws_gui_search(GtkWidget * widget, gpointer user_data);
-
-/**  \brief  abort search
-*
-*/
-void ws_gui_search_stop(GtkButton *button, gpointer user_data);
-
-/**  \brief used when user closes the application
-*
-*/
-void ws_gui_on_exit (GtkWidget *widget, GdkEvent *event, gpointer user_data);
-
-/**  \brief used when user closes the application from menu
-*
-*/
-void ws_gui_menu_quit(GtkMenuItem *menuitem, gpointer user_data);
-
-/**  \brief sets content of translation (html) area
-*
-*/
-void ws_gui_fill_html(char *html_context, gpointer user_data);
-
-/** \brief read current adjustment value
- *
- */
-void ws_gui_read_adjustment(gpointer user_data);
-
-/** \brief necessary to load images into translation (html) area
- *
- */
-void ws_gui_url_requested (GtkHTML *html, const char *url,
-                           GtkHTMLStream *stream);
-
-/** \brief handles button press event
- *
- */
-gboolean ws_gui_button_press (GtkWidget *widget,
-                              GdkEventButton *event,
-                              gpointer user_data);
-
-/** \brief handles button release event
- *
- */
-gboolean ws_gui_button_release (GtkWidget *widget,
-                                GdkEventButton *event,
-                                gpointer user_data);
-
-/** \brief shows popup when user clicks and holds
- *
- */
-guint ws_gui_show_popup(gpointer user_data);
-
-/** \brief checks clipboard content
- *
- */
-void ws_gui_check_clipboard (GtkWidget *widget, gpointer user_data);
-
-/** \brief checks dictionaries availablity
- *
- */
-void ws_gui_dict_availablity(GtkMenuItem *menuitem, gpointer user_data);
-
-/** \brief allows to format html content
- *
- */
-gchar * format_html (gchar * received_string, gpointer user_data);
-
-/** \brief sets sensitivity of Bookmarks menu items
- *
- */
-void ws_gui_set_bookmarks_sensitivity(gpointer user_data);
-
-/** \brief sets sensitivity of Bookmarks menu items due to selection made
- *
- */
-void ws_gui_set_bookmark_menu_items(GtkMenuItem *menuitem, gpointer user_data);
-
-/** \brief sets sensitivity of menu items due to dictionary mode 
- *
- */
-void ws_gui_read_active_dictionaries(gpointer user_data);
-
-/** \brief free a GArray and its elements.
- *
- */
-void ws_gui_clear_array(GArray *history);
-
-/** \brief escapes a bug in Hildon GtkTreeList
- *
- */
-void ws_gui_view_cursor_changed(GtkTreeView *treeview, gpointer user_data);
-
-/** \brief sets toolbar availability
- *
- */
-void ws_gui_set_toolbar_avail(gpointer user_data);
-
-/** \brief refreshes search results
- *
- */
-void ws_refresh_search_results(gpointer user_data);
-/*@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/*@}*/
diff --git a/src/gui/include/ws_gui_layout.h b/src/gui/include/ws_gui_layout.h
deleted file mode 100644 (file)
index b75a6a1..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup GUI
- */
-/*@{*/
-/** \file ws_gui_layout.h
- * \brief Definitions of structures used by ws_gui_layout.c
- *
- * \author Anna Gadomska \<anna.gadomska\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- */
-#ifndef _WS_GUI_LAYOUT
-#define _WS_GUI_LAYOUT
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <ws_gui.h>
-#include <ws_gui_callbacks.h>
-
-/**
-* \brief create main window
-*
-*/
-void ws_gui_create_window(gpointer user_data);
-
-/**
-* \brief create find toolbar
-*
-*/
-void ws_gui_create_find_toolbar(gpointer user_data);
-
-/**
-* \brief create application menu
-*
-*/
-void ws_gui_create_main_menu (gpointer user_data);
-
-/**
-* \brief create popup menu
-*
-*/
-void ws_gui_create_popup_menu (gpointer user_data);
-
-/** 
- * \brief select dictionaries to use
- *
- */
-void ws_gui_dictionary_chooser(GtkMenuItem *menuitem, gpointer user_data);
-
-/** 
- * \brief load new dictionary files
- *
- */
-void ws_gui_dictionary_loader(GtkMenuItem *menuitem, gpointer user_data);
-
-/** 
- * \brief load dictionary file using given filename
- *
- */
-gboolean ws_gui_load_dict(gchar *filename, gpointer user_data);
-
-/** 
- * \brief remove dictionary from application
- *
- */
-void ws_gui_dictionary_remover(GtkMenuItem *menuitem, gpointer user_data);
-
-/** 
- * \brief optimize dictionaries
- *
- */
-void ws_gui_dictionary_optimizer(GtkMenuItem *menuitem, gpointer user_data);
-
-/** 
- * \brief open bookmark window
- *
- */
-void ws_gui_dictionary_open_bookmark(GtkMenuItem *menuitem, gpointer user_data);
-
-/** 
- * \brief close bookmark window
- *
- */
-void ws_gui_dictionary_close_bookmark(GtkMenuItem *menuitem, 
-                                     gpointer user_data);
-
-/** 
- * \brief add bookmark to bookmarks database
- *
- */
-void ws_gui_dictionary_add_bookmark(GtkMenuItem *menuitem, gpointer user_data);
-
-/** 
- * \brief remove bookmark from database
- *
- */
-void ws_gui_dictionary_remove_bookmark(GtkMenuItem *menuitem, 
-                                      gpointer user_data);
-
-/** 
- * \brief display information about application
- *
- */
-void ws_gui_about_application(GtkMenuItem *menuitem, gpointer user_data);
-
-/** 
- * \brief creates Add Bookmark dialog window
- *
- */
-void ws_gui_add_bookmark_dialog(gpointer user_data);
-
-/** 
- * \brief creates Remove Bookmark dialog window
- *
- */
-void ws_gui_remove_bookmark_dialog(gpointer user_data);
-
-void ws_gui_list_full_dialog(GtkWidget *widget, GdkEventButton *event, gpointer user_data);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/*@}*/
diff --git a/src/gui/include/ws_gui_utils.h b/src/gui/include/ws_gui_utils.h
deleted file mode 100644 (file)
index b54ad13..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup GUI */
-/*@{*/
-/** \file ws_gui_utils.h
- * \brief File with functions used in GUI - header.
- */
-#ifndef _WS_GUI_UTILS
-#define _WS_GUI_UTILS
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Function that checks if given char is hex
- */
-gboolean ws_gui_is_hex ( char tchar );
-
-/**
- * \brief Function that changes all hex characters into asci code.
- */
-void ws_gui_word_conversion( osso_rpc_t* osso_data );
-
-/*@}*/
-#ifdef __cplusplus
-}
-#endif
-#endif
-/*@}*/
-
-//end of file
diff --git a/src/gui/makefile_old b/src/gui/makefile_old
deleted file mode 100644 (file)
index 178db92..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-CC = gcc
-DEBUG = -g -Wall
-EXECUTABLE = mdictionary
-APP_NAME = mDictionary
-LOCALEDIR = /usr/share/locale
-INCLUDE_GUI = include
-INCLUDE_DBUS_WRAPPER = ../../include
-CFLAGS = `pkg-config --cflags gtk+-2.0 libgtkhtml-3.8 glib-2.0 libosso gconf-2.0` -I${INCLUDE_GUI} -I${INCLUDE_DBUS_WRAPPER}
-LIBS = `pkg-config --libs gtk+-2.0 libgtkhtml-3.8 glib-2.0 libosso gconf-2.0` 
-DEFINES = -DPACKAGE=\"${APP_NAME}\" -DLOCALEDIR=\"${LOCALEDIR}\"
-APP_VER = unofficialbuild
-
-CFLAGS += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo `pkg-config --cflags hildon-fm-2 hildon-1`)
-LIBS += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo `pkg-config --libs hildon-fm-2 hildon-1`)
-DEFINES += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo -DCHINOOK)
-
-CFLAGS += $(shell pkg-config --exists hildon-fm hildon-libs && echo `pkg-config --cflags hildon-fm hildon-libs`)
-LIBS += $(shell pkg-config --exists hildon-fm hildon-libs && echo `pkg-config --libs hildon-fm hildon-libs`)
-
-SOURCES = src
-BINARIES = bin
-MAIN_BINARIES = ../../bin
-
-${EXECUTABLE}: ${BINARIES}/ws_gui.o ${BINARIES}/ws_gui_callbacks.o ${BINARIES}/ws_gui_layout.o ${BINARIES}/ws_gui_utils.o ${MAIN_BINARIES}/ws_dbus.o
-               ${CC} ${DEBUG}   -o ${BINARIES}/${EXECUTABLE} ${BINARIES}/ws_gui.o ${BINARIES}/ws_gui_callbacks.o ${BINARIES}/ws_gui_layout.o ${BINARIES}/ws_gui_utils.o ${MAIN_BINARIES}/ws_dbus.o ${LIBS} ${CFLAGS} ${DEFINES}
-               @cp ${BINARIES}/${EXECUTABLE} ${MAIN_BINARIES}
-
-${BINARIES}/ws_gui.o: ${SOURCES}/ws_gui.c ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_GUI}/ws_gui_callbacks.h ${INCLUDE_GUI}/ws_gui_layout.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
-               ${CC} ${DEBUG} -c ${SOURCES}/ws_gui.c -o ${BINARIES}/ws_gui.o ${CFLAGS}  ${DEFINES}
-
-${BINARIES}/ws_gui_callbacks.o: ${SOURCES}/ws_gui_callbacks.c ${INCLUDE_GUI}/ws_gui_callbacks.h ${INCLUDE_GUI}/ws_gui.h  ${INCLUDE_GUI}/ws_gui_utils.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
-               ${CC} ${DEBUG} -c ${SOURCES}/ws_gui_callbacks.c -o ${BINARIES}/ws_gui_callbacks.o ${CFLAGS}  ${DEFINES}
-
-${BINARIES}/ws_gui_layout.o: ${SOURCES}/ws_gui_layout.c ${INCLUDE_GUI}/ws_gui_layout.h ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
-               ${CC} ${DEBUG} -DWS_VERSION=\"${APP_VER}\" -c ${SOURCES}/ws_gui_layout.c -o ${BINARIES}/ws_gui_layout.o ${CFLAGS}  ${DEFINES}
-
-${BINARIES}/ws_gui_utils.o: ${SOURCES}/ws_gui_utils.c ${INCLUDE_GUI}/ws_gui_utils.h
-               ${CC} ${DEBUG} -DWS_VERSION=\"${APP_VER}\" -c ${SOURCES}/ws_gui_utils.c -o ${BINARIES}/ws_gui_utils.o ${CFLAGS}  ${DEFINES}
-
-${MAIN_BINARIES}/ws_dbus.o:
-               cd ../dbus_wrapper && make
-
-
-dyn:
-               ${BINARIES}/wsl_gui.o ${BINARIES}/wsl_gui_callbacks.o ${BINARIES}/wsl_gui_layout.o ${BINARIES}/wsl_gui_utils.o
-               @{CC} ${DEBUG} -shared -fPIC -o ${EXECUTABLE}.so ${BINARIES}/wsl_gui.o ${BINARIES}/wsl_gui_callbacks.o ${BINARIES}/wsl_gui_layout.o ${BINARIES}/wsl_gui_utils.o dbus/ws_dbus.o ${LIBS} ${CFLAGS} ${DEFINES}
-
-${BINARIES}/wsl_gui.o: ${SOURCES}/ws_gui.c ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_GUI}/ws_gui_callbacks.h ${INCLUDE_GUI}/ws_gui_layout.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
-               @{CC} ${DEBUG} -fPIC -c ${SOURCES}/ws_gui.c -o ${BINARIES}/wsl_gui.o ${CFLAGS} ${DEFINES}
-
-${BINARIES}/wsl_gui_callbacks.o: ${SOURCES}/ws_gui_callbacks.c ${INCLUDE_GUI}/ws_gui_callbacks.h ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
-               @{CC} ${DEBUG} -fPIC -c ${SOURCES}/ws_gui_callbacks.c -o ${BINARIES}/wsl_gui_callbacks.o ${CFLAGS} ${DEFINES}
-
-${BINARIES}/wsl_gui_layout.o: ${SOURCES}/ws_gui_layout.c ${INCLUDE_GUI}/ws_gui_layout.h ${INCLUDE_GUI}/ws_gui.h ${INCLUDE_DBUS_WRAPPER}/ws_dbus.h
-               @{CC} ${DEBUG} -fPIC -c ${SOURCES}/ws_gui_layout.c -o ${BINARIES}/wsl_gui_layout.o ${CFLAGS} ${DEFINES}
-
-${BINARIES}/wsl_gui_utils.o: ${SOURCES}/ws_gui_utils.c ${INCLUDE_GUI}/ws_gui_utils.h
-               @{CC} ${DEBUG} -fPIC -c ${SOURCES}/ws_gui_utils.c -o ${BINARIES}/wsl_gui_utils.o ${CFLAGS} ${DEFINES}
-
-clean:
-       rm -f ${BINARIES}/*
-       @echo "done"
diff --git a/src/gui/src/Makefile.am b/src/gui/src/Makefile.am
deleted file mode 100644 (file)
index a15cc43..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-SUBDIRS = dbus_wrapper
-
-bin_PROGRAMS = mdictionary
-mdictionary_SOURCES = ws_gui.c  ws_gui_callbacks.c  ws_gui_layout.c  ws_gui_utils.c
-mdictionary_CFLAGS = -DLOCALEDIR=\"/usr/share/locale\"  $(GTK_CFLAGS)  $(GTKHTML_CFLAGS) $(GLIB_CFLAGS) $(OSSO_CFLAGS) $(GCONF_CFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)/../../include
-mdictionary_LDFLAGS = $(GTK_LIBS)  $(GTKHTML_LIBS) $(GLIB_LIBS) $(OSSO_LIBS) $(GCONF_LIBS) 
-
-mdictionary_CFLAGS += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo `pkg-config --cflags hildon-fm-2 hildon-1`)
-mdictionary_LDFLAGS += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo `pkg-config --libs hildon-fm-2 hildon-1`)
-
-mdictionary_CFLAGS += $(shell pkg-config --exists hildon-fm hildon-libs && echo `pkg-config --cflags hildon-fm hildon-libs`)
-mdictionary_LDFLAGS += $(shell pkg-config --exists hildon-fm hildon-libs && echo `pkg-config --libs hildon-fm hildon-libs`)
-
-mdictionary_CFLAGS += $(shell pkg-config --exists hildon-fm-2 hildon-1 && echo -DCHINOOK)
-mdictionary_CFLAGS += -DWS_VERSION=\"$(APPVER)\"
-
-mdictionary_LDADD = dbus_wrapper/src/libws_dbus.la
\ No newline at end of file
diff --git a/src/gui/src/dbus_wrapper b/src/gui/src/dbus_wrapper
deleted file mode 120000 (symlink)
index 072c363..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../dbus_wrapper
\ No newline at end of file
diff --git a/src/gui/src/pc-instances.c b/src/gui/src/pc-instances.c
deleted file mode 100644 (file)
index 76490cd..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-#include <pc-instances.h>
-
-//------------------------------------------------------------------------------
-/** \brief Get comandline by which process in /proc tree was invoked.
- *
- * @param process describes which process from /proc tree we want to check. It
- * should be only concrete directory from /proc nothing else. e.g.: /proc/self,
- * /proc/8321 etc. Something like /proc or /proc/self is not good.
- * @return string containing comandline which has invoked process. If NULL there
- * were some problems, possibly parameter were wrong or ther is no such
- * a process.
- */
-char* get_process_cmdline(char* process)
-{
-       // build final filename to read
-       const char* postfix = "/cmdline";
-       int arg_len = strlen(process);
-       char* tmp = (char*)malloc((size_t)(arg_len+9));
-       tmp[arg_len+8] = '\0';
-       sprintf(tmp,"%s%s",process,postfix);
-       //printf("Process to check: %s\n",tmp);
-
-       // open file to read
-       int file = open(tmp, O_RDONLY);
-       free(tmp); tmp = 0;
-       if(-1 == file)
-       {
-               return (char*)0;
-       }
-
-       int length = 512;       
-
-       // buffer for data from /proc/self/cmdline file
-       char* buffer = (char*)malloc(length + 1);
-
-       // read file to buffer
-       int readed = read(file, buffer, length);
-       close(file);
-       if(readed == length)
-       {
-               free(buffer);
-               return (char*)0;
-       }
-       buffer[length] = '\0';
-
-       //printf("%s() returned finaly: %s\n",__FUNCTION__,buffer);
-       return buffer;
-}
-//------------------------------------------------------------------------------
-/** \brief Cut from commandline only program file name.
- *
- * @param cmdline commandline which from which we want to remove options.
- * @return string with only program file name, or NULL if there was any problem
- */
-char* get_process_program_file(char* cmdline)
-{
-       int start = 0;
-       int stop  = 0;
-       // find first space in buffer (to remove optional options etc.)
-       while(cmdline[stop] && cmdline[stop] != ' ')
-       {
-               ++stop;
-       }
-       cmdline[stop] = '\0';
-
-       // find last "/" to remove directories 
-       start = stop;
-       while((start>0) && (cmdline[start] != '/'))
-       {
-               --start;
-       }
-       if(cmdline[start] == '/')
-       {
-               ++start;
-       }
-
-       // cut only needed fragment of buffer
-       if(start == stop)
-       {
-               return (char*)0;
-       }
-
-       char* result = (char*)malloc(stop - start + 1);
-       memcpy(result, cmdline + start, stop - start + 1);
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Get file name containing program executing by current process.
- *
- * @return file name of program or NULL if there were some problems.
- */
-char* get_current_process_program_file()
-{
-       char* cmd = get_process_cmdline("/proc/self");
-       if(!cmd)
-       {
-               return (char*)0;
-       }
-       char* name = get_process_program_file(cmd);
-       free(cmd); cmd = 0;
-
-       return name;
-}
-//------------------------------------------------------------------------------
-/** \brief Check if there is another instance of current programm.
- *
- * @return integer telling how many processes were initiated with the same
- * program as curent process. If it is 1, it means there is no other procces.
- * If > 1 there is another instance.
- */
-int is_already_running_this_application()
-{
-       char* app = get_current_process_program_file();
-       int   count = 0;
-
-       struct dirent* entry;
-       DIR*   dir = opendir("/proc");
-       struct stat st;
-
-       char   path[512];
-       sprintf(path,"%s","/proc/");
-       char*  tmp = path + 6;
-
-       while((entry = readdir(dir)) != NULL)
-       {
-               sprintf(tmp,"%s",entry->d_name);
-               lstat(path,&st);
-
-               if(S_ISDIR(st.st_mode))
-               {
-                       char* cmd = get_process_cmdline(path);
-                       if(!cmd) continue;
-                       char* name = get_process_program_file(cmd);
-                       free(cmd); cmd = 0;
-                       if(!name) continue;
-                       //printf("%s: next programm: %s\n",app,name);
-
-                       if(strcmp(app,name) == 0) 
-                       {
-                               ++count;
-                       }
-
-                       free(name); name = 0;
-               }
-       }
-       closedir(dir); dir = NULL;
-       free(app); app = 0;
-       return count;
-}
-//------------------------------------------------------------------------------
diff --git a/src/gui/src/ws_gui.c b/src/gui/src/ws_gui.c
deleted file mode 100644 (file)
index 773d485..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup GUI
- */
-/*@{*/
-/** \file ws_gui.c
- * \brief Main GUI file.
- *
- * GUI main loop and basic configuration of gui modules.
- * \author Anna Gadomska \<anna.gadomska\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- */
-
-#include <ws_gui.h>
-#include <ws_gui_callbacks.h>
-#include <ws_gui_layout.h>
-
-//int ws_gui_init(int argc, char *argv[])
-int main(int argc, char *argv[])
-{
-       
-       
-       gtk_init(&argc, &argv);
-
-       //localization
-       setlocale(LC_ALL, "");
-       bindtextdomain(PACKAGE, LOCALEDIR);
-       bind_textdomain_codeset(PACKAGE, "UTF-8");
-       textdomain(PACKAGE);
-
-       if (strcmp(_("ws_check"), "ws_check") == 0)
-       {
-               setlocale(LC_ALL, "en_GB");
-               bindtextdomain(PACKAGE, LOCALEDIR);
-               bind_textdomain_codeset(PACKAGE, "UTF-8");
-               textdomain(PACKAGE);
-       }
-
-
-       WSGuiApp *ws_gui_app;
-       ws_gui_app = (WSGuiApp*)g_malloc(sizeof(WSGuiApp)); 
-
-       /*memory allocation*/
-       ws_gui_app->ws_gui_w_list = 
-               (struct WSGuiList*)g_malloc(sizeof(struct WSGuiList));
-       ws_gui_app->ws_gui_menu = 
-               (struct WSGuiMenu*)g_malloc(sizeof(struct WSGuiMenu));
-
-       /*gconf*/
-       ws_gui_app->client = gconf_client_get_default();
-
-       ws_gui_create_window(ws_gui_app);
-       ws_gui_read_adjustment(ws_gui_app);
-
-
-       /*dbus wrapper*/
-       ws_gui_app->dbus_data = ws_dbus_create ("mdictionaryGui", "v1.0");
-
-       /*dbus wrapper configuration*/
-       ws_dbus_config (ws_gui_app->dbus_data, 
-                       WS_DBUS_CONFIG_SERVICE,
-                       GUI_SERVICE);
-       ws_dbus_config (ws_gui_app->dbus_data,
-                       WS_DBUS_CONFIG_OBJECT,
-                       GUI_OBJECT);
-       ws_dbus_config (ws_gui_app->dbus_data,
-                       WS_DBUS_CONFIG_IFACE,
-                       GUI_IFACE);
-       ws_dbus_config (ws_gui_app->dbus_data,
-                       WS_DBUS_CONFIG_REMOTE_SERVICE,
-                       MANAGER_SERVICE);
-       ws_dbus_config (ws_gui_app->dbus_data,
-                       WS_DBUS_CONFIG_REMOTE_OBJECT,
-                       MANAGER_OBJECT);
-       ws_dbus_config (ws_gui_app->dbus_data,
-                       WS_DBUS_CONFIG_REMOTE_IFACE,
-                       MANAGER_IFACE);
-
-       //Add a list of remote methods available
-       ws_dbus_add_method (ws_gui_app->dbus_data,
-                       "return_words",
-                       WS_DBUS_TYPE_GARRAY,
-                       WS_DBUS_TYPE_INVALID);
-                       
-       ws_dbus_add_method (ws_gui_app->dbus_data,
-                       "return_translations",
-                       WS_DBUS_TYPE_STRING,
-                       WS_DBUS_TYPE_INVALID);
-
-       ws_dbus_add_method (ws_gui_app->dbus_data,
-                       "return_extracted_dict",
-                       WS_DBUS_TYPE_STRING,
-                       WS_DBUS_TYPE_INVALID);
-
-       ws_dbus_add_method (ws_gui_app->dbus_data,
-                       "update_progressbar",
-                       WS_DBUS_TYPE_DOUBLE,
-                       WS_DBUS_TYPE_INVALID);
-
-       ws_dbus_add_method (ws_gui_app->dbus_data,
-                       "signal",
-                       WS_DBUS_TYPE_SIGNAL,
-                       WS_DBUS_TYPE_INVALID);
-
-       ws_dbus_add_method (ws_gui_app->dbus_data,
-                       "search_home_applet",
-                       WS_DBUS_TYPE_STRING,
-                       WS_DBUS_TYPE_INVALID);
-
-       //setting callbacks for local methods
-       ws_dbus_set_cb (ws_gui_app->dbus_data,
-                       "return_words",
-                       ws_gui_dbus_return_words,
-                       ws_gui_app);
-
-       ws_dbus_set_cb (ws_gui_app->dbus_data,
-                       "return_translations",
-                       ws_gui_dbus_return_translation,
-                       ws_gui_app);
-       ws_dbus_set_cb (ws_gui_app->dbus_data,
-                       "return_extracted_dict",
-                       ws_dbus_server_return_extracted_bzip,
-                       ws_gui_app);
-       ws_dbus_set_cb (ws_gui_app->dbus_data,
-                       "update_progressbar",
-                       ws_dbus_progress_bar,
-                       ws_gui_app);
-       ws_dbus_set_cb (ws_gui_app->dbus_data,
-                       "signal",
-                       ws_gui_signal_hander,
-                       ws_gui_app);
-       /*hisa*/
-       ws_dbus_set_cb (ws_gui_app->dbus_data,
-                       "search_home_applet",
-                       ws_gui_search_home_handler,
-                       ws_gui_app);
-
-       ws_dbus_connect (ws_gui_app->dbus_data);
-
-       /*setting the clipboard*/
-       ws_gui_app->ws_gui_clipboard = 
-               gtk_widget_get_clipboard (GTK_WIDGET(ws_gui_app->ws_gui_html),
-                                       GDK_SELECTION_CLIPBOARD);
-
-       /*connecting the signals*/
-       g_signal_connect(G_OBJECT (ws_gui_app->ws_gui_w_list->ws_gui_view),
-                       "cursor-changed",
-                       G_CALLBACK (ws_gui_view_cursor_changed), 
-                       ws_gui_app);
-
-
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_hildon_window),
-                       "key-press-event",
-                       G_CALLBACK(hildon_key_press_listener),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_html),
-                       "button-press-event",
-                       G_CALLBACK(ws_gui_button_press),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_html),
-                       "button-release-event",
-                       G_CALLBACK(ws_gui_button_release),
-                       ws_gui_app);
-       
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_list_eventbox),
-                       "button-press-event",
-                       G_CALLBACK(ws_gui_list_full_dialog),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_hildon_window),
-                       "delete-event",
-                       G_CALLBACK(ws_gui_on_exit),
-                       ws_gui_app);
-
-       ws_dbus_notify(ws_gui_app->dbus_data,
-               WS_DBUS_ERROR_UNKNOWN);
-
-       gtk_main();
-       
-       return 0;
-}
-/*@}*/
diff --git a/src/gui/src/ws_gui_callbacks.c b/src/gui/src/ws_gui_callbacks.c
deleted file mode 100644 (file)
index e6ddc6a..0000000
+++ /dev/null
@@ -1,2452 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup GUI
- */
-/*@{*/
-/** \file ws_gui_callbacks.c
- * \brief Declaration of GUI callback handler functions.
- *
- * Callbacks for GUI elements
- * \author Anna Gadomska \<anna.gadomska\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- */
-
-#include <ws_gui_callbacks.h>
-#include <ws_gui.h>
-#include <ws_gui_layout.h>
-#include <ws_gui_utils.h>
-#include <ws_dbus.h>
-
-/** \brief show how much time did take a callback of another function
-*
-*/
-static double timer(gboolean start, gchar* message)
-{
-       static GArray* stack = NULL;
-       static gboolean first_run = TRUE;
-       static struct timeval actual_time;
-       static struct timeval last_time;
-       static struct timeval result;
-       static double seconds = 0.0;
-       if(first_run)
-       {
-               first_run = FALSE;
-               stack = g_array_new(TRUE, TRUE, sizeof(struct timeval));
-       };
-       // things to do on the beggining of function's work
-       if (start)
-       {
-               g_debug("XDXF->%s() start counting time for function '%s()'.\n",
-                       __FUNCTION__,message);
-               g_array_prepend_val(stack, actual_time);
-               gettimeofday(&g_array_index(stack, struct timeval, 0),NULL);
-               return -1.0;
-       }
-       // we just want to end some timer - print some information 
-       //about working time;
-       else {
-               gettimeofday(&actual_time,NULL);
-               last_time = g_array_index(stack, struct timeval, 0);
-               g_array_remove_index(stack, 0);
-
-               if (actual_time.tv_usec < last_time.tv_usec) {
-                       int nsec = (last_time.tv_usec - 
-                                       actual_time.tv_usec) / 1000000 + 1;
-                       last_time.tv_usec -= 1000000 * nsec;
-                       last_time.tv_sec += nsec;
-               }
-               if (actual_time.tv_usec - last_time.tv_usec > 1000000) {
-                       int nsec = (last_time.tv_usec -
-                                               actual_time.tv_usec) / 1000000;
-                       last_time.tv_usec += 1000000 * nsec;
-                       last_time.tv_sec -= nsec;
-               }
-               result.tv_sec = actual_time.tv_sec - last_time.tv_sec;
-               result.tv_usec = actual_time.tv_usec - last_time.tv_usec;
-               seconds = (((double)(result.tv_usec)) / 1e6) + 
-                                               ((double)(result.tv_sec));
-
-               g_debug("XDXF->%s() function \'%s()\' was working for: %g [s] "
-                       "or %ld [us].\n",
-                       __FUNCTION__,
-                       message,seconds,
-                       ((long)(result.tv_sec*1e6)+(result.tv_usec)));
-       // stack is empty so we delete everything
-       if(stack->len == 0) 
-       {
-                       g_array_free(stack, TRUE);
-                       first_run = TRUE;
-       }
-       return seconds;
-       }
-       return -2.0;
-}
-
-
-/**  this function handles signals from dbus; it is called 
-when there are any messages from other modules
-*
-* @param error - error message recived from DBUS
-* @param words - array with recived data structure
-* @param user_data - pointer to data structure
-* @return
-*/
-void ws_gui_signal_hander (GError *error, GArray *words, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       osso_rpc_t osss_data;
-       osss_data = g_array_index (words, osso_rpc_t, 0);
-       switch(osss_data.value.i)
-       {
-               case WS_DBUS_ERROR_ENGINE_NOT_FOUND:
-               {
-                       ws_gui_app->ws_message_dialog = 
-                       gtk_message_dialog_new(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
-                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                               GTK_MESSAGE_ERROR,
-                               GTK_BUTTONS_OK,
-                               _("ws_ni_error_occured"));
-                       gtk_widget_show_all(ws_gui_app->ws_message_dialog);
-
-                       g_signal_connect_swapped(
-                               GTK_OBJECT (ws_gui_app->ws_message_dialog),
-                               "response",
-                               G_CALLBACK (gtk_main_quit),
-                               ws_gui_app);
-                       break;
-               }
-
-               case WS_DBUS_ERROR_FILE_NOT_FOUND:
-               {
-                       ws_gui_app->ws_message_dialog = 
-                               gtk_message_dialog_new(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
-                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                               GTK_MESSAGE_ERROR,
-                               GTK_BUTTONS_OK,
-                               _("ws_ni_no_dictionary_available"));
-
-                       gtk_widget_show_all(ws_gui_app->ws_message_dialog);
-
-                       GArray *tmp;
-                       tmp = g_array_new(TRUE, TRUE, sizeof(gchar*));
-                       gtk_list_store_clear(
-                               ws_gui_app->ws_gui_w_list->ws_gui_store);
-                       ws_gui_app->ws_gui_w_list->ws_gui_model = 
-                               create_and_fill_model(tmp, ws_gui_app);
-                       ws_gui_fill_html(" ", ws_gui_app);
-                       ws_gui_app->html_flag = FALSE;
-
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
-                       FALSE);
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
-                       FALSE);
-
-                       if (gtk_dialog_run(
-                               GTK_DIALOG(ws_gui_app->ws_message_dialog)) 
-                                                       == GTK_RESPONSE_OK)
-                       {
-                               gtk_widget_destroy(
-                                               ws_gui_app->ws_message_dialog);
-                       }
-                       break;
-               }
-
-               case WS_DBUS_INFO_CACHING:
-               {
-                       ws_gui_app->ws_gui_banner_caching =
-                               hildon_banner_show_progress(
-                               GTK_WIDGET(ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                               _("ws_pb_caching"));
-               ws_gui_app->caching_flag = TRUE;
-               hildon_banner_set_fraction(
-                       HILDON_BANNER(ws_gui_app->ws_gui_banner_caching),
-                       0.0);
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
-                       FALSE);
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
-                       FALSE);
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
-                       FALSE);
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_w_list->ws_gui_view),
-               FALSE);
-
-               break;
-               }
-
-               case WS_DBUS_INFO_CACHING_FINISHED:
-               {
-               gtk_widget_destroy(
-               GTK_WIDGET(ws_gui_app->ws_gui_banner_caching));
-               ws_gui_app->caching_flag = FALSE;
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
-               TRUE);
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
-               TRUE);
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
-               TRUE);
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_w_list->ws_gui_view),
-               TRUE);
-
-               break;
-               }
-
-               case WS_DBUS_ERROR_DICTIONARY_NOT_LOAD:
-               {
-                       if (ws_gui_app->ws_gui_history_cur_pos >= 0 &&
-                       ws_gui_app->ws_gui_history_cur_pos <=HISTORY_LEN)
-                       { 
-                               g_array_remove_index(ws_gui_app->ws_gui_history,
-                                       ws_gui_app->ws_gui_history_cur_pos);
-                       }
-
-                       ws_gui_app->ws_message_dialog = gtk_message_dialog_new(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
-                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                               GTK_MESSAGE_ERROR,
-                               GTK_BUTTONS_OK,
-                               _("ws_ni_dictionary_unavailable"));
-               gtk_widget_show_all(ws_gui_app->ws_message_dialog);
-               if (gtk_dialog_run(
-               GTK_DIALOG(ws_gui_app->ws_message_dialog)) 
-                                                       == GTK_RESPONSE_OK)
-               {
-                       gtk_widget_destroy(ws_gui_app->ws_message_dialog);
-               }
-               break;
-               }
-               
-               case  WS_DBUS_BOOKMARKS_ADDED_OK:
-               {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ni_bookmark_added"));
-               break;
-               }
-
-               case WS_DBUS_BOOKMARKS_REMOVED_OK:
-               {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ni_bookmark_removed"));
-               break;
-               }
-       
-               case WS_DBUS_BOOKMARKS_ADDED_FAIL:
-               {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ni_bookmark_not_added"));
-               break;
-               }
-
-               case WS_DBUS_BOOKMARKS_REMOVED_FAIL:
-               {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ni_bookmark_not_removed"));
-               break;
-               }
-
-               case WS_DBUS_LOAD_BOOKMARK_FAILED:
-               {
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
-               FALSE);
-               ws_gui_app->bookmark_avail = FALSE;
-                               
-                       ws_gui_app->ws_message_dialog = 
-                       gtk_message_dialog_new(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
-                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                               GTK_MESSAGE_ERROR,
-                               GTK_BUTTONS_OK,
-                               _("ws_ni_bookmarks_unavailable"));
-
-                       if (gtk_dialog_run(
-                               GTK_DIALOG(ws_gui_app->ws_message_dialog)) 
-                                                       == GTK_RESPONSE_OK)
-                       {
-                               gtk_widget_destroy(
-                                               ws_gui_app->ws_message_dialog);
-                       }
-
-                       
-                       break;  
-               }
-               case WS_DBUS_EXTRACT_FILE:
-               {
-                       ws_gui_app->ws_gui_banner_extracting =
-                       hildon_banner_show_animation(
-                               GTK_WIDGET(ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                               _("ws_pb_extracting"));
-
-                       ws_gui_app->caching_flag = TRUE;
-                       
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
-                       FALSE);
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
-                       FALSE);
-
-               break;
-               }
-
-               case WS_DBUS_EXTRACT_FILE_FINISHED:
-               {
-                       gtk_widget_destroy(
-                       GTK_WIDGET(ws_gui_app->ws_gui_banner_extracting));
-                       
-                       ws_gui_app->caching_flag = FALSE;
-                       
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                               _("ws_ni_dictionary_added"));
-                       
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
-                       TRUE);
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
-                       TRUE);
-
-                       break;
-               }
-
-               case  WS_DBUS_WORDS_LIST_FULL:
-               {
-                       gtk_widget_show_all(GTK_WIDGET(ws_gui_app->ws_gui_list_eventbox));
-                       /*gtk_widget_show(GTK_WIDGET(ws_gui_app->ws_gui_list_hbox));*/
-               break;
-               }
-
-               case  WS_DBUS_WORDS_LIST_FILLED_NOT_FULL:
-               {
-                       gtk_widget_hide_all(GTK_WIDGET(ws_gui_app->ws_gui_list_eventbox));
-                       /*gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_list_hbox));*/
-               break;
-               }
-
-               case  WS_DBUS_WORDS_LIST_FINISHED:
-               {
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
-                       TRUE);
-                       gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_banner_list_searching));
-               break;
-               }
-
-               case  WS_DBUS_TRANSLATION_FINISHED:
-               {
-                       gtk_widget_hide(ws_gui_app->ws_gui_banner_translation_loading);
-               break;
-               }
-
-               case  WS_DBUS_WORDS_LIST_STARTED:
-               {
-                       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
-                       FALSE);
-                       gtk_widget_show(GTK_WIDGET(ws_gui_app->ws_gui_banner_list_searching));
-               break;
-               }
-
-               case  WS_DBUS_TRANSLATION_STARTED:
-               {
-                       gtk_widget_show(ws_gui_app->ws_gui_banner_translation_loading);
-               break;
-               }
-
-       }
-}
-
-
-/* added by Dariusz Wiechecki - HISA */
-void ws_gui_search_home_handler(GError *error, GArray *word, gpointer user_data)
-{
-       g_debug("->%s", __FUNCTION__);
-       WSGuiApp *data = (WSGuiApp*) user_data;
-       osso_rpc_t* osso_data = NULL;
-
-       /*get the word passed by dbus*/
-       osso_data = &g_array_index (word, osso_rpc_t, 0); 
-
-       /* check for special characters in text starting with % */      
-       ws_gui_word_conversion( osso_data );
-
-       /* make a copy of passed string */
-       gchar* tmp = NULL;
-       tmp = g_strdup(osso_data->value.s + 11);
-       
-       g_object_set(G_OBJECT(data->ws_gui_hildon_find_toolbar),
-               "prefix",
-               tmp,
-               NULL);
-       ws_gui_search(NULL, data);
-}
-
-/**  this function handles signals from dbus; it is called when progress bar
-status has been changed
-*
-* @param error - error message recived from DBUS
-* @param words - array with recived data structure
-* @param user_data - pointer to data structure
-* @return
-*/
-void ws_dbus_progress_bar(GError *error, GArray *words, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       osso_rpc_t osss_data;
-       osss_data = g_array_index (words, osso_rpc_t, 0);
-       double progress = osss_data.value.d;
-       if (ws_gui_app->caching_flag == TRUE)
-       {
-               hildon_banner_set_fraction(
-                       HILDON_BANNER(ws_gui_app->ws_gui_banner_caching),
-                       progress);
-       }
-}
-
-/** this function clean GtkListStore row by row
-*
-* @param list - GtkListStore to be remoeved
-* @return
-*/
-void ws_gui_clear_list (GtkListStore* list, gpointer user_data) 
-{
-       GtkTreeIter iter;
-       gboolean tmp;
-       
-       tmp = gtk_tree_model_get_iter_first(
-                       GTK_TREE_MODEL(list),
-                       &iter); 
-
-       while (tmp == TRUE)
-       {
-               tmp = gtk_list_store_remove(list, &iter);
-               
-       }
-}
-
-
-/** this function handles signal from dbus and transfer recived 
-(found in a dictionary) words to the words list
-*
-* @param error - error message recived from DBUS
-* @param words - array with recived data structure
-* @param user_data - pointer to data structure
-* @return
-*/
-void ws_gui_dbus_return_words (GError *error, GArray *words, gpointer user_data)
-{
-       timer(TIMER_START, (gchar*)__FUNCTION__);
-       guint i;
-       osso_rpc_t data;
-
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       ws_gui_app->no_words_found = FALSE;
-       
-       g_signal_handlers_block_by_func(G_OBJECT 
-                       (ws_gui_app->ws_gui_w_list->ws_gui_view),
-                       G_CALLBACK (ws_gui_view_cursor_changed), 
-                       ws_gui_app);    
-
-
-       GArray *tmp;
-       tmp = g_array_new(TRUE, TRUE, sizeof(gchar*));
-       gchar *tmp_word;
-
-       for (i=0;i<words->len;++i)
-       {
-               data = g_array_index (words, osso_rpc_t, i);
-               tmp_word = g_strdup(data.value.s);
-               g_array_append_val(tmp, tmp_word);
-       }
-       
-       ws_gui_app->loading = FALSE;
-       ws_gui_set_toolbar_avail(ws_gui_app);
-
-       ws_gui_app->ws_gui_w_list->ws_gui_model = 
-                                       create_and_fill_model(tmp, ws_gui_app);
-       
-       if (ws_gui_app->history_flag == TRUE)
-       {
-
-       GValue value = { 0, };
-       GtkTreeIter tmp_iter;
-       gchar *pattern;
-       gboolean keep_searching = TRUE;
-
-       if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(
-       ws_gui_app->ws_gui_w_list->ws_gui_model), &tmp_iter) == TRUE)
-       {
-
-               pattern = strdup(g_array_index(ws_gui_app->ws_gui_history,
-                                       gchar*, 
-                                       ws_gui_app->ws_gui_history_cur_pos));
-               
-               gtk_tree_model_get_value(GTK_TREE_MODEL(
-                               ws_gui_app->ws_gui_w_list->ws_gui_model), 
-                               &tmp_iter, 
-                               COL_WORD, 
-                               &value);
-
-               if ((g_value_get_string (&value) != NULL) &&
-                               (strcmp(((gchar *)g_value_get_string (&value)), 
-                               pattern) == 0))
-               {
-                       gtk_tree_selection_select_iter(
-                               ws_gui_app->ws_gui_w_list->ws_gui_selection,
-                               &tmp_iter);
-
-               }
-               else
-               {
-               while (gtk_tree_model_iter_next(GTK_TREE_MODEL
-               (ws_gui_app->ws_gui_w_list->ws_gui_model), 
-               &tmp_iter) == TRUE && keep_searching == TRUE)
-               {
-                       gtk_tree_model_get_value(GTK_TREE_MODEL(
-                               ws_gui_app->ws_gui_w_list->ws_gui_model), 
-                               &tmp_iter, 
-                               COL_WORD, 
-                               &value);
-
-                       if ((g_value_get_string (&value) != NULL) &&
-                               (strcmp(((gchar *)g_value_get_string (&value)), 
-                               pattern) == 0))
-                               {
-                               gtk_tree_model_get_iter_from_string (
-                               GTK_TREE_MODEL(
-                               ws_gui_app->ws_gui_w_list->ws_gui_model),
-                               &tmp_iter,
-                               g_array_index(
-                               ws_gui_app->ws_gui_history_iter,
-                               gchar*, 
-                               ws_gui_app->ws_gui_history_cur_pos));
-
-                               gtk_tree_selection_select_iter(
-                               ws_gui_app->ws_gui_w_list->ws_gui_selection,
-                               &tmp_iter);
-                                                               
-                               keep_searching = FALSE;
-                               }
-                       }
-               }
-       }
-       g_free(pattern);
-
-       ws_gui_app->history_flag = FALSE;
-       ws_dbus_client_find_translation(ws_gui_app->dbus_data, 
-                               g_array_index(ws_gui_app->ws_gui_history,
-                               gchar*, 
-                               ws_gui_app->ws_gui_history_cur_pos));
-       
-       ws_gui_app->html_flag = TRUE;
-       g_value_unset (&value);
-       }
-               
-       if ((tmp->len == 0 || tmp_word == NULL) && ws_gui_app->stop_clicked != TRUE )
-       {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                       _("ws_ni_no_words_found"));
-               
-               if (ws_gui_app->dictionary_selection_changed == TRUE)
-               {
-                       ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store, ws_gui_app);
-                       ws_gui_fill_html("", ws_gui_app);
-                       ws_gui_app->dictionary_selection_changed = FALSE;
-               }
-               
-               g_free(ws_gui_app->last_word);
-               ws_gui_app->last_word = NULL;
-               ws_gui_app->no_words_found = TRUE;
-       }
-
-       g_signal_handlers_unblock_by_func(G_OBJECT(
-                                       ws_gui_app->ws_gui_w_list->ws_gui_view),
-                                       G_CALLBACK (ws_gui_view_cursor_changed), 
-                                       ws_gui_app);    
-       
-       for (i=0;i<tmp->len;++i)
-       {
-               g_free(g_array_index(tmp, gchar* , i));
-       }
-       g_array_free(tmp, TRUE);
-
-       
-       ws_gui_app->dictionary_selection_changed = FALSE;
-       timer(TIMER_STOP, (gchar*)__FUNCTION__);
-}
-
-/** this function handles signal from dbus and send recived data to 
-the translation area
-*
-* @param error - error message recived from DBUS
-* @param words - array with recived data structure
-* @param user_data - pointer to data structure
-* @return
-*/
-void ws_gui_dbus_return_translation (GError *error,
-                               GArray *words,
-                               gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       gchar *html_content = NULL;
-       osso_rpc_t data;
-
-       data = g_array_index (words, osso_rpc_t, 0);
-
-       html_content = format_html(data.value.s, ws_gui_app);
-       ws_gui_fill_html(html_content, ws_gui_app);
-       g_free(html_content);
-       ws_gui_app->html_flag = TRUE;
-       
-       ws_gui_app->loading = FALSE;
-       ws_gui_set_toolbar_avail(ws_gui_app);
-
-}
-
-/** this function handles signal from dbus and send recived data to 
-the translation area
-*
-* @param error - error message recived from DBUS
-* @param words - array with recived data structure
-* @param user_data - pointer to data structure
-* @return
-*/
-void ws_dbus_server_return_extracted_bzip(GError *error,
-                               GArray *words,
-                               gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       osso_rpc_t data;
-
-       data = g_array_index (words, osso_rpc_t, 0);
-
-       if (data.value.s[0] == '\0')
-       {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                               _("ws_ni_dictionary_not_added"));
-       }
-       else
-       {
-       if (ws_gui_load_dict(data.value.s, ws_gui_app) == TRUE)
-       {
-               
-       }
-       }
-}
-
-/**
-* this function allows to free allocated memory
-*
-* @param user_data - pointer to data structure
-*/
-void ws_gui_free_memory(gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       guint i = 0;
-       for (i = 0; i<ws_gui_app->ws_gui_history->len; ++i)
-       {
-               g_free(g_array_index(ws_gui_app->ws_gui_history, gchar *, i));
-       }
-       g_array_free(ws_gui_app->ws_gui_history, TRUE);
-
-       for (i = 0; i<ws_gui_app->ws_gui_history_list->len; ++i)
-       {
-               g_free(g_array_index(ws_gui_app->ws_gui_history_list, gchar *, i));
-       }
-       g_array_free(ws_gui_app->ws_gui_history_list, TRUE);
-
-       for (i = 0; i<ws_gui_app->ws_gui_history_iter->len; ++i)
-       {
-               g_free(g_array_index(ws_gui_app->ws_gui_history_iter, gchar *, i));
-       }
-       g_array_free(ws_gui_app->ws_gui_history_iter, TRUE);
-
-
-       pango_font_description_free(ws_gui_app->p);
-
-       g_free(ws_gui_app->welcome_note);
-       ws_gui_app->welcome_note = NULL;
-
-       g_string_free(ws_gui_app->raw_translation, TRUE);
-       g_free(ws_gui_app->last_word);
-       g_free(ws_gui_app->ws_gui_w_list);
-       g_free(ws_gui_app->ws_gui_menu);
-       g_free(ws_gui_app);
-}
-
-/** this function handle press signals (keyboard)
-* 
-* @param widget
-* @param keyevent
-* @param user_data - ponter to data structure
-* @return TRUE to stop other handlers from being invoked for the event. 
-FALSE to propagate the event further.
-*/
-gboolean hildon_key_press_listener (GtkWidget * widget,
-                               GdkEventKey * keyevent,
-                               gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       switch ((guint)(keyevent->keyval)) {
-               case HILDON_HARDKEY_UP: 
-               {
-                       gtk_container_set_focus_vadjustment(
-                       GTK_CONTAINER(ws_gui_app->ws_gui_scrolledwindow_left),
-                       gtk_scrolled_window_get_vadjustment(
-                       GTK_SCROLLED_WINDOW(
-                               ws_gui_app->ws_gui_scrolledwindow_left)));
-               ws_gui_app->v_new_value =
-                       gtk_adjustment_get_value(
-                       GTK_ADJUSTMENT(
-                               ws_gui_app->ws_gui_vadj)) - ws_gui_app->v_delta;
-               if (ws_gui_app->v_new_value > 
-                       ws_gui_app->ws_gui_vadj->lower) 
-               {
-                       gtk_adjustment_set_value(
-                                       GTK_ADJUSTMENT(ws_gui_app->ws_gui_vadj),
-                                       ws_gui_app->v_new_value);
-               }
-                       
-                       break;
-               }
-
-               case HILDON_HARDKEY_DOWN: 
-               {
-               gtk_container_set_focus_vadjustment(
-                       GTK_CONTAINER(ws_gui_app->ws_gui_scrolledwindow_left),
-                       gtk_scrolled_window_get_vadjustment(
-                       GTK_SCROLLED_WINDOW(
-                               ws_gui_app->ws_gui_scrolledwindow_left)));
-               ws_gui_app->v_new_value = gtk_adjustment_get_value(
-                                       GTK_ADJUSTMENT(ws_gui_app->ws_gui_vadj))
-                                       + ws_gui_app->v_delta;
-
-               if (ws_gui_app->v_new_value < 
-                               (ws_gui_app->ws_gui_vadj->upper - 
-                                       ws_gui_app->ws_gui_vadj->page_size)) 
-               {
-                               gtk_adjustment_set_value(
-                                       GTK_ADJUSTMENT(ws_gui_app->ws_gui_vadj),
-                                       ws_gui_app->v_new_value);
-               }
-               break;
-               }
-
-               case HILDON_HARDKEY_LEFT:
-               {
-               gtk_container_set_focus_hadjustment(
-               GTK_CONTAINER(ws_gui_app->ws_gui_scrolledwindow_left),
-               gtk_scrolled_window_get_hadjustment(
-               GTK_SCROLLED_WINDOW(
-                               ws_gui_app->ws_gui_scrolledwindow_left)));
-
-               ws_gui_app->h_new_value = gtk_adjustment_get_value(
-               GTK_ADJUSTMENT(ws_gui_app->ws_gui_hadj)) 
-               - ws_gui_app->h_delta;
-
-               if (ws_gui_app->h_new_value > 
-                       ws_gui_app->ws_gui_hadj->lower) 
-               {
-                               gtk_adjustment_set_value(
-                                       GTK_ADJUSTMENT(ws_gui_app->ws_gui_hadj),
-                                       ws_gui_app->h_new_value);
-               }
-               }
-               break;
-
-               case HILDON_HARDKEY_RIGHT: 
-               {
-               gtk_container_set_focus_hadjustment(
-               GTK_CONTAINER(ws_gui_app->ws_gui_scrolledwindow_left),
-               gtk_scrolled_window_get_hadjustment(
-               GTK_SCROLLED_WINDOW(
-               ws_gui_app->ws_gui_scrolledwindow_left)));
-
-               ws_gui_app->h_new_value = gtk_adjustment_get_value(
-               GTK_ADJUSTMENT(ws_gui_app->ws_gui_hadj)) 
-               + ws_gui_app->h_delta;
-
-               if (ws_gui_app->h_new_value < 
-                               (ws_gui_app->ws_gui_hadj->upper - 
-                                       ws_gui_app->ws_gui_hadj->page_size)) 
-               {
-               gtk_adjustment_set_value(
-                                       GTK_ADJUSTMENT(ws_gui_app->ws_gui_hadj),
-                                       ws_gui_app->h_new_value);
-               }
-               }
-               break;
-
-               case HILDON_HARDKEY_SELECT: 
-                       ws_gui_search(NULL, ws_gui_app);
-               break;
-
-               case HILDON_HARDKEY_FULLSCREEN: 
-               ws_gui_full_screen(NULL, ws_gui_app);
-               break;
-
-               case HILDON_HARDKEY_INCREASE: 
-               ws_gui_html_zoom_in(NULL, ws_gui_app);
-               break;
-
-               case HILDON_HARDKEY_DECREASE:
-               ws_gui_html_zoom_out(NULL, ws_gui_app);
-               break;
-
-               case HILDON_HARDKEY_ESC: 
-               ws_gui_search_stop(NULL, ws_gui_app);
-               break;
-
-               default:
-               return FALSE;
-               break;
-       }
-       return TRUE;
-}
-
-/** this function allow to hide words list using menu item from application menu
-*
-* @param checkmenuitem - the object which received the signal
-* @param user_data - user data set when the signal handler was connected
-* @return
-*/
-void ws_gui_words_list_hide_from_menu(GtkCheckMenuItem *checkmenuitem,
-                               gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-       if (gtk_check_menu_item_get_active(
-       GTK_CHECK_MENU_ITEM(ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list)))
-       {
-               gtk_widget_hide(ws_gui_app->ws_gui_list_vbox);
-               gtk_toggle_tool_button_set_active(
-               GTK_TOGGLE_TOOL_BUTTON(ws_gui_app->ws_gui_toobar_button_hide),
-               TRUE);
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
-                               ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list),
-                               TRUE);
-       }
-       else 
-       {
-               gtk_widget_show(ws_gui_app->ws_gui_list_vbox);
-               gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(
-                                       ws_gui_app->ws_gui_toobar_button_hide),
-                                       FALSE);
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
-                               ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list),
-                               FALSE);
-       }
-}
-
-/** this function allow to hide words list using toggle button placed in 
-the find toolbar
-*
-* @param toolbar - the object which received the signal
-* @param user_data - user data set when the signal handler was connected
-* @return
-*/
-void ws_gui_words_list_hide(GtkToggleButton *togglebutton, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-
-       if (gtk_toggle_tool_button_get_active(
-               GTK_TOGGLE_TOOL_BUTTON(ws_gui_app->ws_gui_toobar_button_hide)))
-       {
-               gtk_widget_hide(ws_gui_app->ws_gui_list_vbox);
-               gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(
-                                       ws_gui_app->ws_gui_toobar_button_hide),
-                                       TRUE);
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
-                               ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list),
-                               TRUE);
-       }
-       else 
-       {
-               gtk_widget_show(ws_gui_app->ws_gui_list_vbox);
-               gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(
-                                       ws_gui_app->ws_gui_toobar_button_hide),
-                                       FALSE);
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
-                               ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list),
-                               FALSE);
-       }
-}
-
-/** add word to the history
-*
-* @param new_word - word which is going to be append to the history array
-* @param user_data - user data set when the signal handler was connected
-* @return
-*/
-void ws_gui_history_add(char *new_word, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-
-       if (ws_gui_app->history_flag != TRUE)
-       {
-
-               guint i;
-               gchar *tmp_word;
-               gchar *tmp_last_searched;
-               gchar *tmp_iter = NULL;
-               gchar *previous_word = " ";
-       
-               if (ws_gui_app->ws_gui_history_cur_pos > -1 &&
-               g_array_index(ws_gui_app->ws_gui_history, 
-                               gchar*, 
-                               ws_gui_app->ws_gui_history_cur_pos) != NULL)
-               {
-                       previous_word = NULL;
-                       previous_word = g_array_index(
-                                       ws_gui_app->ws_gui_history, 
-                                       gchar*, 
-                                       ws_gui_app->ws_gui_history_cur_pos);
-               }
-       
-               i = ws_gui_app->ws_gui_history_cur_pos + 1;
-               gchar *tmp = g_array_index(ws_gui_app->ws_gui_history, 
-                                       gchar*, 
-                                       i);
-       
-               if (previous_word != NULL && 
-               strcmp(previous_word, new_word) != 0)
-               {
-                       while (tmp != NULL) 
-                       {
-                               g_array_remove_index(
-                               ws_gui_app->ws_gui_history_list, 
-                               i);
-                               g_array_remove_index(
-                               ws_gui_app->ws_gui_history_iter, 
-                               i);
-
-                               
-                               g_array_remove_index(
-                               ws_gui_app->ws_gui_history, 
-                               i);
-                               
-                               tmp = g_array_index(
-                               ws_gui_app->ws_gui_history, 
-                               gchar*, 
-                               i);
-                       }
-       
-               i = 0;
-               ws_gui_app->ws_gui_history_cur_pos ++;
-       
-               if (ws_gui_app->bookmark_mode == FALSE)
-               {
-                       tmp_last_searched = g_strdup(ws_gui_app->last_searched);
-               }
-               else
-               {
-               tmp_last_searched = g_strdup(ws_gui_app->last_searched_in_book);
-               }
-
-               g_array_append_val(ws_gui_app->ws_gui_history_list, 
-                               tmp_last_searched);
-                               
-               tmp_word = g_strdup(new_word);
-               
-               g_array_append_val(ws_gui_app->ws_gui_history, tmp_word);
-               g_array_append_val(ws_gui_app->ws_gui_history_iter, tmp_iter);
-               
-       
-               if(ws_gui_app->ws_gui_history->len > HISTORY_LEN)
-               {
-                       g_array_remove_index(ws_gui_app->ws_gui_history, 0);
-                       g_array_remove_index(ws_gui_app->ws_gui_history_list, 
-                                       0);
-                       g_array_remove_index(ws_gui_app->ws_gui_history_iter, 
-                                       0);
-                       
-                       ws_gui_app->ws_gui_history_cur_pos--;
-               }
-       
-               i = 0;
-               
-               tmp = g_array_index(ws_gui_app->ws_gui_history, gchar*, i);
-               }
-               
-       }
-
-       ws_gui_check_history(ws_gui_app);
-}
-
-/** display previously choosen word (previous from the history array)
-if avaible, sets current position in the history array
-*
-* @param button - button which recived a signal
-* @param user_data - user data set when the signal handler was connected
-* @return 
-*/
-void ws_gui_history_back(GtkButton *button, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-       
-       ws_gui_app->history_flag = TRUE;
-
-       if (ws_gui_app->ws_gui_history_cur_pos > -1) 
-       {
-               ws_gui_app->ws_gui_history_cur_pos = 
-                                       ws_gui_app->ws_gui_history_cur_pos - 1;
-
-               /*set object's property*/
-               g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                       "prefix",
-                       (g_array_index(ws_gui_app->ws_gui_history_list,
-                       gchar*, 
-                       ws_gui_app->ws_gui_history_cur_pos)),
-                       NULL);
-       
-               ws_dbus_client_find_word (ws_gui_app->dbus_data, 
-                                       g_strstrip(g_array_index(ws_gui_app->ws_gui_history_list,
-                                       gchar*, 
-                                       ws_gui_app->ws_gui_history_cur_pos))
-                                       );
-               ws_gui_app->loading = TRUE;
-               ws_gui_set_toolbar_avail(ws_gui_app);
-       }
-       else 
-       {
-               ws_gui_app->loading = FALSE;
-               ws_gui_set_toolbar_avail(ws_gui_app);
-       }
-
-       ws_gui_check_history(ws_gui_app);
-}
-
-/** display choosen word, next in the history array (if avaible), 
-sets current position in the history array
-*
-* @param button - button which recived a signal
-* @param user_data - user data set when the signal handler was connected
-* @return 
-*/
-void ws_gui_history_next(GtkButton *button, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-       
-       ws_gui_app->history_flag = TRUE;
-
-       gchar *tmp = g_array_index(ws_gui_app->ws_gui_history,
-                               gchar*,
-                               ws_gui_app->ws_gui_history_cur_pos+1);
-
-       if ((ws_gui_app->ws_gui_history_cur_pos < HISTORY_LEN-1) 
-       && (tmp != NULL)) 
-       {
-               ws_gui_app->ws_gui_history_cur_pos =
-                       ws_gui_app->ws_gui_history_cur_pos + 1;
-
-
-               /*set object's property*/
-               g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                       "prefix",
-                       (g_array_index(ws_gui_app->ws_gui_history_list,
-                       gchar*, 
-                       ws_gui_app->ws_gui_history_cur_pos)),
-                       NULL);
-       
-               
-               ws_dbus_client_find_word(ws_gui_app->dbus_data, 
-                                       g_strstrip(g_array_index(ws_gui_app->ws_gui_history_list,
-                                       gchar*, 
-                                       ws_gui_app->ws_gui_history_cur_pos))
-                                       );
-               
-               ws_gui_app->loading = TRUE;
-               ws_gui_set_toolbar_avail(ws_gui_app);
-       }
-       else 
-       {
-               /*make forward button inactive*/
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_forward),
-                       FALSE);
-
-               /*make find next button inactive*/
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_find_next),
-               FALSE);
-       }
-
-       ws_gui_check_history(ws_gui_app);
-}
-
-/** check current position in the history array and sets sensitivity of buttons 
-/ menu items, depends on availablity of words in the history
-*
-* @param user_data - user data set when the signal handler was connected
-* @return 
-*/
-void ws_gui_check_history(gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-
-       gchar *tmp = g_array_index(ws_gui_app->ws_gui_history,
-                               gchar*,
-                               ws_gui_app->ws_gui_history_cur_pos+1);
-
-       if ((ws_gui_app->ws_gui_history_cur_pos+1 < HISTORY_LEN) 
-       && (tmp != NULL))
-       {
-               /*make forward button active*/
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_forward),
-                       TRUE);
-
-               /*make find next button active*/
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_find_next),
-               TRUE);
-       }
-       else 
-       {
-               /*make forward button inactive*/
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_forward),
-                       FALSE);
-
-               /*make find next button inactive*/
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_find_next),
-               FALSE);
-       }
-
-       tmp = g_array_index(ws_gui_app->ws_gui_history,
-                       gchar*,
-                       ws_gui_app->ws_gui_history_cur_pos-1);
-       if ((ws_gui_app->ws_gui_history_cur_pos > 0) && (tmp != NULL))
-       {
-               /*make back button active*/
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_back),
-                       TRUE);
-
-               /*make find previous button active*/
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_find_prev),
-               TRUE);
-}
-else
-{
-               gtk_widget_set_sensitive (
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_back),
-                       FALSE);
-               gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_find_prev),
-               FALSE);
-}
-}
-
-/** create TreeView Model, which allows to display words list
-*
-* @param words_list - array with words(found in a dictionary), recived from 
-* DBUS;
-* @param user_data - user data set when the signal handler was connected
-* @return 
-*/
-GtkTreeModel * create_and_fill_model (GArray *words_list, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       g_signal_handlers_block_by_func(G_OBJECT (ws_gui_app->ws_gui_w_list->ws_gui_view),
-                                       G_CALLBACK (ws_gui_view_cursor_changed), 
-                                       ws_gui_app);    
-
-       guint i = 0;
-       gchar *tmp = g_strdup(g_array_index(words_list, gchar*, i));
-
-       if (tmp != NULL)
-       {
-               ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store, ws_gui_app);
-       }
-
-       gboolean valid;
-       valid = gtk_tree_model_get_iter_first(
-                       GTK_TREE_MODEL(ws_gui_app->ws_gui_w_list->ws_gui_store),
-                       &ws_gui_app->ws_gui_w_list->ws_gui_iter);
-
-       /* Append a row and fill in some data */
-       while (tmp != NULL)
-       {
-               gtk_list_store_append (ws_gui_app->ws_gui_w_list->ws_gui_store,
-                               &ws_gui_app->ws_gui_w_list->ws_gui_iter);
-
-               gtk_list_store_set (ws_gui_app->ws_gui_w_list->ws_gui_store,
-                       &ws_gui_app->ws_gui_w_list->ws_gui_iter, 
-                       COL_WORD, tmp,
-                       -1);
-               i=i+1;
-               g_free(tmp);
-               tmp = NULL;
-               tmp = g_strdup(g_array_index(words_list, gchar*, i));
-       };
-
-       g_free(tmp);
-       tmp = NULL;
-       tmp = g_strdup(g_array_index(words_list, gchar*, 0));
-
-               
-       if (ws_gui_app->history_flag == FALSE && tmp != NULL)
-       {
-               ws_dbus_client_find_translation(ws_gui_app->dbus_data, tmp);
-               ws_gui_history_add(tmp, ws_gui_app);
-
-               g_free(ws_gui_app->last_word);
-               ws_gui_app->last_word = NULL;
-               ws_gui_app->last_word = g_strdup (tmp);
-               ws_gui_app->history_flag = FALSE;
-       }
-
-       g_signal_handlers_unblock_by_func(G_OBJECT(
-                                       ws_gui_app->ws_gui_w_list->ws_gui_view),
-                                       G_CALLBACK (ws_gui_view_cursor_changed), 
-                                       ws_gui_app);
-
-       g_free(tmp);
-       return GTK_TREE_MODEL(ws_gui_app->ws_gui_w_list->ws_gui_store);
-       
-}
-
-/** create TreeView and TreeModel using create_and_fill_model() function;
-it is necessary to display found words in a words list;
-*
-* @param words_list - array with words(found in a dictionary), 
-* recived from DBUS;
-* @param user_data - user data set when the signal handler was connected
-* @return 
-*/
-GtkWidget * create_view_and_model (GArray *words_list, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       ws_gui_app->ws_gui_w_list->ws_gui_view = gtk_tree_view_new ();
-
-       ws_gui_app->ws_gui_w_list->ws_gui_renderer=gtk_cell_renderer_text_new();
-       gtk_tree_view_insert_column_with_attributes(
-                       GTK_TREE_VIEW (ws_gui_app->ws_gui_w_list->ws_gui_view),
-                       -1,
-                       "Name",
-                       ws_gui_app->ws_gui_w_list->ws_gui_renderer,
-                       "text",
-                       COL_WORD,
-                       NULL);
-       ws_gui_app->ws_gui_w_list->ws_gui_model = 
-                               create_and_fill_model(words_list, ws_gui_app);
-
-       gtk_tree_view_set_model(
-                       GTK_TREE_VIEW (ws_gui_app->ws_gui_w_list->ws_gui_view),
-                       ws_gui_app->ws_gui_w_list->ws_gui_model);
-       g_object_unref (ws_gui_app->ws_gui_w_list->ws_gui_model);
-       
-       return ws_gui_app->ws_gui_w_list->ws_gui_view;
-}
-
-/** switch application between full screen and normal mode
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_full_screen(GtkMenuItem *menuitem, gpointer user_data)
-{
-
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       if (ws_gui_app->ws_gui_full_screen_flag == FALSE) {
-
-               gtk_window_fullscreen(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window));
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_full_screen),
-                       TRUE);
-               ws_gui_app->ws_gui_full_screen_flag = TRUE;
-               hildon_banner_show_information(GTK_WIDGET(
-                               ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                               _("ws_ib_fullscreen_on"));
-       }
-       else 
-       {
-               gtk_window_unfullscreen(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window));
-               gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_full_screen),
-                       FALSE);
-               ws_gui_app->ws_gui_full_screen_flag = FALSE;
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                               _("ws_ib_fullscreen_off"));
-       }
-}
-
-/** search for selected text in a dictionary
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_popup_search(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       gchar *temp;
-       ws_gui_app->ws_gui_clipboard_primary = 
-               gtk_widget_get_clipboard(ws_gui_app->ws_gui_html,
-                                       GDK_SELECTION_PRIMARY);
-       temp = gtk_clipboard_wait_for_text(
-                                       ws_gui_app->ws_gui_clipboard_primary);
-       /*strip leading and trailing spaces*/
-       g_strstrip(temp);
-       if (temp != NULL || strcmp(temp, " "))
-       {
-               /*set object's property*/
-               g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               "prefix",
-                               temp,
-                               NULL);
-               ws_dbus_client_find_word (ws_gui_app->dbus_data, temp);
-       }
-       else
-       {
-               hildon_banner_show_information(
-                               GTK_WIDGET(ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                               _("ws_ni_no_text_selected"));
-       }
-}
-
-/** select whole text in the translation (html) area
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_html_select_all(GtkMenuItem *menuitem, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       gtk_html_select_all(GTK_HTML(ws_gui_app->ws_gui_html));
-}
-
-/** copy selected text to the clipoard from context popup menu
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_html_copy(GtkMenuItem *menuitem, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       gtk_html_copy(GTK_HTML(ws_gui_app->ws_gui_html));
-       hildon_banner_show_information(GTK_WIDGET(
-                               ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                               _("ws_ib_copied"));
-}
-
-/** paste copied text into toolbar entry
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_html_paste(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-
-       gchar *temp;
-       gchar *temp2;
-       temp = gtk_clipboard_wait_for_text(ws_gui_app->ws_gui_clipboard);
-
-       /*get object's property value*/
-       g_object_get(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-               "prefix",
-               &temp2,
-               NULL);
-
-       /*concatenate two strings*/
-       temp = g_strconcat(temp2, temp, NULL);
-       /*replace old delimiter with a new delimiter*/
-       temp = g_strdelimit(temp, "\n", ' ');
-
-       /*set object's property*/
-       g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-               "prefix",
-               temp,
-               NULL);
-       hildon_banner_show_information(GTK_WIDGET(
-                       ws_gui_app->ws_gui_hildon_window),
-                       NULL,
-                       _("ws_ib_pasted"));
-}
-
-/** zoom in text in translation (html) area
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_html_zoom_in(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       ws_gui_app->zoom = ws_gui_app->zoom + ZOOM_STEP;
-       if (ws_gui_app->zoom > ZOOM_MAX)
-       {
-               ws_gui_app->zoom = ws_gui_app->zoom - ZOOM_STEP;
-               hildon_banner_show_information(GTK_WIDGET(
-                       ws_gui_app->ws_gui_hildon_window),
-                       NULL,
-                       _("ws_ib_max_zoom"));
-       }
-       else
-       {
-               gtk_html_set_magnification(GTK_HTML(ws_gui_app->ws_gui_html), 
-                                               ws_gui_app->zoom);
-
-               if ((WS_GUI_ABS(ws_gui_app->zoom - ZOOM_DEFAULT)) < 0.000001)
-               {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ib_zoom_default"));
-               }
-               else
-               {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ib_zoom_in"));
-               }
-       }
-}
-
-/** zoom out text in translation (html) area
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_html_zoom_out(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       ws_gui_app->zoom = ws_gui_app->zoom - ZOOM_STEP;
-       if (ws_gui_app->zoom < ZOOM_MIN)
-       {
-               ws_gui_app->zoom = ws_gui_app->zoom + ZOOM_STEP;
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                               _("ws_ib_min_zoom"));
-       }
-       else
-       {
-               gtk_html_set_magnification(GTK_HTML(ws_gui_app->ws_gui_html), 
-                                               ws_gui_app->zoom);
-               
-               if ((WS_GUI_ABS(ws_gui_app->zoom - ZOOM_DEFAULT)) < 0.000001)
-               {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ib_zoom_default"));
-               }
-               else
-               {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ib_zoom_out"));
-               }
-       }
-}
-
-/** start searching, send typed word to DBUS and query for words
-*
-* @param widget - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_search(GtkWidget * widget, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       
-       ws_gui_app->stop_clicked = FALSE;
-
-       gchar* ws_gui_text = NULL;
-       g_object_get(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-               "prefix",
-               &ws_gui_text,
-               NULL);
-
-       if (ws_gui_app->bookmark_mode == FALSE) 
-       {
-               if (ws_gui_app->first_run == TRUE)
-               {
-                       ws_gui_app->first_run = FALSE;
-               }
-
-               g_free(ws_gui_app->last_searched);
-               ws_gui_app->last_searched = NULL;
-               ws_gui_app->last_searched = g_strdup(ws_gui_text);
-       }
-       else
-       {
-               g_free(ws_gui_app->last_searched_in_book);
-               ws_gui_app->last_searched_in_book = NULL;
-               ws_gui_app->last_searched_in_book = g_strdup(ws_gui_text);
-       }
-       
-       g_strstrip(ws_gui_text);
-       if (strlen(ws_gui_text) != 0) 
-       {
-               ws_gui_app->loading = TRUE;
-               ws_gui_set_toolbar_avail(ws_gui_app);
-               ws_dbus_client_find_word (ws_gui_app->dbus_data, ws_gui_text);
-               
-               g_free(ws_gui_text);
-       }
-       else 
-       {
-               hildon_banner_show_information(GTK_WIDGET(
-                               ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                       _("ws_ni_no_word_typed"));
-       }
-       g_free(ws_gui_app->last_word);
-       ws_gui_app->last_word=NULL;
-}
-
-/** stop search process
-*
-* @param button - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_search_stop(GtkButton *button, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-       ws_gui_app->stop_clicked = TRUE;
-       if (ws_gui_app->loading == TRUE) 
-       {
-               ws_gui_app->loading = FALSE;
-               ws_gui_set_toolbar_avail(ws_gui_app);           
-
-               ws_dbus_notify(ws_gui_app->dbus_data, WS_DBUS_INFO_STOP_SEARCH);
-               hildon_banner_show_information(GTK_WIDGET(
-                               ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                       _("ws_ni_search_aborted"));
-       }
-}
-
-/** this function is called just before closing application; 
-it sends signal to DBUS and destroys it; 
-*
-* @param widget - object which recived the signal
-* @param event - 
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_on_exit (GtkWidget *widget, GdkEvent *event, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-       ws_gui_app->bookmark_mode = FALSE;
-       ws_gui_set_bookmarks_sensitivity(ws_gui_app);
-       g_timer_destroy(ws_gui_app->timer);
-       ws_dbus_notify(ws_gui_app->dbus_data, WS_DBUS_INFO_TERMINATE);
-       ws_dbus_destroy (ws_gui_app->dbus_data);
-       ws_gui_free_memory(ws_gui_app);
-       gtk_main_quit();
-       exit (0);
-}
-
-/** this function is called just before closing application, 
-from application menu; it sends signal to DBUS and destroys it;
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_menu_quit(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp *)user_data;
-       ws_gui_app->bookmark_mode = FALSE;
-       ws_gui_set_bookmarks_sensitivity(ws_gui_app);
-       g_timer_destroy(ws_gui_app->timer);
-       ws_dbus_notify(ws_gui_app->dbus_data, WS_DBUS_INFO_TERMINATE);
-       ws_dbus_destroy (ws_gui_app->dbus_data);
-       ws_gui_free_memory(ws_gui_app);
-       gtk_main_quit();
-       exit (0);
-}
-
-/** fill translation area with text (html) recived from DBUS
-*
-* @param html_context - text which is going to be displayed; it should be html
-* @param user_data - user data set when the function was called
-* @return
-*/
-void ws_gui_fill_html(char *html_context, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       
-       gtk_html_set_editable (GTK_HTML(ws_gui_app->ws_gui_html), FALSE);
-
-       /*Load welcome screen or translation string*/
-       if (ws_gui_app->first_run == TRUE && ws_gui_app->bookmark_mode==FALSE)
-       {
-       gtk_html_load_from_string(GTK_HTML(ws_gui_app->ws_gui_html),
-                               ws_gui_app->welcome_note,
-                               -1);
-       g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               "prefix",
-                               "",
-                               NULL);
-       }
-       else
-       {
-       gtk_html_load_from_string(GTK_HTML(ws_gui_app->ws_gui_html),
-                               html_context,
-                               -1);
-       }
-}
-
-/** read adjustment of left scrollwindow, which is necessary to navigate with 
-arrow keys inside words list
-*
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_read_adjustment(gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       ws_gui_app->ws_gui_hadj = 
-               gtk_scrolled_window_get_hadjustment(
-               GTK_SCROLLED_WINDOW(
-               ws_gui_app->ws_gui_scrolledwindow_left));
-
-       ws_gui_app->h_delta = (ws_gui_app->ws_gui_hadj->upper -
-                               ws_gui_app->ws_gui_hadj->lower)/SCROLL_STEP_H;
-
-       ws_gui_app->ws_gui_vadj = gtk_scrolled_window_get_vadjustment(
-       GTK_SCROLLED_WINDOW(ws_gui_app->ws_gui_scrolledwindow_left));
-
-       ws_gui_app->v_delta = (ws_gui_app->ws_gui_vadj->upper -
-                               ws_gui_app->ws_gui_vadj->lower)/SCROLL_STEP_V;
-       ws_gui_app->v_new_value =
-       gtk_adjustment_get_value(GTK_ADJUSTMENT(ws_gui_app->ws_gui_vadj)) +
-                                                       ws_gui_app->v_delta;
-
-       gtk_container_set_focus_vadjustment(
-       GTK_CONTAINER(ws_gui_app->ws_gui_scrolledwindow_left), 
-       gtk_scrolled_window_get_vadjustment(
-               GTK_SCROLLED_WINDOW(ws_gui_app->ws_gui_scrolledwindow_left)));
-
-}
-
-/** allows to display image in html area
-*
-* @param html - object which received a signal 
-* @param url - url to the image
-* @param stream - html stream 
-* @return
-*/
-void ws_gui_url_requested (
-                       GtkHTML *html, 
-                       const char *url, 
-                       GtkHTMLStream *stream)
-{
-       int fd;
-
-       if (url && !strncmp (url, "file:", 5)) {
-               url += 5;
-               fd = open (url, O_RDONLY);
-               if (fd != -1) {
-                       gchar *buf;
-                       size_t size;
-                       buf = alloca (8192);
-                       while ((size = read (fd, buf, 8192)) > 0) {
-                               gtk_html_stream_write (stream, buf, size);
-                       }
-               gtk_html_stream_close(stream, size == -1
-                                       ? GTK_HTML_STREAM_ERROR
-                                       : GTK_HTML_STREAM_OK);
-               close (fd);
-
-               return;
-               }
-       }
-
-       gtk_html_stream_close (stream, GTK_HTML_STREAM_ERROR);
-}
-
-/** handles button press event and examines what kind of event was it 
-       suppose to be
-*
-* @param widget - object which received a signal
-* @param event - type of event which has been performed
-* @param user_data - user data set when the signal handler was connected 
-* @return TRUE to stop other handlers from being invoked for the event. 
-FALSE to propagate the event further
-*/
-gboolean ws_gui_button_press(GtkWidget *widget,
-                       GdkEventButton *event,
-                       gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       if (ws_gui_app->ws_gui_sel_flag == FALSE)
-       {
-               if (event->type == GDK_2BUTTON_PRESS) 
-               {
-                       ws_gui_app->ws_gui_double_click = TRUE;
-                       g_timer_stop(ws_gui_app->timer);
-                       g_timer_reset(ws_gui_app->timer);
-                       return FALSE;
-               }
-
-               g_signal_stop_emission_by_name(G_OBJECT(
-                                               ws_gui_app->ws_gui_html),
-                                       "button-press-event");
-               g_timer_start(ws_gui_app->timer);
-               gtk_timeout_add((guint)(PRESS_TIME*1000),
-                               (GtkFunction)(ws_gui_show_popup),
-                               ws_gui_app);
-               return FALSE;
-       }
-       else
-       {
-               ws_gui_app->ws_gui_sel_flag = FALSE;
-               return FALSE;
-       }
-
-}
-
-/** handles button release event and examines whether 'click' or 'tap and hold' 
-event it supposed to be
-*
-* @param widget - object which received a signal
-* @param event - type of event which has been performed
-* @param user_data - user data set when the signal handler was connected 
-* @return TRUE to stop other handlers from being invoked for the event. 
-FALSE to propagate the event further
-*/
-gboolean ws_gui_button_release (GtkWidget *widget,
-                               GdkEventButton *event,
-                               gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       gdouble tmp = g_timer_elapsed(ws_gui_app->timer, NULL);
-       g_timer_stop(ws_gui_app->timer);
-       g_timer_reset(ws_gui_app->timer);
-       if (ws_gui_app->ws_gui_double_click == TRUE)
-       {
-               ws_gui_app->ws_gui_double_click = FALSE;
-               return FALSE;
-       }
-       else if (tmp < PRESS_TIME)
-       {
-               struct _GtkHTML *tmp = (struct _GtkHTML *)
-                                       (ws_gui_app->ws_gui_html);
-               html_engine_unselect_all(tmp->engine);
-               return TRUE;
-       }
-               return FALSE;
-}
-
-/** displays popup menu if user holds a stylus more than PRESS_TIME seconds
-*
-* @param user_data - user data set when the signal handler was connected 
-* @return 
-*/
-guint ws_gui_show_popup (gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       gdouble tmp = g_timer_elapsed(ws_gui_app->timer, NULL);
-       if (tmp > PRESS_TIME)
-       {
-               ws_gui_create_popup_menu(ws_gui_app);
-       }
-       return (guint)(FALSE);
-
-}
-
-/** checks clipboard content and sets sensitivity of widgets 
-*
-* @param widget - object which recived a signal
-* @param user_data - user data set when the signal handler was connected 
-* @return 
-*/
-void ws_gui_check_clipboard (GtkWidget *widget, gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       if (gtk_clipboard_wait_for_text(ws_gui_app->ws_gui_clipboard) != NULL)
-       {
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_paste),
-                       TRUE);
-       }
-       else
-       {
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_paste),
-                       FALSE);
-       }
-
-       struct _GtkHTML *tmp = (struct _GtkHTML *)(ws_gui_app->ws_gui_html);
-
-       if (html_engine_is_selection_active(tmp->engine) == TRUE)
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_menu_copy),
-                               TRUE);
-       }
-       else 
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_menu_copy),
-                               FALSE);
-       }
-
-       if (ws_gui_app->html_flag == FALSE)
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_select_all),
-                       FALSE);
-       }
-       else
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_select_all),
-                       TRUE);
-       }       
-
-}
-
-/** gets received string (with translation), formats it and sends it to be 
-* displayed
-*
-* @param received_string - content received from Manager
-* @param user_data - user data set when the function has been called
-* @return 
-*/
-gchar * format_html (gchar * received_string, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       GString *str_final;
-       GString *str_tmp;
-       str_final = g_string_new(received_string);
-       str_tmp = g_string_new(received_string);
-       gchar * tmp;
-       gchar * tmp2;
-       gchar * returned_value;
-       
-       ws_gui_app->raw_translation=g_string_erase(ws_gui_app->raw_translation, 
-                                               0, 
-                                               -1);
-
-       while (strstr(str_final->str, "<PATTERN_OPEN>") != NULL)
-       {
-               tmp = strstr(str_final->str, "<PATTERN_OPEN>");
-               str_final =  g_string_erase(str_final,
-                                       (long)(tmp - str_final->str),
-                                       14);
-               str_final =  g_string_insert(str_final,
-               (long)(tmp - str_final->str),
-               "<html><head></head><body><center><table width=\"95%\"><tr>"
-               "<td><table border=1 width=100%><tr>"
-               "<th background=\"file:/usr/share/pixmaps/ws_top.png\">"
-               "<img align=left src=\"file:/usr/share/pixmaps/"
-               "engine_xdxf_icon.png\"><font color=\"#eeeeee\">");
-               
-               tmp2 = strstr(str_tmp->str, "<PATTERN_OPEN>");
-               if (ws_gui_app->last_word != NULL)
-               {
-                       str_tmp =  g_string_erase(str_tmp,
-                                       (long)(tmp2 - str_tmp->str),
-                                       14 + strlen(ws_gui_app->last_word));
-               }
-       }
-
-       while (strstr(str_final->str, "<PATTERN_CLOSED>") != NULL)
-       {
-               tmp = strstr(str_final->str, "<PATTERN_CLOSED>");
-               str_final =  g_string_erase(str_final,
-                                       (long)(tmp - str_final->str),
-                                       16);
-               str_final =  g_string_insert(str_final,
-                                       (long)(tmp - str_final->str),
-                                       "</font></th></tr></table>");
-
-               tmp2 = strstr(str_tmp->str, "<PATTERN_CLOSED>");
-               str_tmp =  g_string_erase(str_tmp,
-                                       (long)(tmp2 - str_tmp->str),
-                                       16);
-       }
-
-       while (strstr(str_final->str, "<TRANSLATION_OPEN>") != NULL)
-       {
-               tmp = strstr(str_final->str, "<TRANSLATION_OPEN>");
-               str_final =  g_string_erase (str_final,
-                                       (long)(tmp - str_final->str),
-                                       18);
-               str_final =  g_string_insert (str_final,
-               (long)(tmp - str_final->str),
-               "<table border=1 width=100%><tr><td background=\"file:/usr/"
-               "share/pixmaps/ws_tra.png\">");
-
-               tmp2 = strstr(str_tmp->str, "<TRANSLATION_OPEN>");
-               str_tmp =  g_string_erase(str_tmp,
-                                       (long)(tmp2 - str_tmp->str),
-                                       18);
-       }
-
-       while (strstr(str_final->str, "<TRANSLATION_CLOSED>") != NULL)
-       {
-               tmp = strstr(str_final->str, "<TRANSLATION_CLOSED>");
-               str_final =  g_string_erase(str_final,
-                                       (long)(tmp - str_final->str),
-                                       20);
-               str_final =  g_string_insert(str_final,
-                                       (long)(tmp - str_final->str),
-                                       "</td></tr></table></center>");
-
-               tmp2 = strstr(str_tmp->str, "<TRANSLATION_CLOSED>");
-               str_tmp =  g_string_erase(str_tmp,
-                                       (long)(tmp2 - str_tmp->str),
-                                       20);
-       }
-
-       str_final = g_string_append(str_final,
-                               "</td></tr></table></body></html>");
-
-       ws_gui_app->raw_translation = g_string_insert(
-                                               ws_gui_app->raw_translation,
-                                               0,
-                                               str_tmp->str);
-       
-       returned_value = g_strdup(str_final->str);
-       g_string_free(str_final, TRUE);
-       g_string_free(str_tmp, TRUE);
-       return returned_value;
-}
-
-/** open bookmarks database 
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_dictionary_open_bookmark(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       ws_gui_read_active_dictionaries(ws_gui_app);
-       
-       /*list has to be cleared if we're gonna use a completely different dict*/
-       ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store, ws_gui_app);
-       g_free(ws_gui_app->last_word);
-       ws_gui_app->last_word = NULL;
-
-       ws_gui_app->bookmark_mode = TRUE;
-       ws_gui_set_bookmarks_sensitivity(ws_gui_app);
-       g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               "prefix",
-                               "*",
-                               NULL);
-       ws_dbus_notify(ws_gui_app->dbus_data, WS_DBUS_BOOKMARK_MODE_ON);
-       
-       if(ws_gui_app->ws_gui_history->len >= 0)
-       {
-       ws_gui_clear_array(ws_gui_app->ws_gui_history);
-       ws_gui_clear_array(ws_gui_app->ws_gui_history_list);
-       ws_gui_clear_array(ws_gui_app->ws_gui_history_iter);
-       ws_gui_app->ws_gui_history_cur_pos = -1;
-       }
-       ws_gui_check_history(ws_gui_app);
-       ws_gui_fill_html(" ", ws_gui_app);
-       ws_gui_app->html_flag = FALSE;
-       ws_dbus_client_find_word(ws_gui_app->dbus_data, "*");
-       gtk_widget_hide(ws_gui_app->ws_gui_list_hbox);
-       
-       ws_gui_search(NULL, ws_gui_app);
-}
-
-/** closes bookmarks database 
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_dictionary_close_bookmark(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       ws_gui_read_active_dictionaries(ws_gui_app);
-       
-       g_free(ws_gui_app->last_word);
-       ws_gui_app->last_word = NULL;
-
-       ws_gui_app->bookmark_mode = FALSE;
-       ws_gui_set_bookmarks_sensitivity(ws_gui_app);   
-       ws_dbus_notify(ws_gui_app->dbus_data, WS_DBUS_BOOKMARK_MODE_OFF);
-
-       if(ws_gui_app->ws_gui_history->len >= 0)
-       {
-       ws_gui_clear_array(ws_gui_app->ws_gui_history);
-       ws_gui_clear_array(ws_gui_app->ws_gui_history_list);
-       ws_gui_clear_array(ws_gui_app->ws_gui_history_iter);
-       ws_gui_app->ws_gui_history_cur_pos = -1;
-       }
-       ws_gui_check_history(ws_gui_app);
-
-       ws_gui_fill_html(" ", ws_gui_app);
-       ws_gui_app->html_flag = TRUE;
-       if (g_strstrip(ws_gui_app->last_searched) != NULL && ws_gui_app->first_run == FALSE) 
-       {
-       g_object_set(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               "prefix",
-                               ws_gui_app->last_searched,
-                               NULL);
-
-       ws_gui_search(NULL, ws_gui_app);
-       }
-       else
-       {
-               gtk_list_store_clear(ws_gui_app->ws_gui_w_list->ws_gui_store);
-       }
-
-}
-
-/** adds bookmark to bookmarks database 
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_dictionary_add_bookmark(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       if (ws_gui_app->last_word != NULL)
-       {
-               ws_gui_add_bookmark_dialog(ws_gui_app);
-       } 
-       else
-       {
-               hildon_banner_show_information(GTK_WIDGET(
-                               ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                               _("ws_ni_select_word_to_add"));
-       }
-}
-
-/** removes bookmark from bookmarks database 
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_dictionary_remove_bookmark(GtkMenuItem *menuitem, 
-                               gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       if (ws_gui_app->last_word != NULL)
-       {
-               ws_gui_remove_bookmark_dialog(ws_gui_app);
-
-               ws_gui_clear_list(ws_gui_app->ws_gui_w_list->ws_gui_store, ws_gui_app);
-               gchar *temp;
-               g_object_get(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               "prefix",
-                               &temp,
-                               NULL);
-               ws_dbus_client_find_word (ws_gui_app->dbus_data, temp);
-               
-       }
-       else
-       {
-               hildon_banner_show_information(GTK_WIDGET(
-                               ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                       _("ws_ni_select_word_to_remove"));
-       }
-       
-       
-}
-
-/** checks wheather dictionaries are available or not; according to the result
-* dimmes proper menuitem 
-*
-* @param menuitem - object which recived the signal
-* @param user_data - user data set when the signal handler was connected 
-* @return
-*/
-void ws_gui_dict_availablity(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       if (gconf_client_dir_exists(ws_gui_app->client, 
-                               GCONF_PATH, NULL) == TRUE)
-       {
-               ws_gui_app->directories = gconf_client_all_dirs(
-                                                       ws_gui_app->client,
-                                                       GCONF_PATH,
-                                                       NULL
-                                                       );
-               
-       
-               if(g_slist_length(ws_gui_app->directories) != 0)
-               {
-                       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_remove_dict),
-                       TRUE);
-                       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_select_dict),
-                       TRUE);
-                       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_optimize_dict),
-                       TRUE);
-               }
-
-       }
-       else 
-       {
-       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_remove_dict),
-                       FALSE);
-       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_select_dict),
-                       FALSE);
-       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_optimize_dict),
-                       FALSE);
-       }
-
-}
-
-/** sets sensitivity of menu items due to bookmark's mode
-*
-* @param user_data - user data set when the function was called 
-* @return
-*/
-void ws_gui_set_bookmarks_sensitivity(gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       int i;
-       gchar *string;
-       gchar *name;
-
-       if (ws_gui_app->bookmark_mode == TRUE)
-       {
-               g_slist_free(ws_gui_app->directories_last);
-               ws_gui_app->directories_last = NULL;
-               ws_gui_app->directories_last = g_slist_alloc();
-               g_slist_free(ws_gui_app->directories);
-               ws_gui_app->directories = g_slist_alloc();
-
-               ws_gui_app->directories = gconf_client_all_dirs(
-                                                       ws_gui_app->client, 
-                                                       GCONF_PATH, NULL);
-               
-       for (i=0; i<g_slist_length(ws_gui_app->directories); i++)
-       {
-               string = (gchar*)g_slist_nth_data(ws_gui_app->directories, i);
-               name = g_path_get_basename(string);
-               string = g_strconcat(string, "/active", NULL);
-               
-               if (gconf_client_get_bool(ws_gui_app->client, string, NULL) == TRUE) 
-               {
-                       ws_gui_app->directories_last = 
-                               g_slist_append(ws_gui_app->directories_last, 
-                                       string);
-               }
-
-               if (strcmp(name, "bookmarks") == 0)
-               {
-                       gconf_client_set_bool(ws_gui_app->client, 
-                                       string, 
-                                       TRUE, 
-                                       NULL);
-               }
-               else
-               {
-                       gconf_client_set_bool(ws_gui_app->client, 
-                                       string, 
-                                       FALSE, 
-                                       NULL);
-               }
-       }
-
-       /*setting sensitivity of components*/
-       gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_open_bookmark),
-               FALSE);
-       gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_close_bookmark),
-               TRUE);
-       gtk_widget_set_sensitive(
-       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_remove_bookmark),
-       TRUE);
-       gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_add_bookmark),
-               FALSE);
-       gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_dictionaries),
-               FALSE);
-       }
-       else 
-       {
-       gchar *bookmarks_path = g_strconcat(GCONF_PATH, "/bookmarks/active", NULL);
-       if (g_slist_length(ws_gui_app->directories_last) > 0)
-       {
-       gconf_client_set_bool(ws_gui_app->client, bookmarks_path, FALSE, NULL);
-       }
-       
-       for (i=0; i<g_slist_length(ws_gui_app->directories_last); i++)
-       {
-               string = (gchar*)g_slist_nth_data(ws_gui_app->directories_last, 
-                                               i);
-               
-               if (string != NULL)
-               {
-               gconf_client_set_bool(ws_gui_app->client, 
-                               string, 
-                               TRUE, 
-                               NULL);
-               }
-       }
-
-       /*setting sensitivity of components*/
-       gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_open_bookmark),
-               TRUE);
-       gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_close_bookmark),
-               FALSE);
-       gtk_widget_set_sensitive(
-       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_remove_bookmark),
-       FALSE);
-       gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_add_bookmark),
-               TRUE);
-       gtk_widget_set_sensitive(
-               GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_dictionaries),
-               TRUE);
-
-       g_free(bookmarks_path);
-       }
-
-}
-
-/** sets sensitivity of menu items due to user selection made
-*
-* @param user_data - user data set when the function was called 
-* @return
-*/
-void ws_gui_set_bookmark_menu_items(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       if (ws_gui_app->bookmark_mode == TRUE && ws_gui_app->last_word != NULL)
-       {
-       gtk_widget_set_sensitive(
-       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_remove_bookmark),
-       TRUE);
-       }
-       else
-       {
-       gtk_widget_set_sensitive(
-       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_remove_bookmark),
-       FALSE);
-       }
-
-       if (ws_gui_app->last_word == NULL || 
-       (ws_gui_app->last_word[0] == '\0') ||
-       ws_gui_app->bookmark_mode == TRUE)
-       {
-       gtk_widget_set_sensitive(
-       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_add_bookmark),
-       FALSE);
-       }
-       else
-       {
-       gtk_widget_set_sensitive(
-       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_add_bookmark),
-       TRUE);
-       }
-}
-/** reads gconf entries and sets variables with a proper data; it is necessary
-* for changing the bookmarks mode
-*
-* @param user_data - user data set when the function was called
-* @return
-*/
-void ws_gui_read_active_dictionaries(gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       
-       ws_gui_app->directories = gconf_client_all_dirs(ws_gui_app->client,
-                                       GCONF_PATH,
-                                       NULL);
-}
-
-/** Deletes all elements from a GArray
-*
-* @param history - a GArray to be acted upon
-* @return
-*/
-void ws_gui_clear_array(GArray *history)
-{
-       if(history->len >= 0)
-       {
-               history = g_array_remove_range(history, 0, history->len);
-       }
-}
-
-/** Fixes a bug in hildon GtkTreeView(check if the GtkTreeView widget isn't
- * unnecessarily cleared and initialized 
- *
- * @param treeview - a treeview to act upon
- * @param user_data - user data set when the function was called
- * @return
- */
-void ws_gui_view_cursor_changed(GtkTreeView *treeview, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       gchar *string;
-       if (gtk_tree_selection_get_selected(ws_gui_app->ws_gui_w_list->ws_gui_selection,
-                               &ws_gui_app->ws_gui_w_list->ws_gui_model,
-                               &ws_gui_app->ws_gui_w_list->ws_gui_iter))
-       {
-       gtk_tree_model_get(ws_gui_app->ws_gui_w_list->ws_gui_model,
-                               &ws_gui_app->ws_gui_w_list->ws_gui_iter,
-                               COL_WORD,
-                               &string,
-                               -1);
-       if (string != NULL)
-               {
-               ws_gui_app->loading = TRUE;
-               ws_gui_set_toolbar_avail(ws_gui_app);
-
-               ws_dbus_client_find_translation(ws_gui_app->dbus_data, string);
-               
-               
-               g_free(ws_gui_app->last_word);
-               ws_gui_app->last_word = NULL;
-               ws_gui_app->last_word = g_strdup (string);
-
-               if (ws_gui_app->history_flag == FALSE)
-               {
-               ws_gui_history_add(string, ws_gui_app);
-               
-               }
-               g_free (string);
-               }
-               
-       }
-       
-       
-}
-
-/** Sets toolbar availability
-*
-* @param user_data - user data set when the function was called
-* @return
-*/
-void ws_gui_set_toolbar_avail(gpointer user_data) {
-       
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       
-       if (ws_gui_app->loading == TRUE)
-       {
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_stop),
-                       TRUE);
-       
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
-                       FALSE);
-
-       }
-       else 
-       {
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_stop),
-                       FALSE);
-       
-               gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_menu->ws_gui_menu_search),
-                       TRUE);
-       }
-}
-
-/** refreshes search results
-*
-* @param user_data - user data set when the function was called
-* @return
-*/
-void ws_refresh_search_results(gpointer user_data) {
-       
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       /*efreshing the words list and translation pane*/
-       gchar *temp;
-       g_object_get(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               "prefix",
-                               &temp,
-                               NULL);
-       
-       if (ws_gui_app->first_run == FALSE)
-       {
-               ws_dbus_client_find_word (ws_gui_app->dbus_data, temp);
-       }
-}
-/*@}*/
diff --git a/src/gui/src/ws_gui_layout.c b/src/gui/src/ws_gui_layout.c
deleted file mode 100644 (file)
index 1a06b83..0000000
+++ /dev/null
@@ -1,1865 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup GUI
- */
-/*@{*/
-/** \file ws_gui_layout.c
- * \brief GUI layout definitions
- *
- * Defines the way GUI dialogues look
- * \author Anna Gadomska \<anna.gadomska\@comarch.com\>
- * \date 05-11-2007
- * \version 1.0.0
- */
-
-#include <ws_gui_layout.h>
-#include <ws_gui.h>
-#include <ws_gui_callbacks.h>
-#include <ws_dbus.h>
-#include <libintl.h>
-
-
-/** this function creates main window and it components; moreover there are 
- * signal connections;
- *
- * @param user_data - data set when the signal handler was connected 
- */
-void ws_gui_create_window(gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       
-       ws_gui_app->welcome_note = g_strconcat("<center><font size=+2>", 
-                                  _("ws_ni_welcome"), "</font><br><br><IMG SRC=file:/usr/share/pixmaps/mdictionary.png>", 
-                                  NULL);
-
-/*     ws_gui_app->ws_gui_w_list->ws_gui_list_item_data_string = 
-                                                    (ws_gui_app->welcome_note);*/
-
-       GArray *array_tmp = g_array_new (TRUE, TRUE, sizeof(gchar*));
-       ws_gui_app->raw_translation = g_string_new(" ");
-       ws_gui_app->last_searched = NULL;
-       ws_gui_app->last_searched_in_book = NULL;
-       ws_gui_app->last_word = NULL;
-
-       /*indicates that searching banner is displayed*/
-       ws_gui_app->ws_gui_banner_flag = FALSE;
-       /*indicates full screen mode*/
-       ws_gui_app->ws_gui_full_screen_flag = FALSE;
-       /*indicates that caching is in progress*/
-       ws_gui_app->caching_flag = FALSE;
-       /*used for doubleclick recognition*/
-       ws_gui_app->ws_gui_double_click = FALSE;
-       /*indicates a that a piece of text is selected*/
-       ws_gui_app->ws_gui_sel_flag = FALSE;
-       /*indicates whether bookmark mode is active or not*/
-       ws_gui_app->bookmark_mode = FALSE;
-       /*indicates if bookmarks database is available*/
-       ws_gui_app->bookmark_avail = TRUE;
-       /*indicates that no translation has been found*/
-       ws_gui_app->html_flag = TRUE;
-       /*indicates loading banner is displayed*/
-       ws_gui_app->loading = FALSE;
-       /*differentiates between tap and hold and ordinary tap*/
-       ws_gui_app->stop_clicked = FALSE;
-       /*if dictionary is just run*/
-       ws_gui_app->first_run = TRUE; 
-       /*indicates that no words match a given search pattern*/
-       ws_gui_app->no_words_found = TRUE;
-       /*indicates that no words match a given search pattern*/
-       ws_gui_app->dictionary_selection_changed = FALSE;
-       
-       ws_gui_app->zoom = ZOOM_DEFAULT;
-
-       ws_gui_app->timer = g_timer_new();
-       g_timer_stop(ws_gui_app->timer);
-
-       ws_gui_app->ws_gui_history = g_array_new(TRUE, TRUE, sizeof(gchar*));
-       ws_gui_app->ws_gui_history_list = g_array_new(TRUE, TRUE, sizeof(gchar*));
-       ws_gui_app->ws_gui_history_iter = g_array_new(TRUE, TRUE, sizeof(gchar*));
-       ws_gui_app->history_flag = FALSE;
-       ws_gui_app->ws_gui_history_cur_pos = -1;
-       
-       ws_gui_app->ws_gui_hildon_program = 
-       HILDON_PROGRAM(hildon_program_get_instance());
-
-       g_set_application_name(PACKAGE);
-
-       ws_gui_app->ws_gui_hildon_window = HILDON_WINDOW(hildon_window_new());
-
-       hildon_program_add_window(ws_gui_app->ws_gui_hildon_program,
-                               ws_gui_app->ws_gui_hildon_window);
-
-       ws_gui_create_main_menu(ws_gui_app);
-       ws_gui_create_find_toolbar(ws_gui_app);
-
-       ws_gui_app->ws_gui_hpane = gtk_hpaned_new();
-
-       ws_gui_app->ws_gui_scrolledwindow_left = 
-               gtk_scrolled_window_new (NULL, NULL);
-
-       gtk_scrolled_window_set_policy(
-               GTK_SCROLLED_WINDOW (ws_gui_app->ws_gui_scrolledwindow_left), 
-               GTK_POLICY_AUTOMATIC,
-               GTK_POLICY_AUTOMATIC);
-
-       gtk_paned_set_position(GTK_PANED(ws_gui_app->ws_gui_hpane), 100);
-
-       gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW
-                               (ws_gui_app->ws_gui_scrolledwindow_left),
-                               GTK_CORNER_TOP_LEFT);
-
-       ws_gui_app->ws_gui_scrolledwindow_right = 
-               gtk_scrolled_window_new (NULL, NULL);
-
-       gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW
-                               (ws_gui_app->ws_gui_scrolledwindow_right), 
-                               GTK_POLICY_NEVER,
-                               GTK_POLICY_AUTOMATIC);
-
-       ws_gui_app->ws_gui_w_list->ws_gui_store = 
-               gtk_list_store_new (NUM_COLS, G_TYPE_STRING, G_TYPE_UINT);
-
-       ws_gui_app->ws_gui_w_list->ws_gui_view = 
-               create_view_and_model(array_tmp, ws_gui_app);
-
-       g_array_free(array_tmp, TRUE);
-
-       gtk_widget_show_all(GTK_WIDGET(ws_gui_app->ws_gui_w_list->ws_gui_view));
-
-       gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW
-                               (ws_gui_app->ws_gui_scrolledwindow_left), 
-                                       ws_gui_app->ws_gui_w_list->ws_gui_view);
-
-       ws_gui_app->ws_gui_html = gtk_html_new();
-
-       ws_gui_app->p = pango_font_description_from_string("Tahoma 12");
-       gtk_widget_modify_font(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_html),ws_gui_app->p);
-
-       g_signal_connect(GTK_OBJECT (ws_gui_app->ws_gui_html),
-                               "url_requested",
-                               G_CALLBACK(ws_gui_url_requested),
-                               ws_gui_app);
-
-       gtk_html_load_from_string(GTK_HTML(ws_gui_app->ws_gui_html),
-                       ws_gui_app->welcome_note,
-                       -1);
-       
-       gtk_html_set_magnification(GTK_HTML(ws_gui_app->ws_gui_html), 
-                               ws_gui_app->zoom);
-
-       gtk_html_set_editable(GTK_HTML(ws_gui_app->ws_gui_html), FALSE); 
-       gtk_html_allow_selection(GTK_HTML(ws_gui_app->ws_gui_html), TRUE);
-
-       gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW
-                               (ws_gui_app->ws_gui_scrolledwindow_right),
-                               ws_gui_app->ws_gui_html);
-
-       /*adding vbox & label - used for notifications */
-
-       ws_gui_app->ws_gui_list_image = gtk_image_new_from_file("/usr/share/pixmaps/ws_warning_icon.png");
-       ws_gui_app->ws_gui_list_eventbox = gtk_event_box_new ();
-       ws_gui_app->ws_gui_list_vbox = gtk_vbox_new(FALSE, 0);
-       ws_gui_app->ws_gui_list_hbox = gtk_hbox_new(FALSE, 5);
-       ws_gui_app->ws_gui_list_label = gtk_label_new(_("ws_ti_list_full"));
-
-       ws_gui_app->p = pango_font_description_from_string("Tahoma 10");
-       gtk_widget_modify_font(GTK_WIDGET(ws_gui_app->ws_gui_list_label), ws_gui_app->p);
-
-       /*HBox packing ....*/
-       gtk_box_pack_start(GTK_BOX(ws_gui_app->ws_gui_list_hbox),
-                       ws_gui_app->ws_gui_list_image,
-                       FALSE,
-                       FALSE,
-                       0);
-       
-       gtk_box_pack_start(GTK_BOX(ws_gui_app->ws_gui_list_hbox),
-                       ws_gui_app->ws_gui_list_label,
-                       FALSE,
-                       FALSE,
-                       0);
-       
-       // gtk_widget_set_size_request (ws_gui_app->ws_gui_list_label, 150, -1);
-
-       /*VBox packing ....*/
-       gtk_box_pack_start(GTK_BOX(ws_gui_app->ws_gui_list_vbox),
-                       ws_gui_app->ws_gui_scrolledwindow_left,
-                       TRUE,
-                       TRUE,
-                       0);
-
-       gtk_box_pack_end(GTK_BOX(ws_gui_app->ws_gui_list_vbox),
-                       ws_gui_app->ws_gui_list_eventbox,
-                       FALSE,
-                       FALSE,
-                       0);
-       
-       gtk_container_add (GTK_CONTAINER (ws_gui_app->ws_gui_list_eventbox), 
-                       ws_gui_app->ws_gui_list_hbox);
-       /************************************************/
-
-
-       gtk_paned_pack1(GTK_PANED(ws_gui_app->ws_gui_hpane),
-               ws_gui_app->ws_gui_list_vbox,
-               TRUE,
-               TRUE);
-       gtk_paned_pack2(GTK_PANED(ws_gui_app->ws_gui_hpane),
-               ws_gui_app->ws_gui_scrolledwindow_right,
-               TRUE,
-               TRUE);
-
-       gtk_container_add(GTK_CONTAINER(ws_gui_app->ws_gui_hildon_window), 
-                       ws_gui_app->ws_gui_hpane);
-
-       gtk_widget_show_all(GTK_WIDGET(ws_gui_app->ws_gui_hildon_window));
-
-       gtk_widget_hide_all(GTK_WIDGET(ws_gui_app->ws_gui_list_eventbox));
-       /*gtk_widget_hide_all(GTK_WIDGET(ws_gui_app->ws_gui_list_hbox));*/
-
-       ws_gui_app->ws_gui_w_list->ws_gui_selection = 
-               gtk_tree_view_get_selection (GTK_TREE_VIEW
-               (ws_gui_app->ws_gui_w_list->ws_gui_view));
-
-       gtk_tree_selection_set_mode(
-                               ws_gui_app->ws_gui_w_list->ws_gui_selection,
-                               GTK_SELECTION_BROWSE);
-       
-       ws_gui_app->directories = g_slist_alloc();
-       ws_gui_set_bookmarks_sensitivity(ws_gui_app);
-
-       ws_gui_app->ws_gui_banner_list_searching = hildon_banner_show_animation(
-                               GTK_WIDGET(ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                               _("ws_ab_searching"));
-
-       ws_gui_app->ws_gui_banner_translation_loading = hildon_banner_show_animation(
-                               GTK_WIDGET(ws_gui_app->ws_gui_hildon_window),
-                               NULL,
-                               _("ws_ab_loading"));
-       
-//     gtk_widget_set_sensitive(GTK_WIDGET
-//                     (ws_gui_app->ws_gui_menu->ws_gui_popup_bookmark),
-//                     FALSE);
-
-       gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_banner_list_searching));
-       gtk_widget_hide(GTK_WIDGET(ws_gui_app->ws_gui_banner_translation_loading));
-}
-
-/** this function creates a find toolbar and connects signals to the tollbars 
- * components
- *
- * @param user_data - set when the signal handler was connected
- */
-void ws_gui_create_find_toolbar(gpointer user_data)
-{
-       WSGuiApp* ws_gui_app = (WSGuiApp*)user_data;
-       
-       GtkToolItem *space;
-       ws_gui_app->ws_gui_hildon_find_toolbar = 
-       HILDON_FIND_TOOLBAR(hildon_find_toolbar_new(_("ws_me_search_find")));
-       
-       ws_gui_app->ws_gui_toobar_button_hide =
-       gtk_toggle_tool_button_new_from_stock(GTK_STOCK_GOTO_FIRST);
-       ws_gui_app->ws_gui_toobar_button_back = 
-       gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
-       ws_gui_app->ws_gui_toobar_button_forward =
-       gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
-       ws_gui_app->ws_gui_toobar_button_stop = 
-       gtk_tool_button_new_from_stock(GTK_STOCK_STOP);
-       space = gtk_separator_tool_item_new(); 
-       
-       ws_gui_app->ws_gui_toobar_button_close = 
-               gtk_toolbar_get_nth_item(GTK_TOOLBAR(
-                                       ws_gui_app->ws_gui_hildon_find_toolbar),
-                                       4);
-
-       ws_gui_app->ws_gui_toobar_button_start = gtk_toolbar_get_nth_item(GTK_TOOLBAR(
-                                       ws_gui_app->ws_gui_hildon_find_toolbar),
-                                       2);
-
-       gtk_tool_item_set_visible_horizontal(
-                               ws_gui_app->ws_gui_toobar_button_close,
-                               FALSE);
-       
-       gtk_toolbar_insert(GTK_TOOLBAR(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               ws_gui_app->ws_gui_toobar_button_hide,
-                               0);
-       gtk_toolbar_insert(GTK_TOOLBAR(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               ws_gui_app->ws_gui_toobar_button_back,
-                               -1);
-       gtk_toolbar_insert(GTK_TOOLBAR(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               ws_gui_app->ws_gui_toobar_button_forward,
-                               -1);
-       gtk_toolbar_insert(GTK_TOOLBAR(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               space,
-                               -1);
-       gtk_toolbar_insert(GTK_TOOLBAR(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               ws_gui_app->ws_gui_toobar_button_stop,
-                               -1);
-       
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar), 
-                       "search",
-                       G_CALLBACK(ws_gui_search),
-                       ws_gui_app);
-       
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_toobar_button_hide), 
-                       "toggled",
-                       G_CALLBACK(ws_gui_words_list_hide),
-                       ws_gui_app);
-       
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_toobar_button_back), 
-                       "clicked",
-                       G_CALLBACK(ws_gui_history_back),
-                       ws_gui_app);
-       
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_toobar_button_forward), 
-                       "clicked",
-                       G_CALLBACK(ws_gui_history_next),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT(ws_gui_app->ws_gui_toobar_button_stop), 
-                       "clicked",
-                       G_CALLBACK(ws_gui_search_stop),
-                       ws_gui_app);
-       
-       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_back),
-                       FALSE);
-       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_forward),
-                       FALSE);
-       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_toobar_button_stop),
-                       FALSE);
-       
-       hildon_find_toolbar_highlight_entry((HildonFindToolbar*)(ws_gui_app->ws_gui_hildon_find_toolbar),
-                                             FALSE);
-       //gtk_toolbar_set_tooltips(GTK_TOOLBAR(ws_gui_app->ws_gui_hildon_find_toolbar), TRUE);
-
-       hildon_window_add_toolbar(ws_gui_app->ws_gui_hildon_window,
-                       GTK_TOOLBAR(ws_gui_app->ws_gui_hildon_find_toolbar));
-}
-
-/** this function creates application menu and its items and connect signals to 
- * them
- *
- * @param user_data - set when the signal handler was connected
- */
-void ws_gui_create_main_menu (gpointer user_data) 
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       ws_gui_app->ws_gui_menu->ws_gui_submenu_0 = gtk_menu_new();
-       ws_gui_app->ws_gui_menu->ws_gui_submenu_1 = gtk_menu_new();
-       ws_gui_app->ws_gui_menu->ws_gui_submenu_2 = gtk_menu_new();
-       ws_gui_app->ws_gui_menu->ws_gui_submenu_3 = gtk_menu_new();
-       ws_gui_app->ws_gui_menu->ws_gui_submenu_4 = gtk_menu_new();
-       ws_gui_app->ws_gui_menu->ws_gui_main_menu = gtk_menu_new();
-
-       ws_gui_app->ws_gui_menu->ws_gui_menu_dictionaries =
-               gtk_menu_item_new_with_label(_("ws_me_dictionaries"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks =
-               gtk_menu_item_new_with_label(_("ws_me_bookmarks"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_edit = 
-               gtk_menu_item_new_with_label(_("ws_me_edit"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_view = 
-               gtk_menu_item_new_with_label(_("ws_me_view"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_search = 
-               gtk_menu_item_new_with_label(_("ws_me_search"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_about = 
-               gtk_menu_item_new_with_label(_("ws_me_about"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_close = 
-               gtk_menu_item_new_with_label(_("ws_me_close"));
-       ws_gui_app->ws_gui_menu->ws_gui_separator = 
-               gtk_separator_menu_item_new();
-       ws_gui_app->ws_gui_menu->ws_gui_separator1 = 
-               gtk_separator_menu_item_new();
-
-       ws_gui_app->ws_gui_menu->ws_gui_menu_load_dict = 
-               gtk_menu_item_new_with_label(_("ws_me_dictionaries_load"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_select_dict = 
-               gtk_menu_item_new_with_label(_("ws_me_dictionaries_select"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_remove_dict = 
-               gtk_menu_item_new_with_label(_("ws_me_dictionaries_remove"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_optimize_dict = 
-               gtk_menu_item_new_with_label(_("ws_me_dictionaries_optimize"));
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_0,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_load_dict);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_0,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_select_dict);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_0,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_remove_dict);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_0,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_optimize_dict);
-
-       ws_gui_app->ws_gui_menu->ws_gui_menu_open_bookmark = 
-               gtk_menu_item_new_with_label(_("ws_me_bookmarks_open"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_close_bookmark = 
-               gtk_menu_item_new_with_label(_("ws_me_bookmarks_close"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_add_bookmark = 
-               gtk_menu_item_new_with_label(_("ws_me_bookmarks_add"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_remove_bookmark = 
-               gtk_menu_item_new_with_label(_("ws_me_bookmarks_remove"));
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_4,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_open_bookmark);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_4,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_close_bookmark);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_4,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_add_bookmark);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_4,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_remove_bookmark);
-
-       ws_gui_app->ws_gui_menu->ws_gui_menu_copy = 
-               gtk_menu_item_new_with_label(_("ws_me_edit_copy"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_paste = 
-               gtk_menu_item_new_with_label(_("ws_me_edit_paste"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_select_all = 
-               gtk_menu_item_new_with_label(_("ws_me_edit_select_all"));
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_1,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_copy);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_1,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_paste);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_1,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_select_all);
-       
-       ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list = 
-       gtk_check_menu_item_new_with_label(_("ws_me_view_hide_words_list"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_zoom_in = 
-               gtk_menu_item_new_with_label(_("ws_me_view_zoom_in"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_zoom_out = 
-               gtk_menu_item_new_with_label(_("ws_me_view_zoom_out"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_full_screen = 
-               gtk_check_menu_item_new_with_label(_("ws_me_view_fullscreen"));
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_2,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_2,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_zoom_in);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_2,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_zoom_out);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_2,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_full_screen);
-       
-       ws_gui_app->ws_gui_menu->ws_gui_menu_find_word = 
-               gtk_menu_item_new_with_label(_("ws_me_search_find"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_find_next = 
-               gtk_menu_item_new_with_label(_("ws_me_search_find_next"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_find_prev = 
-       gtk_menu_item_new_with_label(_("ws_me_search_find_prev"));
-       ws_gui_app->ws_gui_menu->ws_gui_menu_stop = 
-       gtk_menu_item_new_with_label(_("ws_me_search_stop"));
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_3,
-               ws_gui_app->ws_gui_menu->ws_gui_menu_find_word);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_3,
-               ws_gui_app->ws_gui_menu->ws_gui_menu_find_next);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_3,
-               ws_gui_app->ws_gui_menu->ws_gui_menu_find_prev);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_submenu_3,
-               ws_gui_app->ws_gui_menu->ws_gui_menu_stop);
-
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-               ws_gui_app->ws_gui_menu->ws_gui_menu_dictionaries);
-       gtk_menu_item_set_submenu(GTK_MENU_ITEM
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_dictionaries),
-                       ws_gui_app->ws_gui_menu->ws_gui_submenu_0);
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-               ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks);
-       gtk_menu_item_set_submenu(GTK_MENU_ITEM
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
-                       ws_gui_app->ws_gui_menu->ws_gui_submenu_4);
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-               ws_gui_app->ws_gui_menu->ws_gui_separator1);
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-               ws_gui_app->ws_gui_menu->ws_gui_menu_edit);
-       gtk_menu_item_set_submenu(GTK_MENU_ITEM
-                               (ws_gui_app->ws_gui_menu->ws_gui_menu_edit), 
-                               ws_gui_app->ws_gui_menu->ws_gui_submenu_1);
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_view);
-       gtk_menu_item_set_submenu(GTK_MENU_ITEM
-                               (ws_gui_app->ws_gui_menu->ws_gui_menu_view), 
-                               ws_gui_app->ws_gui_menu->ws_gui_submenu_2);
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_search);
-       gtk_menu_item_set_submenu(GTK_MENU_ITEM
-                               (ws_gui_app->ws_gui_menu->ws_gui_menu_search), 
-                               ws_gui_app->ws_gui_menu->ws_gui_submenu_3);
-
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-                       ws_gui_app->ws_gui_menu->ws_gui_separator);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_about);
-       gtk_menu_append(ws_gui_app->ws_gui_menu->ws_gui_main_menu,
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_close);
-
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_load_dict),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_loader),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT(
-                       ws_gui_app->ws_gui_menu->ws_gui_menu_select_dict),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_chooser),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_remove_dict),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_remover),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_optimize_dict),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_optimizer), ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_open_bookmark),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_open_bookmark), 
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_close_bookmark),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_close_bookmark), 
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_add_bookmark),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_add_bookmark), 
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_remove_bookmark),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_remove_bookmark), 
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_copy),
-                       "activate", 
-                       GTK_SIGNAL_FUNC(ws_gui_html_copy),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_paste),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_html_paste),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_select_all),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_html_select_all),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_hide_list),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_words_list_hide_from_menu),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_zoom_in),
-                       "activate",
-                       G_CALLBACK(ws_gui_html_zoom_in),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_zoom_out),
-                       "activate",
-                       G_CALLBACK(ws_gui_html_zoom_out),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_full_screen),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_full_screen),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_find_word),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_search),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_find_next),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_history_next),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_find_prev),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_history_back),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_stop),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_search_stop),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_about), 
-                       "activate",
-                       G_CALLBACK(ws_gui_about_application),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_close),
-                       "activate", 
-                       G_CALLBACK(ws_gui_menu_quit),
-                       ws_gui_app);
-
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_edit),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_check_clipboard),
-                       ws_gui_app);
-
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_dictionaries),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_dict_availablity),
-                       ws_gui_app);
-
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_bookmarks),
-                       "activate",
-                       GTK_SIGNAL_FUNC(ws_gui_set_bookmark_menu_items),
-                       ws_gui_app);
-
-       hildon_window_set_menu(HILDON_WINDOW(ws_gui_app->ws_gui_hildon_window),
-                       GTK_MENU(
-                               ws_gui_app->ws_gui_menu->ws_gui_main_menu));
-
-       gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_menu_stop),
-                               FALSE);
-       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_find_next),
-                       FALSE);
-       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_menu_find_prev),
-                       FALSE);
-
-       
-       
-       gtk_widget_show_all(ws_gui_app->ws_gui_menu->ws_gui_main_menu);
-}
-
-
-/** this function creates contex popup menu and its items and connect signals to 
- * them
- *
- * @param user_data - set when the signal handler was connected
- */
-void ws_gui_create_popup_menu (gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       
-       ws_gui_app->ws_gui_menu->ws_gui_popup_menu = gtk_menu_new();
-       ws_gui_app->ws_gui_menu->ws_gui_popup_submenu = gtk_menu_new();
-       ws_gui_app->ws_gui_menu->ws_gui_separator = 
-                                               gtk_separator_menu_item_new();
-       
-       ws_gui_app->ws_gui_menu->ws_gui_popup_search = 
-               gtk_menu_item_new_with_label(_("ws_mp_search"));
-       gtk_menu_append((ws_gui_app->ws_gui_menu->ws_gui_popup_menu),
-                       ws_gui_app->ws_gui_menu->ws_gui_popup_search);
-       gtk_menu_append ((ws_gui_app->ws_gui_menu->ws_gui_popup_menu),
-                       gtk_separator_menu_item_new());
-       ws_gui_app->ws_gui_menu->ws_gui_popup_bookmark = 
-               gtk_menu_item_new_with_label(_("ws_mp_add_bookmark"));
-       gtk_menu_append ((ws_gui_app->ws_gui_menu->ws_gui_popup_menu),
-                       ws_gui_app->ws_gui_menu->ws_gui_popup_bookmark);
-       
-       ws_gui_app->ws_gui_menu->ws_gui_popup_copy = 
-               gtk_menu_item_new_with_label(_("ws_mp_edit_copy"));
-       gtk_menu_append((ws_gui_app->ws_gui_menu->ws_gui_popup_submenu),
-                       ws_gui_app->ws_gui_menu->ws_gui_popup_copy);
-       
-       ws_gui_app->ws_gui_menu->ws_gui_popup_paste = 
-               gtk_menu_item_new_with_label(_("ws_mp_edit_paste"));
-       gtk_menu_append((ws_gui_app->ws_gui_menu->ws_gui_popup_submenu),
-                       ws_gui_app->ws_gui_menu->ws_gui_popup_paste);
-       
-       ws_gui_app->ws_gui_menu->ws_gui_popup_select_all = 
-               gtk_menu_item_new_with_label(_("ws_mp_edit_select_all"));
-       gtk_menu_append((ws_gui_app->ws_gui_menu->ws_gui_popup_submenu),
-                       ws_gui_app->ws_gui_menu->ws_gui_popup_select_all);
-       
-       gtk_widget_show_all(ws_gui_app->ws_gui_menu->ws_gui_popup_submenu);
-       
-       ws_gui_app->ws_gui_menu->ws_gui_popup_edit = 
-                       gtk_menu_item_new_with_label (_("ws_mp_edit"));
-       gtk_menu_append ((ws_gui_app->ws_gui_menu->ws_gui_popup_menu),
-                       ws_gui_app->ws_gui_menu->ws_gui_popup_edit);
-       
-       gtk_menu_append ((ws_gui_app->ws_gui_menu->ws_gui_popup_menu),
-                       ws_gui_app->ws_gui_menu->ws_gui_separator);
-       
-       ws_gui_app->ws_gui_menu->ws_gui_popup_zoom_in = 
-               gtk_menu_item_new_with_label (_("ws_mp_zoom_in"));
-       gtk_menu_append ((ws_gui_app->ws_gui_menu->ws_gui_popup_menu),
-                       ws_gui_app->ws_gui_menu->ws_gui_popup_zoom_in);
-       
-       ws_gui_app->ws_gui_menu->ws_gui_popup_zoom_out =
-               gtk_menu_item_new_with_label (_("ws_mp_zoom_out"));
-       gtk_menu_append ((ws_gui_app->ws_gui_menu->ws_gui_popup_menu),
-                       ws_gui_app->ws_gui_menu->ws_gui_popup_zoom_out);
-       
-       gtk_menu_item_set_submenu(GTK_MENU_ITEM
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_edit),
-                               ws_gui_app->ws_gui_menu->ws_gui_popup_submenu);
-
-       struct _GtkHTML *tmp = (struct _GtkHTML *)(ws_gui_app->ws_gui_html);
-
-       if (html_engine_is_selection_active(tmp->engine) == TRUE)
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_search),
-                               TRUE);
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_copy),
-                               TRUE);
-       }
-       else 
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_search),
-                               FALSE);
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_copy),
-                               FALSE);
-       }
-       
-       if (ws_gui_app->html_flag == FALSE)
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_select_all),
-                               FALSE);
-       }
-       else
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_select_all),
-                               TRUE);
-       }       
-       
-       gtk_widget_show_all(ws_gui_app->ws_gui_menu->ws_gui_popup_menu);
-       
-       
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_search),
-                       "activate",
-                       G_CALLBACK(ws_gui_popup_search),
-                       ws_gui_app);
-       
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_bookmark),
-                       "activate",
-                       G_CALLBACK(ws_gui_dictionary_add_bookmark),
-                       ws_gui_app);
-       
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_copy),
-                       "activate", 
-                       G_CALLBACK(ws_gui_html_copy),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_paste),
-                       "activate",
-                       G_CALLBACK(ws_gui_html_paste),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_select_all),
-                       "activate",
-                       G_CALLBACK(ws_gui_html_select_all),
-                       ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_zoom_in),
-                       "activate",
-                       G_CALLBACK(ws_gui_html_zoom_in), ws_gui_app);
-       g_signal_connect(G_OBJECT
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_zoom_out),
-                       "activate",
-                       G_CALLBACK(ws_gui_html_zoom_out),
-                       ws_gui_app);
-       
-       if (gtk_clipboard_wait_for_text(ws_gui_app->ws_gui_clipboard) != NULL)
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_paste),
-                               TRUE);
-       }
-       else
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_menu->ws_gui_popup_paste),
-                               FALSE);
-       }
-       
-       
-       if (ws_gui_app->bookmark_avail == FALSE)
-       {
-       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_bookmark),
-                       FALSE);
-       }
-       
-       else
-       {
-       if (ws_gui_app->bookmark_mode == TRUE)
-       {
-               gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_bookmark),
-                       FALSE);
-       }
-       else
-       {
-               g_strstrip(ws_gui_app->last_word);
-               //g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "\n\nlast_word: %s\n\n", ws_gui_app->last_word);
-               
-               if (ws_gui_app->last_word == NULL || 
-                   (ws_gui_app->last_word[0] == '\0'))
-               {
-                       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_bookmark),
-                       FALSE);
-               }
-               else
-               {
-                       gtk_widget_set_sensitive(GTK_WIDGET
-                       (ws_gui_app->ws_gui_menu->ws_gui_popup_bookmark),
-                       TRUE);
-               }
-       }
-       }
-       gtk_menu_popup(GTK_MENU(ws_gui_app->ws_gui_menu->ws_gui_popup_menu),
-                       NULL,
-                       NULL,
-                       NULL,
-                       ws_gui_app,
-                       0,
-                       0);
-}
-
-/** this function creates dialog popup window and allows to select dictionaries
- *  which user wants to use
- *
- * @param menuitem - the object which received the signal
- * @param user_data - set when the signal handler was connected
- */
-void ws_gui_dictionary_chooser(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       GtkWidget *dialog1;
-       GtkWidget *dialog_vbox1;
-       GtkWidget *scrolledwindow1;
-       GtkWidget *viewport1;
-       GtkWidget *vbox1;
-
-       GtkWidget *checkbutton;
-       GtkWidget *cancel_button;
-       GtkWidget *ok_button;
-       guint i =0;
-       gchar* string;
-       gchar* path;
-       const gchar* name;
-       GArray *checkboxes;
-
-       checkboxes = g_array_new (TRUE, TRUE, sizeof(GtkWidget*));
-
-       if (gconf_client_dir_exists(ws_gui_app->client, 
-                               GCONF_PATH, NULL) == TRUE)
-       {
-       ws_gui_app->directories = 
-               gconf_client_all_dirs(ws_gui_app->client,
-                                       GCONF_PATH,
-                                       NULL);
-       }
-       else 
-       {
-       g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO,
-               "\n.::GUI::. /apps/mdictionary/dictionaries does not exist!!");
-       }
-
-       dialog1 = gtk_dialog_new ();
-       gtk_window_set_title (GTK_WINDOW (dialog1), 
-                       (_("ws_ti_choose_dictionaries_title")));
-       gtk_window_set_type_hint (GTK_WINDOW (dialog1),
-                               GDK_WINDOW_TYPE_HINT_DIALOG);
-       gtk_window_set_default_size(GTK_WINDOW (dialog1), 300, 200);
-
-       dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;
-       gtk_widget_show (dialog_vbox1);
-
-       scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
-       gtk_widget_show (scrolledwindow1);
-       gtk_box_pack_start (GTK_BOX (dialog_vbox1),
-                       scrolledwindow1,
-                       TRUE,
-                       TRUE,
-                       0);
-
-       viewport1 = gtk_viewport_new (NULL, NULL);
-       gtk_widget_show (viewport1);
-       gtk_container_add (GTK_CONTAINER (scrolledwindow1), viewport1);
-
-       vbox1 = gtk_vbox_new (FALSE, 0);
-       gtk_widget_show (vbox1);
-       gtk_container_add (GTK_CONTAINER (viewport1), vbox1);
-
-       for (i=0; i< g_slist_length(ws_gui_app->directories);i++)
-       {
-       string = (gchar*)g_slist_nth_data(ws_gui_app->directories, i); 
-       name = g_path_get_basename(string);
-       checkbutton = gtk_check_button_new_with_label(name);
-       path = g_strconcat(string, "/active", NULL);
-
-       if (gconf_client_get_bool(ws_gui_app->client, 
-                                       path, 
-                                       NULL) == TRUE)
-       {
-               gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
-                                               checkbutton),
-                                               TRUE);
-       }
-       else 
-       {
-               gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
-                                               checkbutton),
-                                               FALSE);
-       }
-
-               g_array_append_val(checkboxes, checkbutton);
-               gtk_box_pack_start (GTK_BOX (vbox1), 
-                               checkbutton, 
-                               FALSE, 
-                               FALSE, 
-                               0);
-               
-               if (strcmp(name, "bookmarks") == 0)
-               {
-                       if (ws_gui_app->bookmark_avail == FALSE) 
-                       {
-                       gtk_widget_set_sensitive(GTK_WIDGET(checkbutton),
-                                               FALSE);
-                       }
-               }
-
-               gtk_widget_show (checkbutton);
-       }
-
-       cancel_button = gtk_button_new_from_stock (_("ws_db_cancel"));
-       gtk_widget_show (cancel_button);
-       gtk_dialog_add_action_widget (GTK_DIALOG (dialog1),
-                                       cancel_button,
-                                       GTK_RESPONSE_CANCEL);
-       
-       ok_button = gtk_button_new_from_stock (_("ws_db_ok"));
-       gtk_widget_show (ok_button);
-       gtk_dialog_add_action_widget(GTK_DIALOG (dialog1),
-                                       ok_button,
-                                       GTK_RESPONSE_OK);
-       
-       i = gtk_dialog_run(GTK_DIALOG(dialog1));
-       
-       if (i == GTK_RESPONSE_OK) 
-       {
-               for(i=0;i<(checkboxes->len);i++)
-               {
-                       if (gtk_toggle_button_get_active(
-                               GTK_TOGGLE_BUTTON(g_array_index(checkboxes,
-                                               GtkWidget *, i))) == TRUE)
-                       {
-                               name = gtk_button_get_label(GTK_BUTTON(
-                               g_array_index(checkboxes, GtkWidget *, i)));
-                               
-                               path=g_strconcat(GCONF_PATH,
-                                               "/",
-                                               name,
-                                               "/active",
-                                               NULL);
-                               gconf_client_set_bool(ws_gui_app->client,
-                                                       path,
-                                                       TRUE,
-                                                       NULL);
-                       }
-       
-                       if (gtk_toggle_button_get_active(
-                               GTK_TOGGLE_BUTTON(g_array_index(checkboxes,
-                                               GtkWidget *, i))) == FALSE)
-                       {
-                               name = gtk_button_get_label(GTK_BUTTON(
-                               g_array_index(checkboxes, GtkWidget *, i)));
-                               
-                               path=g_strconcat(GCONF_PATH,
-                                               "/",
-                                               name,
-                                               "/active",
-                                               NULL);
-                               gconf_client_set_bool(ws_gui_app->client,
-                                                       path,
-                                                       FALSE,
-                                                       NULL);
-                       }
-               }
-       
-               ws_dbus_notify(ws_gui_app->dbus_data, 
-                               WS_DBUS_INFO_CONFIG_CHANGED);
-
-               ws_gui_app->dictionary_selection_changed = TRUE;
-
-               if(ws_gui_app->ws_gui_history->len >= 0)
-               {
-               ws_gui_clear_array(ws_gui_app->ws_gui_history);
-               ws_gui_clear_array(ws_gui_app->ws_gui_history_list);
-               ws_gui_clear_array(ws_gui_app->ws_gui_history_iter);
-               ws_gui_app->ws_gui_history_cur_pos = -1;
-               }
-               ws_gui_check_history(ws_gui_app);
-       
-               gtk_widget_destroy (dialog1);
-               ws_refresh_search_results(ws_gui_app); //refreshing words list
-       }
-       else if (i == GTK_RESPONSE_CANCEL) 
-       {
-               gtk_widget_destroy (dialog1);
-       }
-       
-       g_slist_free(ws_gui_app->directories);
-}
-
-/** this function creates dialog popup window and allows optimize dictionaries
- *
- * @param menuitem - the object which received the signal
- * @param user_data - set when the signal handler was connected
- */
-void ws_gui_dictionary_optimizer(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       GtkWidget *dialog1;
-       GtkWidget *dialog_vbox1;
-       GtkWidget *scrolledwindow1;
-       GtkWidget *viewport1;
-       GtkWidget *vbox1;
-
-       GtkWidget *checkbutton;
-       GtkWidget *cancel_button;
-       GtkWidget *ok_button;
-       guint i =0;
-       gchar* string;
-       gchar* path;
-       const gchar* name;
-       GArray *checkboxes;
-
-       checkboxes = g_array_new (TRUE, TRUE, sizeof(GtkWidget*));
-
-       //check if a gconf directory exists
-       if (gconf_client_dir_exists(ws_gui_app->client, 
-                               GCONF_PATH, 
-                               NULL) == TRUE)
-       {
-               ws_gui_app->directories = 
-               gconf_client_all_dirs(ws_gui_app->client, GCONF_PATH, NULL);
-       }
-       else 
-       {
-               g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO,
-               "\n.::GUI::. /apps/mdictionary/dictionaries does not exist!!");
-       }
-
-       for (i=0; i< g_slist_length(ws_gui_app->directories);i++)
-       {
-               string = (gchar*)g_slist_nth_data(ws_gui_app->directories, i); 
-               name = g_path_get_basename(string);
-
-               path = g_strconcat(string, "/optimized", NULL);
-               if (gconf_client_get_bool (ws_gui_app->client,
-                                       path, 
-                                       NULL) == FALSE)
-               {
-                       checkbutton = gtk_check_button_new_with_label(name);
-                       g_array_append_val(checkboxes, checkbutton);
-               }
-       }
-       if (checkboxes->len <= 0)
-       {
-               ws_gui_app->ws_message_dialog = gtk_message_dialog_new(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
-                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                               GTK_MESSAGE_ERROR,
-                               GTK_BUTTONS_OK,
-                               _("ws_ni_no_dictionaries_to_optimize"));
-       gtk_widget_show_all(ws_gui_app->ws_message_dialog);
-       if (gtk_dialog_run (GTK_DIALOG (
-                       ws_gui_app->ws_message_dialog)) == GTK_RESPONSE_OK)
-       {
-                       gtk_widget_destroy(ws_gui_app->ws_message_dialog);
-       }
-       }
-       else
-       {
-               dialog1 = gtk_dialog_new ();
-               gtk_window_set_title(GTK_WINDOW (dialog1),
-                               (_("ws_ti_choose_dictionaries_title")));
-               gtk_window_set_type_hint(GTK_WINDOW (dialog1),
-                                       GDK_WINDOW_TYPE_HINT_DIALOG);
-               gtk_window_set_default_size(GTK_WINDOW (dialog1), 300, 200);
-
-               dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;
-               gtk_widget_show (dialog_vbox1);
-
-               scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
-               gtk_widget_show (scrolledwindow1);
-               gtk_box_pack_start(GTK_BOX (dialog_vbox1),
-                               scrolledwindow1,
-                               TRUE,
-                               TRUE,
-                               0);
-
-               viewport1 = gtk_viewport_new (NULL, NULL);
-               gtk_widget_show (viewport1);
-               gtk_container_add (GTK_CONTAINER (scrolledwindow1), viewport1);
-
-               vbox1 = gtk_vbox_new (FALSE, 0);
-               gtk_widget_show (vbox1);
-               gtk_container_add (GTK_CONTAINER (viewport1), vbox1);
-               for (i=0; i<checkboxes->len; i++)
-               {
-                       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
-                               g_array_index(checkboxes, GtkWidget*, i)),
-                               FALSE);
-                       gtk_box_pack_start(GTK_BOX (vbox1),
-                               g_array_index(checkboxes, GtkWidget*, i),
-                               FALSE,
-                               FALSE,
-                               0);
-                       gtk_widget_show(g_array_index(checkboxes, 
-                                               GtkWidget*, 
-                                               i));
-               }
-               cancel_button = gtk_button_new_from_stock (_("ws_db_cancel"));
-               gtk_widget_show (cancel_button);
-               gtk_dialog_add_action_widget(GTK_DIALOG (dialog1),
-                                       cancel_button,
-                                       GTK_RESPONSE_CANCEL);
-               ok_button = gtk_button_new_from_stock (_("ws_db_ok"));
-               gtk_widget_show (ok_button);
-               gtk_dialog_add_action_widget(GTK_DIALOG (dialog1),
-                                       ok_button,
-                                       GTK_RESPONSE_OK);
-               i = gtk_dialog_run(GTK_DIALOG(dialog1));
-               if (i == GTK_RESPONSE_OK) 
-               {
-                       for(i=0;i<(checkboxes->len);i++)
-                       {
-                               if (gtk_toggle_button_get_active(
-                               GTK_TOGGLE_BUTTON(
-                                       g_array_index(checkboxes,
-                                               GtkWidget *, i))) == TRUE)
-                               {
-                                       name = gtk_button_get_label(GTK_BUTTON(
-                                               g_array_index(checkboxes,
-                                                       GtkWidget *,
-                                                       i)));
-                                       path=g_strconcat(GCONF_PATH,
-                                                       "/",
-                                                       name,
-                                                       "/optimized",
-                                                       NULL);
-                                       gconf_client_set_bool(
-                                                       ws_gui_app->client,
-                                                       path,
-                                                       TRUE,
-                                                       NULL);
-                               }
-                               if (gtk_toggle_button_get_active(
-                               GTK_TOGGLE_BUTTON(
-                               g_array_index(checkboxes,
-                                               GtkWidget *, i))) == FALSE)
-                               {
-                                       name = gtk_button_get_label(GTK_BUTTON
-                                               (g_array_index(checkboxes,
-                                                               GtkWidget*,
-                                                               i)));
-                                       path=g_strconcat(GCONF_PATH,
-                                                       "/",
-                                                       name,
-                                                       "/optimized",
-                                                       NULL);
-                                       gconf_client_set_bool(
-                                                       ws_gui_app->client,
-                                                       path,
-                                                       FALSE,
-                                                       NULL);
-                               }
-                       }
-                       ws_dbus_notify(ws_gui_app->dbus_data,
-                               WS_DBUS_INFO_CONFIG_CHANGED);
-                       gtk_widget_destroy (dialog1);
-               }
-               else if (i == GTK_RESPONSE_CANCEL) 
-               {
-                       gtk_widget_destroy (dialog1);
-               }
-       }
-       g_slist_free(ws_gui_app->directories);
-}
-
-/** this function creates dialog popup window which allows to load a new
- *dictionary file into application
- *
- * @param menuitem - the object which received the signal
- * @param user_data - set when the signal handler was connected
- */
-void ws_gui_dictionary_loader(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       GtkWidget *dialog;
-//      GtkWidget *dialog2;    
-
-       dialog = hildon_file_chooser_dialog_new(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
-                               GTK_FILE_CHOOSER_ACTION_OPEN);
-
-       gtk_window_set_default_size(GTK_WINDOW (dialog), 200, 200);
-       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER(dialog), FALSE);
-
-       //gtk_widget_show(GTK_WIDGET(dialog));
-
-       if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
-       { 
-               gchar *filename;
-               gchar *name;
-       //   gchar *path;
-               gint len;
-       //  gchar *filepath;
-
-               gchar* tmp;
-               
-               filename = gtk_file_chooser_get_filename(
-                                               GTK_FILE_CHOOSER (dialog));
-               name = g_path_get_basename(filename);
-               len = strlen(filename) - strlen(name) -1;
-               tmp = g_strndup (filename, len);
-                               
-               
-               tmp = g_path_get_basename(tmp);
-               
-               if (g_str_has_suffix(name, ".xdxf") 
-                       || g_str_has_suffix(name, ".idx") 
-                       || g_str_has_suffix(name, ".ifo")
-                       || g_str_has_suffix(name, ".idx.gz")
-                       || g_str_has_suffix(name, ".dict")
-                       || g_str_has_suffix(name, ".dict.dz"))
-               {
-                       g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "\n:::GUUUUIII GUIII::: check");
-                       if (ws_gui_load_dict(filename, ws_gui_app) == TRUE)
-                       {
-                               gtk_widget_destroy(dialog);
-                               ws_refresh_search_results(ws_gui_app);
-                               hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                               _("ws_ni_dictionary_added"));
-                       } 
-               }
-               else if (g_str_has_suffix(name, ".bz2"))
-               {       
-                       ws_dbus_client_extract_dictionary(ws_gui_app->dbus_data, filename);
-                       gtk_widget_destroy(dialog);
-                       ws_refresh_search_results(ws_gui_app);
-               }
-               else
-               {
-                       gtk_widget_destroy (dialog);
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                               _("ws_ni_dictionary_wrong_file"));
-               }
-
-       }
-       else 
-       {
-               gtk_widget_destroy (dialog);
-       }
-       
-}
-
-/** this function creates dialog popup window which allows to load dictionary
- *
- * @param filename - the object which received the signal
- * @param user_data - set when the signal handler was connected
- */
-gboolean ws_gui_load_dict(gchar *filename, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       GtkWidget *dialog1;
-       GtkWidget *dialog2;
-       gchar *name = g_path_get_basename(filename);
-       gchar *path;
-       gint len;
-       gchar *filepath;
-
-       len = strlen(filename) - strlen(name) -1;
-       gchar *tmp = g_strndup (filename, len);;
-       tmp = g_path_get_basename(tmp);
-       
-
-       filepath = g_strndup (filename, len);
-       path = g_strconcat(GCONF_PATH, "/", tmp, "/path", NULL);
-       gconf_client_set_string(ws_gui_app->client,
-                               path,
-                               filepath,
-                               NULL);
-       g_free(path); 
-       path = NULL;
-       path = g_strconcat(GCONF_PATH,
-                               "/",
-                               tmp,
-                               "/active",
-                               NULL);
-       
-       dialog1 = gtk_message_dialog_new(GTK_WINDOW(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       GTK_DIALOG_DESTROY_WITH_PARENT,
-                                       GTK_MESSAGE_QUESTION,
-                                       GTK_BUTTONS_YES_NO,
-                               _("ws_ni_dictionaries_activation_question"));
-
-       gtk_widget_show_all(GTK_WIDGET(dialog1));
-
-       if (gtk_dialog_run (GTK_DIALOG (dialog1)) == GTK_RESPONSE_YES)
-       {
-               gconf_client_set_bool(ws_gui_app->client,
-                                       path,
-                                       TRUE,
-                                       NULL);
-       }
-       else 
-       {
-               gconf_client_set_bool(ws_gui_app->client,
-                                       path,
-                                       FALSE,
-                                       NULL);
-       }
-       gtk_widget_destroy (dialog1);
-       g_free(path); 
-       path = NULL;
-
-       path = g_strconcat(GCONF_PATH, "/", tmp, "/optimized", NULL);
-
-       dialog2 = gtk_message_dialog_new(
-               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
-               GTK_DIALOG_DESTROY_WITH_PARENT,
-               GTK_MESSAGE_QUESTION,
-               GTK_BUTTONS_YES_NO,
-               _("ws_ni_dictionaries_optimalization_question"));
-
-       gtk_widget_show_all(GTK_WIDGET(dialog2));
-
-       if (gtk_dialog_run (GTK_DIALOG (dialog2)) == GTK_RESPONSE_YES)
-       {
-               gconf_client_set_bool(ws_gui_app->client,
-                                       path,
-                                       TRUE,
-                                       NULL);
-       }
-       else 
-       {
-               gconf_client_set_bool(ws_gui_app->client,
-                                       path,
-                                       FALSE,
-                                       NULL);
-       }
-       gtk_widget_destroy (dialog2);
-
-       if(ws_gui_app->ws_gui_history->len > 0)
-       {
-               ws_gui_clear_array(ws_gui_app->ws_gui_history);
-               ws_gui_clear_array(ws_gui_app->ws_gui_history_list);
-               ws_gui_clear_array(ws_gui_app->ws_gui_history_iter);
-               ws_gui_app->ws_gui_history_cur_pos = -1;
-       }
-       ws_gui_check_history(ws_gui_app);
-
-       ws_dbus_notify(ws_gui_app->dbus_data,
-                               WS_DBUS_INFO_CONFIG_CHANGED);
-       
-       return TRUE;
-}
-
-/** this function creates dialog popup window which allows to remove dictionary
- *  which is no longer used
- *
- * @param menuitem - the object which received the signal
- * @param user_data - set when the signal handler was connected
- */
-void ws_gui_dictionary_remover(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       GtkWidget *dialog1;
-       GtkWidget *dialog_vbox1;
-       GtkWidget *scrolledwindow1;
-       GtkWidget *viewport1;
-       GtkWidget *vbox1;
-       GtkWidget *checkbutton;
-       GtkWidget *cancel_button;
-       GtkWidget *ok_button;
-       guint i =0;
-       gchar* string;
-       gchar* path;
-       const gchar* name;
-       GArray *checkboxes;
-
-       checkboxes = g_array_new (TRUE, TRUE, sizeof(GtkWidget*));
-
-       if (gconf_client_dir_exists(ws_gui_app->client, GCONF_PATH, NULL) 
-                                                                       == TRUE)
-       {
-               ws_gui_app->directories = gconf_client_all_dirs(
-                                                       ws_gui_app->client,
-                                                       GCONF_PATH,
-                                                       NULL);
-       }
-       else 
-       {
-               g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO,
-               "\n.::GUI::. /apps/mdictionary/dictionaries does not exist!!");
-       }
-
-       dialog1 = gtk_dialog_new ();
-       gtk_window_set_title (GTK_WINDOW (dialog1), 
-                       (_("ws_ti_remove_dictionaries_title")));
-       gtk_window_set_type_hint (GTK_WINDOW (dialog1),
-                               GDK_WINDOW_TYPE_HINT_DIALOG);
-       gtk_window_set_default_size(GTK_WINDOW (dialog1), 300, 200);
-
-       dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;
-       gtk_widget_show (dialog_vbox1);
-
-       scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
-       gtk_widget_show (scrolledwindow1);
-       gtk_box_pack_start (GTK_BOX (dialog_vbox1),
-                       scrolledwindow1,
-                       TRUE,
-                       TRUE,
-                       0);
-
-       viewport1 = gtk_viewport_new (NULL, NULL);
-       gtk_widget_show (viewport1);
-       gtk_container_add (GTK_CONTAINER (scrolledwindow1), viewport1);
-
-       vbox1 = gtk_vbox_new (FALSE, 0);
-       gtk_widget_show (vbox1);
-       gtk_container_add (GTK_CONTAINER (viewport1), vbox1);
-
-       for (i=0; i< g_slist_length(ws_gui_app->directories);i++)
-       {
-               string = (gchar*)g_slist_nth_data(ws_gui_app->directories, i); 
-               name = g_path_get_basename(string);
-               checkbutton = gtk_check_button_new_with_label(name);
-
-               g_array_append_val(checkboxes, checkbutton);
-               gtk_box_pack_start (GTK_BOX (vbox1),
-                               checkbutton,
-                               FALSE,
-                               FALSE,
-                               0);
-               
-               if (strcmp(name, "bookmarks") == 0)
-               {
-               gtk_widget_set_sensitive(GTK_WIDGET(checkbutton), FALSE);
-               }
-               gtk_widget_show (checkbutton);
-       }
-
-       cancel_button = gtk_button_new_from_stock (_("ws_db_cancel"));
-       gtk_widget_show (cancel_button);
-       gtk_dialog_add_action_widget (GTK_DIALOG (dialog1),
-                               cancel_button,
-                               GTK_RESPONSE_CANCEL);
-
-       ok_button = gtk_button_new_from_stock 
-                       (_("ws_bd_remove_dictionaries_remove_selected"));
-       gtk_widget_show (ok_button);
-       gtk_dialog_add_action_widget(GTK_DIALOG (dialog1),
-                               ok_button,
-                               GTK_RESPONSE_OK);
-
-       i = gtk_dialog_run(GTK_DIALOG(dialog1));
-
-       if (i == GTK_RESPONSE_OK) 
-       {
-               gboolean tmp = FALSE;
-               for(i=0;i<(checkboxes->len);i++)
-               {
-                       if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(
-                       g_array_index(checkboxes, GtkWidget *, i))) == TRUE)
-                       {
-
-                               name = gtk_button_get_label(GTK_BUTTON(
-                               g_array_index(checkboxes, GtkWidget *, i)));
-                               path=g_strconcat(GCONF_PATH, "/", name, NULL);
-                               gconf_client_recursive_unset(ws_gui_app->client,
-                                       path,
-                                       GCONF_UNSET_INCLUDING_SCHEMA_NAMES,
-                                       NULL);
-                                       tmp = TRUE;
-                       } 
-               }
-
-               if(ws_gui_app->ws_gui_history->len >= 0)
-               {
-                       ws_gui_clear_array(ws_gui_app->ws_gui_history);
-                       ws_gui_clear_array(ws_gui_app->ws_gui_history_list);
-                       ws_gui_clear_array(ws_gui_app->ws_gui_history_iter);
-                       ws_gui_app->ws_gui_history_cur_pos = -1;
-               }
-               ws_gui_check_history(ws_gui_app);               
-
-               ws_dbus_notify(ws_gui_app->dbus_data, 
-                       WS_DBUS_INFO_CONFIG_CHANGED);
-       
-               ws_gui_app->dictionary_selection_changed = TRUE;
-
-               if (tmp)
-                       {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ib_dictionary_removed"));
-                       }
-               else
-                       {
-                       hildon_banner_show_information(GTK_WIDGET(
-                                       ws_gui_app->ws_gui_hildon_window),
-                                       NULL,
-                                       _("ws_ib_dictionary_nothing_to_remove"));
-                       }
-
-               gtk_widget_destroy (dialog1);
-               ws_refresh_search_results(ws_gui_app);
-       }
-       else if (i == GTK_RESPONSE_CANCEL) 
-       {
-               gtk_widget_destroy (dialog1);
-       }
-
-       g_slist_free(ws_gui_app->directories);
-}
-
-/** this function creates dialog popup window which displays information about
- * application (about window)
- *
- * @param menuitem - the object which received the signal
- * @param user_data - set when the signal handler was connected
- */
-void ws_gui_about_application(GtkMenuItem *menuitem, gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-
-       gtk_widget_set_sensitive(GTK_WIDGET
-                               (ws_gui_app->ws_gui_hildon_find_toolbar),
-                               FALSE);
-
-       GtkWidget *about_dialog;
-       GtkWidget *dialog_vbox1;
-       GtkWidget *vbox1;
-       GtkWidget *image;
-       GtkWidget *label2;
-       GtkWidget *label3;
-       GtkWidget *label4;
-       GtkWidget *scrolledwindow;
-       GtkWidget *textview;
-       GtkWidget *button1;
-
-       const gchar *ws_version;
-
-       about_dialog = gtk_dialog_new ();
-       gtk_window_set_title (GTK_WINDOW (about_dialog), 
-                       _("ws_ti_about_title"));
-       gtk_window_set_default_size(GTK_WINDOW (about_dialog), 350, 350);
-
-       dialog_vbox1 = GTK_DIALOG (about_dialog)->vbox;
-       gtk_widget_show (dialog_vbox1);
-
-       vbox1 = gtk_vbox_new (FALSE, 0);
-       gtk_widget_show (vbox1);
-       gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 0);
-
-       image = gtk_image_new_from_file ("/usr/share/pixmaps/mdictionary_about.png");
-       gtk_box_pack_start (GTK_BOX (vbox1), image, TRUE, TRUE, 0);
-
-       label2 = gtk_label_new ("mDictionary");
-       ws_gui_app->p = pango_font_description_from_string("Tahoma 18");
-       gtk_widget_modify_font(GTK_WIDGET(label2), ws_gui_app->p);
-       gtk_label_set_pattern (GTK_LABEL(label2), "__________");
-       gtk_box_pack_start (GTK_BOX (vbox1), label2, FALSE, FALSE, 5);
-
-       ws_version = g_strconcat("Maemo Multilingual Dictionary\nver. ",
-                               WS_VERSION,
-                               NULL);
-       label3 = gtk_label_new_with_mnemonic (_(ws_version));
-       ws_gui_app->p = pango_font_description_from_string("Tahoma 12");
-       gtk_widget_modify_font(GTK_WIDGET(label3), ws_gui_app->p);
-       gtk_box_pack_start (GTK_BOX (vbox1), label3, FALSE, FALSE, 5);
-       gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_CENTER);
-
-       label4 = gtk_label_new ("Copyright 2006 - 2007, ComArch S.A\nAll rights " 
-                               "reserved");
-       ws_gui_app->p = pango_font_description_from_string("Tahoma 12");
-       gtk_widget_modify_font(GTK_WIDGET(label4), ws_gui_app->p);
-       gtk_box_pack_start (GTK_BOX (vbox1), label4, FALSE, FALSE, 5);
-       gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_CENTER);
-
-       scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
-       gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW
-                                       (scrolledwindow),
-                                       GTK_SHADOW_ETCHED_OUT);
-       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW
-                                       (scrolledwindow),
-                                       GTK_POLICY_AUTOMATIC,
-                                       GTK_POLICY_AUTOMATIC);
-       gtk_box_pack_start (GTK_BOX (vbox1),
-                       scrolledwindow,
-                       TRUE,
-                       TRUE,
-                       0);
-
-       textview = gtk_text_view_new ();
-       ws_gui_app->p = pango_font_description_from_string("Tahoma 10");
-       gtk_widget_modify_font(GTK_WIDGET(textview), ws_gui_app->p);
-       gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), FALSE);
-       gtk_text_view_set_left_margin(GTK_TEXT_VIEW(textview), 10);
-       gtk_text_view_set_right_margin(GTK_TEXT_VIEW(textview), 10);
-       gtk_container_add (GTK_CONTAINER (scrolledwindow), textview);
-       gtk_text_buffer_set_text(
-                       gtk_text_view_get_buffer(GTK_TEXT_VIEW (textview)),
- /*                       "The following third party\ncomponents may be\nincluded"
-                       " depending \non your system configuration:\n\nD-BUS "
-                       "- License information:\nhttp://opensource.org/"
-                       "licenses/academic.php",
-*/
-                       "This program is distributed\n"
-                       " in the hope that it will be\n"
-                       " useful, but WITHOUT ANY \n"
-                       " WARRANTY; without even the\n"
-                       " implied warranty of\n"
-                       " MERCHANTABILITY or FITNESS\n"
-                       " FOR A PARTICULAR PURPOSE.\n"
-                       " See the GNU General Public\n"
-                       " License for more details.\n"
-                       
-                       "The following third party\ncomponents may be\nincluded"
-                       " depending \non your system configuration:\n\nD-BUS "
-                       "- License information:\nhttp://opensource.org/"
-                       " licenses/academic.php\n\n"
-                       " Finnish-English dictionary -\n"
-                       " Converted by swaj under GNU\n"
-                       " Public License, Version: 1.1\n\n"
-                       " English-Finnish dictionary -\n"
-                       " Converted by swaj under GNU\n"
-                       " Public License, Version: 1.0",
-                       -1);
-
-       button1 = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
-       gtk_dialog_add_action_widget(GTK_DIALOG(about_dialog),
-                               button1,
-                               GTK_RESPONSE_CLOSE);
-
-       gtk_widget_show_all (GTK_WIDGET(about_dialog));
-
-       if (gtk_dialog_run(GTK_DIALOG(about_dialog)) == GTK_RESPONSE_CLOSE)
-       {
-               gtk_widget_destroy(GTK_WIDGET(about_dialog));
-       }
-
-       gtk_widget_set_sensitive(
-                       GTK_WIDGET(ws_gui_app->ws_gui_hildon_find_toolbar),
-                       TRUE);
-}
-
-void ws_gui_add_bookmark_dialog(gpointer user_data)
-{
-
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       
-       GtkWidget *dialog1;
-       GtkWidget *dialog_vbox1;
-       GtkWidget *vbox1;
-       GtkWidget *hbox1;
-       GtkWidget *entry1;
-       GtkWidget *label;
-       GtkWidget *cancelbutton1;
-       GtkWidget *okbutton1;
-       
-       const gchar *book_word;
-       
-       dialog1 = gtk_dialog_new ();
-       gtk_window_set_title (GTK_WINDOW (dialog1), _("ws_ti_add_bookmark"));
-       gtk_window_set_default_size(GTK_WINDOW (dialog1), 300, 200);
-       
-       dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;
-       gtk_widget_show (dialog_vbox1);
-       
-       vbox1 = gtk_vbox_new (FALSE, 0);
-       gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 5);
-       
-       hbox1 = gtk_hbox_new (FALSE, 0);
-       gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 5);
-       
-       label = gtk_label_new(_("ws_ti_bookmarks_add_question"));
-       gtk_box_pack_start (GTK_BOX (hbox1), label, TRUE, TRUE, 5);
-       
-       entry1 = gtk_entry_new ();
-       gtk_box_pack_start (GTK_BOX (vbox1), entry1, TRUE, TRUE, 5);
-       gtk_entry_set_text(GTK_ENTRY(entry1), ws_gui_app->last_word);
-       gtk_entry_set_alignment (GTK_ENTRY(entry1), 0.5);
-       gtk_entry_set_editable(GTK_ENTRY(entry1), TRUE);
-       
-       cancelbutton1 = gtk_button_new_from_stock (_("ws_db_ok"));
-       gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), 
-                                     cancelbutton1, 
-                                     GTK_RESPONSE_OK);
-       
-       okbutton1 = gtk_button_new_from_stock (_("ws_db_cancel"));
-       gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), 
-                                     okbutton1, 
-                                     GTK_RESPONSE_CANCEL);
-       
-       gtk_widget_show_all (dialog1);
-       
-       if (gtk_dialog_run(GTK_DIALOG(dialog1)) == GTK_RESPONSE_OK)
-       {
-               book_word = gtk_entry_get_text(GTK_ENTRY(entry1));
-               ws_dbus_client_add_bookmark(ws_gui_app->dbus_data, 
-                                    (gchar*)book_word, 
-                                    ws_gui_app->raw_translation->str);
-               gtk_widget_destroy(GTK_WIDGET(dialog1));
-               
-       }
-       else 
-       {
-               gtk_widget_destroy(GTK_WIDGET(dialog1));
-       }
-}
-
-void ws_gui_remove_bookmark_dialog(gpointer user_data)
-{
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       
-       GtkWidget *dialog1;
-       GtkWidget *dialog_vbox1;
-       GtkWidget *vbox1;
-       GtkWidget *hbox1;
-       GtkWidget *entry1;
-       GtkWidget *label;
-       GtkWidget *cancelbutton1;
-       GtkWidget *okbutton1;
-       
-       dialog1 = gtk_dialog_new ();
-       gtk_window_set_title (GTK_WINDOW (dialog1), _("ws_ti_remove_bookmark"));
-       gtk_window_set_default_size(GTK_WINDOW (dialog1), 300, 200);
-       
-       dialog_vbox1 = GTK_DIALOG (dialog1)->vbox;
-       gtk_widget_show (dialog_vbox1);
-       
-       vbox1 = gtk_vbox_new (FALSE, 0);
-       gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 5);
-       
-       hbox1 = gtk_hbox_new (FALSE, 0);
-       gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 5);
-       
-       label = gtk_label_new(_("ws_ni_remove_bookmark_question"));
-       gtk_box_pack_start (GTK_BOX (hbox1), label, TRUE, TRUE, 5);
-       
-       entry1 = gtk_entry_new ();
-       gtk_box_pack_start (GTK_BOX (vbox1), entry1, TRUE, TRUE, 5);
-       gtk_entry_set_text(GTK_ENTRY(entry1), ws_gui_app->last_word);
-       gtk_entry_set_alignment (GTK_ENTRY(entry1), 0.5);
-       gtk_entry_set_editable(GTK_ENTRY(entry1), FALSE);
-       
-       cancelbutton1 = gtk_button_new_from_stock (_("ws_db_ok"));
-       gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), 
-                                     cancelbutton1, 
-                                     GTK_RESPONSE_OK);
-       
-       okbutton1 = gtk_button_new_from_stock (_("ws_db_cancel"));
-       gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), 
-                                     okbutton1, 
-                                     GTK_RESPONSE_CANCEL);
-       
-       gtk_widget_show_all (dialog1);
-       
-       if (gtk_dialog_run(GTK_DIALOG(dialog1)) == GTK_RESPONSE_OK)
-       {
-               gtk_widget_destroy(GTK_WIDGET(dialog1));
-               gchar* tmp;
-               
-               ws_dbus_client_remove_bookmark(ws_gui_app->dbus_data, 
-                                       ws_gui_app->last_word);
-
-               ws_gui_app->last_word = NULL;
-
-               ws_gui_fill_html(" ", ws_gui_app);
-
-               g_object_get(G_OBJECT(ws_gui_app->ws_gui_hildon_find_toolbar),
-                               "prefix",
-                               &tmp,
-                               NULL);
-               
-               if (strlen(tmp) != 0)
-               {
-                       ws_dbus_client_find_word (ws_gui_app->dbus_data, tmp);
-               }
-               else 
-               {       
-                       g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "strlen(tmp)=0");
-                       gtk_list_store_clear(
-                                      ws_gui_app->ws_gui_w_list->ws_gui_store);
-               }
-       }
-       else 
-       {
-               gtk_widget_destroy(GTK_WIDGET(dialog1));
-       }
-}
-
-void ws_gui_list_full_dialog(GtkWidget *widget, GdkEventButton *event, gpointer user_data) {
-       
-       WSGuiApp* ws_gui_app=(WSGuiApp*)user_data;
-       
-       ws_gui_app->ws_message_dialog =  gtk_message_dialog_new(
-                               GTK_WINDOW(ws_gui_app->ws_gui_hildon_window),
-                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                               GTK_MESSAGE_INFO,
-                               GTK_BUTTONS_OK,
-                               _("ws_ni_words_list_full"));
-
-       if (gtk_dialog_run(
-                       GTK_DIALOG(ws_gui_app->ws_message_dialog)) 
-                               == GTK_RESPONSE_OK)
-               {
-                       gtk_widget_destroy(
-                                               ws_gui_app->ws_message_dialog);
-               }
-}
-/*@}*/
diff --git a/src/gui/src/ws_gui_utils.c b/src/gui/src/ws_gui_utils.c
deleted file mode 100644 (file)
index 6b5945f..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup GUI
- */
-/*@{*/
-/** \file ws_gui_utils.c
- * \brief File with functions used in GUI.
- *
- * Functions used in GUI like hex conversion etc.
- * \author Marcin Biedron \<marcin.biedron\@comarch.com\>
- * \date 18-01-2008
- * \version 1.0.0
- */
-
-#include <ws_gui_callbacks.h>
-#include <ws_gui.h>
-#include <ws_gui_layout.h>
-#include <ws_gui_utils.h>
-#include <ws_dbus.h>
-
-/**
- * Function that checks if given char is hex.
- * \param tchar char that is being checked 
- */
-gboolean ws_gui_is_hex ( char tchar )
-{
-       if (    (( 'a' <= tchar ) && ( tchar <= 'f')) || 
-               (( 'A' <= tchar ) && ( tchar <= 'F')) || 
-               (( '0' <= tchar ) && ( tchar <= '9')))
-       {
-               return TRUE;
-       }
-       else 
-       {
-               return FALSE;
-       }
-}
-
-/**
- * Function that changes all hex characters into asci code.
- * \param word word to search
- * \param user_data user data passed to function
- */
-void ws_gui_word_conversion( osso_rpc_t* osso_data )
-{
-       
-       /* Looking for '%' char */      
-       char* pch = strchr(osso_data->value.s, '%');
-       while ( pch != NULL )
-       {       
-               g_debug( "[L-word] -> %s: Found percentage character in string...", __FUNCTION__ );
-               /* Check if it is a hexdecimal number */
-               if ((   ( pch+1 != NULL ) && ( pch+2 != NULL ) ) && 
-                       ( ws_gui_is_hex ( pch[1] ) && ws_gui_is_hex ( pch[2] )))
-               {
-                       char convertedWord[strlen(osso_data->value.s)];
-                       char tempLetterHex[2];
-                       char tempLetterASCI;
-                       int tempLetterInteger;
-                       tempLetterHex[0] = pch[1];
-                       tempLetterHex[1] = pch[2];
-                       int sscanfReturn = 0;
-                       sscanfReturn = sscanf(tempLetterHex, "%x", &tempLetterInteger);
-                       if (sscanfReturn == 1) 
-                       {
-                               tempLetterASCI = (char)(tempLetterInteger);
-                               int actualChar = pch - osso_data->value.s;
-                               int stringLength = strlen(osso_data->value.s);
-                               int i = 0;
-                               for ( i = 0; i < stringLength; i++)
-                               {
-                                       if (i < actualChar) { convertedWord[i] = osso_data->value.s[i]; }
-                                       if (i == actualChar) { convertedWord[ i ] = tempLetterASCI; }
-                                       if (i > actualChar) { convertedWord[i] = osso_data->value.s[ i + 2 ]; }
-                               }
-                       }
-               strcpy(osso_data->value.s, convertedWord);
-               }
-               pch = strchr( pch + 1, '%' );
-       }
-       
-       /* Looking for '+' char */      
-       pch = strchr(osso_data->value.s, '+');
-       while ( pch != NULL )
-       {       
-               g_debug( "[L-word] -> %s: Found plus character in string...", __FUNCTION__ );
-               pch[0] = ' ';
-               pch = strchr( pch + 1, '+' );
-       }
-}
-
-//end of file
diff --git a/src/manager/COPYING b/src/manager/COPYING
deleted file mode 100644 (file)
index fb6319b..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-    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 Lesser 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) <year>  <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) year 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 Lesser General
-Public License instead of this License.
\ No newline at end of file
diff --git a/src/manager/Makefile b/src/manager/Makefile
deleted file mode 100644 (file)
index 53f4587..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-CC = gcc
-DEBUG = -g -Wall
-INCLUDE = ./include
-SOURCE  = ./src
-BINARY  = ./bin
-INCLUDE_DBUS_WRAPPER = ../../include
-LIBS = `pkg-config --libs glib-2.0 gmodule-2.0 libosso gconf-2.0 gthread-2.0` \
-       -lbz2
-SQLITE=-DSQLITE=0
-CFLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0 libosso gconf-2.0` \
-       -I${INCLUDE} -I${INCLUDE_DBUS_WRAPPER} ${SQLITE}
-MAIN_BINARIES = ../../bin
-EXECUTABLE = ${BINARY}/mdictionaryManager
-
-
-SOURCES = ${SOURCE}/*.c
-OBJECTS = $(patsubst %.c,%.o,$(wildcard ${SOURCES})) ${MAIN_BINARIES}/ws_dbus.o
-
-${EXECUTABLE}: ${OBJECTS}
-               @echo Compiling with ${SQLITE} flag
-               ${CC} ${DEBUG} -o $@ ${OBJECTS} ${LIBS} ${CFLAGS}
-               @cp ${EXECUTABLE} ${MAIN_BINARIES}
-
-%.o: %.c
-               ${CC} -c -o $@ $< ${DEBUG} ${CFLAGS}
-
-${MAIN_BINARIES}/ws_dbus.o:
-               @cd ../dbus_wrapper && make
-
-.PHONY: clean
-clean:
-               rm -f ${SOURCE}/*.o ${EXECUTABLE} ${SOURCE}/*~ ./*~ 
-               rm -f ${INCLUDE}/*~
-.PHONY: run
-run:
-               run-standalone.sh ./${EXECUTABLE} &
diff --git a/src/manager/Makefile.am b/src/manager/Makefile.am
deleted file mode 100644 (file)
index f83dcbb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src
\ No newline at end of file
diff --git a/src/manager/Makefile_old b/src/manager/Makefile_old
deleted file mode 100644 (file)
index 53f4587..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-CC = gcc
-DEBUG = -g -Wall
-INCLUDE = ./include
-SOURCE  = ./src
-BINARY  = ./bin
-INCLUDE_DBUS_WRAPPER = ../../include
-LIBS = `pkg-config --libs glib-2.0 gmodule-2.0 libosso gconf-2.0 gthread-2.0` \
-       -lbz2
-SQLITE=-DSQLITE=0
-CFLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0 libosso gconf-2.0` \
-       -I${INCLUDE} -I${INCLUDE_DBUS_WRAPPER} ${SQLITE}
-MAIN_BINARIES = ../../bin
-EXECUTABLE = ${BINARY}/mdictionaryManager
-
-
-SOURCES = ${SOURCE}/*.c
-OBJECTS = $(patsubst %.c,%.o,$(wildcard ${SOURCES})) ${MAIN_BINARIES}/ws_dbus.o
-
-${EXECUTABLE}: ${OBJECTS}
-               @echo Compiling with ${SQLITE} flag
-               ${CC} ${DEBUG} -o $@ ${OBJECTS} ${LIBS} ${CFLAGS}
-               @cp ${EXECUTABLE} ${MAIN_BINARIES}
-
-%.o: %.c
-               ${CC} -c -o $@ $< ${DEBUG} ${CFLAGS}
-
-${MAIN_BINARIES}/ws_dbus.o:
-               @cd ../dbus_wrapper && make
-
-.PHONY: clean
-clean:
-               rm -f ${SOURCE}/*.o ${EXECUTABLE} ${SOURCE}/*~ ./*~ 
-               rm -f ${INCLUDE}/*~
-.PHONY: run
-run:
-               run-standalone.sh ./${EXECUTABLE} &
diff --git a/src/manager/autogen.sh b/src/manager/autogen.sh
deleted file mode 100755 (executable)
index 029af65..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-rm -rf compile config.sub config.guess depcomp install-sh ltmain.sh missing aclocal.m4  autom4te.cache/ Makefile.in configure
-rm config.log config.status libtool Makefile
-
-rm -rf src/.libs src/*.la src/.lo src/.deps src/*.o src/*.lo src/Makefile src/Makefile.in 
-
-#[ "_""$1" != "_nogen" ] && aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake
-
-[ "_""$1" != "_nogen" ] && ( aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake )
diff --git a/src/manager/configure.ac b/src/manager/configure.ac
deleted file mode 100644 (file)
index 917638b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-AC_INIT([src/untar.c])
-AC_CONFIG_AUX_DIR([.])
-
-AM_INIT_AUTOMAKE(manager, 1.0)
-
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.0)
-PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= 2.0)
-PKG_CHECK_MODULES(OSSO, libosso >= 2.0)
-PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.0)
-PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.0)
-
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-
-AC_SUBST(GMODULE_CFLAGS)
-AC_SUBST(GMODULE_LIBS)
-
-AC_SUBST(OSSO_CFLAGS)
-AC_SUBST(OSSO_LIBS)
-
-AC_SUBST(GCONF_CFLAGS)
-AC_SUBST(GCONF_LIBS)
-
-AC_SUBST(GTHREAD_CFLAGS)
-AC_SUBST(GTHREAD_LIBS)
-
-SQLITEUSE=0
-AC_SUBST(SQLITEUSE)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-AM_PROG_LIBTOOL
-
-AC_CONFIG_SUBDIRS(src/dbus_wrapper)
-
-AC_OUTPUT([  Makefile 
-                          src/Makefile])
\ No newline at end of file
diff --git a/src/manager/include/pc-instances.h b/src/manager/include/pc-instances.h
deleted file mode 100644 (file)
index 32a7e3d..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-#ifndef _PC_INSTANCES_H_
-#define _PC_INSTANCES_H_
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// stadards headers
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-// headers with unix types/functions - only for timers and files operations
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <dirent.h>
-
-//------------------------------------------------------------------------------
-/** \brief Get comandline by which process in /proc tree was invoked.
- *
- * @param process describes which process from /proc tree we want to check. It
- * should be only concrete directory from /proc nothing else. e.g.: /proc/self,
- * /proc/8321 etc. Something like /proc or /proc/self is not good.
- * @return string containing comandline which has invoked process. If NULL there
- * were some problems, possibly parameter were wrong or ther is no such
- * a process.
- */
-char* get_process_cmdline(char* process);
-
-//------------------------------------------------------------------------------
-/** \brief Cut from commandline only program file name.
- *
- * @param cmdline commandline which from which we want to remove options.
- * @return string with only program file name, or NULL if there was any problem
- */
-char* get_process_program_file(char* cmdline);
-
-//------------------------------------------------------------------------------
-/** \brief Get file name containing programm executing by current process.
- *
- * @return file name of program or NULL if there were some problems.
- */
-char* get_current_process_program_file();
-
-//------------------------------------------------------------------------------
-/** \brief Check if there is another instance of current programm.
- *
- * @return integer telling how many processes were initiated with the same
- * program as curent process. If it is 1, it means there is no other procces.
- * If > 1 there is another instance.
- */
-int is_already_running_this_application();
-
-
-
-#ifdef __cplusplus
-} /* extern "C" { */
-#endif
-#endif /* _PC_INSTANCES_H_ */
diff --git a/src/manager/include/untar.h b/src/manager/include/untar.h
deleted file mode 100644 (file)
index d9192bd..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
-This file is part of mDictionary
-
-mDictionary 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.
-
-mDictionary 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 WhiteStork; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-/** \file untar.h
- * \brief Exctracting *.tar.bz2 archives header.
- */
-#ifndef _WS_UNTAR
-#define _WS_UNTAR
-
-#include <glib.h>
-#include <untar.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <bzlib.h>
-#include <sys/stat.h>
-
-/** \name Handling *.tar.bz2 files routines.
- *
- * Every dictionary downloaded from Internet is compressed with bz2 algorithm.
- * To allow user adding new dictionary downloaded from Internet directly to the
- * device, we need to add exctracting *.tar.bz2 archives support.
- */
-/*@{*/
-
-/** \brief Define block size used in the header of archive.
- */
-#define BLOCK_SIZE 512
-
-/** \brief Define buffer size for blocks.
- */
-#define BUFFER_SIZE BLOCK_SIZE*32
-
-/** \brief Translate number into its ASCI code.
- */
-#define ASCII_NR(NR) (NR + 0x30)
-
-/** \brief Structure of entry in tar header.
- *
- * See tar file specyfication for more information.
- */
-typedef struct _TarHeader
-{
-       gchar name[100];
-       gchar mode[8];
-       gchar uid[8];
-       gchar gid[8];
-       gchar size[12];
-       gchar mtime[12];
-       gchar chksum[8];
-       gchar typeflag;
-       gchar linkname[100];
-       gchar magic[6];
-       gchar version[2];
-       gchar uname[32];
-       gchar gname[32];
-       gchar devmajor[8];
-       gchar devminor[8];
-       gchar prefix[155];
-       gchar padding[12];
-       gchar *gnu_longname;
-       gchar *gnu_longlink;
-} TarHeader;
-
-/** \brief Enumerate possible entries types in tar file.
- *
- * In mDictionary only File and Dir are supported. This values are used as a 
- * typeflag field in TarHeader structure.
- *
- * See tar file specyfication for more information.
- */
-typedef enum _RecordType
-{
-       File = ASCII_NR (0),
-       ARCHLINK = ASCII_NR (1),
-       SYMLINK = ASCII_NR (2),
-       CHARDEV = ASCII_NR (3),
-       BLOCKDEV = ASCII_NR (4),
-       Dir = ASCII_NR (5),
-       FIFO = ASCII_NR (6),
-       RESERVED = ASCII_NR (7)
-} RecordType;
-
-/** \brief Uncompress bz2 archive and extract tar file.
- *
- */
-gint decompress_file(gchar *in_file, gchar **out_path);
-
-/*@}*/
-
-#endif /*_WS_UNTAR*/
-/*@}*/
-
diff --git a/src/manager/include/ws_manager.h b/src/manager/include/ws_manager.h
deleted file mode 100644 (file)
index 90eb8ed..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \brief mDictionary Manager.
- * \defgroup Manager mDictionary Manager
- *
- * Manager module is managing plugins, and separate searching proccess from GUI
- * module. It handles all dictionary engines and all dictionaries.
- *
- * \author Łukasz Pawlik \<lukasz.pawlik\@comarch.com\>
- */
-/*@{*/
-
-/** \file ws_manager.h
- * \brief mDictionary Manager main module header.
- *
- * \author Łukasz Pawlik \<lukasz.pawlik\@comarch.com\>
- */
-
-#ifndef _WS_MANAGER
-#define _WS_MANAGER
-
-#include <dictionary_engine.h>
-#include <glib-object.h>
-#include <gmodule.h>
-#include <ws_services.h>
-#include <ws_dbus.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \brief SQLite library version.
- *
- * There were two versions of libsqlite: libsqlite (OS2006) and libsqlite3 
- * (>=OS2007). According to system to which You are going to build mDictionary
- * You should specyfy SQLITE to 0 or 3. LIBRARY specify destination path for
- * used library.
- */
-#if SQLITE==0
-       #define LIBRARY "/usr/lib/libsqlite.so.0"
-#elif SQLITE==3
-       #define LIBRARY "/usr/lib/libsqlite3.so.0"
-#endif
-
-/** \brief Calculate length of given string.
- *
- * \param string pointer to the array of chars (string)
- * \return integer telling how many chars there were in the given array. (if
- * string was NULL it returns 0)
- */
-#define g_strlen(string) ( NULL == (string) ? 0 : strlen(string) )
-
-struct _WSMngSearchData;
-typedef struct _WSMngSearchData WSMngSearchData;
-
-/** \brief Creates new instance of WSMngSearchData structure */
-WSMngSearchData* ws_manager_create();
-
-/** \brief Function used to initialize D-BUS */
-void ws_mng_init_dbus (WSMngSearchData *data);
-
-/** \brief Function used to initialize manager */
-void ws_mng_init (WSMngSearchData *data);
-
-/** \brief Function used to close dictionaries and modules */
-void ws_mng_close (WSMngSearchData *data);
-
-/** \brief Function used to run and initialize main loop. */
-gboolean ws_mng_start_main_loop(WSMngSearchData* serach_data);
-
-/** \brief Structure holding all data needed by manager to work.
- *
- *
- */
-struct _WSMngSearchData
-{
-       WSDBusData* dbus_data;
-       /**< a pointer to the DBUS data for manager module */
-
-       GMainLoop* loop;
-       /**< pointer to the main loop of manager proccess */
-
-       GArray* modules;
-       /**< pointer to GArray structure which stores pointers to fuction used 
-        * to service modules loading */
-
-       Engine* bookmark;
-       /**< pointer to bookmark engine */
-
-       GArray* dict;
-       /**< pointer to GArray structure which stores pointers to particular
-        * dictionaries */ 
-
-       gchar* word;
-       /**< word which will be used to search a dictionaries */
-
-       GArray* word_list;
-       /**< GArray for whole words list returned to GUI */
-
-       gchar* trans;
-       /**< found translation */
-
-       gchar* last_search;
-       /**< last word used for searching */
-
-       gboolean search_in_history;
-       /**< flag signalig when search in history is commited */
-
-       /* thread connected data
-        * added by Dariusz Wiechecki
-        * we are moving to GLib threads */
-       GStaticMutex* action_working;
-       /**< pointer to mutex; while any action is being performed this mutex
-        * is locked - it is telling if there is any active action curently */
-
-       GStaticMutex* thread_creation;
-       /**< pointer to mutex; is locked while new thread is creating. After
-        * thread is created and start to work, this mutex is unclocked */
-
-       GStaticRecMutex* action_stop;
-       /**< pointer to mutex; is locked when current job (search) should be
-        * aborted */
-
-       /* --- pthread structures are not needed anymore:
-        * pthread_t p_thread;
-        * pthread_t p_thread_trans;
-        */
-
-       GArray* library_path;
-       /**< path to library */
-
-       GArray* libraries;
-       /**< table used for storing modules libraries */
-
-       gboolean bookmark_mode;
-       /**< flag telling if manager is in bookmark mode */
-
-       GModule* bookmark_library;
-       /**< pointer to bookmark library */
-};
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-/*@}*/
diff --git a/src/manager/include/ws_mng_bookmarks_utils.h b/src/manager/include/ws_mng_bookmarks_utils.h
deleted file mode 100644 (file)
index 603b4f4..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager */
-/*@{*/
-/** \file ws_mng_bookmarks_utils.h
- * \brief Utilities for Manager connected with managing bookmarks - header.
- *
- */
-
-#ifndef _WS_MANAGER_BOOKMARKS
-#define _WS_MANAGER_BOOKMARKS
-
-#include <ws_mng_searching_threads.h>
-#include <ws_mng_gconf_utils.h>
-#include <dictionary_engine.h>
-#include <ws_mng_callbacks.h>
-#include <ws_manager.h>
-
-
-#ifdef __cplusplus
-       extern "C" {
-#endif
-
-/** \name Bookmarks Utils */
-/*@{*/
-
-/** \brief Add new word to bookmark dictionary.
- */
-void ws_mng_add_bookmark(GError *error, GArray* param, gpointer user_data);
-
-/** \brief Remove specified word from bookmark engine.
- */
-void ws_mng_remove_bookmark(GError *error, GArray* param, gpointer user_data);
-
-/** \brief Load bookmarks dictionary engine.
- */
-void ws_mng_load_bookmark(WSMngSearchData* data);
-
-/*@}*/
-
-#ifdef __cplusplus
-       }
-#endif
-#endif
-/*@{*/
diff --git a/src/manager/include/ws_mng_callbacks.h b/src/manager/include/ws_mng_callbacks.h
deleted file mode 100644 (file)
index 5600f91..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager */
-/*@{*/
-/** \file ws_mng_callbacks.h
- * \brief Callback functions called by other modules - header.
- */
-#ifndef _WS_MANAGER_CALLBACKS
-#define _WS_MANAGER_CALLBACKS
-
-#include <ws_mng_searching_threads.h>
-#include <ws_mng_dictionary_utils.h>
-#include <ws_mng_threads_utils.h>
-#include <ws_mng_gconf_utils.h>
-#include <ws_manager.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \name Callback function called by other modules (GUI and engines).
- */
-/*@{*/
-
-/** \brief Function used to send information about progress of caching (engines)
- */
-void ws_mng_progress_bar( double progress,
-                          gpointer user_data,
-                          EngineStatus error );
-
-/** \brief Called when find word event occurs (UI)
- */
-void ws_mng_on_search_word( GError *error,
-                            GArray *word,
-                            gpointer user_data );
-
-/** \brief Called when find translation event occurs (UI)
- */
-void ws_mng_on_search_translation( GError *error,
-                                   GArray *word,
-                                   gpointer user_data );
-
-/** \brief Function used for handling signals sent by user interface (UI)
- */
-void ws_mng_signal_handling( GError *error,
-                             GArray *signal,
-                             gpointer user_data );
-
-/*@}*/
-#ifdef __cplusplus
-}
-#endif
-#endif
-/*@}*/
-
diff --git a/src/manager/include/ws_mng_dictionary_utils.h b/src/manager/include/ws_mng_dictionary_utils.h
deleted file mode 100644 (file)
index 0ef159c..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager */
-/*@{*/
-/** \file ws_mng_dictionary_utils.h
- * \brief  Dictionaries common routines - header.
- */
-#ifndef _WS_MANAGER_DICTIONARY_UTILS
-#define _WS_MANAGER_DICTIONARY_UTILS
-
-#include <ws_mng_gconf_utils.h>
-#include <dictionary_engine.h>
-#include <ws_mng_callbacks.h>
-#include <ws_manager.h>
-#include <untar.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \name Dictionaries routines */
-/*@{*/
-
-/** \brief Extracting compressed dictionary file
- */
-void ws_mng_extract_dictionary(GError *error, GArray* param, gpointer app_data);
-
-/** \brief Function used to load dictionaries engines
- */
-void ws_mng_load_dict(GArray* dict_directory, WSMngSearchData* data);
-
-/*@}*/
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-/*@}*/
diff --git a/src/manager/include/ws_mng_gconf_utils.h b/src/manager/include/ws_mng_gconf_utils.h
deleted file mode 100644 (file)
index 7461121..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-/** \file ws_mng_gconf_utils.h
- * \brief Utilities connected with GConf configuration - header.
- */
-#ifndef _WS_MANAGER_GCONF_UTILS
-#define _WS_MANAGER_GCONF_UTILS
-
-#include <gconf/gconf-client.h>
-#include <gconf/gconf.h>
-#include <ws_manager.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \name GConf configuration routines.
- */
-/*@{*/
-
-/** \brief GConf path to dictionaries locations.
- */
-#define GCONF_KEY       "/apps/maemo/mdictionary/dictionaries"
-
-/** \brief  GConf path to dictionary engines locations.
- */
-#define GCONF_LIB_PATH  "/apps/maemo/mdictionary/engines"
-
-/** \brief Function used to get the dictionaries location read fron GConf.
- */
-GArray* ws_mng_read_gconf();
-
-/** \brief Function used to get plugins location read from GConf
- */
-GArray* ws_mng_get_engines_location();
-
-
-/** \brief Function used to get bookmark library location
- */
-gchar* ws_mng_get_boomark_location();
-
-
-/** \brief Function used to check if optimized flag in GConf is set
- */
-gboolean ws_mng_if_optimized(gchar* dict);
-
-/*@}*/
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-/*@}*/
diff --git a/src/manager/include/ws_mng_searching_threads.h b/src/manager/include/ws_mng_searching_threads.h
deleted file mode 100644 (file)
index 90ae432..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-/** \file ws_mng_searching_threads.h
- * \brief Thread generation and thread functions - header.
- */
-#ifndef _WS_MANAGER_SEARCHING_THREADS
-#define _WS_MANAGER_SEARCHING_THREADS
-
-#include <ws_mng_threads_utils.h>
-#include <dictionary_engine.h>
-#include <ws_manager.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \name Thread common routines. */
-/*@{*/
-
-/** \brief Function executed by thread - search for word list
- */
-gpointer     ws_mng_search_word          (gpointer search_data);
-
-/** \brief Used to return results of found words from threads 
- */
-void         ws_mng_on_found_word        (GArray* list,
-                                          gchar* pattern,
-                                          gpointer user_data,
-                                          EngineStatus error);
-
-/** \brief Function executed by thread - search for particular word
- */
-gpointer     ws_mng_search_translation   (gpointer search_data);
-
-/** \brief Used to return results of transaltion from threads
- */
-void         ws_mng_on_found_translation (gchar* translation,
-                                          gchar* pattern,
-                                          gpointer user_data,
-                                          EngineStatus error);
-
-/** \brief Function used to compare string. Used in sorting GArray object
- */
-gint         ws_mng_compare_strings (gconstpointer a, gconstpointer b);
-
-/** \brief Removes repeating words on the returned words list.
- */
-void         ws_remove_multiple_words(WSMngSearchAtom* user_data);
-
-/*@}*/
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-/*@}*/
diff --git a/src/manager/include/ws_mng_threads_utils.h b/src/manager/include/ws_mng_threads_utils.h
deleted file mode 100644 (file)
index d7cfdee..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-/** \file ws_mng_threads_utils.h
- * \brief Thread utilities - header.
- */
-#ifndef _WS_MANAGER_THREADS_UTILS
-#define _WS_MANAGER_THREADS_UTILS
-
-#include <ws_manager.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** \name Thread utilities */
-/*@{*/
-
-/** \brief Structure holding all data for each thread to properly run.
- *
- * Each thread gets one instance of this strucutre in which are information 
- * about what to do and with what. This make it possible to run simultaneously
- * few thread - they will not interrput each other.
- */
-struct _WSMngSearchAtom {
-       WSMngSearchData *data;
-       /**< pointer to global data holding by manager */
-       gchar           *word;
-       /**< word to search by this thread */
-       GThread         *thread;
-       /**< pointer to thread handler */
-       GArray          *word_list;
-       /**< GArray in which owner thread will keep words list -
-        * if is searching for words list */
-       gchar           *trans;
-       /**< buffer in which owner thread will keep word's translation -
-        * if is searching for word's translation */
-};
-
-/** \brief Structure holding all data for each thread to properly run.
- * \sa _WSMngSearchAtom
- */
-typedef struct _WSMngSearchAtom WSMngSearchAtom;
-
-/* functions for critical sections and thread handling  */
-/** \brief Try to lock mutex and tell if it was locked before.
- */
-gboolean         try_lock_was_locked(WSMngSearchData* data, gchar* fun);
-
-/** \brief Tell if given mutex is locked.
- */
-gboolean         is_rec_locked(GStaticRecMutex* m);
-
-/** \brief Check if current thread should be terminated.
- */
-void             stop_if_needed(WSMngSearchAtom* data);
-
-/** \brief Clear memmory after not neede anymore WSMngSearchAtom structure.
- */
-void             free_search_atom(WSMngSearchAtom* data);
-
-/** \brief Create new WSMngSearchAtom structure.
- */
-WSMngSearchAtom *create_search_atom(WSMngSearchData* app_data, gchar* word);
-
-/*@}*/
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-/*@}*/
diff --git a/src/manager/src/Makefile.am b/src/manager/src/Makefile.am
deleted file mode 100644 (file)
index c56c548..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-SUBDIRS = dbus_wrapper
-
-bin_PROGRAMS = mdictionaryManager
-mdictionaryManager_SOURCES =  untar.c  whitestork.c  ws_manager.c  ws_mng_bookmarks_utils.c  ws_mng_callbacks.c  ws_mng_dictionary_utils.c  ws_mng_gconf_utils.c  ws_mng_searching_threads.c  ws_mng_threads_utils.c
-mdictionaryManager_LDFLAGS = $(GLIB_LIBS)  $(GMODULE_LIBS) $(OSSO_LIBS) $(GCONF_LIBS) $(GTHREAD_LIBS) -lbz2
-mdictionaryManager_CFLAGS = -DSQLITE=$(SQLITEUSE) $(GLIB_CFLAGS)  $(GMODULE_CFLAGS) $(OSSO_CFLAGS) $(GCONF_CFLAGS) $(GTHREAD_CFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)/../../include 
-
-mdictionaryManager_LDADD = dbus_wrapper/src/libws_dbus.la
\ No newline at end of file
diff --git a/src/manager/src/dbus_wrapper b/src/manager/src/dbus_wrapper
deleted file mode 120000 (symlink)
index 4b2df0d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../dbus_wrapper/
\ No newline at end of file
diff --git a/src/manager/src/untar.c b/src/manager/src/untar.c
deleted file mode 100644 (file)
index a4f1c42..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
-This file is part of mDictionary
-
-mDictionary 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.
-
-mDictionary 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 WhiteStork; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-
-/** \file untar.c
- * \brief Exctracting *.tar.bz2 archives function code.
- */
-#include <untar.h>
-#include <string.h>
-
-#define g_strlen(string) ( NULL == (string) ? 0 : strlen(string) )
-
-/** \brief Unpack particular file from *.tar.bz2 archive
- *
- * \param bz2_file pointer to file with data (compressed with bz2 algorithm 
- * \param header *.tar header with information about data in bz2_file
- * \param out_name string specifying destination path for uncompressed data
- * \return 0 if exctracting was succesfull
- */
-static gint unpack_file_contents( BZFILE *bz2_file,
-                                  TarHeader *header,
-                                  gchar *out_name )
-{
-       gchar* buffer = NULL;
-       guint i = 0;
-       gint im = 0;
-       FILE *file_out;
-       gulong length = 0;
-       guint result = 0;
-       gint bzerror = 0;
-
-       file_out = fopen(out_name, "w");
-
-       if (file_out == NULL) return -1;
-
-       sscanf(header->size, "%12lo", &length);
-       g_debug("File size: %ld\n", length);
-
-       im = length / BLOCK_SIZE;
-       for (i = 0; i < im; ++i)
-       {
-               buffer = (gchar*) g_try_malloc(BLOCK_SIZE * sizeof(gchar));
-               
-               result = BZ2_bzRead( &bzerror,
-                                    bz2_file,
-                                    buffer,
-                                    BLOCK_SIZE * sizeof (gchar) );
-
-               fwrite (buffer, BLOCK_SIZE * sizeof(gchar), 1, file_out);
-               g_free (buffer);
-       }
-
-       i = length % BLOCK_SIZE;
-       if (i != 0)
-       {
-               buffer = (gchar*) g_try_malloc (BLOCK_SIZE * sizeof(gchar));
-               if (NULL == buffer)
-               {
-                       g_debug("Memory not allocated");
-                       return -100;
-               };
-               
-               result = BZ2_bzRead( &bzerror,
-                                    bz2_file,
-                                    buffer,
-                                    BLOCK_SIZE * sizeof(gchar) );
-               if (BZ_OK == bzerror)
-               {
-                       fwrite (buffer, i * sizeof(gchar), 1, file_out);
-               }
-               else
-               {
-                       g_debug("bzerror = %d", bzerror);
-                       return -200;
-               };
-               g_free(buffer);
-       }
-
-       fclose(file_out);
-       return 0;
-};
-
-/**
- * If user is trying to add archive with dictionary (tar.bz2 file) then there is
- * need to uncompress this dictionary before use. Function decompress_file could
- * do this.
- *
- * Usage example:
- * \code
- * char* path = g_strdup("./");
- * decompress_file ("comn_dictd04_wn.tar.bz2", &path);
- * \endcode
- * The above example extracts a given archive, to the current directory
- *
- * \param in_file path to file to exctract
- * \param out_path pointer to path (string) to output directory. After function
- * finished work in this parameter function return path to the exctracted
- * dictionary
- * \return 0 if exctracting of whole archive was succesfull
- */
-gint decompress_file (gchar *in_file, gchar **out_path)
-{
-       FILE *file;
-       BZFILE  *bz2_file;
-       guint result;
-       gint ret = 100;
-       TarHeader* header;
-       gint bzerror;
-       gchar* dest_dir = NULL;
-       gchar* file_name = NULL;
-       header = (TarHeader*) g_try_malloc (BLOCK_SIZE * sizeof(gchar));
-       if (NULL == header)
-       {
-               g_debug("\nCould not allocate memory\n");
-               return ret = -1;
-       }
-
-       file = fopen (in_file, "rb");
-       if (NULL == file)
-       {
-               g_debug("There was an error while trying to read archive file");
-               g_free(header); header = NULL;
-               return ret = -2;
-       };
-
-       bz2_file = BZ2_bzReadOpen (&bzerror, file, 0, 0, NULL, 0);
-       if ( BZ_OK != bzerror )
-       {
-               fclose(file);
-               g_free(header); header = NULL;
-               g_debug("There was an error while reading compressed file\n");
-               return ret = -3;
-       }
-
-       /* read archive and exctract all files in it */
-       while (TRUE)
-       {
-               /* get info about next file/directory in the archive */
-               result = BZ2_bzRead( &bzerror,
-                                    bz2_file,
-                                    header,
-                                    BLOCK_SIZE * sizeof (char) );
-               if ( BZ_OK == bzerror )
-               {
-                       if (strlen(header->name) == 0)
-                       {
-                               g_debug("\nFilename length is 0, exitting\n");
-                               break;
-                       };
-                       gchar *temp = g_strconcat( *out_path,
-                                                  header->name,
-                                                  NULL );
-
-                       /* exctract file or create new directory */
-                       switch (header->typeflag)
-                       {
-                               case File:
-                                       unpack_file_contents( bz2_file,
-                                                             header,
-                                                             temp );
-                                       /*get dictionary file name to pass it*/
-                                       if (NULL == file_name)
-                                       {
-                                               file_name = g_path_get_basename(temp);
-                                       }
-                                       
-                                       break;
-                               case Dir:
-                                       if (0 !=
-                                               mkdir( temp,
-                                                      S_IRUSR|S_IWUSR|S_IXUSR )
-                                       ) {
-                                               g_debug("Couldnt create dir:%s",
-                                                        temp);
-                                               g_free(header);
-                                               BZ2_bzReadClose( &bzerror,
-                                                                bz2_file );
-                                               fclose(file);
-                                               return ret = -4;
-                                       }
-                                       else {
-                                               /* get last created directory */
-                                               if (NULL != dest_dir) {
-                                                       g_free(dest_dir);
-                                               }
-                                               /*there is another directory in compressed file*/
-                                               if (NULL != file_name)
-                                               {
-                                                       g_free(file_name); file_name = NULL;
-                                                       
-                                               }
-                                               dest_dir = g_strdup(temp);
-                                               g_debug( "dest_dir %s \n",
-                                                        dest_dir );
-                                       }
-                               break;
-                               default:
-                                       g_debug("Untar:Wrong type of content!");
-                               break;
-                       }
-                       g_free(temp);
-                       temp = NULL;
-               }
-               else if ( bzerror != BZ_STREAM_END )
-               {
-                       g_debug("\nBZ2 READ_CLOSE(stream end) %d\n", bzerror);
-                       BZ2_bzReadClose ( &bzerror, bz2_file );
-                       break;
-               }
-               else
-               {
-                       g_debug("\nExitting, error nr %d\n", bzerror);
-                       BZ2_bzReadClose ( &bzerror, bz2_file );
-                       ret = -5;
-                       break;
-               };
-       };
-       
-       /* put newly created directory path into out_path parameter */
-       if ((ret > 0) && (dest_dir != NULL) && (file_name !=  NULL))
-       {
-               g_free(*out_path); *out_path = NULL;
-               *out_path = g_strconcat(dest_dir, file_name, NULL);
-               
-               
-               g_free(dest_dir); dest_dir = NULL;
-               g_free(file_name); file_name = NULL;
-       }
-
-       g_free(header); header = NULL;
-       fclose(file);
-       return ret;
-};
-
-/*@}*/
-
diff --git a/src/manager/src/whitestork.c b/src/manager/src/whitestork.c
deleted file mode 100644 (file)
index 69651a2..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-
-/** \file whitestork.c
- * \brief Entry point for mDictionary Manager module.
- *
- * \author Łukasz Pawlik \<lukasz.pawlik\@comarch.com\>
- * \see Manager
- */
-
-#include <ws_manager.h>
-
-/** \brief Entry point for manager proccess.
- *
- * Create and initialize all data needed for manager to work and start main loop
- * for its proccess.
- *
- */
-int main (gint argc, gchar** argv)
-{
-       /* initialize GType and GObject's functions capabilities for proccess */
-       g_type_init();
-
-       WSMngSearchData* search_data = ws_manager_create();
-
-       ws_mng_init_dbus(search_data);
-
-       ws_mng_init(search_data);
-
-       ws_mng_start_main_loop(search_data);
-
-       ws_mng_close(search_data);
-
-       return 0;
-}
-
-/*@}*/
diff --git a/src/manager/src/ws_manager.c b/src/manager/src/ws_manager.c
deleted file mode 100644 (file)
index ddc4103..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-/** \file ws_manager.c
- * \brief mDictionary Manager main module code.
- *
- * \author Łukasz Pawlik \<lukasz.pawlik\@comarch.com\>
- */
-
-#include <ws_manager.h>
-
-#include <ws_mng_searching_threads.h>
-#include <ws_mng_dictionary_utils.h>
-#include <ws_mng_bookmarks_utils.h>
-#include <ws_mng_threads_utils.h>
-#include <ws_mng_gconf_utils.h>
-#include <ws_mng_callbacks.h>
-
-
-/**
- * \return new instance of WSMngSearchData structure
- */
-WSMngSearchData* ws_manager_create() {
-       g_debug("<--> %s", __FUNCTION__);
-       WSMngSearchData* tmp = g_try_new(WSMngSearchData, 1);
-
-       if (NULL == tmp)
-       {
-               g_debug("Not enough memory !");
-       }
-       return tmp;
-}
-
-/**
- * \param serach_data structure which contains all data of program
- * \return TRUE if successfully run main loop, FALSE otherwise 
- */
-gboolean ws_mng_start_main_loop(WSMngSearchData* search_data)
-{
-       g_debug("<--> %s", __FUNCTION__);
-       search_data->loop = g_main_loop_new (NULL, FALSE);
-       if (search_data->loop == NULL)
-       {
-               g_debug("Couldn't create new g_main_loop for Manager!");
-               return FALSE;
-       }
-       g_main_loop_run (search_data->loop);
-       return TRUE;
-}
-
-/**
- * \param data structure stores variables which are need to comunicate by D-BUS.
- */
-void ws_mng_init_dbus (WSMngSearchData *data)
-{
-       g_debug("->%s", __FUNCTION__);
-
-       /* initialize GThread support if it is not initialized yet */
-       if (!g_thread_supported ()) g_thread_init (NULL);
-
-       /* create data structure needed to comunicate with dbus wrapper */
-       data->dbus_data = ws_dbus_create ("mdictionaryManager", "v1.0");
-
-       /* set data used to comunicate with gui */
-       ws_dbus_config(data->dbus_data,
-                      WS_DBUS_CONFIG_SERVICE,
-                      MANAGER_SERVICE);
-       ws_dbus_config(data->dbus_data,
-                       WS_DBUS_CONFIG_OBJECT,
-                       MANAGER_OBJECT);
-       ws_dbus_config(data->dbus_data,
-                       WS_DBUS_CONFIG_IFACE,
-                       MANAGER_IFACE);
-       ws_dbus_config(data->dbus_data, 
-                       WS_DBUS_CONFIG_REMOTE_SERVICE,
-                       GUI_SERVICE);
-       ws_dbus_config(data->dbus_data, 
-                       WS_DBUS_CONFIG_REMOTE_OBJECT,
-                       GUI_OBJECT);
-       ws_dbus_config(data->dbus_data, 
-                       WS_DBUS_CONFIG_REMOTE_IFACE,
-                       GUI_IFACE);
-
-       /* defines all methods which could be called through D-Bus */
-       ws_dbus_add_method ( data->dbus_data,
-                            "find_word",
-                            WS_DBUS_TYPE_STRING,
-                            WS_DBUS_TYPE_INVALID );
-       ws_dbus_add_method ( data->dbus_data,
-                            "find_translation",
-                            WS_DBUS_TYPE_STRING,
-                            WS_DBUS_TYPE_INVALID );
-       ws_dbus_add_method ( data->dbus_data,
-                            "signal",
-                            WS_DBUS_TYPE_SIGNAL,
-                            WS_DBUS_TYPE_INVALID );
-       ws_dbus_add_method ( data->dbus_data,
-                            "add_bookmark",
-                            WS_DBUS_TYPE_STRING,
-                            WS_DBUS_TYPE_STRING,
-                            WS_DBUS_TYPE_INVALID );
-       ws_dbus_add_method ( data->dbus_data,
-                            "remove_bookmark",
-                            WS_DBUS_TYPE_STRING,
-                            WS_DBUS_TYPE_INVALID );
-       ws_dbus_add_method ( data->dbus_data,
-                            "extract_dictionary",
-                            WS_DBUS_TYPE_STRING,
-                            WS_DBUS_TYPE_INVALID );
-
-       /* set callback for find word signal */
-       ws_dbus_set_cb( data->dbus_data,
-                       "find_word",
-                       ws_mng_on_search_word,
-                       data );
-
-       /* set callback for find translation signal */
-        ws_dbus_set_cb( data->dbus_data,
-                        "find_translation",
-                        ws_mng_on_search_translation,
-                        data );
-
-       /* set callback for close program signal */
-       ws_dbus_set_cb( data->dbus_data,
-                       "signal",
-                       ws_mng_signal_handling,
-                       data );
-
-        /* set callback for add bookmarks signal */
-       ws_dbus_set_cb( data->dbus_data,
-                       "add_bookmark",
-                       ws_mng_add_bookmark,
-                       data );
-
-       /* set callback for remove bookmarks signal */
-       ws_dbus_set_cb( data->dbus_data,
-                       "remove_bookmark",
-                       ws_mng_remove_bookmark,
-                       data );
-
-       /* set callback for extracting dictionary */
-       ws_dbus_set_cb( data->dbus_data,
-                       "extract_dictionary",
-                       ws_mng_extract_dictionary,
-                       data );
-
-       /* initialize d-bus connection with remote service - UI */
-       ws_dbus_connect(data->dbus_data);
-
-       g_debug("<-%s", __FUNCTION__);
-}
-
-
-/**
- *
- * Fuction loads from modules pointers to functions used to service searching 
- * in dictionaries and stores them in WSMngSearchData structure
- *
- * \param data pointer to structure WSMngSearchData which stores variables
- * needed to service manager
- */
-void ws_mng_init (WSMngSearchData *data)
-{
-       g_debug("->%s", __FUNCTION__);
-
-       /* create and initialize all data in WSMngSearchData structure */
-       data->dict = g_array_new(TRUE, TRUE, sizeof(Engine *));
-       data->modules = g_array_new(TRUE, TRUE, sizeof(EngineModule));
-       data->libraries = g_array_new(TRUE, TRUE, sizeof(GModule*));
-       data->word_list = NULL;
-       data->last_search = NULL;
-       data->trans = NULL;
-       data->search_in_history = FALSE;
-       data->word = NULL;
-       data->bookmark = NULL;
-       data->bookmark_mode = FALSE;
-       /* added by Dariusz Wiechecki
-        * mutex initialization */
-       data->action_working =
-                      (GStaticMutex*)g_try_malloc(sizeof(GStaticMutex));
-       data->thread_creation =
-                      (GStaticMutex*)g_try_malloc(sizeof(GStaticMutex));
-       data->action_stop =
-                      (GStaticRecMutex*)g_try_malloc(sizeof(GStaticRecMutex));
-       g_assert(NULL != (data->action_working) );
-       g_assert(NULL != (data->action_stop) );
-       g_static_mutex_init (data->action_working);
-       g_static_mutex_init (data->thread_creation);
-       g_static_rec_mutex_init (data->action_stop);
-       /* initialize static stop_if_needed function mutex*/
-       stop_if_needed (NULL);
-
-       /* send signal if there is not proper sqlite library */
-       #ifdef SQLITE
-       if( FALSE == g_file_test(LIBRARY, G_FILE_TEST_EXISTS) )
-       {
-               ws_dbus_notify(data->dbus_data, WS_DBUS_LOAD_BOOKMARK_FAILED);
-       }
-       #endif
-
-       /* load GConf configuration */
-       GArray* dict_directory = ws_mng_read_gconf();
-       data->library_path = ws_mng_get_engines_location();
-
-       gint i = 0;
-       for (; i < data->library_path->len; ++i)
-       {
-               gchar* path= g_array_index(data->library_path, gchar*, i);
-               GModule* library = g_module_open(path, G_MODULE_BIND_LAZY);
-               g_array_append_val(data->libraries, library);
-               g_debug("%p library pinter %d iter", library, i);
-        }
-
-       getting_additional_t get_functions = NULL;
-       for (i=0; i<data->libraries->len; i++)
-        {
-               g_debug("%p", g_array_index(data->libraries, GModule*, i));
-               g_module_symbol( g_array_index(data->libraries, GModule*, i),
-                                GLOBAL_FUNCTIONS_NAME,
-                                (gpointer)&get_functions );
-               g_debug("%d     %p", i, &get_functions);
-
-               /* if function was not properly imported close manager */
-               if (NULL == get_functions)
-               {
-                       ws_dbus_notify( data->dbus_data,
-                                       WS_DBUS_ERROR_ENGINE_NOT_FOUND );
-                       for (i=0; i<dict_directory->len; i++)
-                       {
-                               g_free(g_array_index( dict_directory,
-                                                     gchar*,
-                                                     i ));
-                       }
-                       g_array_free(dict_directory, TRUE);
-                       ws_mng_close(data);
-                       exit(0);
-               }
-
-               /* get EngineModule struct and append it to the array*/
-               EngineModule module =  get_functions();
-               g_array_append_val(data->modules, module);
-       }
-
-       /* load each dictionary */
-       ws_mng_load_bookmark(data);
-       if (dict_directory->len > 0)
-        {
-               ws_mng_load_dict(dict_directory, data);
-               guint i = 0;
-               g_debug("Trace bookmark engine %p", data->bookmark);
-               for (i=0; i<data->dict->len; i++)
-               {
-                       g_debug( "dict engines at %p",
-                                g_array_index(data->dict, Engine*, i) );
-               }
-       }
-       else
-       {
-               ws_dbus_notify( data->dbus_data,
-                               WS_DBUS_ERROR_FILE_NOT_FOUND );
-       }
-
-       /* free memory used by dictionaries path array */
-       for (i=0; i<dict_directory->len; i++)
-       {
-               g_free(g_array_index(dict_directory, gchar*, i));
-       }
-       g_array_free(dict_directory, TRUE);
-
-       g_debug("<-%s", __FUNCTION__);
-}
-
-/**
- * \param data structure holds pointers to data which need to be freed from
- * memory
- */
-void ws_mng_close (WSMngSearchData *data)
-{
-       int i = 0;
-       g_debug("->%s", __FUNCTION__);
-
-       ws_dbus_destroy (data->dbus_data);
-       if (data->bookmark != NULL)
-       {
-               dict_eng_destroy(data->bookmark);
-       }
-
-       for (i = 0; i < data->dict->len; i++) 
-       {
-               dict_eng_destroy(g_array_index (data->dict, Engine*,i));
-       }
-       g_array_free(data->dict, TRUE);
-
-       g_free(data->last_search);
-       g_free(data->loop);
-       g_static_mutex_free(data->thread_creation);
-       g_static_mutex_free(data->action_working);
-       g_static_rec_mutex_free(data->action_stop);
-
-       for (i=0; i<data->library_path->len; i++)
-       {
-               g_free(g_array_index(data->library_path, gchar*, i));
-       }
-       g_array_free(data->library_path, TRUE); 
-       g_array_free(data->modules, TRUE); data->modules = NULL;
-       
-       for (i=0; i< data->libraries->len; i++)
-       {
-               if (g_array_index(data->libraries, GModule*, i) != NULL)
-               {
-                       g_module_close(g_array_index( data->libraries,
-                                                     GModule*,
-                                                     i ));
-                }
-       }
-       g_array_free(data->libraries, TRUE);
-       g_free(data);
-       g_debug("<-%s", __FUNCTION__);
-}
-
-/*@}*/
diff --git a/src/manager/src/ws_mng_bookmarks_utils.c b/src/manager/src/ws_mng_bookmarks_utils.c
deleted file mode 100644 (file)
index 72f1e5e..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager */
-/*@{*/
-/** \file ws_mng_bookmarks_utils.c
- * \brief Utilities for Manager connected with managing bookmarks - code.
- */
-#include <ws_mng_bookmarks_utils.h>
-
-/**
- * Function used to add bookmarks.
- * \param error error messages
- * \param param word and translation of word to adding
- * \param user_data structure holding nedded parameters
- */
-void ws_mng_add_bookmark(GError *error, GArray* param, gpointer user_data)
-{
-       g_debug("->%s", __FUNCTION__);
-
-       WSMngSearchData* data = (WSMngSearchData *) user_data;
-       osso_rpc_t* osso_data = NULL;
-       osso_rpc_t* osso_data_trans = NULL;
-       gchar* word = NULL;
-       gchar* translation = NULL;
-
-       if (data->bookmark != NULL)
-       {
-               /* get the word passed by dbus */
-               osso_data = &g_array_index (param, osso_rpc_t, 0); 
-               word = g_strdup(osso_data->value.s);
-               osso_data_trans = &g_array_index (param, osso_rpc_t, 1); 
-               translation = g_strdup(osso_data_trans->value.s);
-
-               /* try to add word to bookmarks */
-               gboolean is_added = dict_eng_add_word( data->bookmark,
-                                                      word,
-                                                      translation );
-               if (is_added == TRUE) 
-               {
-                       ws_dbus_notify( data->dbus_data,
-                                       WS_DBUS_BOOKMARKS_ADDED_OK );
-               }
-               else
-               {
-                       ws_dbus_notify( data->dbus_data, 
-                                       WS_DBUS_BOOKMARKS_ADDED_FAIL );
-               }
-               /* free memmory */
-               osso_rpc_free_val(osso_data);
-               g_free(translation);
-               g_free(word);
-       }
-       else
-       {
-               ws_dbus_notify( data->dbus_data,
-                               WS_DBUS_BOOKMARKS_ADDED_FAIL );
-               g_debug("-> %s - there is no bookmark engine!\n", __FUNCTION__);
-       }
-
-       g_debug("<-%s", __FUNCTION__);
-}
-
-/**
- * Function used to remove bookmarks.
- * \param error error messages
- * \param param word and translation of word to remove
- * \param user_data structure holding nedded parameters
- */
-void ws_mng_remove_bookmark(GError *error, GArray* param, gpointer user_data)
-{
-       g_debug("->%s", __FUNCTION__);
-
-       WSMngSearchData* data = (WSMngSearchData *) user_data;
-       osso_rpc_t* osso_data = NULL;
-       gchar* word = NULL;
-
-        if (data->bookmark != NULL)
-       {
-               /* get the word passed by dbus */
-               osso_data = &g_array_index(param, osso_rpc_t, 0); 
-               word = g_strdup(osso_data->value.s);
-
-               gboolean is_remove  = dict_eng_remove_word( data->bookmark,
-                                                           word );
-               if (TRUE == is_remove)
-               {
-                       ws_dbus_notify( data->dbus_data, 
-                                       WS_DBUS_BOOKMARKS_REMOVED_OK );
-               }
-               else 
-               {
-                       ws_dbus_notify( data->dbus_data, 
-                                       WS_DBUS_BOOKMARKS_REMOVED_FAIL );
-               }
-
-               osso_rpc_free_val(osso_data);
-       }
-       else
-       {       
-               ws_dbus_notify( data->dbus_data,
-                               WS_DBUS_BOOKMARKS_ADDED_FAIL );
-               g_debug("-> %s - there is no bookmark engine!\n", __FUNCTION__);
-       }
-
-       g_debug("<-%s", __FUNCTION__);
-}
-
-
-/**
- * Function used to load bookmark module 
- * \param data structure which holds the loaded module
- */
-void ws_mng_load_bookmark(WSMngSearchData* data)
-{
-       g_debug("->%s", __FUNCTION__);
-       guint i = 0;
-       data->bookmark = NULL;
-       gchar* current_directory = ws_mng_get_boomark_location();
-
-       if (NULL != current_directory)
-       {
-               for (i = 0; i < data->modules->len; ++i)
-               {
-                       /* check each engine module to be compatible with 
-                        * bookmark dictionary - searching for bookmark module*/
-                       if (TRUE == dict_eng_module_check(
-                                g_array_index(data->modules, EngineModule, i),
-                                current_directory ))
-                       {
-                               /* create engine for handling bookmarks */
-                               data->bookmark =
-                               dict_eng_module_create_ext(
-                                               g_array_index(data->modules,
-                                                             EngineModule,
-                                                             i),
-                                              current_directory,
-                                              ENGINE_CREATE,
-                                              ws_mng_progress_bar,
-                                              data,
-                                              0.02 );
-                               /* set callbacks */
-                               dict_eng_set_callback( data->bookmark,
-                                                      ENGINE_WORD_LIST_SIGNAL,
-                                                      ws_mng_on_found_word,
-                                                      data );
-                               dict_eng_set_callback(data->bookmark,
-                                                ENGINE_WORD_TRANSLATION_SIGNAL,
-                                                ws_mng_on_found_translation,
-                                                data);
-                               /* bookmark engine found - stop searching */
-                               break;
-                       }
-               }
-               g_free(current_directory);
-       }
-       g_debug("<-%s", __FUNCTION__);
-}
-
-
-/*@}*/
diff --git a/src/manager/src/ws_mng_callbacks.c b/src/manager/src/ws_mng_callbacks.c
deleted file mode 100644 (file)
index aa1bdfb..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager */
-/*@{*/
-/** \file ws_mng_callbacks.c
- * \brief Callback functions called by other modules - code.
- */
-
-#include <ws_mng_callbacks.h>
-#include <glib/gstdio.h>
-
-/**
- * \param progess how much file is cached
- * \param user_data data needed to send information to UI
- * \param error error messages
- */
-void ws_mng_progress_bar( double progress,
-                          gpointer user_data,
-                          EngineStatus error )
-{
-       g_debug("<--> %s - progress=%f", __FUNCTION__, progress);
-       WSMngSearchData *data = (WSMngSearchData *) user_data;
-       ws_dbus_server_update_progressbar(data->dbus_data, progress);
-}
-
-/**
- * \param word word to search
- * \param error error messages
- * \param user_data user data passed to function
- */
-void ws_mng_on_search_word( GError *error,
-                            GArray *word,
-                            gpointer user_data )
-{
-       g_debug("[L-word] -> %s: reading parameters...", __FUNCTION__);
-       WSMngSearchData *search = (WSMngSearchData *) user_data;
-       osso_rpc_t* osso_data = NULL;
-
-       /* ---> CRITICAL SECTION for this function */
-       g_static_mutex_lock( search->thread_creation );
-       
-       /* get the word passed by dbus */
-       osso_data = &g_array_index (word, osso_rpc_t, 0);
-       gchar* tmp = NULL;
-
-       if (osso_data->value.s != NULL)
-       {
-               /* check if we need add wildcard '*' at the end of the word */
-               if (( g_utf8_strchr(osso_data->value.s, -1, '*') == NULL ) && 
-                   ( g_utf8_strchr(osso_data->value.s, -1, '?') == NULL ))
-               {
-                       tmp = g_strconcat(osso_data->value.s, "*", NULL);
-               }
-               else
-               {
-                       tmp = g_strdup(osso_data->value.s);
-               }
-       }
-       else
-       {
-               tmp = g_strdup ("*");
-       }
-
-       /* create and init searching data - separate for each thread */
-       WSMngSearchAtom* search_data = NULL;
-       search_data = create_search_atom(search, tmp);
-       g_free(tmp);
-       if (NULL == search_data)
-       {
-               return;
-       }
-
-       g_debug("[L-word] creating GThread object...");
-       search_data->thread = g_thread_create( ws_mng_search_word,
-                                              search_data,
-                                              TRUE,
-                                              NULL );
-       g_debug("[L-word] GThread object created. Exiting from CREATOR.");
-
-       g_static_mutex_unlock( search->thread_creation );
-       /* <--- end of CRITICAL SECTION for this function */
-
-       g_debug("[L-word] <-%s", __FUNCTION__);
-}
-
-/**
- * \param word word to search
- * \param error error messages
- * \param user_data user data passed to function
- */
-void ws_mng_on_search_translation (GError *error,
-                                   GArray *word,
-                                   gpointer user_data)
-{
-       g_debug("[L-tran] ->%s", __FUNCTION__);
-
-       WSMngSearchData *data = (WSMngSearchData *) user_data;
-
-       /* ---> CRITICAL SECTION for this function */
-       g_static_mutex_lock(data->thread_creation);
-
-       /* get the data sended by dbus */
-       osso_rpc_t *osso_data;
-       osso_data = &g_array_index (word, osso_rpc_t, 0);
-
-       /* create and init searching data - separate for each thread */
-       WSMngSearchAtom* search_data = NULL;
-       search_data = create_search_atom(data, osso_data->value.s);
-       if (NULL == search_data)
-       {
-               return;
-       }
-
-       g_debug("[L-tran] creating GThread object...");
-       search_data->thread = g_thread_create( ws_mng_search_translation,
-                                              search_data,
-                                              TRUE,
-                                              NULL );
-       g_debug("[L-tran] GThread object created. Exiting from CREATOR.");
-
-
-       g_static_mutex_unlock(data->thread_creation);
-       /* <--- end of CRITICAL SECTION for this function */
-
-       g_debug("[L-tran] <-%s", __FUNCTION__);
-}
-
-
-/**
-* @param error error messages
-* @param signal type of signal
-* @param user_data data passed to function 
-*/
-void ws_mng_signal_handling(GError *error, GArray *signal, gpointer user_data)
-{
-       g_debug("->%s", __FUNCTION__);
-       osso_rpc_t osss_data;
-       osss_data = g_array_index (signal, osso_rpc_t, 0);
-       WSMngSearchData *data = (WSMngSearchData *) user_data;
-       gint i = 0;
-
-       switch(osss_data.value.i)
-       {
-               case WS_DBUS_INFO_TERMINATE:
-                       /* added by Dariusz Wiechecki
-                        * canceling GLib Threads if any is working */
-                       if (try_lock_was_locked(data,(gchar*)__FUNCTION__))
-                       {
-                               g_printf("[S] STOP ACTION! %s\n",__FUNCTION__);
-                               g_static_rec_mutex_lock(data->action_stop);
-                               g_static_mutex_lock(data->action_working);
-                       }
-                       g_static_rec_mutex_unlock(data->action_stop);
-                       g_static_mutex_unlock(data->action_working);
-                       /* end current proccess */
-                       g_main_loop_quit (data->loop);
-               break;
-               case WS_DBUS_INFO_STOP_SEARCH:
-                       /* added by Dariusz Wiechecki
-                        * canceling GLib Threads if any is working */
-                       if (try_lock_was_locked(data,(gchar*)__FUNCTION__))
-                       {
-                               g_printf("[S] STOP ACTION! %s\n",__FUNCTION__);
-                               g_static_rec_mutex_lock(data->action_stop);
-                               g_static_mutex_lock(data->action_working);
-                       }
-                       g_static_rec_mutex_unlock(data->action_stop);
-                       ws_dbus_notify(data->dbus_data,
-                                      WS_DBUS_WORDS_LIST_FINISHED);
-                       ws_dbus_notify(data->dbus_data,
-                                      WS_DBUS_TRANSLATION_FINISHED);
-                       g_static_mutex_unlock(data->action_working);
-               break;
-               case WS_DBUS_INFO_CONFIG_CHANGED:
-                       ws_dbus_notify(data->dbus_data, WS_DBUS_INFO_CACHING);
-                       /* first remove all dictionaries */
-                       for (i=0; i<data->dict->len; i++)
-                       {
-                               if(g_array_index(data->dict, Engine*,i) != NULL)
-                               {
-                                       dict_eng_destroy( g_array_index(
-                                                              data->dict,
-                                                              Engine*,
-                                                              i       ) );
-                               }
-                       }
-                       g_array_free(data->dict, TRUE);
-
-                       /* load dictionaries again in the new configuration */
-                       data->dict = g_array_new (TRUE, TRUE, sizeof(Engine*));
-                       GArray* dir_array = ws_mng_read_gconf();
-                       ws_mng_load_dict(dir_array, data);
-
-                       /* check if there was loaded any dictionary */
-                       if (data->dict->len <= 0)
-                       {
-                               ws_dbus_notify( data->dbus_data,
-                                               WS_DBUS_INFO_CACHING_FINISHED );
-                               ws_dbus_notify( data->dbus_data,
-                                               WS_DBUS_ERROR_FILE_NOT_FOUND);
-                       }
-                       else
-                       {
-                               /*if there was typed word search for word list*/
-                               if (data->last_search != NULL) 
-                               {
-                                       data->word_list =
-                                               g_array_new( TRUE,
-                                                            TRUE,
-                                                            sizeof(gchar*));
-
-                                       g_free(data->word); data->word = NULL;
-                                       data->word =
-                                                  g_strdup(data->last_search);
-                               }
-                               /* signal end of dictionary load to gui */
-                               ws_dbus_notify( data->dbus_data,
-                                               WS_DBUS_INFO_CACHING_FINISHED );
-                       }
-
-                       /* free memmory */
-                       for (i=0; i<dir_array->len; i++)
-                       {
-                               g_free(g_array_index(dir_array, gchar*, i));
-                       }
-                       g_array_free(dir_array, TRUE);
-               break;
-               case WS_DBUS_BOOKMARK_MODE_ON:
-                       data->bookmark_mode = TRUE;
-               break;
-               
-               case WS_DBUS_BOOKMARK_MODE_OFF:
-                       data->bookmark_mode = FALSE;
-               break;
-       }
-       g_debug("<-%s", __FUNCTION__);
-}
-
-/*@}*/
diff --git a/src/manager/src/ws_mng_dictionary_utils.c b/src/manager/src/ws_mng_dictionary_utils.c
deleted file mode 100644 (file)
index 02b46f4..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager */
-/*@{*/
-/** \file ws_mng_dictionary_utils.c
- * \brief Dictionaries common routines - code.
- */
-
-#include <ws_mng_dictionary_utils.h>
-
-/**
- * \param error after excuting it contains error messages if any was
- * \param param parameters given by D-Bus
- * \param app_data manager data
- */
-void ws_mng_extract_dictionary( GError *error,
-                                GArray* param,
-                                gpointer user_data )
-{
-       g_debug("->%s", __FUNCTION__);
-       WSMngSearchData *data = (WSMngSearchData *) user_data;
-       osso_rpc_t *osso_data;
-
-       /* get the data sended by dbus */
-       osso_data = &g_array_index (param, osso_rpc_t, 0); 
-       gchar* path = g_strdup(osso_data->value.s);
-       gint result = -1;
-       
-       gchar* dest = NULL;
-       if (path != NULL)
-       {
-               gint count = 0;
-               gchar** tmp = g_strsplit(path, "/", 0);
-               while(tmp[count] != NULL)
-               {
-                       ++count;
-                       
-               }
-               
-               //1 is file name position in tmp array
-               dest = g_strndup(path, g_strlen(path)- g_strlen(tmp[count -1]));
-               g_strfreev(tmp);
-       };
-       
-       if (dest != NULL)
-       {
-               ws_dbus_notify(data->dbus_data, WS_DBUS_EXTRACT_FILE);
-               result = decompress_file(path, &dest);
-               ws_dbus_notify(data->dbus_data, WS_DBUS_EXTRACT_FILE_FINISHED);
-       };
-       
-       if (result > 0)
-       {
-               ws_dbus_server_return_extracted_dict(data->dbus_data, dest);
-       }
-       else
-       {
-               dest = "";
-               ws_dbus_server_return_extracted_dict(data->dbus_data, dest);
-       }
-
-       g_free(path);
-       path = NULL;
-       g_debug("<-%s", __FUNCTION__);
-}
-
-
-/**
- * Function used to load dictionaries engines
- * \param dict_directory path to dictionaries 
- * \param data structure which contains all data of program
- */
-void ws_mng_load_dict(GArray* dict_directory, WSMngSearchData* data)
-{
-       gint i = 0;
-       gint j = 0;
-       Engine* xdxf = NULL;
-       g_debug("->%s", __FUNCTION__);
-       EngineOptimizationFlag flag = ENGINE_NO;
-       gchar* current_directory = NULL;
-
-       for (i =0; i<dict_directory->len; i++)
-       {
-               current_directory = strdup(g_array_index( dict_directory,
-                                                         gchar*,
-                                                         i ));
-               flag = ENGINE_NO;
-               for (j=0; j<data->modules->len; j++)
-               {
-                       if (dict_eng_module_check( g_array_index( data->modules,
-                                                                 EngineModule,
-                                                                 j),
-                                                  current_directory ) == TRUE)
-                       {
-                               /* set correct flag for engine */
-                               if(ws_mng_if_optimized(current_directory))
-                               {
-                                       flag = ENGINE_CREATE;
-                               }
-
-                               /* create engine with correct flag */
-                               xdxf = dict_eng_module_create_ext(
-                                                  g_array_index( data->modules,
-                                                                 EngineModule,
-                                                                 j ),
-                                                  current_directory,
-                                                  flag,
-                                                  ws_mng_progress_bar,
-                                                  data,
-                                                  0.02 );
-
-                               /*set callbacks functions */
-                               dict_eng_set_callback( xdxf,
-                                                      ENGINE_WORD_LIST_SIGNAL,
-                                                      ws_mng_on_found_word,
-                                                      data );
-
-                               dict_eng_set_callback( xdxf,
-                                              ENGINE_WORD_TRANSLATION_SIGNAL,
-                                              ws_mng_on_found_translation,
-                                              data );
-
-                               /* adding newly created engine to Garray */
-                               g_array_append_val (data->dict, xdxf);
-
-                               g_free(current_directory);
-                               current_directory = NULL;
-                               xdxf = NULL;
-
-                               /* do not check next module - move directly to 
-                                * next dictionary */
-                               break;
-                       }
-                }
-        }
-        g_debug("<-%s", __FUNCTION__);
-}
-
-/*@}*/
diff --git a/src/manager/src/ws_mng_gconf_utils.c b/src/manager/src/ws_mng_gconf_utils.c
deleted file mode 100644 (file)
index 6867901..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-/** \file ws_mng_gconf_utils.c
- * \brief Utilities connected with GConf configuration - coder.
- */
-#include <ws_mng_gconf_utils.h>
-
-
-/**
- *
- * Function read from GConf locations of every dictionary and return them in
- * GArray to make it possible to load them.
- *
- * \return path to dictionaries location
- */
-GArray* ws_mng_read_gconf()
-{
-       g_debug("--%s", __FUNCTION__);
-       GConfClient* client = NULL;
-       client = gconf_client_get_default();
-       GArray* path_to_dir = g_array_new(TRUE, TRUE, sizeof(gchar *));
-       gchar* path = NULL;
-       gboolean key_active = FALSE;
-       gint i = 0;
-
-       /* get location of every dictionary */
-       GSList* list = gconf_client_all_dirs(client, GCONF_KEY, NULL);
-       for (i = 0; i < g_slist_length(list); ++i)
-       {
-               path = (gchar* ) g_slist_nth_data(list, i);
-               gchar* new_path = g_strconcat(path, "/path", NULL);
-               gchar* new_active = g_strconcat(path, "/active", NULL);
-               key_active = gconf_client_get_bool(client, new_active, NULL);
-               if (key_active == TRUE)
-               {
-                       gchar* key_value = gconf_client_get_string( client,
-                                                                   new_path,
-                                                                   NULL );
-                       if (key_value != NULL){
-                               g_array_append_val(path_to_dir, key_value);
-                       }
-               }
-               g_free(new_path);
-               g_free(new_active);
-       }
-
-       /* free memmory */
-       for (i=0; i<g_slist_length(list); i++)
-       {
-               g_free(g_slist_nth_data(list, i));
-       }
-       g_slist_free(list);
-       g_object_unref (client);
-       return path_to_dir;
-}
-
-
-/**
- * \return libraries with dictionary engines location
- */
-GArray* ws_mng_get_engines_location()
-{
-       g_debug("->%s", __FUNCTION__);
-       GConfClient* client = NULL;
-       GArray* path_to_dir = g_array_new(TRUE, TRUE, sizeof(gchar *));
-       gchar* path = NULL;
-       gint i = 0;
-       client = gconf_client_get_default();
-
-       GSList* list = gconf_client_all_dirs(client, GCONF_LIB_PATH, NULL);
-       for (i=0; i<g_slist_length(list); i++)
-       {
-               path = (gchar* ) g_slist_nth_data(list, i);
-               gchar* new_path = g_strconcat(path, "/path",NULL);
-               gchar* key_value = gconf_client_get_string( client,
-                                                           new_path,
-                                                           NULL);
-               gchar** tmp = g_strsplit(key_value, "/", -1);
-               guint i = 0;
-               gboolean bookmark_engine = FALSE;
-               while(NULL != tmp[i])
-               {
-                       g_debug("Comapred string %s", tmp[i]);
-                       if (g_ascii_strcasecmp(tmp[i], "ws_bookmark.so") == 0)
-                       {
-                               bookmark_engine = TRUE;
-                               break;
-                       }
-                       i++;
-               }
-               g_strfreev(tmp);
-               
-               if (key_value != NULL)
-               {
-                       g_debug("Added library path %s", key_value);
-                       g_array_append_val(path_to_dir, key_value);
-               }
-               g_free(new_path);
-       }
-
-       for (i=0; i<g_slist_length(list); i++)
-       {
-               g_free(g_slist_nth_data(list, i));
-       }
-       g_slist_free(list);
-       g_object_unref (client);
-       return path_to_dir;
-}
-
-
-/**
- * \return path to bookmark location
- */
-gchar* ws_mng_get_boomark_location()
-{
-       g_debug("->%s", __FUNCTION__);
-       GConfClient* client = NULL;
-       gchar* path = NULL;
-       guint i = 0;
-       client = gconf_client_get_default();
-
-       GSList* list = gconf_client_all_dirs(client, GCONF_KEY, NULL);
-       for (i=0; i<g_slist_length(list); i++)
-       {
-               path = (gchar* ) g_slist_nth_data(list, i);
-               gchar* name = g_strconcat(path, "/name",NULL);
-               gchar* new_path = g_strconcat(path, "/path",NULL);
-               gchar* key_value = gconf_client_get_string( client,
-                                                           name,
-                                                           NULL );
-
-               if (key_value != NULL)
-               {
-                       if (g_ascii_strcasecmp(key_value, "Bookmarks") == 0)
-                       {
-                               gchar* key_value_path = 
-                                       gconf_client_get_string( client,
-                                                                new_path,
-                                                                NULL );
-
-                               if (key_value_path != NULL)
-                               {
-                                       g_free(key_value);
-                                       key_value = NULL;
-                                       g_free(new_path);
-                                       new_path = NULL;
-                                       g_free(name); name = NULL;      
-                                       for (i=0; i<g_slist_length(list); i++)
-                                       {
-                                               g_free(
-                                               g_slist_nth_data(list, i));
-                                       }
-                                       g_slist_free(list);
-                                       g_object_unref(client);
-                                       return key_value_path;
-                               }
-                       }
-               }
-               g_free(name); name = NULL;
-               g_free(key_value);
-               key_value = NULL;
-               g_free(new_path);
-               new_path = NULL;
-       }
-
-       g_debug("<-%s", __FUNCTION__);
-       return NULL;
-}
-
-/**
- * \param dict path to dictionary file
- * \return TRUE if dictionary is optimize, FALSE otherwise
- */
-gboolean ws_mng_if_optimized(gchar* dict)
-{
-       g_debug("->%s", __FUNCTION__);
-
-       GConfClient* client;
-       gchar* path = NULL;
-       gboolean key_optimized = FALSE;
-       gboolean key_found = FALSE;
-       gint i = 0;
-
-       client = gconf_client_get_default();
-       GSList* list = gconf_client_all_dirs(client, GCONF_KEY, NULL);
-       for (i=0; i<g_slist_length(list); i++)
-       {
-               path = (gchar *) g_slist_nth_data(list, i);
-               gchar* new_path = g_strconcat(path, "/path",NULL);
-               gchar* new_optimized = g_strconcat(path, "/optimized",NULL);
-               gchar* key_value = gconf_client_get_string( client,
-                                                           new_path,
-                                                           NULL );
-
-               if (g_ascii_strcasecmp(key_value, dict) == 0)
-               {
-                       key_optimized = gconf_client_get_bool( client,
-                                                              new_optimized,
-                                                              NULL );
-                       key_found = TRUE;
-               }
-               g_free(new_path);
-               g_free(new_optimized);
-               g_free(key_value);
-
-               if ( TRUE == key_found )
-               {
-                       break;
-               }
-       }
-
-       for (i=0; i<g_slist_length(list); i++)
-       {
-               g_free(g_slist_nth_data(list, i));
-       }
-       g_slist_free(list);
-       g_object_unref (client);
-
-       g_debug("<-%s", __FUNCTION__);
-       return key_optimized;
-}
-
-/*@}*/
diff --git a/src/manager/src/ws_mng_searching_threads.c b/src/manager/src/ws_mng_searching_threads.c
deleted file mode 100644 (file)
index eca5f3d..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-/** \file ws_mng_searching_threads.c
- * \brief Thread generation and thread functions - code.
- */
-#include <ws_mng_searching_threads.h>
-#include <glib/gstdio.h>
-
-/**
- * \param data required data for search word event
- * \return gpointer return value 
- */
-gpointer ws_mng_search_word (gpointer user_data)
-{
-       g_debug("[T-word] %s: Entering thread...", __FUNCTION__);
-       WSMngSearchAtom *search_atom = (WSMngSearchAtom*)user_data;
-       WSMngSearchData *search = search_atom->data;
-
-       /* enter into CRITICAL SECTION */
-       if (try_lock_was_locked(search,(gchar*)__FUNCTION__))
-       {
-               g_printf("[T-word] STOP mutex is locked! Aborting others!");
-               g_static_rec_mutex_lock(search->action_stop);
-               g_static_mutex_lock(search->action_working);
-       }
-       g_static_rec_mutex_unlock(search->action_stop);
-
-       /* if another thread was run after this one - exit */
-       stop_if_needed(search_atom);
-
-       g_debug( "[T-word] %s - from now this thread is \'singleton\' ",
-                __FUNCTION__ );
-       ws_dbus_notify(search->dbus_data, WS_DBUS_WORDS_LIST_STARTED);
-       /* creating new GArray for word list */
-       search_atom->word_list = g_array_new(TRUE, TRUE, sizeof(gchar*));
-
-       g_debug("[T-word] %s - start searching... ",__FUNCTION__);
-        if (search->bookmark_mode)
-       {
-               /* search only in user bookmarks */
-               dict_eng_search_word_list( search->bookmark,
-                                          search_atom->word,
-                                          search_atom );
-       }
-       else
-       {
-               /* search for word in each dictionary */
-               gint i = 0;
-               for (i = 0; i < search->dict->len; i++)
-               {
-                       if (NULL == g_array_index(search->dict, Engine *, i))
-                       {
-                               continue;
-                       }
-
-                       stop_if_needed(search_atom);
-                       Engine* dict = g_array_index(search->dict,Engine *,i);
-                       dict_eng_search_word_list( dict,
-                                                  search_atom->word,
-                                                  search_atom );
-               }
-       }
-       g_debug("[T-word] %s - searching finished.",__FUNCTION__);
-
-       /* if another thread was run after this one - exit */
-       stop_if_needed(search_atom);
-
-       /* sort and cleaning words list - only if there were more than one
-        * dictionary loaded */
-       if ((FALSE == search->bookmark_mode) || (1 < search->dict->len))
-       {
-               g_array_sort(search_atom->word_list, ws_mng_compare_strings);
-               ws_remove_multiple_words(search_atom);
-       }
-
-       /* if another thread was run after this one - exit */
-       stop_if_needed(search_atom);
-
-       ws_dbus_server_return_words(search->dbus_data, search_atom->word_list);
-       ws_dbus_notify(search->dbus_data, WS_DBUS_WORDS_LIST_FINISHED);
-
-       /* free memory used by GArray */
-       g_array_free(search_atom->word_list, TRUE);
-       search_atom->word_list = NULL;
-
-       g_free(search_atom->word);
-       g_free(search_atom);
-       g_debug("[T-word] %s - leaving thread!", __FUNCTION__);
-       g_static_mutex_unlock(search->action_working);
-       return NULL;
-}
-
-/**
- * \param list word list found in dictionaries
- * \param pattern a word which is being search for in dictionaries
- * \param user_data data passed to function
- * \param error engine status information
- */
-void ws_mng_on_found_word(GArray* list,
-                          gchar* pattern,
-                          gpointer user_data,
-                          EngineStatus error)
-{
-       g_debug("[T-word-ret]-> %s", __FUNCTION__);
-
-       WSMngSearchAtom* search_atom = (WSMngSearchAtom*)user_data;
-       static gint i = 0;
-       for (i = 0; i < list->len; i++)
-       {
-               /* copy word found by search engine */
-               gchar* new_word = g_strdup(g_array_index(list, gchar*, i));
-               g_array_append_val(search_atom->word_list, new_word); 
-               
-       }
-
-       g_debug("[T-word-ret]<- %s", __FUNCTION__);
-}
-
-/**
- * \param data required data for search translation
- * \return gpointer return value 
- */
-gpointer ws_mng_search_translation (gpointer data)
-{
-       g_debug("[T-tran] %s: Entering thread...", __FUNCTION__);
-       WSMngSearchAtom* search_atom = (WSMngSearchAtom*)data;
-       WSMngSearchData* search = search_atom->data;
-
-       /* ---> CRITICAL SECTION for this function */
-       if (try_lock_was_locked(search,(gchar*)__FUNCTION__))
-       {
-               g_printf("[T-tran] STOP mutex is locked! Aborting others!");
-               g_static_rec_mutex_lock(search->action_stop);
-               g_static_mutex_lock(search->action_working);
-       }
-       g_static_rec_mutex_unlock(search->action_stop);
-       /* if another thread was run after this one - exit */
-       stop_if_needed(search_atom);
-
-       g_debug( "[T-tran] %s - from now this thread is \'singleton\' ",
-                __FUNCTION__ );
-       ws_dbus_notify(search->dbus_data, WS_DBUS_TRANSLATION_STARTED);
-
-       /* run search for translation for every dictionary */
-       if (search->bookmark_mode)
-       {
-               dict_eng_search_word_translation( search->bookmark,
-                                                 search_atom->word,
-                                                 search_atom );
-       }
-       else
-       {
-               gint i;
-               for (i = 0; i < search->dict->len; i++)
-               {
-                       stop_if_needed(search_atom);
-                       if (NULL == g_array_index(search->dict, Engine*, i) )
-                       {
-                               continue;
-                       }
-                       dict_eng_search_word_translation(
-                                       g_array_index(search->dict, Engine*, i),
-                                       search_atom->word,
-                                       search_atom);
-               }
-       }
-       g_debug("[T-tran] %s - searching finished.",__FUNCTION__);
-
-       /* if another thread was run after this one - exit */
-       stop_if_needed(search_atom);
-
-       /* send translation to gui */
-       ws_dbus_server_return_translations(search->dbus_data, search_atom->trans);
-       ws_dbus_notify(search->dbus_data, WS_DBUS_TRANSLATION_FINISHED);
-
-       g_free(search->trans);
-       search->trans = NULL;
-
-       g_debug("[T-word] %s - leaving thread!", __FUNCTION__);
-       g_static_mutex_unlock(search->action_working);
-       return NULL;
-}
-
-/**
-* \param translation translation of word found in dictionaries
-* \param pattern a word which is being serch for in dictionaries
-* \param user_data data passed to function
-* \param error engine status information
-*/
-void ws_mng_on_found_translation(gchar* translation,
-                                 gchar* pattern,
-                                 gpointer user_data,
-                                 EngineStatus error
-                                 )
-{
-       g_debug("->%s", __FUNCTION__);
-       WSMngSearchAtom* search_atom = (WSMngSearchAtom*)user_data;
-
-       /* we get already the first translation */
-       if ((NULL != translation) && (NULL == search_atom->trans))
-       {
-               /* concatenate tags and searched word and translation */
-               search_atom->trans = g_strconcat("<PATTERN_OPEN>",
-                                         pattern,
-                                         "<PATTERN_CLOSED><TRANSLATION_OPEN>",
-                                         translation,
-                                         "<TRANSLATION_CLOSED>",
-                                         NULL
-                                        );
-       }
-       else if (NULL != translation)
-       {
-               /* if there was stored translation
-                * copy stored translation to temporary variable */
-               gchar* tmp = g_strconcat(search_atom->trans,
-                                        "<TRANSLATION_OPEN>",
-                                        translation,
-                                        "<TRANSLATION_CLOSED>",
-                                        NULL);
-               /* free memory used by stored old translation */
-               gchar* loc_tmp = search_atom->trans;
-               search_atom->trans = tmp;
-               g_free(loc_tmp);
-               tmp = loc_tmp = NULL;
-       }
-
-       g_debug("<-%s", __FUNCTION__);
-}
-
-/**
- * \param a first argument to compare
- * \param b second argument to compare
- * \return result of compare <0 if the second is greater than first 0 if the 
- *       strings are the same >0 if the first string is greater than second  
- */
-gint ws_mng_compare_strings (gconstpointer a, gconstpointer b)
-{
-       gchar** str1 = (gchar**)(a);
-       gchar** str2 = (gchar**)(b);
-
-       gchar* stra = g_utf8_strdown(str1[0], -1);
-       gchar* strb = g_utf8_strdown(str2[0], -1);
-
-       gint result = g_utf8_collate(stra, strb);
-
-       g_free(stra); 
-       g_free(strb);
-       return result;
-}
-
-/**
- * The same word could be existed in few dictionaries. Each of this dictionaries
- * will return this word and manager will add it to the wrods list. But finally
- * there should not be repeating words on the list, so we have to remove
- * repeated one (leave only one).
- * \param user_data WSMngSearchAtom with array of all words returned from all
- * dictionaries
- */
-void ws_remove_multiple_words(WSMngSearchAtom* user_data)
-{
-       WSMngSearchAtom* search = (WSMngSearchAtom*)user_data;
-       gint j = 0;
-       gint i = 0;
-       gint result = -1;
-       gint temp = 256;
-       gchar* tmp1 = NULL;
-       gchar* tmp2 = NULL;
-
-       /* check if words list is longer than 256 words */
-       if (search->word_list->len < 256)
-       {
-               temp = search->word_list->len;
-               if (temp >0)
-               {
-                       ws_dbus_notify( search->data->dbus_data,
-                                       WS_DBUS_WORDS_LIST_FILLED_NOT_FULL );
-               }
-       }
-       else
-       {
-               ws_dbus_notify( search->data->dbus_data,
-                               WS_DBUS_WORDS_LIST_FULL );
-       }
-
-       /* remove repeating words in the first 256 places in the array - words
-        * in places further than 256 are not being sent to UI so we do not need
-        * to filter them for searching repeating words */
-       for (i = 0; i < temp-1; i++)
-       {
-               tmp1 = g_utf8_casefold(
-                              g_array_index(search->word_list,gchar*,i),
-                              -1     );
-               for (j = i + 1; j < temp; j++)
-               {
-                       /* search if there is a word on word list */
-                       tmp2 = g_utf8_casefold(
-                                   g_array_index(search->word_list,gchar*,j),
-                                   -1 );
-                       result = g_utf8_collate(tmp1,tmp2);
-                       g_free(tmp2);
-                       tmp2 = NULL;
-
-                       /* if there is a word on the word list 
-                        * remove that word */
-                       if (result == 0)
-                       {
-                               g_array_remove_index(search->word_list, j);
-                               --j;
-                               --temp;
-                               if (search->word_list->len >= 256)
-                               {
-                                       temp = 256;
-                               }
-                       }
-                       else {
-                               /* there is no possiblity that further
-                                * will be the same word, check next word */
-                               break;
-                       }
-               }
-               g_free(tmp1);
-               tmp1 = NULL;
-       }
-}
-
-/*@}*/
diff --git a/src/manager/src/ws_mng_threads_utils.c b/src/manager/src/ws_mng_threads_utils.c
deleted file mode 100644 (file)
index cb5191b..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \addtogroup Manager
- */
-/*@{*/
-/** \file ws_mng_threads_utils.c
- * \brief Thread utilities - code.
- */
-#include <ws_mng_threads_utils.h>
-
-
-/* added by Dariusz Wiechecki 
- * trying to lock mutext and tells if it was locked */
-/**
- * \param data manager data
- * \param fun string to display in logs - it intentionaly this should be caller
- * function name
- */
-gboolean try_lock_was_locked(WSMngSearchData* data, gchar* fun)
-{
-       gboolean res = !g_static_mutex_trylock(data->action_working);
-       if (res)
-       {
-               g_debug("[M-action] %s - FAILED - locked already!", fun);
-       }
-       else
-       {
-               g_debug("[M-action] %s - SUCCESS - locked!", fun);
-       }
-
-       return res;
-}
-
-/* added by Dariusz Wiechecki
- * check if recursive mutex is already locked 
- * must be call from critical section!!! */
-/**
- * If mutex was not locked it is not locked by this function. It only check
- * if given mutex is already locked.
- *
- * \param m mutex to be checked
- */
-gboolean is_rec_locked(GStaticRecMutex* m)
-{
-       gboolean r = !g_static_rec_mutex_trylock(m);
-       if (FALSE == r)
-       {
-               g_static_rec_mutex_unlock(m);
-               g_debug("[M-stop] STOP mutex is UNLOCKED!");
-       }
-       else
-       {
-               g_debug("[M-stop] STOP mutex is LOCKED");
-       }
-       return r;
-}
-
-/* added by Dariusz Wiechecki
- * stop current thread if there is such a need - newer thread is waiting */
-/**
- * \param data search atom data for current thread
- */
-void stop_if_needed(WSMngSearchAtom* data)
-{
-       static GStaticMutex _loc;
-       static GStaticMutex* loc = NULL;
-       if(NULL == loc && NULL == data)
-       {
-               g_debug("Initializing static mutex. function:%s\n",__FUNCTION__);
-               g_static_mutex_init (loc);
-               loc = &_loc;
-               return;
-       }
-
-       WSMngSearchData* app_data = data->data;
-       /* critical section for calling is_rec_locked() function*/
-       g_static_mutex_lock(loc);
-       if ( is_rec_locked(app_data->action_stop) )
-       {
-               g_debug("[T-leaving] <---- Leaving thread (not finished).\n");
-               ws_dbus_notify(app_data->dbus_data, WS_DBUS_WORDS_LIST_FINISHED);
-               ws_dbus_notify(app_data->dbus_data, WS_DBUS_TRANSLATION_FINISHED);
-               free_search_atom(data);
-               g_static_mutex_unlock(app_data->action_working);
-               g_static_mutex_unlock(loc);
-               g_thread_exit (NULL);
-       }
-       g_static_mutex_unlock(loc);
-}
-
-/**
- * \param data search atom data for current thread
- */
-void free_search_atom(WSMngSearchAtom* data)
-{
-       g_debug("[T-clear] Cleaning after thread\n");
-       g_assert(NULL != data);
-       if (NULL != data->word)
-       {
-               g_free(data->word);
-       }
-       if (NULL != data->trans)
-       {
-               g_free(data->trans);
-       }
-       if (NULL != data->word_list)
-       {
-               /* free memory used by each word from word list */
-               gint i = 0;
-               for (; i < data->word_list->len; i++)
-               {
-                       g_free(g_array_index(data->word_list,gchar* ,i));
-               }
-               /* free memory used by GArray */
-               g_array_free(data->word_list, TRUE);
-               data->word_list = NULL;
-       }
-       g_free(data);
-}
-
-/**
- * \param app_data  manager data
- * \param word word to search
- */
-WSMngSearchAtom *create_search_atom(WSMngSearchData* app_data, gchar* word)
-{
-       WSMngSearchAtom* search_data = NULL;
-       search_data = (WSMngSearchAtom*)g_try_malloc(sizeof(WSMngSearchAtom));
-       if (NULL == search_data)
-       {
-               g_debug("[L-*] allocatting memmory for data failed!");
-               return NULL;
-       }
-        /* get the word sended by dbus */
-        search_data->word = g_strdup(word);
-       search_data->data = app_data;
-       search_data->word_list = NULL;
-       search_data->trans = NULL;
-
-       return search_data;
-}
-
-/*@}*/
diff --git a/src/plugins/stardict/COPYING b/src/plugins/stardict/COPYING
deleted file mode 100755 (executable)
index fb6319b..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-    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 Lesser 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) <year>  <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) year 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 Lesser General
-Public License instead of this License.
\ No newline at end of file
diff --git a/src/plugins/stardict/Makefile b/src/plugins/stardict/Makefile
deleted file mode 100755 (executable)
index 092074a..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-COMPILER = gcc
-DEBUG = -Wall -g
-INCLUDE = ./include
-ENGINE_INCLUDE = ../../../include
-LIBS = `pkg-config --libs glib-2.0 gmodule-2.0 gnome-vfs-2.0` -lz
-FLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0 gnome-vfs-2.0` -I${INCLUDE} -I${ENGINE_INCLUDE}
-SOURCES = ./src
-MAIN_BINARIES = ../../../bin
-BINARIES = ./bin
-PRECOMPILED = ./precompiled
-
-first-target: library
-
-build: library
-
-all: clean library test check
-
-clean:
-               @-rm -f ${BINARIES}/*
-               @-rm -f ${SOURCES}/*~
-               @-rm -f *~
-               @-rm -f ${INCLUDE}/*~
-               @-rm -f ${SOURCES}/engine_stardict.so
-               @echo -e -n "Project 'StarDictEngine' directories has been cleaned.\n"
-       
-test:  ${SOURCES}/test.c
-               @${COMPILER} ${LIBS} ${FLAGS} ${DEBUG} -o ${BINARIES}/test ${SOURCES}/test.c
-               @echo -e -n "Building test program for 'StarDictEngine' finished.\n"
-               
-check: test
-               @run-standalone.sh ${BINARIES}/test
-
-
-library: ${BINARIES}/engine_stardict.o                 
-               @${COMPILER} ${DEBUG} -shared -fPIC ${FLAGS} ${LIBS} ${BINARIES}/engine_stardict.o \
-               ${PRECOMPILED}/`arch`/*.o -o ${BINARIES}/engine_stardict.so
-               @cp ${BINARIES}/engine_stardict.so ${MAIN_BINARIES}
-               @echo -e -n "'StarDictEngine' build finished.\n"
-                       
-${BINARIES}/engine_stardict.o: ${SOURCES}/engine_stardict.c
-               @${COMPILER} ${DEBUG} ${FLAGS} -c -fPIC ${SOURCES}/engine_stardict.c -o ${BINARIES}/engine_stardict.o
-       
-       
-final: clean
-               @${COMPILER} -DNOLOGS -Wall -O3 ${FLAGS} -c -fPIC ${SOURCES}/engine_stardict.c -o ${BINARIES}/engine_stardict.o
-               @${COMPILER} -DNOLOGS -Wall -g -shared -fPIC ${FLAGS} ${LIBS} ${BINARIES}/engine_stardict.o \
-               ${SOURCES}/`arch`/*.o -o ${BINARIES}/engine_stardict.so
-               @cp ${BINARIES}/engine_stardict.so ../bin
-               @echo -e -n "'StarDictEngine' build finished. (Final version - optimized)\n"
-       
-       
-       
-       
-       
-       
-       
\ No newline at end of file
diff --git a/src/plugins/stardict/Makefile.am b/src/plugins/stardict/Makefile.am
deleted file mode 100644 (file)
index dfa49b2..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src
diff --git a/src/plugins/stardict/Makefile_old b/src/plugins/stardict/Makefile_old
deleted file mode 100755 (executable)
index 092074a..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-COMPILER = gcc
-DEBUG = -Wall -g
-INCLUDE = ./include
-ENGINE_INCLUDE = ../../../include
-LIBS = `pkg-config --libs glib-2.0 gmodule-2.0 gnome-vfs-2.0` -lz
-FLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0 gnome-vfs-2.0` -I${INCLUDE} -I${ENGINE_INCLUDE}
-SOURCES = ./src
-MAIN_BINARIES = ../../../bin
-BINARIES = ./bin
-PRECOMPILED = ./precompiled
-
-first-target: library
-
-build: library
-
-all: clean library test check
-
-clean:
-               @-rm -f ${BINARIES}/*
-               @-rm -f ${SOURCES}/*~
-               @-rm -f *~
-               @-rm -f ${INCLUDE}/*~
-               @-rm -f ${SOURCES}/engine_stardict.so
-               @echo -e -n "Project 'StarDictEngine' directories has been cleaned.\n"
-       
-test:  ${SOURCES}/test.c
-               @${COMPILER} ${LIBS} ${FLAGS} ${DEBUG} -o ${BINARIES}/test ${SOURCES}/test.c
-               @echo -e -n "Building test program for 'StarDictEngine' finished.\n"
-               
-check: test
-               @run-standalone.sh ${BINARIES}/test
-
-
-library: ${BINARIES}/engine_stardict.o                 
-               @${COMPILER} ${DEBUG} -shared -fPIC ${FLAGS} ${LIBS} ${BINARIES}/engine_stardict.o \
-               ${PRECOMPILED}/`arch`/*.o -o ${BINARIES}/engine_stardict.so
-               @cp ${BINARIES}/engine_stardict.so ${MAIN_BINARIES}
-               @echo -e -n "'StarDictEngine' build finished.\n"
-                       
-${BINARIES}/engine_stardict.o: ${SOURCES}/engine_stardict.c
-               @${COMPILER} ${DEBUG} ${FLAGS} -c -fPIC ${SOURCES}/engine_stardict.c -o ${BINARIES}/engine_stardict.o
-       
-       
-final: clean
-               @${COMPILER} -DNOLOGS -Wall -O3 ${FLAGS} -c -fPIC ${SOURCES}/engine_stardict.c -o ${BINARIES}/engine_stardict.o
-               @${COMPILER} -DNOLOGS -Wall -g -shared -fPIC ${FLAGS} ${LIBS} ${BINARIES}/engine_stardict.o \
-               ${SOURCES}/`arch`/*.o -o ${BINARIES}/engine_stardict.so
-               @cp ${BINARIES}/engine_stardict.so ../bin
-               @echo -e -n "'StarDictEngine' build finished. (Final version - optimized)\n"
-       
-       
-       
-       
-       
-       
-       
\ No newline at end of file
diff --git a/src/plugins/stardict/autogen.sh b/src/plugins/stardict/autogen.sh
deleted file mode 100755 (executable)
index 6b00028..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-rm -rf compile config.sub config.guess depcomp install-sh ltmain.sh missing aclocal.m4  autom4te.cache/ Makefile.in configure
-rm config.log config.status libtool Makefile
-
-rm -rf src/.libs src/*.la src/.lo src/.deps src/*.o src/*.lo src/Makefile src/Makefile.in
-
-#[ "_""$1" != "_nogen" ] && aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake
-
-[ "_""$1" != "_nogen" ] && ( aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake )
diff --git a/src/plugins/stardict/configure.ac b/src/plugins/stardict/configure.ac
deleted file mode 100644 (file)
index fdbc507..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-AC_INIT([src/engine_stardict.c])
-AC_CONFIG_AUX_DIR([.])
-
-AM_INIT_AUTOMAKE(stardict, 1.0)
-
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.0)
-PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= 2.0)
-PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0 >= 2.0)
-
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-
-AC_SUBST(GMODULE_CFLAGS)
-AC_SUBST(GMODULE_LIBS)
-
-AC_SUBST(GNOMEVFS_CFLAGS)
-AC_SUBST(GNOMEVFS_LIBS)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-AM_PROG_LIBTOOL
-
-AC_OUTPUT([  Makefile 
-                          src/Makefile])
\ No newline at end of file
diff --git a/src/plugins/stardict/doc/DICTFILE_FORMAT b/src/plugins/stardict/doc/DICTFILE_FORMAT
deleted file mode 100755 (executable)
index 17f84fc..0000000
+++ /dev/null
@@ -1,465 +0,0 @@
-Format for StarDict dictionary files
-------------------------------------
-
-StarDict homepage: http://stardict.sourceforge.net
-
-{0}. Number and Byte-order Conventions
-When you record the numbers that identify sizes, offsets, etc., you
-should use 32-bit numbers, such as you might represent with a glong.
-
-In order to make StarDict work on different platforms, these numbers
-must be in network byte order.  You can ensure the correct byte order
-by using the g_htonl() function when creating dictionary files.
-Conversely, you should use g_ntohl() when reading dictionary files.
-
-Strings should be encoded in UTF-8.
-
-
-{1}. Files
-Every dictionary consists of these files:
-(1). somedict.ifo
-(2). somedict.idx or somedict.idx.gz
-(3). somedict.dict or somedict.dict.dz
-(4). somedict.syn (optional)
-
-You can use gzip -9 to compress the .idx file. If the .idx file are not 
-compressed, the loading can be fast and save memory when using, compress it 
-will make the .idx file load into memory and make the quering become faster 
-when using.
-
-You can use dictzip to compress the .dict file.
-"dictzip" uses the same compression algorithm and file format as does gzip, 
-but provides a table that can be used to randomly access compressed blocks 
-in the file.  The use of 50-64kB blocks for compression typically degrades 
-compression by less than 10%, while maintaining acceptable random access 
-capabilities for all data in the file.  As an added benefit, files 
-compressed with dictzip can be decompressed with gunzip.
-For more information about dictzip, refer to DICT project, please see:
-http://www.dict.org
-
-When you create a dictionary, you should use .idx and .dict.dz in normal 
-case.
-
-Stardict will search for the .ifo file, then open the .idx or 
-.idx.gz file and the .dict.dz or .dict file which is in the same directory and 
-has the same base name.
-
-
-
-{2}. The ".ifo" file's format.
-The .ifo file has the following format:
-
-StarDict's dict ifo file
-version=2.4.2
-[options]
-
-Note that the current "version" string must be "2.4.2".  If it's not,
-then StarDict will refuse to read the file.
-
-[options]
----------
-In the example above, [options] expands to any of the following lines
-specifying information about the dictionary.  Each option is a keyword
-followed by an equal sign, then the value of that option, then a
-newline.  The options may be appear in any order.
-
-Note that the dictionary must have at least a bookname, a wordcount and a 
-idxfilesize, or the load will fail.  All other information is optional.  All 
-strings should be encoded in UTF-8.
-
-Available options:
-
-bookname=      // required
-wordcount=     // required
-synwordcount=  // required if ".syn" file exists.
-idxfilesize=   // required
-author=
-email=
-website=
-description=
-date=
-sametypesequence= // very important.
-
-
-wordcount is the count of word entries in .idx file, it must be right.
-
-idxfilesize is the size(in bytes) of the .idx file, even the .idx is compressed 
-to a .idx.gz file, this entry must record the original .idx file's size, and it 
-must be right too. The .gz file don't contain its original size information, 
-but knowing the original size can speed up the extraction to memory, as you 
-don't need to call realloc() for many times.
-
-
-The "sametypesequence" option is described in further detail below.
-
-***
-sametypesequence
-
-You should first familiarize yourself with the .dict file format
-described in the next section so that you can understand what effect
-this option has on the .dict file.
-
-If the sametypesequence option is set, it tells StarDict that each
-word's data in the .dict file will have the same sequence of datatypes.
-In this case, we expect a .dict file that's been optimized in two
-ways: the type identifiers should be omitted, and the size marker for
-the last data entry of each word should be omitted.
-
-Let's consider some concrete examples of the sametypesequence option.
-
-Suppose that a dictionary records many .wav files, and so sets:
-        sametypesequence=W
-In this case, each word's entry in the .dict file consists solely of a
-wav file.  In the .dict file, you would leave out the 'W' character
-before each entry, and you would also omit the 32-bit integer at the
-front of each .wav entry that would normally give the entry's length.
-You can do this since the length is known from the information in the
-idx file.
-
-As another example, suppose a dictionary contains phonetic information
-and a meaning for each word.  The sametypesequence option for this
-dictionary would be:
-        sametypesequence=tm
-Once again, you can omit the 't' and 'm' characters before each data
-entry in the .dict file.  In addition, you should omit the terminating
-'\0' for the 'm' entry for each word in the .dict file, as the length
-of the meaning string can be inferred from the length of the phonetic
-string (still indicated by a terminating '\0') and the length of the
-entire word entry (listed in the .idx file).
-
-So for cases where the last data entry for each word normally requires
-a terminating '\0' character, you should omit this character in the
-dict file.  And for cases where the last data entry for each word
-normally requires an initial 32-bit number giving the length of the
-field (such as WAV and PNG entries), you must omit this number in the
-dictionary.
-
-Every dictionary should try to use the sametypesequence feature to
-save disk space.
-***
-
-
-{3}. The ".idx" file's format.
-The .idx file is just a word list.
-
-The word list is a sorted list of word entries.
-
-Each entry in the word list contains three fields, one after the other:
-     word_str;  // a utf-8 string terminated by '\0'.
-     word_data_offset;  // word data's offset in .dict file
-     word_data_size;  // word data's total size in .dict file     
-
-word_str gives the string representing this word.  It's the string
-that is "looked up" by the StarDict.
-
-Two or more entries may have the same "word_str" with different 
-word_data_offset and word_data_size. This may be useful for some 
-dictionaries. But this feature is only well supported by 
-StarDict-2.4.8 and newer.
-
-The length of "word_str" should be less than 256. In other words, 
-(strlen(word) < 256).
-
-word_data_offset and word_data_size should both be 32-bit unsigned numbers 
-in network byte order.
-
-It is possible the different word_str have the same word_data_offset and 
-word_data_size, so multiple word index point to the same definition.
-But this is not recommended, for mutiple words have the same definition, 
-you may create a ".syn" file for them, see section 4 below.
-
-The word list must be sorted by calling stardict_strcmp() on the "word_str" 
-fields.  If the word list order is wrong, StarDict will fail to function 
-correctly!
-
-============
-gint stardict_strcmp(const gchar *s1, const gchar *s2)
-{
-       gint a;
-       a = g_ascii_strcasecmp(s1, s2);
-       if (a == 0)
-               return strcmp(s1, s2);
-       else
-               return a;
-}
-============
-g_ascii_strcasecmp() is a glib function:
-Unlike the BSD strcasecmp() function, this only recognizes standard 
-ASCII letters and ignores the locale, treating all non-ASCII characters 
-as if they are not letters.
-
-stardict_strcmp() works fine with English characters, but the other
-locale characters' sorting is not so good, in this case, you can enable 
-the collation feature, see section 6.
-
-
-{4}. The ",syn" file's format.
-This file is optional, and you should notice tree dictionary needn't this file.
-Only StarDict-2.4.8 and newer support this file.
-
-The .syn file contains information for synonyms, that means, when you input a 
-synonym, StarDict will search another word that related to it.
-
-The format is simple. Each item contain one string and a number.
-synonym_word;  // a utf-8 string terminated by '\0'.
-original_word_index; // original word's index in .idx file.
-Then other items without separation.
-When you input synonym_word, StarDict will search original_word;
-
-The length of "synonym_word" should be less than 256. In other 
-words, (strlen(word) < 256).
-original_word_index is a 32-bit unsigned number in network byte order.
-Two or more items may have the same "synonym_word" with different 
-original_word_index.
-The items must be sorted by stardict_strcmp() with synonym_word.
-
-
-{5}. The offset cache file's format.
-StarDict-2.4.8 start to support cache files, this feature can speed up 
-loading and save memory as mmap() the cache file. The cache file names 
-are .idx.oft and .syn.oft, the format is:
-First a utf-8 string terminated by '\0', then many 32-bit numbers as 
-the wordoffset index, this index is sparse, and "ENTR_PER_PAGE=32", 
-they are not stored in network byte order.
-The string must begin with:
-=====
-StarDict's oft file
-version=2.4.8
-=====
-Then a line like this:
-url=/usr/share/stardict/dic/stardict-somedict-2.4.2/somedict.idx
-This line should have a ending '\n'.
-
-StarDict will try to create the .oft file at the same directory of 
-the .ifo file first, if failed, then try to create it at 
-~/.cache/stardict/, ~/.cache is get by g_get_user_cache_dir(). 
-If two or more dictionaries have the same file name, StarDict will 
-create somedict.idx.oft, somedict(2).idx.oft, somedict(3).idx.oft, 
-etc. for them respectively, each with different "url=" in the 
-beginning string.
-
-
-{6}. The collation file's format.
-StarDict-2.4.8 start to support collation, that sort the word 
-list by collate function. It will create collation file which 
-names .idx.clt and .syn.clt, the format is a little like offset 
-cache file:
-First a utf-8 string terminated by '\0', then many 32-bit numbers as
-the index that sorted by the collate function, they are not stored 
-in network byte order.
-The string must begin with:
-=====
-StarDict's clt file
-version=2.4.8
-=====
-Then two lines like this:
-url=/usr/share/stardict/dic/stardict-somedict-2.4.2/somedict.idx
-func=0
-The second line should have a ending '\n' too.
-
-StarDict support these collate functions currently:
-typedef enum {
-       UTF8_GENERAL_CI = 0,
-       UTF8_UNICODE_CI,
-       UTF8_BIN,
-       UTF8_CZECH_CI,
-       UTF8_DANISH_CI,
-       UTF8_ESPERANTO_CI,
-       UTF8_ESTONIAN_CI,
-       UTF8_HUNGARIAN_CI,
-       UTF8_ICELANDIC_CI,
-       UTF8_LATVIAN_CI,
-       UTF8_LITHUANIAN_CI,
-       UTF8_PERSIAN_CI,
-       UTF8_POLISH_CI,
-       UTF8_ROMAN_CI,
-       UTF8_ROMANIAN_CI,
-       UTF8_SLOVAK_CI,
-       UTF8_SLOVENIAN_CI,
-       UTF8_SPANISH_CI,
-       UTF8_SPANISH2_CI,
-       UTF8_SWEDISH_CI,
-       UTF8_TURKISH_CI,
-} CollateFunctions;
-These UTF8_*_CI functions comes from MySQL in fact.
-
-The file's locate path just like the .oft file.
-
-Notice, for "somedict.idx.gz" file, the corresponding collation 
-file is somedict.idx.clt, but not somedict.idx.gz.clt, the 
-"url=" is somedict.idx, not somedict.idx.gz. So after you gzip 
-the .idx file, StarDict needn't create the .clt file again.
-
-
-{7}. The ".dict" file's format.
-The .dict file is a pure data sequence, as the offset and size of each
-word is recorded in the corresponding .idx file.
-
-If the "sametypesequence" option is not used in the .ifo file, then
-the .dict file has fields in the following order:
-==============
-word_1_data_1_type; // a single char identifying the data type
-word_1_data_1_data; // the data
-word_1_data_2_type;
-word_1_data_2_data;
-...... // the number of data entries for each word is determined by
-       // word_data_size in .idx file
-word_2_data_1_type;
-word_2_data_1_data;
-......
-==============
-It's important to note that each field in each word indicates its
-own length, as described below.  The number of possible fields per
-word is also not fixed, and is determined by simply reading data until
-you've read word_data_size bytes for that word.
-
-
-Suppose the "sametypesequence" option is used in the .idx file, and
-the option is set like this:
-sametypesequence=tm
-Then the .dict file will look like this:
-==============
-word_1_data_1_data
-word_1_data_2_data
-word_2_data_1_data
-word_2_data_2_data
-......
-==============
-The first data entry for each word will have a terminating '\0', but
-the second entry will not have a terminating '\0'.  The omissions of
-the type chars and of the last field's size information are the
-optimizations required by the "sametypesequence" option described
-above.
-
-
-Type identifiers
-----------------
-Here are the single-character type identifiers that may be used with
-the "sametypesequence" option in the .idx file, or may appear in the
-dict file itself if the "sametypesequence" option is not used.
-
-Lower-case characters signify that a field's size is determined by a
-terminating '\0', while upper-case characters indicate that the data
-begins with a 32-bit unsigned integer that gives the length of the data
-field.
-
-'m'
-Word's pure text meaning.
-The data should be a utf-8 string ending with '\0'.
-
-'l'
-Word's pure text meaning.
-The data is NOT a utf-8 string, but is instead a string in locale
-encoding, ending with '\0'.  Sometimes using this type will save disk
-space, but its use is discouraged.
-
-'g'
-A utf-8 string which is marked up with the Pango text markup language.
-For more information about this markup language, See the "Pango
-Reference Manual."
-You might have it installed locally at:
-file:///usr/share/gtk-doc/html/pango/PangoMarkupFormat.html
-
-'t'
-English phonetic string.
-The data should be a utf-8 string ending with '\0'.
-
-Here are some utf-8 phonetic characters:
-θʃŋʧðʒæıʌʊɒɛəɑɜɔˌˈːˑṃṇḷ
-æɑɒʌәєŋvθðʃʒɚːɡˏˊˋ
-
-'x'
-A utf-8 string which is marked up with the xdxf language.
-See http://xdxf.sf.net
-
-'y'
-Chinese YinBiao or Japanese KANA.
-The data should be a utf-8 string ending with '\0'.
-
-'k'
-KingSoft PowerWord's data. The data is a utf-8 string ending with '\0'.
-It is in XML format.
-
-'w'
-MediaWiki markup language.
-See http://meta.wikimedia.org/wiki/Help:Editing#The_wiki_markup
-
-'W'
-wav file.
-The data begins with a network byte-ordered guint32 to identify the wav
-file's size, immediately followed by the file's content.
-
-'P'
-png file.
-The data begins with a network byte-ordered guint32 to identify the png
-file's size, immediately followed by the file's content.
-
-'X'
-this type identifier is reserved for experimental extensions.
-
-
-{8}. Tree Dictionary
-The tree dictionary support is used for information viewing, etc.
-
-A tree dictionary contains three file: sometreedict.ifo, sometreedict.tdx.gz 
-and sometreedict.dict.dz.
-
-It is better to compress the .tdx file, as it is always load into memory.
-
-The .ifo file has the following format:
-
-StarDict's treedict ifo file
-version=2.4.2
-[options]
-
-Available options:
-
-bookname=      // required
-tdxfilesize=   // required
-wordcount=
-author=
-email=
-website=
-description=
-date=
-sametypesequence=
-
-wordcount is only used for info view in the dict manage dialog, so it is not 
-important in tree dictionary.
-
-The .tdx file is just the word list.
------------
-The word list is a tree list of word entries.
-
-Each entry in the word list contains four fields, one after the other:
-     word_str;  // a utf-8 string terminated by '\0'.
-     word_data_offset;  // word data's offset in .dict file
-     word_data_size;  // word data's total size in .dict file. it can be 0.
-     word_subentry_count; //have many sub word this entry has, 0 means none.
-
-Subentry is immidiately followed by its parent entry. This make the order is 
-just as when a tree list with all its nodes extended, then sort from top to 
-bottom.
-
-word_data_offset, word_data_size and word_subentry_count should be 32-bit
-unsigned numbers in network byte order.
-
-The .dict file's format is the same as the normal dictionary.
-
-
-
-{9}. More information.
-You can read "src/lib.cpp", "src/dictmanagedlg.cpp" and
-"src/tools/*.cpp" for more information.
-
-After you have build a dictionary, you can use "stardict_verify" to verify the 
-dictionary files. You can find it at "src/tools/".
-
-If you have any questions, email me. :)
-
-Thanks to Will Robinson <wsr23@stanford.edu> for cleaning up this file's
-English.
-
-Hu Zheng <huzheng_001@163.com>
-http://forlinux.yeah.net
-2006.6.15
diff --git a/src/plugins/stardict/include/data.h b/src/plugins/stardict/include/data.h
deleted file mode 100644 (file)
index fdb4ec9..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* data.h -- 
- * Created: Sat Mar 15 18:04:25 2003 by Aleksey Cheusov <vle@gmx.net>
- * Copyright 1994-2003 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: data.h,v 1.1 2003/03/19 16:43:15 cheusov Exp $
- */
-
-#ifndef _DATA_H_
-#define _DATA_H_
-
-//#include "dictP.h"
-#include "defs.h"
-
-/* initialize .data file */
-extern dictData *dict_data_open (
-   const char *filename, int computeCRC);
-/* */
-extern void dict_data_close (
-   dictData *data);
-
-//extern void     dict_data_print_header( FILE *str, dictData *data );
-extern int      dict_data_zip(
-   const char *inFilename, const char *outFilename,
-   const char *preFilter, const char *postFilter );
-#ifdef ORIGINAL_DICTZIP
-extern char *dict_data_obtain (
-   const dictDatabase *db,
-   const dictWord *dw);
-#endif
-extern char *dict_data_read_ (
-   dictData *data,
-   unsigned long start, unsigned long end,
-   const char *preFilter,
-   const char *postFilter );
-#ifdef ORIGINAL_DICTZIP
-extern int   dict_data_filter(
-   char *buffer, int *len, int maxLength,
-   const char *filter );
-
-extern int        mmap_mode;
-#endif
-
-#endif /* _DATA_H_ */
diff --git a/src/plugins/stardict/include/defs.h b/src/plugins/stardict/include/defs.h
deleted file mode 100644 (file)
index e93a603..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/* defs.h -- 
- * Created: Sat Mar 15 17:27:23 2003 by Aleksey Cheusov <vle@gmx.net>
- * Copyright 1994-2003 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: defs.h,v 1.11 2005/03/29 17:55:50 cheusov Exp $
- */
-
-#ifndef _DEFS_H_
-#define _DEFS_H_
-
-//#include "dictP.h"
-//#include "dictdplugin.h"
-
-#include <zlib.h>
-//#include <maa.h>
-
-                               /* Configurable things */
-
-#define DICT_DEFAULT_SERVICE     "2628"        /* Also in dict.h */
-#define DICTD_CONFIG_NAME        "dictd.conf"
-#define DICT_QUEUE_DEPTH         10
-#define DICT_DEFAULT_DELAY       600 /* 10 minute timeout */
-#define DICT_DAEMON_LIMIT        100 /* maximum simultaneous daemons */
-#define DICT_PERSISTENT_PRESTART 3 /* not implemented */
-#define DICT_PERSISTENT_LIMIT    5 /* not implemented */
-
-#define DICT_ENTRY_PREFIX        "00-database"
-#define DICT_ENTRY_PREFIX_LEN    sizeof(DICT_ENTRY_PREFIX)-1
-#define DICT_SHORT_ENTRY_NAME    DICT_ENTRY_PREFIX"-short"
-#define DICT_LONG_ENTRY_NAME     DICT_ENTRY_PREFIX"-long"
-#define DICT_INFO_ENTRY_NAME     DICT_ENTRY_PREFIX"-info"
-
-#define DICT_FLAG_UTF8           DICT_ENTRY_PREFIX"-utf8"
-#define DICT_FLAG_8BIT_NEW       DICT_ENTRY_PREFIX"-8bit-new"
-#define DICT_FLAG_8BIT_OLD       DICT_ENTRY_PREFIX"-8bit"
-#define DICT_FLAG_ALLCHARS       DICT_ENTRY_PREFIX"-allchars"
-#define DICT_FLAG_VIRTUAL        DICT_ENTRY_PREFIX"-virtual"
-#define DICT_FLAG_ALPHABET       DICT_ENTRY_PREFIX"-alphabet"
-#define DICT_FLAG_DEFAULT_STRAT  DICT_ENTRY_PREFIX"-default-strategy"
-#define DICT_FLAG_MIME_HEADER    DICT_ENTRY_PREFIX"-mime-header"
-
-#define DICT_ENTRY_PLUGIN        DICT_ENTRY_PREFIX"-plugin"
-#define DICT_ENTRY_PLUGIN_DATA   DICT_ENTRY_PREFIX"-plugin-data"
-
-#define DICT_PLUGINFUN_OPEN      "dictdb_open"
-#define DICT_PLUGINFUN_ERROR     "dictdb_error"
-#define DICT_PLUGINFUN_FREE      "dictdb_free"
-#define DICT_PLUGINFUN_SEARCH    "dictdb_search"
-#define DICT_PLUGINFUN_CLOSE     "dictdb_close"
-#define DICT_PLUGINFUN_SET       "dictdb_set"
-
-                               /* End of configurable things */
-
-#define BUFFERSIZE 10240
-
-#define DBG_VERBOSE     (0<<30|1<< 0) /* Verbose                            */
-#define DBG_ZIP         (0<<30|1<< 1) /* Zip                                */
-#define DBG_UNZIP       (0<<30|1<< 2) /* Unzip                              */
-#define DBG_SEARCH      (0<<30|1<< 3) /* Search                             */
-#define DBG_SCAN        (0<<30|1<< 4) /* Config file scan                   */
-#define DBG_PARSE       (0<<30|1<< 5) /* Config file parse                  */
-#define DBG_INIT        (0<<30|1<< 6) /* Database initialization            */
-#define DBG_PORT        (0<<30|1<< 7) /* Log port number for connections    */
-#define DBG_LEV         (0<<30|1<< 8) /* Levenshtein matching               */
-#define DBG_AUTH        (0<<30|1<< 9) /* Debug authentication               */
-#define DBG_NODETACH    (0<<30|1<<10) /* Don't detach as a background proc. */
-#define DBG_NOFORK      (0<<30|1<<11) /* Don't fork (single threaded)       */
-#define DBG_ALT         (0<<30|1<<12) /* altcompare()                      */
-
-#define LOG_SERVER      (0<<30|1<< 0) /* Log server diagnostics             */
-#define LOG_CONNECT     (0<<30|1<< 1) /* Log connection information         */
-#define LOG_STATS       (0<<30|1<< 2) /* Log termination information        */
-#define LOG_COMMAND     (0<<30|1<< 3) /* Log commands                       */
-#define LOG_FOUND       (0<<30|1<< 4) /* Log words found                    */
-#define LOG_NOTFOUND    (0<<30|1<< 5) /* Log words not found                */
-#define LOG_CLIENT      (0<<30|1<< 6) /* Log client                         */
-#define LOG_HOST        (0<<30|1<< 7) /* Log remote host name               */
-#define LOG_TIMESTAMP   (0<<30|1<< 8) /* Log with timestamps                */
-#define LOG_MIN         (0<<30|1<< 9) /* Log a few minimal things           */
-#define LOG_AUTH        (0<<30|1<<10) /* Log authentication denials         */
-
-#define DICT_LOG_TERM    0
-#define DICT_LOG_DEFINE  1
-#define DICT_LOG_MATCH   2
-#define DICT_LOG_NOMATCH 3
-#define DICT_LOG_CLIENT  4
-#define DICT_LOG_TRACE   5
-#define DICT_LOG_COMMAND 6
-#define DICT_LOG_AUTH    7
-#define DICT_LOG_CONNECT 8
-
-#define DICT_UNKNOWN    0
-#define DICT_TEXT       1
-#define DICT_GZIP       2
-#define DICT_DZIP       3
-
-#define DICT_CACHE_SIZE 5
-
-typedef struct dictCache {
-   int           chunk;
-   char          *inBuffer;
-   int           stamp;
-   int           count;
-} dictCache;
-
-typedef struct dictData {
-   int           fd;           /* file descriptor */
-   const char    *start;       /* start of mmap'd area */
-   const char    *end;         /* end of mmap'd area */
-   unsigned long size;         /* size of mmap */
-   
-   int           type;
-   const char    *filename;
-   z_stream      zStream;
-   int           initialized;
-
-   int           headerLength;
-   int           method;
-   int           flags;
-   time_t        mtime;
-   int           extraFlags;
-   int           os;
-   int           version;
-   int           chunkLength;
-   int           chunkCount;
-   int           *chunks;
-   unsigned long *offsets;     /* Sum-scan of chunks. */
-   const char    *origFilename;
-   const char    *comment;
-   unsigned long crc;
-   unsigned long length;
-   unsigned long compressedLength;
-   dictCache     cache[DICT_CACHE_SIZE];
-} dictData;
-
-typedef struct dictPlugin {
-   void *      data;
-
-#ifdef USE_PLUGIN
-/*   lt_dlhandle handle;
-
-   dictdb_open_type   dictdb_open;
-   dictdb_set_type    dictdb_set;
-   dictdb_search_type dictdb_search;
-   dictdb_free_type   dictdb_free;
-   dictdb_error_type  dictdb_error;
-   dictdb_close_type  dictdb_close;
-
-   char dictdb_free_called; *//* 1 after dictdb_free call */
-#endif
-} dictPlugin;
-
-typedef struct dictIndex {
-   int           fd;            /* file descriptor */
-   const char    *start;        /* start of mmap'd area */
-   const char    *end;          /* end of mmap'd area */
-   unsigned long size;          /* size of mmap */
-   const char    *optStart[UCHAR_MAX+2]; /* Optimized starting points */
-   unsigned long headwords;     /* computed number of headwords */
-
-   int    flag_utf8;         /* not zero if it has 00-database-utf8 entry*/
-   int    flag_8bit;         /* not zero if it has 00-database-8bit-new entry*/
-   int    flag_allchars;     /* not zero if it has 00-database-allchars entry*/
-
-   const int     *isspacealnum;
-} dictIndex;
-
-#ifdef ORIGINAL_DICTZIP
-
-typedef struct dictDatabase {
-   const char *databaseName;
-   const char *databaseShort;
-   const char *databaseInfo;
-   const char *dataFilename;
-   const char *indexFilename;
-   const char *indexsuffixFilename;
-   const char *indexwordFilename;
-   const char *filter;
-   const char *prefilter;
-   const char *postfilter;
-   lst_List   acl;
-   int        available;       /* if user has authenticated for database */
-
-   dictData   *data;
-   dictIndex  *index;
-   dictIndex  *index_suffix;
-   dictIndex  *index_word;
-
-   int        *strategy_disabled; /* disable_strategy keyword*/
-
-   lst_List   *virtual_db_list;
-
-   char *alphabet;
-
-   int invisible;    /* non-zero for invisible databases */
-
-   int exit_db;      /* non-zero for dictionary_exit entry */
-   int virtual_db;   /* non-zero for virtual databases */
-   int plugin_db;    /* non-zero for plugin entry */
-   int normal_db;    /* non-zero for normal database */
-   int mime_db;      /* non-zero for MIME database */
-
-   int default_strategy;    /* default search strategy for `.' */
-
-   const char *mime_header; /* MIME header for OPTION MIME command */
-
-   /* database_virtual members */
-   const char *database_list;  /* comma-separated list of database names */
-
-   /* database_plugin members */
-   const char *pluginFilename;
-   const char *plugin_data;    /* data for initializing plugin */
-   dictPlugin *plugin;
-
-   /* database_mime members */
-   const char *mime_mimeDbname;
-   const char *mime_nomimeDbname;
-
-   struct dictDatabase *mime_mimeDB;
-   struct dictDatabase *mime_nomimeDB;
-} dictDatabase;
-
-#define DICT_DENY     0
-#define DICT_ALLOW    1
-#define DICT_AUTHONLY 2
-#define DICT_USER     3
-#define DICT_GROUP    4                /* Not implemented */
-#define DICT_MATCH    5         /* For IP matching routines */
-#define DICT_NOMATCH  6         /* For IP matching routines */
-
-typedef struct dictAccess {
-   int        type;            /* deny, allow, accessonly, user, group */
-   const char *spec;
-} dictAccess;
-
-typedef struct dictConfig {
-   lst_List      acl;          /* type dictAccess */
-   lst_List      dbl;          /* type dictDatabase */
-   hsh_HashTable usl;          /* username/shared-secret list */
-   const char    *site;
-} dictConfig;
-
-typedef struct dictWord {
-   const dictDatabase  *database;
-   const dictDatabase  *database_visible;
-
-   char    *word;
-
-   unsigned long start;
-   unsigned long end;
-
-/* Used by plugins */
-   const char    *def;
-   int            def_size;
-} dictWord;
-
-typedef struct dictToken {
-   const char   *string;
-   int          integer;
-   src_Type     src;
-} dictToken;
-
-#endif
-
-#endif /* _DEFS_H_ */
diff --git a/src/plugins/stardict/include/dictP.h b/src/plugins/stardict/include/dictP.h
deleted file mode 100644 (file)
index 6a3a3c4..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-
-/* dictP.h -- 
- * Created: Fri Mar  7 10:54:05 1997 by faith@dict.org
- * Revised: Fri Dec 22 06:06:33 2000 by faith@dict.org
- * Copyright 1997, 1999, 2000 Rickard E. Faith (faith@dict.org)
- * This program comes with ABSOLUTELY NO WARRANTY.
- * 
- * 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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * $Id: dictP.h,v 1.22 2005/09/05 18:00:02 cheusov Exp $
- * 
- */
-
-#ifndef _DICTP_H_
-#define _DICTP_H_
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#if  defined(__INTERIX) || defined(__OPENNT)
-#ifndef _ALL_SOURCE
-#define _ALL_SOURCE
-#endif /* _ALL_SOURCE */
-#endif /* __OPENNT */
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/utsname.h>
-#include <sys/wait.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#if defined(HAVE_WCTYPE_H) && defined(SYSTEM_UTF8_FUNCS)
-#include <wctype.h>
-#endif
-
-#ifdef HAVE_CTYPE_H
-#include <ctype.h>
-#endif
-
-#ifndef __GNUC__
-#define __FUNCTION__ __FILE__
-#endif
-
-/* AIX requires this to be the first thing in the file.  */
-#if defined(__svr4__) && defined(__sgi__) && !HAVE_ALLOCA_H /* IRIX */
-# undef HAVE_ALLOCA_H
-# define HAVE_ALLOCA_H 1
-#endif
-
-#ifndef HAVE_ALLOCA
-#if HAVE_ALLOCA_H
-# include <alloca.h>
-#else
-# ifdef _AIX
-# pragma alloca
-# else
-#  ifndef alloca /* predefined by HP cc +Olibcalls */
-#  if !defined(__svr4__) && !defined(__sgi__)  /* not on IRIX */
-    char *alloca ();
-#  endif
-#  endif
-# endif
-#endif
-#endif
-
-/* Get string functions */
-#if STDC_HEADERS
-# include <string.h>
-#else
-# if HAVE_STRINGS_H
-#  include <strings.h>
-# endif
-# if !HAVE_STRCHR
-#  define strchr index
-#  define strrchr rindex
-# endif
-# if !HAVE_MEMCPY
-#  define memcpy(d, s, n) bcopy ((s), (d), (n))
-#  define memmove(d, s, n) bcopy ((s), (d), (n))
-# endif
-#endif
-
-#if HAVE_SIZE_T
-#include <stddef.h>
-#else
-typedef unsigned int size_t;
-#endif
-
-#if !HAVE_STRDUP
-extern char *strdup( const char * );
-#endif
-
-#if !HAVE_STRTOL
-extern long strtol( const char *, char **, int );
-#endif
-
-#if !HAVE_STRTOUL
-extern unsigned long int strtoul( const char *, char **, int );
-#endif
-
-#if !HAVE_SNPRINTF
-extern int snprintf(char *str, size_t size, const char *format, ...);
-#endif
-
-#if !HAVE_VSNPRINTF
-#include <stdarg.h>
-extern int vsnprintf(char *str, size_t size, const char *format, va_list ap);
-#endif
-
-#if !HAVE_INET_ATON
-#define inet_aton(a,b) (b)->s_addr = inet_addr(a)
-#endif
-
-#if HAVE_WINT_T
-#include <wchar.h>
-#else
-typedef unsigned int wint_t;
-#endif
-
-#if !HAVE_ISWALNUM
-extern int iswalnum__ (wint_t wc);
-#else
-#define iswalnum__ iswalnum
-#endif
-
-#if !HAVE_ISWSPACE
-extern int iswspace__ (wint_t wc);
-#else
-#define iswspace__ iswspace
-#endif
-
-#if !HAVE_TOWLOWER
-extern wint_t towlower__ (wint_t wc);
-#else
-#define towlower__ towlower
-#endif
-
-#if HAVE_WCHAR_T
-#include <stddef.h>
-#else
-typedef unsigned int wchar_t;
-#endif
-
-#if HAVE_DECL_CODESET
-#include <langinfo.h>
-#else
-extern const char * nl_langinfo (int ITEM);
-#define CODESET 1234
-#endif
-
-#ifndef SYSTEM_UTF8_FUNCS
-#define MB_CUR_MAX__ 6
-#else
-#define MB_CUR_MAX__ MB_CUR_MAX
-#endif
-
-#if HAVE_MBSTATE_T
-#include <wchar.h>
-#else
-typedef char mbstate_t;
-#endif
-
-#if !HAVE_STRLCPY
-extern size_t strlcpy (char *s, const char * wc, size_t size);
-#endif
-
-#if !HAVE_STRLCAT
-size_t strlcat(char *dst, const char *src, size_t siz);
-#endif
-
-#if !HAVE_WCRTOMB
-extern size_t wcrtomb__ (char *s, wchar_t wc, mbstate_t *ps);
-#else
-#define wcrtomb__ wcrtomb
-#endif
-
-#if !HAVE_WCTOMB
-extern int wctomb__ (char *s, wchar_t wc);
-#else
-#define wctomb__ wctomb
-#endif
-
-#if !HAVE_MBRLEN
-extern size_t mbrlen__ (const char *s, size_t n, mbstate_t *ps);
-#else
-#define mbrlen__ mbrlen
-#endif
-
-#if !HAVE_MBRTOWC
-extern size_t mbrtowc__ (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);
-#else
-#define mbrtowc__ mbrtowc
-#endif
-
-#if !HAVE_MBSTOWCS
-extern size_t mbstowcs__ (wchar_t *dest, const char *src, size_t n);
-#else
-#define mbstowcs__ mbstowcs
-#endif
-
-#if !HAVE_SETENV
-extern int setenv(const char *name, const char *value, int overwrite);
-#endif
-
-#if !HAVE_MBTOWC
-extern int mbtowc__ (wchar_t *pwc, const char *s, size_t n);
-#else
-#define mbtowc__ mbtowc
-#endif
-
-#if !HAVE_WCWIDTH
-#define wcwidth__(x) (1)
-#endif
-
-#if !HAVE_INITGROUPS
-#define initgroups(a,b)
-#endif
-
-#if defined(HAVE_WAITPID) && !defined(HAVE_WAIT3)
-#define wait3(status,options,rusage) \
-        waitpid(-1, (status),(options))
-#endif
-
-#if USE_PLUGIN
-# if HAVE_DLFCN_H
-#  include <dlfcn.h>
-   typedef void *  lt_dlhandle;
-#  define lt_dlsym dlsym
-#  define lt_dlopen(filename) dlopen(filename, RTLD_NOW)
-#  define lt_dlclose dlclose
-#  define lt_dlerror dlerror
-# else
-#  include <ltdl.h>
-# endif
-#endif
-
-/* Get time functions */
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-/* Include some standard header files. */
-#include <stdio.h>
-#if HAVE_UNISTD_H
-# include <sys/types.h>
-# include <unistd.h>
-# include <stdlib.h>
-#endif
-
-/* Always use local (libmaa) getopt */
-#include <getopt.h>
-
-/* We actually need a few non-ANSI C things... */
-#if defined(__STRICT_ANSI__)
-extern char     *strdup( const char * );
-extern int      fileno( FILE *stream );
-extern FILE     *fdopen( int fildes, const char *mode );
-extern void     bcopy( const void *src, void *dest, int n );
-extern long int random( void );
-extern void     srandom( unsigned int );
-#endif
-
-#if HAVE_SYS_RESOURCE_H
-# include <sys/resource.h>
-#endif
-
-/* Provide assert() */
-#include <assert.h>
-
-/* Provide stdarg support */
-#include <stdarg.h>
-
-/* Provide networking stuff */
-#if HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-
-#include <netdb.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-/* Provide mmap stuff */
-#ifdef HAVE_MMAP
-#include <sys/mman.h>
-#endif
-
-/* System dependent declarations: Many brain damaged systems don't provide
-declarations for standard library calls.  We provide them here for
-situations that we know about. */
-#include "decl.h"
-
-#if HAVE_LIMITS_H
-#include <limits.h>
-#endif
-
-/* Handle getopt correctly */
-#if HAVE_GETOPT_H
-# include <getopt.h>
-#else
-#if !HAVE_GETOPT_LONG
-int getopt_long(int argc, char * const argv[],
-                  const char *optstring,
-                  const struct option *longopts, int *longindex);
-extern int  optind;
-extern char *optarg;
-#endif
-#endif
-
-                               /* Local stuff */
-#ifndef max
-#define max(a,b) ((a)>(b)?(a):(b))
-#endif
-
-#define HAVE_UTF8 1
-
-#endif /* _DICTP_H_ */
diff --git a/src/plugins/stardict/include/dictd.h b/src/plugins/stardict/include/dictd.h
deleted file mode 100644 (file)
index 0e68b9c..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* dictd.h -- Header file for dict program
- * Created: Fri Dec  2 20:01:18 1994 by faith@dict
- * Revised: Mon Apr 22 15:47:26 2002 by faith@dict.org
- * Copyright 1994-2000, 2002 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef _DICTD_H_
-#define _DICTD_H_
-
-#include "dictP.h"
-#include "maa.h"
-#include "codes.h"
-#include "defs.h"
-
-#include "net.h"
-#include <errno.h>
-
-#include <netdb.h>
-#include <signal.h>
-/*
-#ifdef __osf__
-#define _XOPEN_SOURCE_EXTENDED
-#endif
-#include <sys/wait.h>
-#include <grp.h>
-#include <arpa/inet.h>
-*/
-
-extern const char *daemon_service;
-extern int client_delay;
-extern int depth;
-extern int _dict_daemon_limit;
-extern int _dict_markTime;
-extern const char *logFile;
-extern const char *pidFile;
-extern int logOptions;
-extern const char *bind_to;
-extern int useSyslog;
-extern const char *logFile;
-
-extern int daemon_service_set;
-extern int logFile_set;
-extern int pidFile_set;
-extern int _dict_markTime_set;
-extern int client_delay_set;
-extern int depth_set;
-extern int _dict_daemon_limit_set;
-extern int syslog_facility_set;
-extern int locale_set;
-extern int default_strategy_set;
-extern int bind_to_set;
-
-
-
-
-extern void       dict_disable_strat (dictDatabase *db, const char* strat);
-
-extern void       dict_dump_list( lst_List list );
-extern void       dict_destroy_list( lst_List list );
-
-extern int        dict_destroy_datum( const void *datum );
-
-#ifdef USE_PLUGIN
-extern int        dict_plugin_open (dictDatabase *db);
-extern void       dict_plugin_close (dictDatabase *db);
-#endif
-
-/* dictd.c */
-
-extern void set_minimal (void);
-
-extern void       dict_initsetproctitle( int argc, char **argv, char **envp );
-extern void       dict_setproctitle( const char *format, ... );
-extern const char *dict_format_time( double t );
-extern const char *dict_get_hostname( void );
-extern const char *dict_get_banner( int shortFlag );
-
-extern dictConfig *DictConfig;  /* GLOBAL VARIABLE */
-extern int        _dict_comparisons; /* GLOBAL VARIABLE */
-extern int        _dict_forks; /* GLOBAL VARIABLE */
-extern const char *locale;
-
-extern const char *locale;
-extern       int   inetd;    /* 1 if --inetd is applied, 0 otherwise */
-
-/*
-  If the filename doesn't start with / or .,
-  it is prepended with DICT_DIR
-*/
-extern const char *postprocess_dict_filename (const char *fn);
-/*
-  If the filename doesn't start with / or .,
-  it is prepended with PLUGIN_DIR
-*/
-extern const char *postprocess_plugin_filename (const char *fn);
-
-/* daemon.c */
-
-extern int  dict_daemon( int s, struct sockaddr_in *csin, char ***argv0,
-                        int delay_, int error );
-extern int  dict_inetd( char ***argv0, int delay_, int error );
-extern void daemon_terminate( int sig, const char *name );
-
-/* */
-extern int        utf8_mode;
-
-                               /* dmalloc must be last */
-#ifdef DMALLOC_FUNC_CHECK
-# include "dmalloc.h"
-#endif
-
-#endif
diff --git a/src/plugins/stardict/include/dictzip.h b/src/plugins/stardict/include/dictzip.h
deleted file mode 100644 (file)
index 163cc26..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/* dictzip.h -- Header file for dict program
- * Created: Fri Dec  2 20:01:18 1994 by faith@dict.org
- * Revised: Fri Dec 22 06:06:31 2000 by faith@dict.org
- * Copyright 1994, 1995, 1996, 1997, 2000 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef _DICTZIP_H_
-#define _DICTZIP_H_
-
-//#include "maa.h"
-#include <zlib.h>
-//#include "dictd.h"
-
-                               /* End of configurable things */
-
-#define BUFFERSIZE 10240
-#define DBG_VERBOSE     (0<<30|1<< 0) /* Verbose                           */
-#define DBG_ZIP         (0<<30|1<< 1) /* Zip                               */
-#define DBG_UNZIP       (0<<30|1<< 2) /* Unzip                             */
-#define DBG_SEARCH      (0<<30|1<< 3) /* Search                            */
-#define DBG_SCAN        (0<<30|1<< 4) /* Config file scan                  */
-#define DBG_PARSE       (0<<30|1<< 5) /* Config file parse                 */
-#define DBG_INIT        (0<<30|1<< 6) /* Database initialization           */
-
-#define HEADER_CRC 0           /* Conflicts with gzip 1.2.4               */
-
-/* Use of the FEXTRA fields.  The FEXTRA area can be 0xffff bytes long, 2
-   bytes of which are used for the subfield ID, and 2 bytes of which are
-   used for the subfield length.  This leaves 0xfffb bytes (0x7ffd 2-byte
-   entries or 0x3ffe 4-byte entries).  Given that the zip output buffer must
-   be 10% + 12 bytes larger than the input buffer, we can store 58969 bytes
-   per entry, or about 1.8GB if the 2-byte entries are used.  If this
-   becomes a limiting factor, another format version can be selected and
-   defined for 4-byte entries. */
-
-
-                               /* Output buffer must be greater than or
-                                   equal to 110% of input buffer size, plus
-                                   12 bytes. */
-#define OUT_BUFFER_SIZE 0xffffL
-
-#define IN_BUFFER_SIZE ((unsigned long)((double)(OUT_BUFFER_SIZE - 12) * 0.89))
-
-#define PREFILTER_IN_BUFFER_SIZE (IN_BUFFER_SIZE * 0.89)
-
-
-/* For gzip-compatible header, as defined in RFC 1952 */
-
-                               /* Magic for GZIP (rfc1952)                */
-#define GZ_MAGIC1     0x1f     /* First magic byte                        */
-#define GZ_MAGIC2     0x8b     /* Second magic byte                       */
-
-                               /* FLaGs (bitmapped), from rfc1952         */
-#define GZ_FTEXT      0x01     /* Set for ASCII text                      */
-#define GZ_FHCRC      0x02     /* Header CRC16                            */
-#define GZ_FEXTRA     0x04     /* Optional field (random access index)    */
-#define GZ_FNAME      0x08     /* Original name                           */
-#define GZ_COMMENT    0x10     /* Zero-terminated, human-readable comment */
-#define GZ_MAX           2     /* Maximum compression                     */
-#define GZ_FAST          4     /* Fasted compression                      */
-
-                               /* These are from rfc1952                  */
-#define GZ_OS_FAT        0     /* FAT filesystem (MS-DOS, OS/2, NT/Win32) */
-#define GZ_OS_AMIGA      1     /* Amiga                                   */
-#define GZ_OS_VMS        2     /* VMS (or OpenVMS)                        */
-#define GZ_OS_UNIX       3      /* Unix                                    */
-#define GZ_OS_VMCMS      4      /* VM/CMS                                  */
-#define GZ_OS_ATARI      5      /* Atari TOS                               */
-#define GZ_OS_HPFS       6      /* HPFS filesystem (OS/2, NT)              */
-#define GZ_OS_MAC        7      /* Macintosh                               */
-#define GZ_OS_Z          8      /* Z-System                                */
-#define GZ_OS_CPM        9      /* CP/M                                    */
-#define GZ_OS_TOPS20    10      /* TOPS-20                                 */
-#define GZ_OS_NTFS      11      /* NTFS filesystem (NT)                    */
-#define GZ_OS_QDOS      12      /* QDOS                                    */
-#define GZ_OS_ACORN     13      /* Acorn RISCOS                            */
-#define GZ_OS_UNKNOWN  255      /* unknown                                 */
-
-#define GZ_RND_S1       'R'    /* First magic for random access format    */
-#define GZ_RND_S2       'A'    /* Second magic for random access format   */
-
-#define GZ_ID1           0     /* GZ_MAGIC1                               */
-#define GZ_ID2           1     /* GZ_MAGIC2                               */
-#define GZ_CM            2     /* Compression Method (Z_DEFALTED)         */
-#define GZ_FLG          3      /* FLaGs (see above)                       */
-#define GZ_MTIME         4     /* Modification TIME                       */
-#define GZ_XFL           8     /* eXtra FLags (GZ_MAX or GZ_FAST)         */
-#define GZ_OS            9     /* Operating System                        */
-#define GZ_XLEN         10     /* eXtra LENgth (16bit)                    */
-#define GZ_FEXTRA_START 12     /* Start of extra fields                   */
-#define GZ_SI1          12     /* Subfield ID1                            */
-#define GZ_SI2          13      /* Subfield ID2                            */
-#define GZ_SUBLEN       14     /* Subfield length (16bit)                 */
-#define GZ_VERSION      16      /* Version for subfield format             */
-#define GZ_CHUNKLEN     18     /* Chunk length (16bit)                    */
-#define GZ_CHUNKCNT     20     /* Number of chunks (16bit)                */
-#define GZ_RNDDATA      22     /* Random access data (16bit)              */
-
-#define DICT_UNKNOWN    0
-#define DICT_TEXT       1
-#define DICT_GZIP       2
-#define DICT_DZIP       3
-
-
-#endif
diff --git a/src/plugins/stardict/include/engine API.h b/src/plugins/stardict/include/engine API.h
deleted file mode 100755 (executable)
index 86b40da..0000000
+++ /dev/null
@@ -1,898 +0,0 @@
-/*******************************************************************************
-This file is part of WhiteStork.
-
-WhiteStork 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.
-
-WhiteStork 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 WhiteStork; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-#ifndef   _DICTIONARY_ENGINE_BASE
-#define   _DICTIONARY_ENGINE_BASE
-
-#ifdef    __cplusplus
-       extern "C" {
-#endif
-
-
-//______________________________________________________________________________
-// *****************************************************************************
-//************************************************************* HEADERS SECTION:
-//------------------------------------------------------------------------------
-// header with gnu library for C - most of types and functions needed it (all
-// started from g* and g_*().
-#include <glib.h>
-//------------------------------------------------------------------------------
-
-#define _GLOBAL_FUNCTIONS_NAME_ "engine_global_functions"
-
-//______________________________________________________________________________
-// *****************************************************************************
-//******************************************************* GLOBAL MACROS SECTION:
-//------------------------------------------------------------------------------
-/** \brief Checks if module is peaceable with concrete location.
- *
- * If user of engine module want to know if concrete module can handle concrete 
- * location, he can call <i>dict_eng_module_check()</i>and check the result 
- * of this function.
- *
- * @param module :: <b>EngineModule</b> - module engine which will be testing
- * @param location :: <b>gchar*</b> - location on wich engine will be testing
- * @return <i><b>gboolean</b></i> :: tells if location <i>location</i> can be 
- * handled by module <i>module</i>
- */
-#define         dict_eng_module_check(module,location)   \
-                        ( (module).engine_check( (location) ) )
-//------------------------------------------------------------------------------
-/** \brief Get short description of engine module.
- *
- * If there is need to present to the user of end programm some information 
- * about enigne he is using, we can call dict_eng_module_get_description() and
- * print/show the result of this call.
- *
- * @param module :: <b>EngineModule</b>- module engine which description we want
- * @return <i><b>gchar*</b></i> :: there is string, decribing module engine 
- * <i>module</i>, in this pointer. User should NOT free this pointer as it 
- * points to static table of chars
- */
-#define         dict_eng_module_get_description(module)   \
-                        ( (module).engine_description() )
-//------------------------------------------------------------------------------
-/** \brief Get version of engine module.
- *
- * Sometimes it could be useful to get know what version of engine module we are
- *  using. We can call this function to retrieve these informations from module.
- * Note that version information could be also placed in description of module, 
- * but here user will get only string representing version, what could be needed
- * in some situation (e.g.: if end-user will have two the same module, then 
- * programm has to decide which should be used, or ask user).
- *
- * @param module :: <b>EngineModule</b> - module engine which implementation 
- * version we want
- * @return <i><b>gchar*</b></i> :: pointer to string representing module 
- * <i>module</i>version. User should NOT free this pointer as it points to 
- * static table of chars
- */
-#define         dict_eng_module_get_version(module)   \
-                        ( (module).engine_version() )
-//------------------------------------------------------------------------------
-/** \brief Get format on which working engnine module.
- *
- * If we want to know on what dictionary format works current engine module, we 
- * can call this function. As a result we will retrieve string telling us what 
- * format-based is concrete engine module (e.g. XDXF, WordNet etc.).
- *
- * @param module :: <b>EngineModule</b> - engine module which dictionary format
- * we want to get
- * @return <i><b>gchar*</b></i> :: string representing format of dictionary on 
- * which module <i>module</i> can works. User should NOT free this pointer as 
- * it points to static table of chars
- */
-#define         dict_eng_module_get_format(module)   \
-                        ( (module).engine_version() )
-//------------------------------------------------------------------------------
-/** \brief Open concrete dictionary.
- *
- * This functions opens location (this could mean: filename, URL, any other way 
- * to specify concrete localization of dictionary database). To be more sure 
- * that this function will be sucefull, user can call before 
- * dict_eng_module_check() to check if this module can handle dictionary under 
- * passed location. But this do not warrant that calling 
- * dict_eng_module_create() will not fail. User should check the result of 
- * function to be sure that everything was ok.
- *
- * @param module :: <b>EngineModule</b> - engine module which should be used to 
- * open location <i>location</i>
- * @param location :: <b>gchar*</b> - location of dictionary database (file, 
- * directory, URL etc.)
- * @param flags :: <b>EngineOptimizationFlag</b> - flags defines how program 
- * shoud automaticlly use optimization methods for opened dictionary
- * @return <i><b>Engine*</b></i> :: pointer to new enigne structure; After use, 
- * if this structure will not be needed anymore, user should call 
- * dict_eng_destroy() to free memory
- * \sa EngineOptimizationFlag :|: dict_eng_module_check() :|: EngineModule :|: 
- * Engine
-*/
-#define         dict_eng_module_create(module,location,flags)   \
-        ( (module).engine_create(  (location), (flags), NULL, NULL, 0.01 ) )
-//------------------------------------------------------------------------------
-/** \brief Open concrete dictionary - define handler for signal of progress
- *
- * This functions is similiar to dict_eng_module_create(module,location,flags).
- * In addition to it, this function get additional parameters, defining how
- * engine should "inform" the user about progress of eventuall caching proccess.
- *
- * @param module :: <b>EngineModule</b> - engine module which should be used to 
- * open location <i>location</i>
- * @param location :: <b>gchar*</b> - location of dictionary database (file, 
- * directory, URL etc.)
- * @param flags :: <b>EngineOptimizationFlag</b> - flags defines how program 
- * shoud automaticlly use optimization methods for opened dictionary
- * @param progress_handler :: <b>cb_progress</b> - handler which will be called 
- * from time to time, to give to the user any response about caching progress
- * @param progress_data :: <b>gpointer</b> - pointer to data which will be given
- * as a user_data argument for progress_data function during its calling
- * @param seed :: <b>gdouble</b> - defines after how big step (in percentage)
- * in progress of caching, engine send new signal - call progress_handler with
- * actual value of progress
- * @return <i><b>Engine*</b></i> :: pointer to new enigne structure; After use, 
- * if this structure will not be needed anymore, user should call 
- * dict_eng_destroy() to free memory
- * \sa EngineOptimizationFlag :|: dict_eng_module_check() :|: EngineModule :|: 
- * Engine :|: cb_progress
- */
-#define         dict_eng_module_create_ext(module,                      \
-                                           location,                    \
-                                           flags,                       \
-                                           progress_handler,            \
-                                           progress_data,               \
-                                           seed                         \
-                                           )  (                         \
-                       (module).engine_create( (location),              \
-                                               (flags),                 \
-                                               (progress_handler),      \
-                                               (progress_data),         \
-                                               (seed)                   \
-                                             ))
-//------------------------------------------------------------------------------
-
-
-//______________________________________________________________________________
-// *****************************************************************************
-//****************************************** CONCRETE DICTIONARY MACROS SECTION:
-//------------------------------------------------------------------------------
-#define         dict_eng_set_progress_seed(engine, signal, val) (              \
-                        (engine) -> engine_set_progress_seed( (engine),        \
-                                                              (signal),        \
-                                                              (val)            \
-                                                            ))
-//------------------------------------------------------------------------------
-
-#define         dict_eng_set_auto_free(engine, state) ( \
-                        (engine) -> engine_set_auto_free( (engine), (state) )
-//------------------------------------------------------------------------------
-/** \brief Activate optimization mechanizms for concrete engine.
- *
- * Every engine could have some optimization methods. By calling this function 
- * we enabled this option. For the user of engine it is not important what kind
- * of optimization is used in current engine, how does it work etc. It should 
- * be opaque for engine's users.
- *  
- * @param engine :: <b>Engine*</b> - pointer to engine which should optimized
- * @return <i><b>void</b></i> :: nothing. This function only take a chance to 
- * make engine working faster, but it is not said that every step 
- * will be succesful. But even if not - engine has to work properly.
- * \sa dict_eng_module_create() :|: dict_eng_is_optimized() :|: Engine
- */
-#define         dict_eng_optimize(engine)  \
-                        ((engine) -> engine_optimize( (engine) ))
-//------------------------------------------------------------------------------
-/** \brief Checks if current engine has activated optimization.
- *
- * User can call this function to get know if concrete engine has enabled 
- * optimization. Optimization can be activated by calling dict_eng_optimize() 
- * or passing ENGINE_CREATE or ENGINE_REFRESH flags to dict_eng_module_create()
- * while opening concrete dictionary. 
- *  
- * @param engine :: <b>Engine*</b> - pointer to engine which should be checked 
- * if is optimized now
- * @return <i><b>gboolean</b></i> :: nothing. This function only take a chance 
- * to make engine working faster, but it is not said that every step 
- * will be succesful
- * \sa dict_eng_optimize() :|: Engine :|: EngineOptimizationFlag
- */
-#define         dict_eng_is_optimized( engine )  \
-                        ((engine) -> engine_is_optimized( (engine) ))
-//------------------------------------------------------------------------------
-/** \brief To get know from what location was created current dictionary.
- *
- * If user of engine want to get know from what locatione exactly was created 
- * concrete engine, he could call this function. It returns string, most likely 
- * the same as the one passed earlier to dict_eng_module_create() function 
- * as a <i>location</i> argument.
- *  
- * @param engine :: <b>Engine*</b> - dictionary from which we want to get 
- * location 
- * @return <i><b>gchar*</b></i> :: pointer to chars, from which concrete 
- * dictionary was created
- * \sa dict_eng_module_create()
- */
-#define         dict_eng_get_location(engine)    \
-                        ((engine) -> engine_location( (engine) ))
-//------------------------------------------------------------------------------
-/** \brief Tells if last operation was sucesfull.
- *
- * If user want to be sure that everything was ok, during last operation 
- * (it has finished with success), he has to check if dict_eng_get_last_status()
- * is equal to ENGINE_NO_ERROR. If not, he can also find the reason 
- * why operation failed.
- * @param engine :: <b>Engine*</b> - dictionary which last operation's returned 
- * code we want to get
- * @return <i><b>EngineStatus</b></i> :: finish code of last operation
- * \sa EngineStatus :|: dict_eng_state_message()
- */
-#define         dict_eng_get_last_status(engine)    \
-                        ((engine) -> engine_error( (engine) ))
-//------------------------------------------------------------------------------
-/** \brief Translate pure state code to meaningfull message.
- *
- * If there was a error during engine was working, we can present to the user 
- * the reason for this error in meaningfull form.
- *
- * @param error :: <b>EngineState</b> - code which we want to translate
- * @return <i><b>gchar*</b></i> :: message describing concrete error code
- * \sa EngineStatus :|: dict_eng_state_message()
- */
-#define         dict_eng_state_message(error)     \
-                        ((engine) -> engine_error_message( (error) ))
-//------------------------------------------------------------------------------
-/** \brief Destroy gently and completly current dictionary.
- *
- * When user do not need anymore concrete dictionary, he must destroy it to 
- * free memory allocated by this dictionary. It will close avery opened file 
- * descriptor, free any additional memory block allocated while engine was 
- * working etc. User are not allowed to call free() on dictionary without 
- * calling before dict_eng_destroy().
- *  
- * @param engine :: <b>Engine*</b> - pointer to dictionary which is not
- * needed anymore
- * @return <i><b>void</b></i> :: nothing. This function should work properly,
- * and free any resources which arelady are in use by current dictionary.
- * \sa dict_eng_module_create() :|: Engine
- */
-#define         dict_eng_destroy(engine)    \
-                        ((engine) -> engine_close( (engine) ))
-//------------------------------------------------------------------------------
-/** \brief Start searching for words list.
- *
- * This function starts searching for words list. User should set before 
- * callback for ENGINE_WORD_LIST_SIGNAL, to be able to retrieve words list, 
- * because this function do not return any value.
- *  
- * @param engine :: <b>Engine*</b> - pointer to dictionary in which we 
- * are looking for words matching to pattern
- * @param pattern :: <b>gchar*</b> - string representing pattern to which 
- * returned word should be matching
- * @return <i><b>void</b></i> :: nothing. Result of searching can be retrieved 
- * by callback for signal ENGINE_WORD_LIST_SIGNAL
- * \sa dict_eng_search_word_translation() :|: 
- * dict_eng_search_word_translation_extended() :|: dict_eng_set_callback() :|: 
- * ENGINE_WORD_LIST_SIGNAL
- */
-#define         dict_eng_search_word_list(engine,pattern)    \
-                        ((engine) -> engine_search_word_list( (engine),        \
-                                                              (pattern)        \
-                                                            ))
-//------------------------------------------------------------------------------
-/** \brief Start searching for word translation in dictionary.
- *
- * Start searching for translation of word. To be able to retrieve translation 
- * user should use callback for ENGINE_WORD_TRANSLATION_SIGNAL signal.
- *  
- * @param engine :: <b>Engine*</b> - dictionary in which we want find word's 
- * translation
- * @param word :: <b>gchar*</b> - string representing word which translation 
- * we are looking for
- * @return <i><b>void</b></i> :: nothing. Result of searching can be retrieved 
- * by callback for signal ENGINE_WORD_TRANSLATION_SIGNAL
- * \sa dict_eng_search_word_list() :|: 
- * dict_eng_search_word_translation_extended() :|: dict_eng_set_callback() :|: 
- * ENGINE_WORD_TRANSLATION_SIGNAL
- */
-#define         dict_eng_search_word_translation(engine,word)    \
-                        ((engine) -> engine_search_word_translation( (engine), \
-                                                                     (word)    \
-                                                                   ))
-//------------------------------------------------------------------------------
-/** \brief Start searching for extended word translation in dictionary.
- *
- * Start searching for extended  translation of word. To be able to retrieve 
- * translation user should use callback for ENGINE_WORD_TRANSLATION_SIGNAL 
- * signal. Extended means that retrieved translation's string could be some more
- * than plain text (e.g. HTML, Image, etc.). User of engine should know what 
- * kind of data will retrieve ofter calling this method.
- *
- * \todo This option are in projecting phase. In the future callback for 
- * ENGINE_WORD_TRANSLATION_SIGNAL should take parameter <i>gpointer</i> than 
- * <i>gchar*</i> to make possible for user of engine to retrieve data different 
- * than gchar*. There shold be also some additional function letting know user 
- * what kind of data he will retrieve.
- *  
- * @param engine :: <b>Engine*</b> - dictionary in which we want find word's 
- * translation
- * @param word :: <b>gchar*</b> - string representing word which translation 
- * we are looking for
- * @return <i><b>void</b></i> :: nothing. Result of searching can be retrieved 
- * by callback for signal ENGINE_WORD_TRANSLATION_SIGNAL
- * \sa dict_eng_search_word_list() :|: dict_eng_search_word_translation() :|: 
- * dict_eng_set_callback() :|: ENGINE_WORD_TRANSLATION_SIGNAL
- */
-#define         dict_eng_search_word_translation_extended(engine,word)   \
-                ((engine) -> engine_search_word_translation_extended((engine), \
-                                                                     (pattern) \
-                                                                     ))
-//------------------------------------------------------------------------------
-/** \brief Setting any callback for current dictionary.
- *
- * As long as functions which search for words list or translation do not 
- * return any value, user has to set callback which will be called after 
- * searching end. This make easy calling these functions from other proccess, 
- * threads etc. This function sets callbacks for every signal.
- *  
- * @param engine :: <b>Engine*</b> - dictionary for which we want set some
- * callback
- * @param signal :: <b>gchar*</b> - string representing for what signal we want
- * to set callback
- * @param c_handler :: <b>gpointer</b> - pointer to function which will be 
- * called after signal <i>signal</i> will occured
- * @param data :: <b>gpointer</b> - pointer to user data, which will be always 
- * passed to callback <i>c_handler</i> for signal <i>signal</i>
- * as a last argument
- * @return <i><b>gpointer</b></i> :: pointer to previous callback; if this 
- * callbacks was not set yet, it returns NULL
- * \sa cb_word_list :|: cb_word_translation :|:  ENGINE_WORD_LIST_SIGNAL :|: 
- * ENGINE_WORD_TRANSLATION_SIGNAL
- */
-#define         dict_eng_set_callback(engine,signal,c_handler,data)     \
-                        ((engine) -> engine_set_callback( (engine),     \
-                                                          (signal),     \
-                                                          (c_handler),  \
-                                                          (data)        \
-                                                        ))
-//------------------------------------------------------------------------------
-
-
-//______________________________________________________________________________
-// *****************************************************************************
-//************************************ SIGNALS DEFINITION FOR CALLBACKS SECTION:
-//------------------------------------------------------------------------------
-/** \brief Signal definition for callback called when word list was found.
- *
- * ENGINE_WORD_LIST_SIGNAL defines name for signal passed to 
- * dict_eng_set_callback() function as a signal parameter. Function set 
- * to handle this signal should be called from dict_eng_search_word_list() only
- * and have cb_word_list type.
- * <b>NOTE:</b> programmers must not use value of ENGINE_WORD_LIST_SIGNAL 
- * directly!
- * \sa cb_word_list :|: dict_eng_set_callback() :|: dict_eng_search_word_list() 
- * :|: ENGINE_WORD_TRANSLATION_SIGNAL
- */
-#define ENGINE_WORD_LIST_SIGNAL         "on_word_list_found"
-//------------------------------------------------------------------------------
-/** \brief Signal definition for callback called when word trans. was found.
- *
- * ENGINE_WORD_TRANSLATION_SIGNAL defines name for signal passed to 
- * dict_eng_set_callback() function as a signal parameter. Function set 
- * to handle this signal should be called from 
- * dict_eng_search_word_translation() and  
- * dict_eng_search_word_translation_extended() only and have cb_word_translation.
- * <b>NOTE:</b> programmers must not use value of ENGINE_WORD_LIST_SIGNAL 
- * directly!
- * \sa cb_word_translation :|: dict_eng_set_callback() :|: 
- * dict_eng_search_word_translation() :|: ENGINE_WORD_LIST_SIGNAL
- */
-#define ENGINE_WORD_TRANSLATION_SIGNAL  "on_word_translation_found"
-//------------------------------------------------------------------------------
-#define ENGINE_PROGRESS_OPTIMIZING_SIGNAL "on_progress_optimizing"
-//------------------------------------------------------------------------------
-
-
-//______________________________________________________________________________
-// *****************************************************************************
-//************************************************** DEFINITIONS OF ENUMS TYPES:
-//------------------------------------------------------------------------------
-/** \brief Codes of flags used to auto optimizing dictionary file.
- * 
- * - Enum type for flags used as a flags parameter for dict_eng_module_create() 
- * function.
- */
-typedef enum
-{
-        /**
-         * :: flags says thatoptimization (any methodsof optimalization) should 
-         * be enabled. If optimization methods needs to make some files and 
-         * these files exists, enigne will just use it (do not refresh).
-         */
-        ENGINE_CREATE = 0, 
-        /**
-         * :: flags says that for this particular dictionary programm should 
-         * disable optimization.
-         */
-        ENGINE_NO,
-        /**
-         * :: the same flags as ENGINE_CREATE, but tells 
-         * dict_eng_module_create() function that even if file (or any 
-         * resources) for optimizatione methods exists, they should be 
-         * recreated/refreshed.
-         */
-        ENGINE_REFRESH 
-} EngineOptimizationFlag;
-//------------------------------------------------------------------------------
-/** \brief Codes of possible errors which can occured while engine is working.
- * 
- * - Enum type for errors' codes. One of this code is always in last error 
- * variable (variable 'last error' is invisible for programmers - they should 
- * use function engine_error() and optionally engine_error_message() to get know
- * what kind of error occured).
- */
-typedef enum
-{
-        /**
-         * :: there was no error - last action successed
-         */
-        ENGINE_NO_ERROR = 0,
-        /**
-         * :: file, which engine tried to read, has wrong format or 
-         * it is corrupted.
-         */
-        ENGINE_WRONG_FILE,
-        /**
-         * :: user do not have permission to read/open file, which engine tried
-         * to open/read.
-         */
-        ENGINE_COULDNT_READ,
-        /**
-         * :: file, on which engine tried to operate, do not exist
-         */
-        ENGINE_NO_FILE,     
-        /**
-         * :: while engine was working, "Out Of Memory" error occured
-         */
-        ENGINE_OUT_OF_MEMORY
-}
-EngineStatus;
-//------------------------------------------------------------------------------
-
-
-//______________________________________________________________________________
-// *****************************************************************************
-//********************************************* DEFINITIONS OF CALLBACK'S TYPES:
-//------------------------------------------------------------------------------
-/** \brief Type of callback functions for retrieving word list.
- * 
- * Function which is set by dict_eng_set_callback() to signal 
- * ENGINE_WORD_LIST_SIGNAL should be exactly this type.
- *
- * @param list :: <b>GArray*</b> - there will be all found words in this array
- * @param pattern :: <b>gchar*</b> - pattern to which we have been looking for 
- *      word lists
- * @param error :: <b>EngineStatus</b> - error code; if everything was ok it is 
- *      ENGINE_NO_ERROR
- * @param user_data :: <b>gpointer</b> - data set by user to be passing to each 
- *      callback for ENGINE_WORD_LIST_SIGNAL signal
- */
-typedef void (*cb_word_list)(GArray* list,
-                             gchar* pattern,
-                             gpointer user_data,
-                             EngineStatus error);
-//------------------------------------------------------------------------------
-/** \brief Type of callback functions for retrieving word's translation.
- * 
- * Function which is set by dict_eng_set_callback() to signal 
- * ENGINE_WORD_TRANSLATION_SIGNAL should be exactly this type.
- *
- * @param translation :: <b>gchar*</b> - translation of word <i>word</i>
- * @param word :: <b>gchar*</b> - word which translation we already retrieved
- * @param error :: <b>EngineStatus</b> - error code; if everything was ok it is 
- *      ENGINE_NO_ERROR
- * @param user_data :: <b>gpointer</b> - data set by user to be passing to each 
- *      callback for ENGINE_WORD_TRANSLATION_SIGNAL signal
- */
-typedef void (*cb_word_translation)(gchar* translation,
-                                    gchar* word,
-                                    gpointer user_data,
-                                    EngineStatus error);
-//------------------------------------------------------------------------------
-/** \brief Type of callback functions for updating progress bar.
- * 
- * Function which is set by dict_eng_set_callback() to signal 
- * ENGINE_PROGRESS_OPTIMIZING_SIGNAL should be exactly this type.
- *
- * @param value :: <b>double</b> - current progres of process [0.0 - 1.0]
- * @param user_data :: <b>gpointer</b> - data set by user to be passing to each 
- *      callback for ENGINE_PROGRESS_OPTIMIZING_SIGNAL signal
- * @param error :: <b>EngineStatus</b> - error code; if everything is ok it has 
- *      ENGINE_NO_ERROR value
- */
-typedef void (*cb_progress)(gdouble value,
-                            gpointer user_data,
-                            EngineStatus error);
-//------------------------------------------------------------------------------
-
-           
-//______________________________________________________________________________
-// *****************************************************************************
-//**************************************** DEFINITIONS OF BASIC FUNCTIONS TYPES:
-//------------------------------------------------------------------------------
-typedef struct _Engine Engine;
-/** \brief Type of function getting some chars from engine.
- *
- * Function of this type should be used for functions which intention is to get 
- * some string from concrete dictionary.
- *
- * @param engine :: <i>Engine*</i> - pointer to engine on which this functions 
- *      has to work
- * @return <i><b>gchar*</b></i> :: chars which represents some information 
- *      depends on concrete functions (e.g engine path etc.)
- */
-typedef gchar*   (*getting_char)(Engine* engine);
-//------------------------------------------------------------------------------
-/** \brief Type of function getting boolean statement from engine.
- *
- * Function of this type should be used for functions which intention is to get 
- * boolean statement from concrete dictionary (e.g. to get know if engine has 
- * cache file - is optimized). 
- *
- * @param engine :: <i>Engine*</i> - pointer to engine on which this functions
- *      has to work
- * @return <i><b>gboolean</b></i> :: gboolean statement which gives programmers 
- *      some information about state of dictionary/engine
- */
-typedef gboolean (*getting_bool)(Engine* engine);
-//------------------------------------------------------------------------------
-/** \brief Type of function which hasn't got to return any value.
- *
- * Function of this type should be used for functions which intention is only 
- * to do something on concrete dictionary (e.g. to make cache file etc).
- *
- * @param engine :: <i>Engine*</i> - pointer to engine on which this functions 
- *      has to work
- * @return nothing. Functions of this type should only perform some action - 
- *      there is no result
- */
-typedef void     (*doing_only)(Engine* engine);
-//------------------------------------------------------------------------------
-/** \brief Type of function which can find words list from dictionary.
- * 
- * Function of this type should be used as a function for searching words list 
- * matching to pattern.
- *
- * @param engine :: <i>Engine*</i> - pointer to engine on which this functions 
- *      has to work
- * @param pattern :: <i>gchar*</i> - pointer to chars which describes pattern 
- *      for searching words
- * @return nothing. This function do not return anything - result should be 
- *      retrieve by callbacks 
- */
-typedef void     (*searching_word_list)(Engine* engine, gchar* pattern); 
-//------------------------------------------------------------------------------
-/** \brief Type of function which can find word's translation from dictionary.
- * 
- * Functions of this type should be used as a function for searching word 
- * translation in concrete dictionary.
- *
- * @param engine :: <i>Engine*</i> - pointer to engine on which this functions 
- *      has to work
- * @param word :: <i>gchar*</i> - pointer to chars which tells what word's 
- *      translation we are looking for
- * @return nothing. This function do not return anything - result should be 
- *      retrieve by callback
- */
-typedef void     (*searching_word_translation)(Engine* engine, gchar* word);
-//------------------------------------------------------------------------------
-/** \brief Type of function which can trans. error code to descriptive message.
- * 
- * Functions of this type should be used as <i>translator</i> from error code 
- * to meaningful message.
- *
- * @param error :: <i>EngineStatus</i> - error to which we want get description
- * @return <i><b>gchar*</b></i> :: chars which describes us what kind of error 
- * occured (e.g. "Dictionary file has wrong file format or it is corrupted.")
- */
-typedef gchar*   (*error_to_message)(EngineStatus error);
-//------------------------------------------------------------------------------
-/** \brief Type of function which should be used to set callbacks for signals.
- * 
- * Functions of this type should be used as a <i>setter</i> for new callback 
- * functions
- *
- * @param engine :: <i>Engine*</i> - pointer to engine on which this functions 
- *      has to work
- * @param signal  :: <i>gchars*</i> - pointer to chars which tell us what kind 
- *      of event should new_functions handle (e.g. "word_list_found", 
- *      "translation_found" etc.)
- * @param c_handler :: <i>gpointer</i> - new callback function
- * @param user_data :: <i>gpointer</i> - pointer do structure, which should be 
- *      passed as a last argument when calling new mounted callback
- * @return <i><b>gpointer</b></i> :: gpointer to previous callback. If NULL 
- *      there could be some error so programmers should check by engine_error() 
- *      function if there was some (if NULL and engine_error() return 
- *      ENGINE_NO_ERROR that means that this callback was unused before).
- * \sa ENGINE_WORD_LIST_SIGNAL :|: ENGINE_WORD_TRANSLATION_SIGNAL :|: 
- * dict_eng_set_callback() :|: cb_word_list :|: cb_word_translation
- */
-typedef gpointer (*setting_callbacks)(Engine* engine, 
-                                      gchar* signal, 
-                                      gpointer c_handler, 
-                                      gpointer user_data);
-//------------------------------------------------------------------------------
-/** \brief Type of function which can get some int value from dictionary.
- * 
- * Functions of this type should be used if programmer want to get some int 
- * value from dictionary.
- *
- * @param enigne :: <i>Engine*</i> - pointer to engine on which this functions 
- *      has to work
- * @return <i><b>gint</b></i> :: int value which user wanted to get from 
- *      dictionary
- */
-typedef gint (*getting_int)(Engine* engine);
-//------------------------------------------------------------------------------
-typedef EngineStatus (*getting_status)(Engine* engine);
-//------------------------------------------------------------------------------
-typedef void (*setting_progress_seed)(Engine* engine,
-                                      gchar* signal,
-                                      gdouble seed);
-//------------------------------------------------------------------------------
-
-
-//______________________________________________________________________________
-// *****************************************************************************
-//*********************************** DEFINITIONS OF ADDITIONAL FUNCTIONS TYPES:
-//------------------------------------------------------------------------------
-/** \brief Additional functions type.
- * 
- * Functions of this type should be used to check if dictionary in location 
- * could be handled by this engine.
- *
- * @param location :: <i>gchar*</i> - chars which describe location of 
- *      dictionary to check
- * @return <i><b>gboolean</i></b> :: statement telling us if this module could
- *      or could not handle dictionary under location.
- */
-typedef gboolean (*checking_compatibiliti)(gchar* location);
-//------------------------------------------------------------------------------
-/** \brief Additional functions type.
- * 
- * Functions of this type should be used to get some descriptions from 
- * engine/module. Information retrievs by this kind of functions are global for
- * module (e.g: description of handles fromat, description of module etc.).
- *
- * @return <i><b>gchar*</i></b> :: chars which we wanted
- */
-typedef gchar*   (*getting_chars_engine)(void);
-//------------------------------------------------------------------------------
-/** \brief Additional functions type.
- * 
- * Functions of this type should be used to opening dictionary. 
- * @param location :: <i>gchar*</i> - chars which describe where is the 
- *      dictionary which we want to open
- * @param flags :: <i>EngineOptimizationFlag</i> - flags to initialize/use 
- *      optimization methods for opening dictionary.
- * @return <i><b>gpointer</i></b> ::pointer to opened Engine. If NULL there was
- *      some error - programmers should check error type by calling 
- *      engine_error() function.
- */
-typedef Engine*  (*creating_engine)(gchar* location,
-                                    EngineOptimizationFlag flags,
-                                    cb_progress progress_handler,
-                                    gpointer progress_data,
-                                    gdouble seed);
-//------------------------------------------------------------------------------
-/** \brief General dictionary structure.
- *  
- * This structure contains every data which are needed to make dictionary 
- * working. Data of dictionary are invisible for user of finnal module. User can
- * operate on dictionary with functions to which there are pointers in this 
- * structure also. engine_data is for module programmer use only. Programmer of 
- * module can put there any data he want. He should not give end user any 
- * information about engine_data structure.
- */
-struct _Engine
-{
-        void (*engine_set_auto_free)(Engine* engine, gboolean state);
-
-
-        /** \brief Getting location of dictionary.
-        *
-        * User can use this function if want to get location of concrete 
-        * dictionary.
-        * \sa getting_char
-        */
-        getting_char           engine_location;
-
-        /** \brief Getting information if this dictionary is cached.
-        *
-        * User can use this function if want to know is dictionary cached 
-        * actually.
-        * \sa getting_bool
-        */
-        getting_bool           engine_is_optimized;
-
-        /** \brief Making cache file for dictionary.
-        *
-        * User can use this function if want to make cache file for concrete 
-        * dictionary.
-        * \sa doing_only
-        */
-        doing_only                engine_optimize;
-
-        /** \brief Searching word list.
-        *
-        * User call this function to start searching for word list.
-        * \sa searching_word_list
-        */
-        searching_word_list        engine_search_word_list;
-
-        /** \brief Searching word's translation.
-        *
-        * User call this function to start searching for word's translation.
-        * \sa searching_word_translation
-        */
-        searching_word_translation   engine_search_word_translation;
-
-        /** \brief Searching word's translation (preformatted HTML).
-        *
-        * User call this function to start searching for word's translation. 
-        * It differs from engine_search_word_translation that it returns 
-        * preformatted string (HTML format).
-        * \sa searching_word_translation
-        */
-        searching_word_translation   engine_search_word_translation_extended;        
-
-        /** \brief Close dictionary.
-        *
-        * User call this if work with dictionary is finished and there is no 
-        * need to keep this further working.
-        * \sa doing_only
-        */
-        doing_only                engine_close;
-
-        /** \brief Functions return laste error which occured in dictionary.
-        *
-        * Programmer should use this function after each action to check if 
-        * there was not any errors.
-        * \sa getting_int
-        */
-        getting_status                  engine_error;
-
-        /** \brief <i>Tranlsate</i> error code to meaningful message.
-        *
-        * Programmer can call this function if want to get meaningful message 
-        * describes concrete error code
-        * \sa error_to_message
-        */
-        error_to_message            engine_error_message;
-
-        /** \brief Function to setting any callback for this dictionary.
-        * 
-        * This function can be used to set some callback function for concrete 
-        * dictionary. Programmer should always set callback "word_list_found" 
-        * and "word_translation_found". Developers of new modules should also 
-        * define for what kind of event end user will be able to set callback.
-        */
-        setting_callbacks     engine_set_callback;
-
-
-        setting_progress_seed   engine_set_progress_seed;
-
-        /** \brief Module's private data area. Used only by module programmer.
-        * 
-        * Here module programmer should keep their own data (e.g. some data for 
-        * searching optimalization etc.). Programmer whose only using module, 
-        * should not use engine_data at all.
-        */
-        gpointer engine_data;
-};
-//------------------------------------------------------------------------------
-/** \brief Structure that has pointers to helpfull functions for programmer.
- *
- * There are pointers to some functions in this structure. Programmer whom using 
- * module could use it to get some useful informationa about module (e.g: format
- * handled by module, it's version etc.). The most important functions are: \n
- * engine_check() - to check if this module can handle concrete location \n
- * engine_open() - to open location
- */
-typedef struct  {
-        
-        /** \brief Function to check compatibility beetwen module and location.
-        *    
-        * Helps programmer to check if this concrete module was designed to work
-        * with dictionary under location passed as a argument to this function. 
-        * \sa checking_compatibiliti
-        */
-        checking_compatibiliti          engine_check;      
-
-        /** \brief Function to get some short description of module/engine.
-         *      
-         * This function returns short description of module, to make possible 
-         * displaying for end user what kind of module he is using.
-         * \sa getting_chars_engine
-         */  
-        getting_chars_engine       engine_description;
-
-        /** \brief Function to get module's format.
-        *    
-        * This function returns format of dictionaries which this module handles
-        * \sa getting_chars_engine
-        */
-        getting_chars_engine       engine_format;
-
-        /** \brief Function to get version of module.
-        *    
-        *  This functions return version of this module/engine.
-        * \sa getting_chars_engine
-        */
-        getting_chars_engine       engine_version;
-
-        /** \brief Function to open/create new dictionary.
-        *    
-        * This functions allow programmer to open/create module from concrete 
-        * location.
-        * \sa creating_engine
-        */
-        creating_engine                 engine_create;
-} 
-EngineModule;
-//------------------------------------------------------------------------------
-/** \brief Additional functions type.
- * 
- * There should be in each module exactly one function of this type named: 
- * engine_global_functions. This function makes easier to load dynamically 
- * module. For doing this then you need only to mapped only this one function
- * and the rest will be avaiable from returned structure EngineModule.
- *
- * @return  <i><b>EngineModule</b></i> :: structure EngineModule from which you 
- *      can call next functions
- * \sa engine_global_functions()
- */
-typedef EngineModule (*getting_additional)(void);
-//------------------------------------------------------------------------------
-/** \brief Function that helps programmer to load basic functions from module. 
- *
- * This function helps programmers to dynamically load module to their 
- * programms. Only this function needed to be mapped from *.so file. Rest of 
- * function are in returned structure EngineModule. User of module could mapped 
- * himslef others functions from concrete modules, but it is not recommended as 
- * far as developers of module could, in fact, give different names for 
- * functions. In structure EngineModule names will be always the same. \n
- * NOTE for module developer: this function should be always defined in your
- * code, to help next programmers whose will be using yours module in theirs own
- * programms.
- * 
- * @return <i><b>EngineModule</b></i> :: Structure EngineModule which members 
- *      are functions for basic operations for this module
- */
-extern EngineModule engine_global_functions(void);
-//------------------------------------------------------------------------------
-#define dict_eng_get_global_functions(library, variable) \
-       g_module_symbol ( (library), \
-                         _GLOBAL_FUNCTIONS_NAME_, \
-                         (gpointer)&(variable) \
-                       )
-          
-#ifdef __cplusplus
-}                     
-#endif     // END OF:    extern "C" {
-
-#endif     // END OF:    _DICTIONARY_ENGINE_BASE
diff --git a/src/plugins/stardict/include/engine_stardict.h b/src/plugins/stardict/include/engine_stardict.h
deleted file mode 100755 (executable)
index 090f992..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-/** \defgroup StarDictEngine Dictionary Engine - StarDict format
- * \brief StarDict-based dictionary engine.
- *
- * This is library with dictionary engine supporting StarDict dictionaries. 
- */
-/*@{*/
-/** \file engine_stardict.h
- * \brief Header for XDXF-based dictionary engine.
- */
-
-#ifndef _DICTIONARY_ENGINE_STARDICT
-#define _DICTIONARY_ENGINE_STARDICT
-
-#ifdef __cplusplus
-        extern "C" {
-#endif
-
-#ifndef NOLOGS
-       #define sd_timer timer
-#else
-       #define sd_timer(flag,name) while(FALSE)
-#endif
-
-//______________________________________________________________________________
-// *****************************************************************************
-//************************************************************* HEADERS SECTION:
-//------------------------------------------------------------------------------
-// headers with unix types/functions - only for timers and files operations
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <unistd.h>
-//------------------------------------------------------------------------------
-// header with GLIB definitions/functions/types
-#include <glib.h>
-//------------------------------------------------------------------------------
-// header with gnome-vfs - recommended I/O API for maemo
-#include <libgnomevfs/gnome-vfs.h>
-//------------------------------------------------------------------------------
-// header with engine API
-#include <dictionary_engine.h>
-//------------------------------------------------------------------------------
-// header with standard gzip support library
-#include <zlib.h>
-//------------------------------------------------------------------------------
-// header with dict zip support library
-//#include "dictzip.h"
-#include <data.h>
-//#include "defs.h"
-//------------------------------------------------------------------------------
-// headero for ntohl conversion - network byte order to local host order
-#include <netinet/in.h>
-//------------------------------------------------------------------------------
-// header to g_memmove only
-#include <string.h>
-
-//______________________________________________________________________________
-// *****************************************************************************
-//********************************************************* DEFINITIONS SECTION:
-//------------------------------------------------------------------------------
-// definitions for timer function - flag telling if we want to start or stop
-// timing
-#define TIMER_START     TRUE
-#define TIMER_STOP      FALSE
-
-#define WORD_LIST_BUFFER_LENGTH 16*1024
-
-#define _MIN(a,b)      ((a)<(b))?(a):(b)
-//------------------------------------------------------------------------------
-// definitions of version and format which engine handles
-static const gchar* DIC_ENG_VERSION = "0.1"; 
-static const gchar* DIC_ENG_FORMAT = "StarDict";
-static const gchar* DIC_ENG_DESCRIPTION = "This module operates on StarDict dictionaries. Version 0.1.";
-
-//------------------------------------------------------------------------------
-// macro for "printing" gboolean statement - "TRUE" or "FALSE"
-#define PRINT_STATE(state) ( (state) ? "TRUE" : "FALSE" )
-//------------------------------------------------------------------------------
-
-#define ICON_PATH "/usr/share/pixmaps/stardict_icon.png"
-
-//______________________________________________________________________________
-// *****************************************************************************
-//****************************************** DATA STRUCTURE DEFINITIONS SECTION:
-//------------------------------------------------------------------------------
-//------------------------------------------------------------------------------
-/** \brief Internal data structure for representing part of file.
- */
-struct _FilePart {
-        guint offset;
-        guint length;
-};
-typedef struct _FilePart        FilePart;
-//------------------------------------------------------------------------------
-/** \brief Internal data structure of XDXF Engine.
- */
-struct _SDData {
-        GnomeVFSHandle*         dictionary;
-        GnomeVFSHandle*         index;
-
-        gchar*                  dict_path;
-       gchar*                  ifo_file_name;
-       gchar*                  idx_file_name;
-       gboolean                idx_compressed;
-       gchar*                  dic_file_name;
-       gboolean                dic_compressed;
-       gchar*                  lang_from;
-       gchar*                  lang_to;
-       gchar*                  title;
-       gint                    word_count;
-       gint                    idx_file_length;
-       gchar*                  types;
-       gchar*                  icon;
-
-        EngineStatus            last_error;
-        gboolean                auto_free;
-
-       /* wrapper functions to access idx and dict files without checking
-        * it they are compressed or not - we decide about this while creating
-        * engine i function sd_engine_create()*/
-       gpointer        (*sd_open_idx)(gchar* filename);
-       //gpointer      (*sd_open_dic)(gchar* filename);
-       gint            (*sd_read_idx)(gpointer f, gchar* buffer, gint l);
-       //gint          (*sd_read_dic)(gpointer f, gchar* buffer, gint l);
-       glong           (*sd_seek_idx)(gpointer f, glong l, gchar from);
-       //glong         (*sd_seek_dic)(gpointer f, glong l, gchar from);
-       void            (*sd_close_idx)(gpointer f);
-       //void          (*sd_close_dic)(gpointer f);
-       gchar*          (*sd_read_dic_part)(FilePart* part, gchar* file);
-       gpointer        idx_file;
-
-        cb_progress             cb_progress_caching;
-        gpointer                cb_progress_caching_data;
-        gdouble                 cb_progress_caching_seed;
-
-        cb_progress             cb_progress_word_list;
-        gpointer                cb_progress_word_list_data;
-        gdouble                 cb_progress_word_list_seed;
-
-        cb_progress             cb_progress_word_trans;
-        gpointer                cb_progress_word_trans_data;
-        gdouble                 cb_progress_word_trans_seed;
-
-        cb_word_list            cb_search_word_list;
-        gpointer                cb_search_word_list_data;
-
-        cb_word_translation     cb_search_word_trans;
-        gpointer                cb_search_word_trans_data;      
-};
-typedef struct _SDData        SDData;
-//------------------------------------------------------------------------------
-
-
-//______________________________________________________________________________
-// *****************************************************************************
-//************************************************ ADDITIONAL FUNCTIONS SECTION:
-//------------------------------------------------------------------------------
-// returning concrete part of file
-//static gchar*           read_file_part(FilePart* part, GnomeVFSHandle* file);
-//------------------------------------------------------------------------------
-// convert string to proper path name (no filename, no "/" at the ned, file
-// exist)
-static gchar*           string_to_path(gchar** string);
-//------------------------------------------------------------------------------
-// fill out filenames of dictionary from directory in data->dict_path
-gboolean               sd_read_files_names(SDData* data);
-//------------------------------------------------------------------------------
-// fill out few information from IFO file
-gboolean               sd_parse_ifo_file(SDData* data);
-//------------------------------------------------------------------------------
-// parse concrete record from *.ifo files - used by sd_parse_ifo_file() function
-void                   sd_parse_record(SDData* data,gchar* key, gchar* value);
-//------------------------------------------------------------------------------
-// start/stop timers -  return -1.0 if we start or seconds passed from start 
-// if we want to stop timer
-static double           timer(gboolean start, gchar* message);
-//------------------------------------------------------------------------------
-// find proper FilePart structure for concrete word in dictionary
-FilePart*              sd_find_file_part(SDData* data, gchar* word);
-//------------------------------------------------------------------------------
-// parse whole article to proper word translation
-gchar*                 sd_parse_stardict_article(gchar* buf,
-                                               gchar* type,
-                                               guint length
-                                               );
-//------------------------------------------------------------------------------
-// find and return only one, next field from buffer and update length variable
-gchar*                 sd_get_buffer_from_article(gchar** buffer,
-                                               guint* length
-                                               );
-//------------------------------------------------------------------------------
-// return size of files
-//static guint64          get_file_size(GnomeVFSHandle* file);
-//------------------------------------------------------------------------------
-// these are wrapper functions to acces different type of files: standard or
-// compressed with gzip for *.idx or dictzip for *.dict files.
-
-#define _FILES_WRAPPER_BEG 'b'
-#define _FILES_WRAPPER_CUR 'c'
-#define _FILES_WRAPPER_END 'e'
-
-// standard
-static gpointer                sd_open(gchar* filename);
-static gint            sd_read(gpointer f, gchar* buffer, gint l);
-static glong           sd_seek(gpointer f, glong l, gchar from);
-static void            sd_close(gpointer f);
-// gzipped
-static gpointer                sd_open_z(gchar* filename);
-static gint            sd_read_z(gpointer f, gchar* buffer, gint l);
-static glong           sd_seek_z(gpointer f, glong l, gchar from);
-static void            sd_close_z(gpointer f);
-// files *.dict[.dz]
-//------------------------------------------------------------------------------
-// read concrete file part from dictionary - *.dict* file
-static gchar*          sd_read_file_part_dz(FilePart* part, gchar* file);
-static gchar*          sd_read_file_part(FilePart* part, gchar* file);
-//------------------------------------------------------------------------------
-
-
-
-
-//______________________________________________________________________________
-// *****************************************************************************
-//****************************************************** MAIN FUNCTIONS SECTION:
-//------------------------------------------------------------------------------
-gboolean        sd_engine_add_word(Engine* engine,
-                                 gchar*  word,
-                                 gchar*  translation);
-//------------------------------------------------------------------------------
-gboolean        sd_engine_remove_word(Engine* engine,
-                                     gchar*  word);  
-//------------------------------------------------------------------------------      
-gchar*          sd_engine_get_lang_from(Engine* engine);
-//------------------------------------------------------------------------------
-gchar*          sd_engine_get_lang_to(Engine* engine);
-//------------------------------------------------------------------------------
-gchar*          sd_engine_get_title(Engine* engine);
-//------------------------------------------------------------------------------
-gchar*          sd_engine_get_icon_path(Engine* engine);
-//------------------------------------------------------------------------------
-
-
-
-//------------------------------------------------------------------------------
-// implementation of dict_eng_module_check(module,location) function
-gboolean        sd_engine_check(gchar* location);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_module_get_description(module) function
-gchar*          sd_engine_description();
-//------------------------------------------------------------------------------
-// implementation of dict_eng_module_get_format(module) function
-gchar*          sd_engine_format();
-//------------------------------------------------------------------------------
-// implementation of dict_eng_module_get_version(module) function
-gchar*          sd_engine_version();
-//------------------------------------------------------------------------------
-// implementation of dict_eng_module_create(module,location,flags) and
-// dict_eng_module_create_ext(module,location,flags) functions
-Engine*         sd_engine_create(gchar* location, 
-                              EngineOptimizationFlag flags,
-                              cb_progress progress_handler,
-                              gpointer progress_data,
-                              gdouble seed);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_destroy(engine) function
-void            sd_engine_close(Engine* engine);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_get_location(engine) function
-gchar*          sd_engine_location(Engine* engine);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_optimize(engine) function
-void            sd_engine_optimize(Engine* engine);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_is_optimized( engine ) function
-gboolean        sd_engine_is_optimized(Engine* engine);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_set_auto_free(engine, state) function
-void            sd_engine_set_auto_free(Engine* engine, gboolean state);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_set_callback(engine,signal,c_handler,data) 
-// function
-gpointer        sd_engine_set_callback(Engine* engine,
-                                     gchar* event,
-                                     gpointer c_handler,
-                                     gpointer user_data);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_set_progress_seed(engine, signal, val) function
-void            sd_engine_set_progress_seed(Engine* engine,
-                                         gchar* signal,
-                                         gdouble seed);
-//------------------------------------------------------------------------------
-// implementation ofdict_eng_search_word_list(engine,pattern) function
-void            sd_engine_search_word_list(Engine* engine,
-                                           gchar* pattern,
-                                           gpointer cb_data);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_search_word_translation(engine,word) function
-void            sd_engine_search_word_translation(Engine* engine,
-                                                  gchar* word,
-                                                  gpointer cb_data);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_get_last_state(engine) function
-EngineStatus    sd_engine_status(Engine* engine);
-//------------------------------------------------------------------------------
-// implementation of dict_eng_state_message(error) function
-gchar*          sd_engine_status_message(EngineStatus status);
-//------------------------------------------------------------------------------
-// implementation of engine_global_functions(void) function
-EngineModule    engine_global_functions();
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* #ifndef _DICTIONARY_ENGINE_STARDICT */
-/*@}*/
diff --git a/src/plugins/stardict/include/maa.h b/src/plugins/stardict/include/maa.h
deleted file mode 100644 (file)
index 447b55f..0000000
+++ /dev/null
@@ -1,603 +0,0 @@
-/* maa.h -- Header file for visible libmaa functions
- * Created: Sun Nov 19 13:21:21 1995 by faith@dict.org
- * Revised: Sat Mar 30 11:54:49 2002 by faith@dict.org
- * Copyright 1994-1998, 2002 Rickard E. Faith (faith@dict.org)
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Library General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * $Id: maa.h,v 1.42 2004/10/12 10:23:38 cheusov Exp $
- */
-
-#ifndef _MAA_H_
-#define _MAA_H_
-
-#include <stdio.h>
-#include <stdarg.h>
-
-#ifndef __GNUC__
-#define __inline__
-#define __attribute__(x)
-#endif
-
-                               /* If MAA_MAGIC is non-zero, important
-                                   structures will be tagged with a magic
-                                   number which will be checked for
-                                   integrity at each access.  This uses up
-                                   more memory, and is slightly slower, but
-                                   helps debugging quite a bit. */
-#ifndef MAA_MAGIC
-#define MAA_MAGIC 1
-#endif
-
-#if MAA_MAGIC
-#define HSH_MAGIC               0x01020304
-#define HSH_MAGIC_FREED         0x10203040
-#define SET_MAGIC               0x02030405
-#define SET_MAGIC_FREED         0x20304050
-#define LST_MAGIC               0x03040506
-#define LST_MAGIC_FREED         0x30405060
-#define MEM_STRINGS_MAGIC       0x23232323
-#define MEM_STRINGS_MAGIC_FREED 0x32323232
-#define MEM_OBJECTS_MAGIC       0x42424242
-#define MEM_OBJECTS_MAGIC_FREED 0x24242424
-#define ARG_MAGIC               0xfeedbead
-#define ARG_MAGIC_FREED         0xefdeebda
-#define PR_MAGIC                0x0bad7734
-#define PR_MAGIC_FREED          0xb0da7743
-#define SL_LIST_MAGIC           0xabcdef01
-#define SL_LIST_MAGIC_FREED     0xbadcfe10
-#define SL_ENTRY_MAGIC          0xacadfeed
-#define SL_ENTRY_MAGIC_FREED    0xcadaefde
-#endif
-
-/* version.c */
-
-extern const char *maa_revision_string;
-
-
-/* maa.c */
-
-#define MAA_MEMORY (3<<30|1<<29) /* Print memory usage statistics at exit */
-#define MAA_TIME   (3<<30|1<<28) /* Print timer information at exit       */
-#define MAA_PR     (3<<30|1<<27) /* Debug process routines                */
-#define MAA_SL     (3<<30|1<<26) /* Debug skip list routines              */
-#define MAA_PARSE  (3<<30|1<<25) /* Debug parsing                         */
-#define MAA_SRC    (3<<30|1<<24) /* Source library                        */
-
-extern void       maa_init( const char *programName );
-extern void       maa_shutdown( void );
-extern int        maa_version_major( void );
-extern int        maa_version_minor( void );
-extern const char *maa_version( void );
-
-/* xmalloc.c */
-
-#ifndef DMALLOC_FUNC_CHECK
-extern __inline__ void *xmalloc( unsigned int size );
-extern __inline__ void *xcalloc( unsigned int num, unsigned int size );
-extern __inline__ void *xrealloc( void *pt, unsigned int size );
-extern __inline__ void xfree( void *pt );
-extern __inline__ char *xstrdup( const char *s );
-#endif
-
-
-/* bit.c */
-extern __inline__ void bit_set( unsigned long *flags, int bit );
-extern __inline__ void bit_clr( unsigned long *flags, int bit );
-extern __inline__ int  bit_tst( unsigned long *flags, int bit );
-extern __inline__ int  bit_cnt( unsigned long *flags );
-
-/* prime.c */
-
-extern int           prm_is_prime( unsigned int value );
-extern unsigned long prm_next_prime( unsigned int start );
-
-/* hash.c */
-
-typedef void *hsh_HashTable;
-typedef void *hsh_Position;
-
-typedef struct hsh_Stats {
-   unsigned long size;          /* Size of table */
-   unsigned long resizings;     /* Number of resizings */
-   unsigned long entries;       /* Total entries in table */
-   unsigned long buckets_used;  /* Number of hash buckets in use */
-   unsigned long singletons;    /* Number of length one lists */
-   unsigned long maximum_length; /* Maximum list length */
-
-   unsigned long retrievals;    /* Total number of retrievals */
-   unsigned long hits;          /* Number of retrievals from top of a list */
-   unsigned long misses;        /* Number of unsuccessful retrievals */
-} *hsh_Stats;
-
-extern hsh_HashTable hsh_create( unsigned long (*hash)( const void * ),
-                                int (*compare)( const void *,
-                                                const void * ) );
-extern void          hsh_destroy( hsh_HashTable table );
-extern int           hsh_insert( hsh_HashTable table,
-                                const void *key,
-                                const void *datum );
-extern int           hsh_delete( hsh_HashTable table, const void *key );
-extern const void    *hsh_retrieve( hsh_HashTable table, const void *key );
-extern int           hsh_iterate( hsh_HashTable table,
-                                 int (*iterator)( const void *key,
-                                                  const void *datum ) );
-extern int           hsh_iterate_arg( hsh_HashTable table,
-                                     int (*iterator)( const void *key,
-                                                      const void *datum,
-                                                      void *arg ),
-                                     void *arg );
-extern hsh_Stats     hsh_get_stats( hsh_HashTable table );
-extern void          hsh_print_stats( hsh_HashTable table, FILE *stream );
-extern unsigned long hsh_string_hash( const void *key );
-extern unsigned long hsh_pointer_hash( const void *key );
-extern int           hsh_string_compare( const void *key1, const void *key2 );
-extern int           hsh_pointer_compare( const void *key1, const void *key2 );
-extern void          hsh_key_strings(hsh_HashTable);
-
-extern hsh_Position  hsh_init_position( hsh_HashTable table );
-extern hsh_Position  hsh_next_position( hsh_HashTable table,
-                                       hsh_Position position );
-extern void          *hsh_get_position( hsh_Position position, void **key );
-extern int           hsh_readonly( hsh_HashTable table, int flag );
-
-#define HSH_POSITION_INIT(P,T)  ((P)=hsh_init_position(T))
-#define HSH_POSITION_NEXT(P,T)  ((P)=hsh_next_position(T,P))
-#define HSH_POSITION_OK(P)      (P)
-#define HSH_POSITION_GET(P,K,D) ((D)=hsh_get_position(P,&K))
-
-/* iterate over all (key, datum) pairs, (K,D), in hash table T */
-#define HSH_ITERATE(T,P,K,D)                                                 \
-   for (HSH_POSITION_INIT((P),(T));                                          \
-       HSH_POSITION_OK(P) && (HSH_POSITION_GET((P),(K),(D)),1);             \
-       HSH_POSITION_NEXT((P),(T)))
-
-/* If the HSH_ITERATE loop is exited before all elements in the table are
-   seen, then HSH_ITERATE_END should be called.  Calling this function
-   after complete loops does no harm. */
-#define HSH_ITERATE_END(T) hsh_readonly(T,0)
-
-   
-/* set.c */
-
-typedef void *set_Set;
-typedef void *set_Position;
-
-typedef struct set_Stats{
-   unsigned long size;          /* Size of table */
-   unsigned long resizings;     /* Number of resizings */
-   unsigned long entries;       /* Total entries in table */
-   unsigned long buckets_used;  /* Number of hash buckets in use */
-   unsigned long singletons;    /* Number of length one lists */
-   unsigned long maximum_length; /* Maximum list length */
-
-   unsigned long retrievals;    /* Total number of retrievals */
-   unsigned long hits;          /* Number of retrievals from top of a list */
-   unsigned long misses;        /* Number of unsuccessful retrievals */
-} *set_Stats;
-
-typedef unsigned long (*set_HashFunction)( const void * );
-typedef int           (*set_CompareFunction)( const void *, const void * );
-
-extern set_Set             set_create( set_HashFunction hash,
-                                      set_CompareFunction compare );
-extern set_HashFunction    set_get_hash( set_Set set );
-extern set_CompareFunction set_get_compare( set_Set set );
-extern void                set_destroy( set_Set set );
-extern int                 set_insert( set_Set set, const void *elem );
-extern int                 set_delete( set_Set set, const void *elem );
-extern int                 set_member( set_Set set, const void *elem );
-extern int                 set_iterate( set_Set set,
-                                       int (*iterator)( const void *key ) );
-extern int                 set_iterate_arg( set_Set set,
-                                           int (*iterator)( const void *elem,
-                                                            void *arg ),
-                                           void *arg );
-extern set_Set             set_add( set_Set set1, set_Set set2 );
-extern set_Set             set_del( set_Set set1, set_Set set2 );
-extern set_Set             set_union( set_Set set1, set_Set set2 );
-extern set_Set             set_inter( set_Set set1, set_Set set2 );
-extern set_Set             set_diff( set_Set set1, set_Set set2 );
-extern int                 set_equal( set_Set set1, set_Set set2 );
-extern set_Stats           set_get_stats( set_Set set );
-extern void                set_print_stats( set_Set set, FILE *stream );
-extern int                 set_count( set_Set set );
-extern set_Position        set_init_position( set_Set set );
-extern set_Position        set_next_position( set_Set set,
-                                             set_Position position );
-extern void                *set_get_position( set_Position position );
-extern int                 set_readonly( set_Set set, int flag );
-
-#define SET_POSITION_INIT(P,S) ((P)=set_init_position(S))
-#define SET_POSITION_NEXT(P,S) ((P)=set_next_position(S,P))
-#define SET_POSITION_OK(P)     (P)
-#define SET_POSITION_GET(P,E)  ((E)=set_get_position(P))
-
-/* iterate over all entries E in set S */
-#define SET_ITERATE(S,P,E)                                                   \
-   for (SET_POSITION_INIT((P),(S));                                          \
-       SET_POSITION_OK(P) && (SET_POSITION_GET((P),(E)),1);                 \
-       SET_POSITION_NEXT((P),(S)))
-
-/* If the SET_ITERATE loop is exited before all elements in the set are
-   seen, then SET_ITERATE_END should be called.  Calling this function
-   after complete loops does no harm. */
-#define SET_ITERATE_END(S) set_readonly(S,0)
-
-/* stack.c */
-
-typedef void *stk_Stack;
-
-extern stk_Stack stk_create( void );
-extern void      stk_destroy( stk_Stack stack );
-extern void      stk_push( stk_Stack stack, void *datum );
-extern void      *stk_pop( stk_Stack stack );
-extern void      *stk_top( stk_Stack stack );
-
-/* list.c */
-
-typedef void *lst_List;
-typedef void *lst_Position;
-
-extern lst_List     lst_create( void );
-extern void         lst_destroy( lst_List list );
-extern void         lst_append( lst_List list, const void *datum );
-extern void         lst_push( lst_List list, const void *datum );
-extern void         *lst_pop( lst_List list );
-extern void         *lst_top( lst_List list );
-extern void         *lst_nth_get( lst_List list, unsigned int n );
-extern void         lst_nth_set( lst_List list, unsigned int n,
-                                const void *datum );
-extern int          lst_member( lst_List list, const void *datum );
-extern unsigned int lst_length( lst_List list );
-extern int          lst_iterate( lst_List list,
-                                int (*iterator)( const void *datum ) );
-extern int          lst_iterate_arg( lst_List list,
-                                    int (*iterator)( const void *datum,
-                                                     void *arg ),
-                                    void *arg );
-extern void         lst_truncate( lst_List list, unsigned int length );
-extern void         lst_truncate_position( lst_List list,
-                                          lst_Position position );
-extern lst_Position lst_init_position( lst_List list );
-extern lst_Position lst_last_position( lst_List list );
-extern lst_Position lst_next_position( lst_Position position );
-extern lst_Position lst_nth_position( lst_List list, unsigned int n );
-extern void         *lst_get_position( lst_Position position );
-extern void         lst_set_position( lst_Position position,
-                                     const void *datum );
-extern void         lst_dump( lst_List list );
-extern void         _lst_shutdown( void );
-extern long int     lst_total_allocated( void );
-
-#define LST_POSITION_INIT(P,L) ((P)=lst_init_position(L))
-#define LST_POSITION_NEXT(P)   ((P)=lst_next_position(P))
-#define LST_POSITION_OK(P)     (P)
-#define LST_POSITION_GET(P,E)  ((E)=lst_get_position(P))
-
-/* iterate over all entries E in list L */
-#define LST_ITERATE(L,P,E)                                                  \
-   for (LST_POSITION_INIT((P),(L));                                         \
-        LST_POSITION_OK(P) && (LST_POSITION_GET((P),(E)),1);                \
-        LST_POSITION_NEXT(P))
-
-/* iterate over all entries in lists L1 and L2 */
-#define LST_ITERATE2(L1,L2,P1,P2,E1,E2)                                      \
-   for (LST_POSITION_INIT((P1),(L1)), LST_POSITION_INIT((P2),(L2));          \
-       LST_POSITION_OK(P1) && LST_POSITION_OK(P2)                           \
-          && (LST_POSITION_GET((P1),(E1)),LST_POSITION_GET((P2),(E2)),1);   \
-       LST_POSITION_NEXT(P1), LST_POSITION_NEXT(P2))
-
-/* error.c */
-
-extern void       err_set_program_name( const char *programName );
-extern const char *err_program_name( void );
-extern void       err_fatal( const char *routine, const char *format, ... )
-   __attribute__((noreturn,format(printf, 2, 3)));
-extern void       err_fatal_errno( const char *routine,
-                                  const char *format, ... )
-   __attribute__((noreturn,format(printf, 2, 3)));
-
-extern void       err_warning( const char *routine, const char *format, ... )
-   __attribute__((format(printf, 2, 3)));
-
-extern void       err_internal( const char *routine, const char *format, ... )
-   __attribute__((noreturn,format(printf, 2, 3)));
-
-/* memory.c */
-
-typedef void *mem_String;
-typedef void *mem_Object;
-
-typedef struct mem_StringStats {
-   int count;                  /* Number of strings or objects */
-   int bytes;                  /* Number of bytes allocated */
-} *mem_StringStats;
-
-typedef struct mem_ObjectStats {
-   int total;                  /* Total objects requested */
-   int used;                   /* Total currently in use */
-   int reused;                 /* Total reused  */
-   int size;                   /* Size of each object */
-} *mem_ObjectStats;
-
-extern mem_String      mem_create_strings( void );
-extern void            mem_destroy_strings( mem_String info );
-extern const char      *mem_strcpy( mem_String info, const char *string );
-extern const char      *mem_strncpy( mem_String info,
-                                    const char *string,
-                                    int len );
-extern void            mem_grow( mem_String info,
-                                const char *string,
-                                int len );
-extern const char      *mem_finish( mem_String info );
-extern mem_StringStats mem_get_string_stats( mem_String info );
-extern void            mem_print_string_stats( mem_String info, FILE *stream );
-
-extern mem_Object      mem_create_objects( int size );
-extern void            mem_destroy_objects( mem_Object info );
-extern void            *mem_get_object( mem_Object info );
-extern void            *mem_get_empty_object( mem_Object info );
-extern void            mem_free_object( mem_Object info, void *obj );
-extern mem_ObjectStats mem_get_object_stats( mem_Object info );
-extern void            mem_print_object_stats( mem_Object info, FILE *stream );
-
-/* string.c */
-
-typedef void *str_Pool;
-typedef hsh_Position str_Position;
-
-typedef struct str_Stats {
-   int count;                  /* Number of strings created */
-   int bytes;                  /* Number of bytes allocated */
-   int retrievals;             /* Total number of retrievals */
-   int hits;                   /* Number of retrievals from top of a list */
-   int misses;                 /* Number of unsuccessful retrievals */
-} *str_Stats;
-
-extern str_Pool   str_pool_create( void );
-extern void       str_pool_destroy( str_Pool pool );
-extern int        str_pool_exists( str_Pool pool, const char *s );
-extern const char *str_pool_find( str_Pool pool, const char *s );
-extern const char *str_pool_copy( str_Pool pool, const char *s );
-extern const char *str_pool_copyn( str_Pool pool, const char *s, int length );
-extern void       str_pool_grow( str_Pool pool, const char *s, int length );
-extern const char *str_pool_finish( str_Pool pool );
-extern str_Stats  str_pool_get_stats( str_Pool pool );
-extern void       str_pool_print_stats( str_Pool pool, FILE *stream );
-
-extern str_Position  str_pool_init_position(
-   str_Pool table );
-extern str_Position  str_pool_next_position(
-   str_Pool table,
-   str_Position position );
-extern void str_pool_get_position(
-   str_Position position,
-   char const *const *key );
-#define str_pool_readonly(pool, flag) hsh_readonly ((pool), (flag))
-
-extern int        str_pool_iterate(
-   str_Pool pool,
-   int (*iterator)( const char *s ) );
-extern int        str_pool_iterate_arg(
-   str_Pool pool,
-   int (*iterator)( const char *s, void *arg ),
-   void *arg );
-
-#define STR_POSITION_INIT(P,T)  ((P)=str_pool_init_position(T))
-#define STR_POSITION_NEXT(P,T)  ((P)=str_pool_next_position(T,P))
-#define STR_POSITION_OK(P)      (P)
-#define STR_POSITION_GET(P,K)   (str_pool_get_position(P,&K), K)
-
-/* iterate over all keys (K) in string pool T */
-#define STR_ITERATE(T,P,K)                                                   \
-   for (STR_POSITION_INIT((P),(T));                                          \
-       STR_POSITION_OK(P) && (STR_POSITION_GET((P),(K)),1);                 \
-       STR_POSITION_NEXT((P),(T)))
-
-/* If the STR_ITERATE loop is exited before all elements in the table are
-   seen, then STR_ITERATE_END should be called.  Calling this function
-   after complete loops does no harm. */
-#define STR_ITERATE_END(T) str_readonly(T,0)
-
-extern int        str_exists( const char *s );
-extern const char *str_find( const char *s );
-extern const char *str_findn( const char *s, int length );
-extern const char *str_copy( const char *s );
-extern const char *str_copyn( const char *s, int length );
-extern void       str_grow( const char *s, int length );
-extern const char *str_finish( void );
-extern const char *str_unique( const char *prefix );
-extern void       str_destroy( void );
-extern str_Stats  str_get_stats( void );
-extern void       str_print_stats( FILE *stream );
-
-/* debug.c */
-
-typedef unsigned long int dbg_Type;
-
-extern void           dbg_register( dbg_Type flag, const char *name );
-extern void           _dbg_register( dbg_Type flag, const char *name );
-extern void           dbg_destroy( void );
-extern void           dbg_set( const char *name );
-extern void           dbg_set_flag( dbg_Type flag );
-extern void           dbg_unset_flag( dbg_Type flag );
-extern __inline__ int dbg_test( dbg_Type flag );
-extern void           dbg_list( FILE *stream );
-
-#define PRINTF(flag,arg)  if (dbg_test(flag)) { log_info arg; }
-
-/* flags.c */
-
-typedef unsigned long int flg_Type;
-
-extern void           flg_register( flg_Type flag, const char *name );
-extern void           flg_destroy( void );
-extern void           flg_set( const char *name );
-extern __inline__ int flg_test( flg_Type flag );
-extern void           flg_list( FILE *stream );
-extern const          char *flg_name( flg_Type flag );
-
-/* timer.c */
-
-extern void   tim_start( const char *name );
-extern void   tim_stop( const char *name );
-extern void   tim_reset( const char *name );
-extern double tim_get_real( const char *name );
-extern double tim_get_user( const char *name );
-extern double tim_get_system( const char *name );
-extern void   tim_print_timer( FILE *str, const char *name );
-extern void   tim_print_timers( FILE *str );
-extern void   _tim_shutdown( void );
-
-/* arg.c */
-
-#define ARG_NO_ESCAPE 0x0001   /* Backslashed are not escape characters */
-#define ARG_NO_QUOTE  0x0002   /* Don't use quote marks for quoting */
-
-typedef void *arg_List;
-
-extern arg_List   arg_create( void );
-extern void       arg_destroy( arg_List arg );
-extern arg_List   arg_add( arg_List arg, const char *string );
-extern arg_List   arg_addn( arg_List arg, const char *string, int length );
-extern void       arg_grow( arg_List arg, const char *string, int length );
-extern arg_List   arg_finish( arg_List arg );
-extern const char *arg_get( arg_List arg, int item );
-extern int        arg_count( arg_List arg );
-extern void       arg_get_vector( arg_List arg, int *argc, char ***argv );
-extern arg_List   arg_argify( const char *string, int quoteStyle );
-
-/* pr.c */
-
-#define PR_USE_STDIN        0x00000001
-#define PR_USE_STDOUT       0x00000002
-#define PR_USE_STDERR       0x00000004
-#define PR_CREATE_STDIN     0x00000010
-#define PR_CREATE_STDOUT    0x00000020
-#define PR_CREATE_STDERR    0x00000040
-#define PR_STDERR_TO_STDOUT 0x00000100
-
-extern int  pr_open( const char *command, int flags,
-                    int *infd, int *outfd, int *errfd );
-extern int  pr_close_nowait( int fd );
-extern int  pr_close( int fd );
-extern int  pr_wait( int pid );
-extern void _pr_shutdown( void );
-extern int  pr_spawn( const char *command );
-int pr_readwrite( int in, int out,
-                 const char *inBuffer, int inLen,
-                 char *outBuffer, int outMaxLen );
-int pr_filter( const char *command,
-              const char *inBuffer, int inLen,
-              char *outBuffer, int outMaxLen );
-
-/* sl.c */
-
-typedef void *sl_List;
-typedef int (*sl_Iterator)( const void *datum );
-typedef int (*sl_IteratorArg)( const void *datum, void *arg );
-
-extern sl_List    sl_create( int (*compare)( const void *key1,
-                                            const void *key2 ),
-                            const void *(*key)( const void *datum ),
-                            const char *(*print)( const void *datum ) );
-extern void       sl_destroy( sl_List list );
-extern void       _sl_shutdown( void );
-extern void       sl_insert( sl_List list, const void *datum );
-extern void       sl_delete( sl_List list, const void *datum );
-extern const void *sl_find( sl_List list, const void *key );
-extern int        sl_iterate( sl_List list, sl_Iterator f );
-extern int        sl_iterate_arg( sl_List list, sl_IteratorArg f, void *arg );
-extern void       _sl_dump( sl_List list );
-
-/* text.c */
-
-extern const char * txt_soundex( const char *string );
-extern void txt_soundex2(
-   const char *string,
-   char *result /* five chars */ );
-
-/* base64.c */
-
-extern const char    *b64_encode( unsigned long val );
-extern unsigned long b64_decode( const char *val );
-
-/* base26.c */
-
-extern const char    *b26_encode( unsigned long val );
-extern unsigned long b26_decode( const char *val );
-
-/* source.c */
-
-typedef void *src_Type;
-
-typedef struct src_Stats {
-   int lines_used;             /* Lines used */
-   int lines_allocated;                /* Lines allocated */
-   int lines_bytes;            /* Bytes required to store lines */
-   int tokens_total;           /* Tokens used */
-   int tokens_reused;          /* Tokens reused */
-   int tokens_size;            /* Size of a token information object */
-} *src_Stats;
-
-extern void       src_create( void );
-extern void       src_destroy( void );
-extern const char *src_line( const char *line, int len );
-extern void       src_new_file( const char *filename );
-extern void       src_new_line( int line );
-extern void       src_advance( int length );
-extern void       src_cpp_line( const char *line, int length );
-extern src_Type   src_get( int length );
-extern const char *src_filename( src_Type source );
-extern int        src_linenumber( src_Type source );
-extern int        src_offset( src_Type source );
-extern int        src_length( src_Type source );
-extern const char *src_source_line( src_Type source );
-extern void       src_parse_error( FILE *stream, src_Type source,
-                                  const char *message );
-extern void       src_print_error( FILE *stream, src_Type source,
-                                  const char *format, ... );
-extern void       src_print_message( FILE *str, src_Type source,
-                                     const char *format, ... );
-extern void       src_print_line( FILE *stream, src_Type source );
-extern src_Stats  src_get_stats( void );
-extern void       src_print_stats( FILE *stream );
-
-/* parse-concrete.c */
-
-extern void   prs_register_concrete( const char *symbol,
-                                    const char *concrete );
-extern const  char *prs_concrete( const char *symbol );
-extern void   _prs_shutdown( void );
-
-/* log.c */
-#define LOG_OPTION_FULL    1
-#define LOG_OPTION_NO_FULL 2
-
-extern void       log_syslog( const char *ident );
-extern void       log_set_facility( const char *facility );
-extern const char *log_get_facility( void );
-extern void       log_option( int option );
-extern void       log_file( const char *ident, const char *filename );
-extern void       log_stream( const char *ident, FILE *stream );
-extern void       log_close( void );
-extern void       log_error_va( const char *routine,
-                                const char *format, va_list ap );
-extern void       log_error( const char *routine, const char *format, ... );
-extern void       log_info_va( const char *format, va_list ap );
-extern void       log_info( const char *format, ... );
-
-#endif
diff --git a/src/plugins/stardict/precompiled/arm/data.o b/src/plugins/stardict/precompiled/arm/data.o
deleted file mode 100644 (file)
index 312f733..0000000
Binary files a/src/plugins/stardict/precompiled/arm/data.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/debug.o b/src/plugins/stardict/precompiled/arm/debug.o
deleted file mode 100644 (file)
index f77e47b..0000000
Binary files a/src/plugins/stardict/precompiled/arm/debug.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/error.o b/src/plugins/stardict/precompiled/arm/error.o
deleted file mode 100644 (file)
index dd327e7..0000000
Binary files a/src/plugins/stardict/precompiled/arm/error.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/hash.o b/src/plugins/stardict/precompiled/arm/hash.o
deleted file mode 100644 (file)
index 4468a93..0000000
Binary files a/src/plugins/stardict/precompiled/arm/hash.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/log.o b/src/plugins/stardict/precompiled/arm/log.o
deleted file mode 100644 (file)
index 5ab420d..0000000
Binary files a/src/plugins/stardict/precompiled/arm/log.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/memory.o b/src/plugins/stardict/precompiled/arm/memory.o
deleted file mode 100644 (file)
index f9258d3..0000000
Binary files a/src/plugins/stardict/precompiled/arm/memory.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/prime.o b/src/plugins/stardict/precompiled/arm/prime.o
deleted file mode 100644 (file)
index 38d26a5..0000000
Binary files a/src/plugins/stardict/precompiled/arm/prime.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/stack.o b/src/plugins/stardict/precompiled/arm/stack.o
deleted file mode 100644 (file)
index d7c4867..0000000
Binary files a/src/plugins/stardict/precompiled/arm/stack.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/string.o b/src/plugins/stardict/precompiled/arm/string.o
deleted file mode 100644 (file)
index f441c0e..0000000
Binary files a/src/plugins/stardict/precompiled/arm/string.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/arm/xmalloc.o b/src/plugins/stardict/precompiled/arm/xmalloc.o
deleted file mode 100644 (file)
index d35c9a0..0000000
Binary files a/src/plugins/stardict/precompiled/arm/xmalloc.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/data.o b/src/plugins/stardict/precompiled/i686/data.o
deleted file mode 100644 (file)
index f704a65..0000000
Binary files a/src/plugins/stardict/precompiled/i686/data.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/debug.o b/src/plugins/stardict/precompiled/i686/debug.o
deleted file mode 100644 (file)
index 9b108b7..0000000
Binary files a/src/plugins/stardict/precompiled/i686/debug.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/error.o b/src/plugins/stardict/precompiled/i686/error.o
deleted file mode 100644 (file)
index c8030b2..0000000
Binary files a/src/plugins/stardict/precompiled/i686/error.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/hash.o b/src/plugins/stardict/precompiled/i686/hash.o
deleted file mode 100644 (file)
index 8204f50..0000000
Binary files a/src/plugins/stardict/precompiled/i686/hash.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/log.o b/src/plugins/stardict/precompiled/i686/log.o
deleted file mode 100644 (file)
index c3098eb..0000000
Binary files a/src/plugins/stardict/precompiled/i686/log.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/memory.o b/src/plugins/stardict/precompiled/i686/memory.o
deleted file mode 100644 (file)
index 932c1c9..0000000
Binary files a/src/plugins/stardict/precompiled/i686/memory.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/prime.o b/src/plugins/stardict/precompiled/i686/prime.o
deleted file mode 100644 (file)
index a6db0e0..0000000
Binary files a/src/plugins/stardict/precompiled/i686/prime.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/stack.o b/src/plugins/stardict/precompiled/i686/stack.o
deleted file mode 100644 (file)
index a219468..0000000
Binary files a/src/plugins/stardict/precompiled/i686/stack.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/string.o b/src/plugins/stardict/precompiled/i686/string.o
deleted file mode 100644 (file)
index 9dec54f..0000000
Binary files a/src/plugins/stardict/precompiled/i686/string.o and /dev/null differ
diff --git a/src/plugins/stardict/precompiled/i686/xmalloc.o b/src/plugins/stardict/precompiled/i686/xmalloc.o
deleted file mode 100644 (file)
index 502c354..0000000
Binary files a/src/plugins/stardict/precompiled/i686/xmalloc.o and /dev/null differ
diff --git a/src/plugins/stardict/src/Makefile.am b/src/plugins/stardict/src/Makefile.am
deleted file mode 100644 (file)
index 07f0885..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-lib_LTLIBRARIES = libstardict.la
-libstardict_la_SOURCES = engine_stardict.c
-libstardict_la_CFLAGS = $(GLIB_CFLAGS) $(GMODULE_CFLAGS) $(GNOMEVFS_CFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)/../../../include
-libstardict_la_LDFLAGS = $(GLIB_LIBS) $(GMODULE_LIBS) $(GNOMEVFS_LIBS) -lz -shared $(top_srcdir)/precompiled/$(shell arch)/*.o
diff --git a/src/plugins/stardict/src/engine_stardict.c b/src/plugins/stardict/src/engine_stardict.c
deleted file mode 100755 (executable)
index 2c988f0..0000000
+++ /dev/null
@@ -1,1752 +0,0 @@
-/******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-******************************************************************************/
-
-/** \addtogroup StarDictEngine
- */
-/*@{*/
-/** \file engine_stardict.c
- * \brief Code of StarDict-based dictionary engine.
- */
-
-#include <engine_stardict.h>
-//------------------------------------------------------------------------------
-
-#define eg_debug g_debug
-#define eg_warning g_warning
-
-
-/** \brief Read and return part of compressed file (dictzip)
- *
- * @param part <b>FilePart*</b> defines file part which we want to read
- * @param data <b>SDData*</b> structure from which we get filename of file to 
- * read (data->dic_file_name)
- * @return <b>gchar*</b> buffer with content of file part, or NULL if there 
- * were some problems
- */
-static gchar* sd_read_file_part_dz(FilePart* part, gchar* file) 
-{
-       eg_debug("-> %s() called.\n",__FUNCTION__);
-       timer(TIMER_START,(gchar*)__FUNCTION__);
-       gchar* result = NULL;
-       
-       // read into the buffer 'result'
-       dictData* header = NULL;
-       header = dict_data_open(file , 0 );
-       result = dict_data_read_(header,part->offset,part->length,NULL,NULL);
-       dict_data_close(header);
-
-       timer(TIMER_STOP,(gchar*)__FUNCTION__);
-       eg_debug("<- %s() returned string=\n%s.\n",__FUNCTION__,result);
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Read and return part of uncompressed file.
- *
- * @param part <b>FilePart*</b> defines file part which we want to read
- * @param data <b>SDData*</b> structure from which we get filename of file to 
- * read (data->dic_file_name)
- * @return <b>gchar*</b> buffer with content of file part, or NULL if there 
- * were some problems
- */
-static gchar* sd_read_file_part(FilePart* part, gchar* file)
-{
-       eg_debug("-> %s() called.\n",__FUNCTION__);
-       timer(TIMER_START,(gchar*)__FUNCTION__);
-       guint length = part->length;
-
-       // open file
-       gint fd = open(file, O_RDONLY);
-       if(fd == -1)
-       {
-               eg_debug("---> Error: could not open *.dict file!\n");
-               timer(TIMER_STOP,(gchar*)__FUNCTION__);
-               eg_debug("<- %s() finished with error.\n",
-                       __FUNCTION__);
-               return NULL;
-       }
-
-       // read from file to buffer
-       gchar* result = (gchar*)g_try_malloc0(length+1);
-       gint readed = (gint)read(fd, result, length);
-       if(readed != part->length)
-       {
-               eg_debug("---> Error: could not read *.dict file!\n");
-               g_free(result);
-               result = NULL;
-       }
-       result[length] = '\0';
-
-       timer(TIMER_STOP,(gchar*)__FUNCTION__);
-       eg_debug("<- %s() returned string=\n%s.\n",__FUNCTION__,result);
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Search offset and length of article in dictionary for word.
- *
- * @param data <b>SDData*</b> where to search for descriptor of article
- * @param word <b>gchar*</b> for what word we are looking format
- * @return <b>FilePart*</b> describing part of file containing article about 
- * word or NULL if there were some problems
- */
-FilePart* sd_find_file_part(SDData* data, gchar* word)
-{
-       eg_debug("-> %s() called.\n",__FUNCTION__);
-       timer(TIMER_START,(gchar*)__FUNCTION__);
-
-       FilePart* result = NULL;
-       data->sd_seek_idx(data->idx_file, 0, _FILES_WRAPPER_BEG);
-       gchar buffer[WORD_LIST_BUFFER_LENGTH + 1];
-       gint readed =0;
-       gint offset = 0;
-       gchar* tmp = NULL;
-       guint len = 0;
-       guint pl = strlen(word);
-       gboolean further = FALSE;
-       do
-       {
-               readed =  data->sd_read_idx(data->idx_file,
-                                       buffer + offset,
-                                       WORD_LIST_BUFFER_LENGTH - offset
-                                       );
-               if(readed < 0)
-               {
-                       eg_debug("---> Error while reading file for searching"
-                               " matched FilePart in dictionary to word: %s",
-                               word
-                               );
-                       break;
-               }
-               else
-               {
-                       further = (readed == (WORD_LIST_BUFFER_LENGTH-offset));
-               }
-               tmp = buffer;
-
-               guint i = 0;
-               gint min = _MIN(readed, WORD_LIST_BUFFER_LENGTH-270);
-               while(i<min)
-               {
-                       // check next words
-                       if(g_ascii_strncasecmp(tmp,word,pl) == 0 &&
-                          strlen(tmp) == pl)
-                       {
-                               // we have found word in dictionary
-                               guint val = 0;
-                               result = 
-                               (FilePart*)g_try_malloc0(sizeof(FilePart));
-                               len = strlen(tmp)+1;
-                               tmp += len;
-                               memcpy(&val,tmp,sizeof(guint));
-                               result->offset = ntohl(val);
-                               tmp = tmp + sizeof(guint);
-                               memcpy(&val,tmp,sizeof(guint));
-                               result->length = ntohl(val);
-                               further = FALSE;
-                               break;
-                       }
-                       // calculate length of word
-                       len = strlen(tmp)+1;
-                       // jump in buffer over this word, and ...
-                       tmp += len;
-                       // ...skip offset and length of translation
-                       tmp += 2 * sizeof(guint);
-                       // update i value
-                       i = i + len + 2 * sizeof(guint);
-               }
-               if(!further) break;
-               offset = WORD_LIST_BUFFER_LENGTH - i;
-               g_memmove(buffer,buffer+WORD_LIST_BUFFER_LENGTH-offset, offset);
-       }
-       while(further);
-
-       timer(TIMER_STOP,(gchar*)__FUNCTION__);
-       if(result)
-       {
-               eg_debug("<- %s() return: OFFSET=%d LENGTH=%d.\n",
-                       __FUNCTION__,
-                       result->offset,
-                       result->length
-                       );
-       }
-       else
-       {
-               eg_debug("<- %s() didn't find proper FilePart!\n",__FUNCTION__);
-       }       
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Close and clean unused dictionary.
- *
- * This function is called whenever you call macro dict_eng_destroy(). Every 
- * engine could have some memory allocated for its, so it is obligatory to call 
- * this function every time when You do not need engine no more.
- *
- * @param engine <b>Engine*</b> to close and clean
- */
-void sd_engine_close(Engine* engine)
-{
-       eg_debug("StarDict/%s->%s() called.\n-->PARAM: engine adress=%p\n",
-            __FILE__,
-            __FUNCTION__,
-            engine
-           );
-
-       g_assert(engine != NULL);
-       SDData* data = (SDData*)(engine->engine_data);
-
-       data->sd_close_idx(data->idx_file);
-       g_free(data->idx_file);
-       g_free(data->dict_path);
-       g_free(data->idx_file_name);
-       g_free(data->ifo_file_name);
-       g_free(data->dic_file_name);
-       g_free(data->icon);
-       g_free(data->lang_from);
-       g_free(data->lang_to);
-       g_free(data->title);
-       g_free(data);
-       g_free(engine); 
-       eg_debug("StarDict/%s->%s() engine at adress=%p is deleted.\n",
-            __FILE__,
-            __FUNCTION__,
-            engine
-           );
-       engine = NULL;
-}
-//------------------------------------------------------------------------------
-/** \brief Create engine to dictionary in given directory.
- *
- * Construct and initialize new engine from concrete location.
- *
- * @param location <b>gchar*</b> from where we are trying to load StarDict 
- * dictionary
- * @param auto_cache <b>gboolean</b> flag defining if we want automaticlly turn
- * on the optimization of newly created engine. In StarDict dictionaries this 
- * flag is unused.
- * @param progress_handler <b>gpointer</b> is a function which will be called 
- * from time to time
- * while optimization proccess is running. As far as there is no optimization
- * for StarDict dictionaries, this flag is unused either.
- * @param progress_data <b>gpointer</b> given as a parameter to progress_handler
- * @param seed <b>gdouble</b> tells how often to call progress_handler
- */
-Engine* sd_engine_create(gchar* location,
-                       EngineOptimizationFlag auto_cache,
-                       cb_progress progress_handler,
-                       gpointer progress_data,
-                       gdouble seed
-                       )
-{
-       eg_debug("StarDict/%s->%s() called.\n"
-               "-->PARAM:location=\'%s\'\n"
-               "-->PARAM:auto_cache=%d\n",
-               __FILE__,
-               __FUNCTION__,
-               location,
-               (guint)auto_cache
-               );
-       g_assert(location != NULL);
-
-       sd_timer(TIMER_START,(gchar*)__FUNCTION__); 
-
-       gchar* tmp = g_strdup(location);
-       string_to_path(&tmp);
-
-       Engine* result = (Engine*)g_try_malloc0(sizeof(Engine));
-       result->engine_location = sd_engine_location;
-       result->engine_is_optimized = sd_engine_is_optimized;
-       result->engine_optimize = sd_engine_optimize;
-       result->engine_search_word_list = sd_engine_search_word_list;
-       result->engine_search_word_translation = 
-               sd_engine_search_word_translation;       
-       result->engine_close = sd_engine_close;
-       result->engine_status = sd_engine_status;
-       result->engine_status_message = sd_engine_status_message;
-       result->engine_set_callback = sd_engine_set_callback;
-       result->engine_set_progress_seed = sd_engine_set_progress_seed;
-       result->engine_set_auto_free = sd_engine_set_auto_free;
-       result->engine_get_lang_to = sd_engine_get_lang_to;
-       result->engine_get_lang_from = sd_engine_get_lang_from;
-       result->engine_get_title = sd_engine_get_title;
-       result->engine_get_icon_path = sd_engine_get_icon_path;
-       result->engine_add_word = sd_engine_add_word;
-       result->engine_remove_word = sd_engine_remove_word;
-
-       SDData* data = (SDData*)g_try_malloc0(sizeof(SDData));
-       result->engine_data = (gpointer)data;
-       data->dict_path = g_strdup(tmp);
-       data->cb_progress_caching = progress_handler;
-       data->cb_progress_caching_data = progress_data; 
-       data->cb_progress_caching_seed = seed; 
-       data->cb_progress_word_list = NULL;
-       data->cb_progress_word_list_data = NULL;
-       data->cb_progress_word_list_seed = 0.01;
-       data->cb_progress_word_trans = NULL;
-       data->cb_progress_word_trans_data = NULL;
-       data->cb_progress_word_trans_seed = 0.01;
-       data->cb_search_word_list = NULL;
-       data->cb_search_word_list_data = NULL;
-       data->cb_search_word_trans = NULL;
-       data->cb_search_word_trans_data = NULL;
-       data->auto_free = FALSE;
-
-       if(!sd_read_files_names(data))
-       {
-               eg_warning("Error while loading dictionaries filenames!\n");    
-               result->engine_close(result);
-               result = NULL;
-               sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-               return result;
-       }
-       if(!sd_parse_ifo_file(data))
-       {
-               eg_warning("Error while reading *.ifo file!\n");        
-               result->engine_close(result);
-               result = NULL;
-               sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-               return result;
-       }
-       // there are no information about this parameter of dictionaries in
-       // StarDict format
-       data->lang_from = NULL;
-       data->lang_to = NULL;
-       // StarDict dictionaries do NOT support different icons, so set global
-       data->icon = g_strdup(ICON_PATH);
-       
-       sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-       eg_debug("StarDict/%s->%s() returned Engine at adress=%p\n",
-               __FILE__,
-               __FUNCTION__,
-               result
-              );
-       g_free(tmp); tmp = NULL;
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Search for word list in dictionary.
- *
- * @param engine <b>Engine*</b> to search in
- * @param pattern <b>gchar*</b> to search for
- */
-void sd_engine_search_word_list(Engine* engine,
-                                gchar* pattern,
-                                gpointer cb_data)
-{
-       eg_debug("-> %s() called. Searching words list\n"
-               "--->PARAM:engine at adress=%p\n"
-               "--->PARAM:pattern=\"%s\"\n",
-               __FUNCTION__,
-               engine,
-               pattern
-               );
-       g_assert(engine != NULL);
-       g_assert(pattern != NULL);
-       pattern = g_utf8_casefold(pattern, -1);
-       sd_timer(TIMER_START,(gchar*)__FUNCTION__);
-       SDData* data = (SDData*)(engine->engine_data);
-       if(data->cb_search_word_list == NULL) {
-               eg_warning("---> %s() callback for Word List not set. "
-                       "Searching aborted.\n",
-                       __FUNCTION__
-                       );
-               sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-               return;
-       };
-
-       data->sd_seek_idx(data->idx_file, 0, _FILES_WRAPPER_BEG);
-       gchar buffer[WORD_LIST_BUFFER_LENGTH + 1];
-       gint readed =0;
-       gint offset = 0;
-       gchar* tmp = NULL;
-       gchar* tmp1 = NULL;
-       gchar* tmp2 = NULL;
-       guint len = 0;
-//     guint pl = strlen(pattern);
-       GPatternSpec* regex;
-       
-       tmp = g_utf8_casefold (pattern, -1);
-       regex = g_pattern_spec_new (tmp);
-       g_free (tmp);
-       
-       gboolean further = FALSE;
-       guint count = 0;
-       GArray* result = g_array_new(TRUE, TRUE, sizeof(gchar*));
-       do
-       {
-               readed =  data->sd_read_idx(data->idx_file,
-                                       buffer + offset,
-                                       WORD_LIST_BUFFER_LENGTH - offset
-                                       );
-               if(readed < 0)
-               {
-                       eg_debug("---> Error while reading file for searching"
-                               " matched words in dictionary to pattern: %s",
-                               pattern
-                               );
-                       break;
-               }
-               else
-               {
-                       further = (readed == (WORD_LIST_BUFFER_LENGTH-offset));
-               }
-               tmp = buffer;
-               
-               guint i = 0;
-               gint min = _MIN(readed, WORD_LIST_BUFFER_LENGTH-270);
-               while(i<min)
-               {
-                       tmp1 = g_strconcat (tmp, " ", NULL);
-                       tmp2 = g_utf8_casefold(tmp1, -1);
-                       g_free (tmp1);
-                       tmp1 = g_utf8_casefold(tmp, -1);
-                       
-                       // check next words
-                       if ((g_pattern_match_string (regex, tmp1) == TRUE) ||
-                               (g_pattern_match_string (regex, tmp2) == TRUE))
-                       {
-                               gchar* new = g_strdup(tmp);
-                               g_array_append_val(result,new);
-                               ++count;
-                               eg_debug("New word %d. \'%s\' matched to "
-                                       "pattern \'%s\'\n",
-                                       count,
-                                       new,
-                                       pattern
-                                       );
-                       }
-                       
-                       g_free (tmp1);
-                       g_free (tmp2);
-                       // calculate length of word
-                       len = strlen(tmp)+1;
-                       // jump in buffer over this word, and ...
-                       tmp += len;
-                       // ...skip offset and length of translation
-                       tmp += 2 * sizeof(guint);
-                       // update i value
-                       i = i + len + 2 * sizeof(guint);
-               }
-               
-               offset = WORD_LIST_BUFFER_LENGTH - i;
-               g_memmove(buffer,buffer+WORD_LIST_BUFFER_LENGTH-offset, offset);
-       }
-       while(further);
-
-       sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-        sd_timer(TIMER_START,"callback for returning words LIST START");
-       if (NULL == cb_data )
-       {
-               cb_data = data->cb_search_word_list_data;
-       }
-        data->cb_search_word_list(result,
-                               pattern,
-                               cb_data,
-                               ENGINE_NO_ERROR
-                               );
-        sd_timer(TIMER_STOP,"callback for returning word LIST END");
-       guint i = 0;
-       for (i=0; i<result->len; i++)
-       {
-               g_free(g_array_index(result, gchar*, i));
-       }
-       g_array_free(result, TRUE);
-       g_pattern_spec_free (regex);
-}
-//------------------------------------------------------------------------------
-/** \brief Search translation of word in dictionary.
- *
- * @param engine <b>Engine*</b> to search in
- * @param word <b>gchar*</b> to search for
- */
-void sd_engine_search_word_translation(Engine* engine,
-                                       gchar* word,
-                                       gpointer cb_data)
-{
-       eg_debug("-> %s() called.\n"
-               "-->PARAM:engine at adress=%p\n"
-               "-->PARAM:word=\'%s\'\n",
-               __FUNCTION__,
-               engine,
-               word);
-       g_assert(engine != NULL);
-       g_assert(word != NULL);
-       // start sd_timer for this function
-       sd_timer(TIMER_START, (gchar*)__FUNCTION__);
-       SDData* data = (SDData*)(engine->engine_data);
-       gchar* trans0 = NULL;
-
-       if (NULL == cb_data )
-       {
-               cb_data = data->cb_search_word_list_data;
-       }
-
-       FilePart* part = sd_find_file_part(data, word);
-       if(!part)
-       {
-               sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-               eg_debug("<- %s did not found any article for word: %s",
-                       __FUNCTION__,
-                       word
-                       );
-
-               data->cb_search_word_trans(NULL,
-                                       word,
-                                       cb_data,
-                                       ENGINE_NO_ERROR
-                                       );
-               return;
-       }
-
-       trans0 = data->sd_read_dic_part(part,data->dic_file_name);
-       
-       if(!trans0)
-       {
-               sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-               eg_debug("<- %s could not read from *.dict[.dz] file: %s",
-                       __FUNCTION__,
-                       data->dic_file_name
-                       );
-
-               data->cb_search_word_trans(NULL,
-                                       word,
-                                       cb_data,
-                                       ENGINE_NO_ERROR
-                                       );
-               return;
-       }
-
-       // "parse" returned part of file with article about word
-       gchar* trans = sd_parse_stardict_article(trans0,
-                                               data->types,
-                                               part->length
-                                               );
-       g_free(trans0); trans0 = NULL;
-
-       // check if returned article has apprioprate format (only text)
-       if(!trans)
-       {
-               sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-               eg_debug("<- %s could not parse stardict article!",
-                       __FUNCTION__
-                       );
-
-               data->cb_search_word_trans(NULL,
-                                       word,
-                                       cb_data,
-                                       ENGINE_NO_ERROR
-                                       );
-               return;
-       }
-
-       sd_timer(TIMER_STOP,(gchar*)__FUNCTION__);
-       sd_timer(TIMER_START,"callback for returning word's translation START");
-       // calling callback for word translation
-
-       data->cb_search_word_trans(trans,
-                               word,
-                               cb_data,
-                               ENGINE_NO_ERROR
-                               );
-       
-       
-       sd_timer(TIMER_STOP,"callback for returning word's translation END");
-
-       /*if(data->auto_free) {
-               eg_debug("---> %s() deleting all dynamic data because "
-                       "AUTO_FREE=TRUE\n",
-                       __FUNCTION__
-               );
-               g_free(trans);
-       }*/
-       g_free(trans);
-       trans = NULL;
-}
-//------------------------------------------------------------------------------
-/** \brief Print only beggining end end of given buffer
- *
- * @param buffer to present
- */
-static void sd_print_buffer_partial(gchar* buffer)
-{
-#ifndef NOLOGS
-#define PRINT_LEN 100
-#define EDGE "\n-------------------------------------------------------------\n"
-       gchar tmp = 0;
-       guint len = strlen(buffer);
-       if(!buffer)
-       {
-               eg_debug("Buffer is empty!\n");
-       }
-       else if(PRINT_LEN >= len)
-       {
-               eg_debug("Buffer(%p):whole=%s%s%s", buffer, EDGE, buffer, EDGE);
-       }
-       else
-       {
-               // printf first 100 bytes
-               tmp = buffer[PRINT_LEN+1];
-               buffer[PRINT_LEN+1] = '\0';
-               eg_debug("Buffer(%p): first %db=%s%s (....)\n\n",
-                       buffer,
-                       PRINT_LEN,
-                       EDGE,
-                       buffer
-                       );
-               buffer[PRINT_LEN+1] = tmp; 
-
-               //print last 100 bytes
-               eg_debug("Buffer(%p): last %db=\n(....)%s%s",
-                       buffer,
-                       PRINT_LEN,
-                       buffer+len-PRINT_LEN,
-                       EDGE
-                       );
-       }
-#endif
-}
-
-/** \brief Check and parse pure stardict data containing whole article.
- *
- * @param buf <b>gchar*</b> buffer with pure data get from stardict 
- * *.dict[.gz] file
- * @param type <b>gchar*</b> sametypesequence defined in *.ifo filed - 
- * defines what kind of data will be in *.dict[.dz] or NULL if *.ifo did not 
- * define this
- * @param length <b>guint</b> length of buffer buf
- * @return <b>gchar*</b> new allocated buffer with proper translation or NULL 
- * if there were no good data for engine (e.g. if engine do not handle PNG, WAV 
- * file etc.)
- */
-gchar* sd_parse_stardict_article(gchar* buf, gchar* type, guint length)
-{
-       eg_debug("-> %s()\n--->PARAM:type=%p\n--->PARAM:length=%d",
-               __FUNCTION__,
-               type,
-               length
-               );
-       sd_print_buffer_partial(buf);
-       sd_timer(TIMER_START, (gchar*)__FUNCTION__);
-       g_assert(buf != NULL);
-       g_assert(length > 0);
-
-       gchar* result = (gchar*)g_try_malloc0(sizeof(gchar));
-       result[0] = '\0';
-       gchar next_type = 0;
-       gchar* ptr = buf;
-
-       while(length > 0)
-       {
-               if(type == NULL)
-               {
-                       memcpy(&next_type, ptr, sizeof(gchar));
-                       ++ptr;
-                       --length;
-               }
-               else
-               {
-                       next_type = type[0];
-                       ++type;
-               }
-       
-               // check if this is a text or binary data
-               // all text data are signaled by low level letter
-               if(g_ascii_islower(next_type))
-               {
-                       // text, so add this to translation
-                       gchar* new_txt = sd_get_buffer_from_article(&ptr,
-                                                               &length
-                                                               );
-                       gchar* new_tra = g_strconcat(result,
-                                               new_txt,
-                                               "\n<br/>",
-                                               NULL
-                                               );
-                       g_free(result);
-                       result = new_tra;
-                       new_tra = NULL;
-                       g_free(new_txt);
-                       new_txt = NULL;
-               }
-               else
-               {
-                       // binary, so skip it
-                       // read hom many bytes to skip
-                       guint len = 0;
-                       g_memmove(&len, ptr, sizeof(guint));
-                       //omit in buf and len - field containting size of data
-                       length -= sizeof(guint);
-                       ptr += sizeof(guint);
-                       // conver network byte oredered guint to host ordered
-                       len = ntohl(len);
-                       // skip uneeded bytes
-                       length -= len;
-                       ptr += len;
-               }
-       }
-
-       sd_timer(TIMER_STOP, (gchar*)__FUNCTION__);
-       eg_debug("<- %s() returned buffer at %p\n",__FUNCTION__,result);
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Get string from buffer.
- *
- * Function gets from buffer string of char NULL-terminated, but no more than
- * len. Additionaly it update start position of the buffer and lenght of buffer
- * left.
- *
- * @param buffer <b>gchar**</b> with part of article
- * @param len <b>guint</b> number of bytes which could be maximally readed
- * @return <b>gchar*</b> next string available in the buffer
- */
-gchar* sd_get_buffer_from_article(gchar** buffer, guint* len)
-{
-       eg_debug("-> %s\n",__FUNCTION__);
-       g_assert(len > 0);
-
-       guint buf_len = 0;
-       gchar* tmp = *buffer;
-       while(tmp && *len > 0)
-       {
-               ++buf_len;
-               ++tmp;
-               --(*len);
-       }
-
-       gchar* result = (gchar*)g_try_malloc0(buf_len+1);
-       g_memmove(result, *buffer, buf_len);
-       result[buf_len] = '\0';
-
-       *buffer = tmp;
-       eg_debug("<- %s\n",__FUNCTION__);
-       return result;
-}
-
-//------------------------------------------------------------------------------
-//==============================================================================
-//==============================================================================
-//==============================================================================
-//----------------------------------------------------------- FINISHED FUNCTIONS
-//==============================================================================
-/** \brief Trying to find file names of default StarDict dictionary files
- *
- * @param data <b>SDData*</b> this is a structure from which function gets
- * directory to search in (data->dict_path) for files. Also puts there founded
- * (if any) filenames (data->[idx|ifo|dic]_file_name)
- * @return <b>gboolean</b> telling us are there all of obligatory StarDict files
- * in directory: data->dict_path
- */
-gboolean sd_read_files_names(SDData* data) {
-       eg_debug("-> %s()\n",__FUNCTION__);
-       GError *dir_err = NULL;
-       gchar* tmp = data->dict_path;
-       GDir* dir = g_dir_open (tmp, 0, &dir_err);
-       if(!dir) 
-       {
-               eg_debug("---> Could not open a dir:\n%s\n",data->dict_path);
-               return FALSE;
-       }
-       gboolean ifo = FALSE;
-       gboolean idx = FALSE;
-       gboolean dic = FALSE;
-       const gchar* fn = g_dir_read_name(dir);
-
-       while((fn != NULL) && !(ifo && idx && dic)) 
-       {
-               if(g_str_has_suffix(fn, ".ifo")) 
-               {
-                       data->ifo_file_name = g_strconcat(tmp,"/",fn,NULL);
-                       ifo = TRUE;
-               };
-               if(g_str_has_suffix(fn, ".idx")) 
-               {
-                       data->idx_file_name = g_strconcat(tmp,"/",fn,NULL);
-                       data->idx_compressed = FALSE;
-                       data->sd_open_idx = sd_open;
-                       data->sd_read_idx = sd_read;
-                       data->sd_seek_idx = sd_seek;
-                       data->sd_close_idx = sd_close;
-                       idx = TRUE;
-               };
-               if(g_str_has_suffix(fn, ".idx.gz")) 
-               {
-                       data->idx_file_name = g_strconcat(tmp,"/",fn,NULL);
-                       data->idx_compressed = TRUE;
-                       data->sd_open_idx = sd_open_z;
-                       data->sd_read_idx = sd_read_z;
-                       data->sd_seek_idx = sd_seek_z;
-                       data->sd_close_idx = sd_close_z;
-                       idx = TRUE;
-               };
-               if(g_str_has_suffix(fn, ".dict")) 
-               {
-                       data->dic_file_name = g_strconcat(tmp,"/",fn,NULL);
-                       data->dic_compressed = FALSE;
-                       data->sd_read_dic_part = sd_read_file_part;
-                       dic = TRUE;
-               };
-               if(g_str_has_suffix(fn, ".dict.dz")) 
-               {
-                       data->dic_file_name = g_strconcat(tmp,"/",fn,NULL);
-                       data->dic_compressed = TRUE;
-                       data->sd_read_dic_part = sd_read_file_part_dz;
-                       dic = TRUE;
-               };
-               fn = g_dir_read_name(dir);
-       }
-       g_dir_close(dir);
-
-       if(ifo && idx && dic)
-       {
-               eg_debug("---> Dictionary files :\nifo=%s\nidx=%s\ndict=%s\n",
-                       data->idx_file_name,
-                       data->idx_file_name,
-                       data->dic_file_name
-                       );
-               data->idx_file = data->sd_open_idx(data->idx_file_name);
-               if(data->idx_file == NULL)
-               {
-                               g_free(data->idx_file_name);
-                               data->idx_file_name = NULL;
-                               g_free(data->ifo_file_name);
-                               data->ifo_file_name = NULL;
-                               g_free(data->dic_file_name);
-                               data->dic_file_name = NULL;
-                               eg_debug("---> Could no open *.idx file!");
-                               return FALSE;
-               }
-               eg_debug("<- %s()\n",__FUNCTION__);
-               return TRUE;
-       }
-       else 
-       {
-               if(idx) 
-               {
-                       g_free(data->idx_file_name);
-                       data->idx_file_name = NULL;
-               }
-               if(ifo) 
-               {
-                       g_free(data->ifo_file_name);
-                       data->ifo_file_name = NULL;
-               }
-               if(dic) 
-               {
-                       g_free(data->dic_file_name);
-                       data->dic_file_name = NULL;
-               }
-       }
-       eg_debug("<- %s()\n",__FUNCTION__);
-       return FALSE;
-}
-// -----------------------------------------------------------------------------
-/** \brief Check if location is a proper location of StarDict dictionary.
- *
- * @param location <b>gchar*</b> location to check
- * @return <b>gboolean</b> telling if this location is location of some 
- * StarDict dictionary
- */
-gboolean sd_engine_check(gchar* location) 
-{
-       eg_debug("-> %s()\n--->PARAM:location=%s\n",
-               __FUNCTION__,
-               location
-               );
-       g_assert(location);
-
-       gboolean result = TRUE; 
-       gchar* filepath = g_strdup(location);
-       string_to_path(&filepath);
-       if (filepath == NULL)
-       {
-               result = FALSE;
-               eg_debug("---> %s is not a proper path!\n",location);
-       }
-       else
-       {
-               SDData* tmp = g_try_malloc0(sizeof(SDData));
-               tmp->dict_path = filepath;
-
-               result = sd_read_files_names(tmp);
-
-               g_free(tmp->idx_file_name);
-               g_free(tmp->ifo_file_name);
-               g_free(tmp->dic_file_name);
-               g_free(tmp); tmp = NULL;
-       };
-       g_free(filepath);
-
-       eg_debug("<- %s() returned bool statement=%s.\n",
-               __FUNCTION__,
-               PRINT_STATE(result)
-               );
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Simple measuring of time needed for functions to work.
- *
- * @param start <b>gboolean</b> if we pass flag TIMER_START timer will start 
- * to work and if we pass TIMER_STOP timer will stop working and print short 
- * summary of working time
- * @return <b>gdouble</b> time in seconds for which function has been working
- * or (if we pass TIMER_START as a flag) 0.0.
- */
-static double timer(gboolean start, gchar* message)
-{
-       static GArray* stack = NULL;
-       static gboolean first_run = TRUE;
-       static struct timeval actual_time;
-       static struct timeval last_time;
-       static struct timeval result;
-       static double seconds = 0.0;
-       if(first_run)
-       {
-               first_run = FALSE;
-               stack = g_array_new(TRUE, TRUE, sizeof(struct timeval));
-       };
-
-       if (start)
-       {
-               eg_debug("TIMER:function %s()'s timer has started.\n",message);
-               g_array_prepend_val(stack, actual_time);
-               gettimeofday(&g_array_index(stack, struct timeval, 0),NULL);
-               return -1.0;
-       }
-       // we just want to end some sd_timer - print some information about 
-       // working time;
-       else {
-               gettimeofday(&actual_time,NULL);
-               last_time = g_array_index(stack, struct timeval, 0);
-               g_array_remove_index(stack, 0);
-
-               if (actual_time.tv_usec < last_time.tv_usec)
-               {
-                       int nsec = (last_time.tv_usec - actual_time.tv_usec) / 
-                                       (1000000 + 1);
-                       last_time.tv_usec -= 1000000 * nsec;
-                       last_time.tv_sec += nsec;
-               }
-               if (actual_time.tv_usec - last_time.tv_usec > 1000000)
-               {
-                       int nsec = (last_time.tv_usec - actual_time.tv_usec) / 
-                                       1000000;
-                       last_time.tv_usec += 1000000 * nsec;
-                       last_time.tv_sec -= nsec;
-               }
-               result.tv_sec = actual_time.tv_sec - last_time.tv_sec;
-               result.tv_usec = actual_time.tv_usec - last_time.tv_usec;
-               seconds = (((double)(result.tv_usec)) / 1e6) +
-                       ((double)(result.tv_sec));
-
-               eg_debug("TIMER:Function \'%s()\' was working for: %g "
-                       "[s] or %ld [us].\n",
-                       message,
-                       seconds,
-                       ((long)(result.tv_sec*1e6)+(result.tv_usec))
-                       );
-               // stack is empty so we delete everything
-               if(stack->len == 0)   
-               {
-                       g_array_free(stack, TRUE);
-                       first_run = TRUE;
-               }
-       }
-       return seconds;
-}
-//------------------------------------------------------------------------------
-/** \brief Cleans string and check if this is a proper directory path.
- *
- * @param string <b>gchar**</b> it is pointer to string which we want to check
- * if it is proper directory/file path
- * @return <b>gchar*</b> this is cleaned string (without filename at the end, 
- * spaces etc.) or NULL if passed string under pointer do not describe existing 
- * directory/file. On to this string points also passed pointer.
- *
- */
-static gchar* string_to_path(gchar** string)
-{
-       eg_debug("-> %s()\n-->PARAM:string=%s\n",__FUNCTION__,string[0]);
-
-       gchar* arg = string[0];
-       gchar* new = NULL;
-       // cleaning from leading and trailing whitespaces
-       g_strstrip(arg); 
-       // add current directory if this is not absolute directory
-       if (!g_path_is_absolute(arg))
-       {
-               gchar* tmp = g_get_current_dir();
-               new = g_strconcat(tmp,"/",arg,NULL);
-               g_free(arg); arg = new; new = NULL;
-       };
-       // this is not a directory
-       if (!g_file_test(arg, G_FILE_TEST_IS_DIR))
-       {
-               // if this is wrong filepath, string was wrong
-               if (!g_file_test(arg, G_FILE_TEST_IS_REGULAR))
-               {
-                       g_free(arg);
-                       new = NULL;
-               }
-               //if this is a file, remove filename
-               else
-               {
-                       new = g_path_get_dirname (arg);
-                       g_free(arg);
-               }
-       }
-       // this is a directory
-       else
-       {
-               // remove suffix "/" if neded...     
-               if (g_str_has_suffix(arg,"/") )
-               {
-                       new = g_path_get_dirname (arg);
-                       g_free(arg);
-               }
-               else
-               {
-                       new = arg;
-               }
-       };
-       // now in new should be proper filepath, if not, string was wrong
-       if (!g_file_test(new, G_FILE_TEST_IS_DIR))
-       {
-               // if that directory does not exist, passed string wasn't proper
-               g_free(new);
-               new = NULL;
-       };
-       // replace string under passed address
-       string[0] = new;
-       eg_debug("<- %s() returned string=%s\n",__FUNCTION__,string[0]);
-       return new;
-}
-//------------------------------------------------------------------------------
-/** \brief Get full filename (with path) to the icon file for this dictionary
- *
- * @param engine <b>Engine*</b> pointer to engine to which we want to get icon
- * @return <b>gchar*</b> string containing full filepath with filename to icon
- * file. If auto_free=FALSE of engine You should free this string if you do not
- * need it any more. If auto_free is set to TRUE you should remember to not
- * modyfing returned string!
- */
-gchar* sd_engine_get_icon_path(Engine* engine)
-{
-       eg_debug("-> %s\n",__FUNCTION__);
-       
-       gchar* result;
-       SDData* data = (SDData*)(engine->engine_data);
-       if(data->auto_free)
-       {
-               result = data->icon;
-       }
-       else
-       {
-               result = g_strdup(data->icon);
-       }
-
-       eg_debug("<- %s return string = \"%s\"\n",__FUNCTION__,result);
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Function not supported.
- */
-gboolean sd_engine_add_word(Engine* engine, gchar*  word, gchar*  translation)
-{
-       eg_debug("<->%s Operation not supported in this engine\n",__FUNCTION__);
-       return FALSE;
-}
-//------------------------------------------------------------------------------
-/** \brief Function not supported.
- */
-gboolean sd_engine_remove_word(Engine* engine, gchar*  word)
-{
-       eg_debug("<->%s Operation not supported in this engine\n",__FUNCTION__);
-       return FALSE;
-} 
-//------------------------------------------------------------------------------
-/** \brief Get language FROM which this dictionary translates.
- *
- * @param engine <b>Engine*</b> to check
- */
-gchar* sd_engine_get_lang_from(Engine* engine)
-{
-       eg_debug("-> %s\n",__FUNCTION__);
-
-       gchar* result;
-       SDData* data = (SDData*)(engine->engine_data);
-       if(data->auto_free)
-       {
-               result = data->lang_from;
-       }
-       else
-       {
-               result = g_strdup(data->lang_from);
-       }
-
-       eg_debug("<- %s return string = \"%s\"\n",__FUNCTION__,result);
-       return result;  
-}
-//------------------------------------------------------------------------------
-/** \brief Get language TO which this dictionary translates.
- *
- * @param engine <b>Engine*</b> to check
- */
-gchar* sd_engine_get_lang_to(Engine* engine)
-{
-       eg_debug("-> %s\n",__FUNCTION__);
-
-       gchar* result;
-       SDData* data = (SDData*)(engine->engine_data);
-       if(data->auto_free)
-       {
-               result = data->lang_to;
-       }
-       else
-       {
-               result = g_strdup(data->lang_to);
-       }
-
-       eg_debug("<- %s return string = \"%s\"\n",__FUNCTION__,result);
-       return result;  
-}
-//------------------------------------------------------------------------------
-/** \brief Gets title of dictionary.
- *
- * @param engine <b>Engine*</b> which title we want to get
- */
-gchar* sd_engine_get_title(Engine* engine)
-{
-       eg_debug("-> %s\n",__FUNCTION__);
-
-       gchar* result;
-       SDData* data = (SDData*)(engine->engine_data);
-       if(data->auto_free)
-       {
-               result = data->title;
-       }
-       else
-       {
-               result = g_strdup(data->title);
-       }
-
-       eg_debug("<- %s return string = \"%s\"\n",__FUNCTION__,result);
-       return result;  
-}
-//------------------------------------------------------------------------------
-/** \brief Sets callbacks for this dictionary.
- *
- * @param engine <b>Engine*</b>which callback we want to set
- * @param signal <b>gchar*</b> define which callback we want to set
- * @param c_handler <b>gpointer</b> function which we want to handle signal 
- * callback
- * @param user_data <b>gpointer</b> which will be passed always as a argument 
- * to callback
- * \sa dict_eng_set_callback
- */
-gpointer sd_engine_set_callback(Engine* engine,
-                            gchar* signal,
-                            gpointer c_handler,
-                            gpointer user_data)
-{
-       eg_debug("-> %s().\n",__FUNCTION__);
-       g_assert(engine != NULL);
-       g_assert(signal != NULL);
-       g_assert(c_handler != NULL);
-       SDData* data = (SDData*)(engine->engine_data);
-       if(g_ascii_strcasecmp(signal,ENGINE_PROGRESS_OPTIMIZING_SIGNAL) == 0)
-       {
-               gpointer result = data->cb_progress_caching;
-               data->cb_progress_caching = c_handler;
-               data->cb_progress_caching_data = user_data;
-               eg_debug("---> %s() sets handler for signal \"%s\".\n",
-                       __FUNCTION__,
-                       signal
-                      );
-               eg_debug("---> %s() Function at adress =  %p.\n",
-                       __FUNCTION__,
-                       c_handler
-                      );
-               eg_debug("---> %s()     Data at adress =  %p.\n",
-                       __FUNCTION__,
-                       user_data
-                      );
-               eg_debug("<- %s().\n",__FUNCTION__);
-               return result;
-       }
-       else if(g_ascii_strcasecmp(signal, ENGINE_WORD_LIST_SIGNAL) == 0)
-       {
-               gpointer result = data->cb_search_word_list;
-               data->cb_search_word_list = c_handler;
-               data->cb_search_word_list_data = user_data;
-               eg_debug("---> %s() sets handler for signal \"%s\".\n",
-                       __FUNCTION__,
-                       signal
-                      );
-               eg_debug("---> %s() Function at adress =  %p.\n",
-                       __FUNCTION__,
-                       c_handler
-                      );
-               eg_debug("---> %s()     Data at adress =  %p.\n",
-                       __FUNCTION__,
-                       user_data
-                      );
-               eg_debug("<- %s().\n",__FUNCTION__);
-               return result;
-       }
-       else if(g_ascii_strcasecmp(signal, ENGINE_WORD_TRANSLATION_SIGNAL) == 0)
-       {
-               gpointer result = data->cb_search_word_trans;
-               data->cb_search_word_trans = c_handler;
-               data->cb_search_word_trans_data = user_data;
-               eg_debug("---> %s() sets handler for signal \"%s\".\n",
-                       __FUNCTION__,
-                       signal
-                       );
-               eg_debug("---> %s() Function at adress =  %p.\n",
-                       __FUNCTION__,
-                       c_handler
-                       );
-               eg_debug("---> %s()     Data at adress =  %p.\n",
-                       __FUNCTION__,
-                       user_data
-                       );
-               eg_debug("<- %s().\n",__FUNCTION__);
-               return result;   
-       }
-       else
-       {
-               eg_warning("---> %s() unsupported signal: %s.\n",
-                               __FUNCTION__,
-                               signal
-                               );
-               eg_debug("<- %s().\n",__FUNCTION__);
-               return NULL;
-       }
-}
-//------------------------------------------------------------------------------
-// for macro: dict_eng_set_progress_seed(engine, signal, val)
-/** \brief Sets how often should be called concrete progress calback.
- *
- * @param engine <b>Engine*</b> for which we want set seed for progress proccess
- * @param signal <b>gchar*</b> for which we want to set seed
- * @param seed <b>gdouble</b> which we want to set
- */
-void sd_engine_set_progress_seed(Engine* engine, gchar* signal, gdouble seed)
-{
-       eg_debug("-> %s().\n",__FUNCTION__);
-       SDData* data = (SDData*)(engine->engine_data);
-       if(g_ascii_strcasecmp(signal,ENGINE_PROGRESS_OPTIMIZING_SIGNAL) == 0)
-       {
-               data->cb_progress_caching_seed = seed;
-               eg_debug("--->%s() sets new seed=%0.2f for for signal %s.\n",
-                       __FUNCTION__,
-                       seed,
-                       signal
-                       );
-       }
-       else
-       {
-               g_warning("--->%s() unsupported signal for progress: %s.\n",
-                       __FUNCTION__,
-                       signal
-                       );
-       };
-       eg_debug("<- %s().\n",__FUNCTION__);
-}
-//------------------------------------------------------------------------------
-/** \brief Get the last status of engine.
- *
- * @param engine <b>Engine*</b> which status we want to get
- * @return <b>EngineStatus</b> status of the engine
- * \sa dict_eng_get_last_status
- */
-EngineStatus sd_engine_status(Engine* engine) 
-{
-       eg_debug("-> %s()\n--->PARAM:engine at adress=%p\n",
-               __FUNCTION__,
-               engine
-               );
-       SDData* data = (SDData*)(engine->engine_data);
-       eg_debug("<- %s() returned error code: %d\n",
-               __FUNCTION__,
-               (gint)(data->last_error)
-               );
-       return data->last_error;
-}
-//------------------------------------------------------------------------------
-/** \brief Tells if engine is optimized or not - not supported in StarDict.
- */
-gboolean sd_engine_is_optimized(Engine* engine) 
-{
-       eg_debug("-> %s() for engine at adress=%p\n",
-               __FUNCTION__,
-               engine
-               );
-       g_assert(engine != NULL);
-
-       gboolean result = TRUE;
-
-       eg_debug("<- %s() returned bool statement=%s.\n",
-               __FUNCTION__,
-               PRINT_STATE(result)
-               );
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Optimize dictionary - not supported in StarDict dictionaries.
- */
-void sd_engine_optimize(Engine* engine)
-{
-       eg_debug("-> %s() called for engine at adress=%p\n",
-               __FUNCTION__,
-               engine
-               );
-       eg_debug("---> Unsupported method for this engine\n");
-       eg_debug("<- %s()\n",__FUNCTION__);
-}
-//------------------------------------------------------------------------------
-/** \brief Get structure and access to all module functions.
- *
- * @return <b>EngineModule</b> structure containing all functions which are 
- * needed to handle new dictionary's format
- */
-EngineModule engine_global_functions()
-{
-       eg_debug("-> %s() called.\n",__FUNCTION__);
-       EngineModule result; 
-       result.engine_check      = sd_engine_check;
-       result.engine_description= sd_engine_description;
-       result.engine_format     = sd_engine_format;
-       result.engine_version    = sd_engine_version;
-       result.engine_create     = sd_engine_create;
-       eg_debug("<- %s() returned EngineModule at adress=%p.\n",
-               __FUNCTION__,
-               &result
-               );
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Translate status code to meaningful, human-readable information.
- *
- * @param status <b>EngineStatus</b> to translates
- * @return <b>gchar*</b> message describing status (e.g. its reason etc.)
- * \sa dict_eng_status_message
- */
-gchar* sd_engine_status_message(EngineStatus status) 
-{
-       eg_debug("<-> %s() called.\n",__FUNCTION__);
-       switch (status)
-       {
-               case ENGINE_NO_ERROR:
-                       return "No error.";
-               case ENGINE_WRONG_FILE:
-                       return "File, You are trying to use, is wrong type.";
-               case ENGINE_COULDNT_READ:
-                       return "Could not read from file.";
-               case ENGINE_NO_FILE:
-                       return "There is no such a file.";
-               case ENGINE_OUT_OF_MEMORY:
-                       return "There were no enough memory for this action.";
-               default:
-                       return "Wrong engine's status identifier!";
-       }
-}
-//------------------------------------------------------------------------------
-/** \brief Gets version of module.
- * @return <b>gchar*</b> version of this module.
- * \sa dict_eng_module_get_version
- */
-gchar* sd_engine_version() 
-{
-       eg_debug("-> %s()\n",__FUNCTION__);
-       gchar* result = g_strdup(DIC_ENG_VERSION);
-       eg_debug("<- %s() return string=%s\n",
-               __FUNCTION__,
-               result
-               );
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Get information about what kind of dictionaries this engine support.
- *
- * @return <b>gchar*</b> telling about supported dictionaries (e.g. XDXF, 
- * StarDict etc.)
- * \sa dict_eng_module_get_format
- */
-gchar* sd_engine_format() 
-{
-       eg_debug("-> %s()\n",__FUNCTION__);
-       gchar* result = g_strdup(DIC_ENG_FORMAT);
-       eg_debug("<- %s() return string=%s\n",
-               __FUNCTION__,
-               result
-               );
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Get short description of the module - dictionary engine.
- *
- * @return <b>gchar*</b> description of the module
- * \sa dict_eng_module_get_description
- */
-gchar* sd_engine_description() 
-{
-       eg_debug("-> %s()\n",__FUNCTION__);
-       gchar* result = g_strdup(DIC_ENG_DESCRIPTION);
-       eg_debug("<- %s() return string=%s\n",
-               __FUNCTION__,
-               result
-               );
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Get path to the dictionary - location of its files.
- *
- * @param engine <b>Engine*</b> which directory path we want to get
- * @return <b>gchar*</b> location of the dictionary
- * \sa dict_eng_get_location
- */
-gchar* sd_engine_location(Engine* engine)
-{
-       eg_debug("->%s() called.\n-->PARAM: engine adress=%p\n",
-               __FUNCTION__,
-               engine
-               );
-       g_assert(engine != NULL);
-       SDData* data = (SDData*)(engine->engine_data);
-       gchar* result;
-       if(data->auto_free)
-       {
-               result = data->dict_path;
-       }
-       else
-       {
-               result = g_strdup(data->dict_path);
-       }
-
-       eg_debug("<- %s() returned string=%s\n",
-               __FUNCTION__,
-               result
-               );
-       return result;
-}
-//------------------------------------------------------------------------------
-/** \brief Set auto free status for engine.
- *
- * When auto flag is set to TRUE, user of engine do not have to worry about 
- * freeing any of buffer returned by the engine. Engine will clean up
- * everything. When auto free is set as FALSE, user has to remember that every-
- * thing returned from engine should be deallocated.
- *
- * @param engine <b>Engine*</b> which auto free flag we want to sets
- * @param state <b>gboolean</b> new value for auto free flag
- * \sa dict_eng_set_auto_free
- */
-void sd_engine_set_auto_free(Engine* engine, gboolean state) 
-{
-       eg_debug("-> %s()\n"
-               "--->PARAM:engine at adress=%p\n--->PARAM:state=%s\n",
-               __FUNCTION__,
-               engine,
-               PRINT_STATE(state)
-               );
-       g_assert(engine != NULL);
-       SDData* data = (SDData*)(engine->engine_data);
-       data->auto_free = state;
-       eg_debug("<- %s() Current auto_free is %s\n",
-               __FUNCTION__,
-               PRINT_STATE(data->auto_free)
-              );
-}
-//------------------------------------------------------------------------------
-/** \brief Parse single record from *.ifo file from StarDict dictionary
- *
- * @param data <b>SDData*</b> structure which we will try to complete with
- * information from new record
- * @param key <b>gchar*</b> string representing key of record
- * @param value <b>gchar*</b> value of the key in record
- */
-void sd_parse_record(SDData* data,gchar* key, gchar* value)
-{
-       if(g_ascii_strncasecmp(key,"version",100) == 0)
-       {
-       }
-       else if(g_ascii_strncasecmp(key,"bookname",100) == 0)
-       {
-               data->title = g_strdup(value);
-               eg_debug("%s set title to: %s\n",__FUNCTION__, data->title);
-       }
-       else if(g_ascii_strncasecmp(key,"wordcount",100) == 0)
-       {
-               data->word_count = (gint)g_ascii_strtoull( value, NULL, 10);
-               eg_debug("%s set word count to: %d\n",
-                       __FUNCTION__,
-                       data->word_count
-                       );
-       }
-       else if(g_ascii_strncasecmp(key,"idxfilesize",100) == 0)
-       {
-               data->idx_file_length = (gint)g_ascii_strtoull(value, NULL, 10);
-               eg_debug("%s set idx file length to: %d\n",
-                       __FUNCTION__,
-                       data->idx_file_length
-                       );
-       }
-       else if(g_ascii_strncasecmp(key,"sametypesequence",100) == 0)
-       {
-               data->types = g_strdup(value);
-               eg_debug("%s set data types to: %s\n",__FUNCTION__,data->types);
-       }
-       else
-       {
-               eg_debug("%s trying to set usupported field\n",__FUNCTION__);
-       }
-       /* ----- as far unsupported field from *.ifo files
-       else if(g_ascii_strncasecmp(key,"author",100))
-       {
-       }
-       else if(g_ascii_strncasecmp(key,"email",100))
-       {
-       }
-       else if(g_ascii_strncasecmp(key,"website",100))
-       {
-       }
-       else if(g_ascii_strncasecmp(key,"description",100))
-       {
-       }
-       else if(g_ascii_strncasecmp(key,"date",100))
-       {
-       } */
-}
-//------------------------------------------------------------------------------
-/** \brief Try to read and parse whole *.ifo file from StarDict Dictionary
- *
- * @param data <b>SDData*</b> structure to which we try save information about
- * dictionary in data->dict_path path
- * @return <b>gboolean</b> if data->dict_path is good path and it contains all 
- * obligatory StarDict files, function return TRUE. Otherwise return FALSE.
- */
-gboolean sd_parse_ifo_file(SDData* data)
-{
-       GnomeVFSHandle* fd = NULL;
-       GnomeVFSResult  fr = 0;
-       GnomeVFSFileSize n = 0;
-       GnomeVFSFileSize k = 0;
-
-       if(!gnome_vfs_initialized ())
-       {
-               gnome_vfs_init ();                       
-       };
-       // open the file
-       fr = gnome_vfs_open (&fd, data->ifo_file_name, GNOME_VFS_OPEN_READ);
-       if(fr != GNOME_VFS_OK)
-       {
-               eg_warning("Error while trying to open file:\n%s\n",
-                       data->ifo_file_name
-                       );
-               return FALSE;
-       }
-       gnome_vfs_seek(fd, GNOME_VFS_SEEK_END, 0);
-       fr = gnome_vfs_tell(fd, &n);
-       gnome_vfs_seek(fd, GNOME_VFS_SEEK_START, 0);
-       // read whole content
-       gchar* tmp = g_try_malloc0(sizeof(gchar)*((gint)(n)));
-       fr = gnome_vfs_read(fd, tmp, n, &k);
-       if(fr != GNOME_VFS_OK) {
-               eg_warning("Error while trying to read file:\n%s\n",
-                       data->ifo_file_name
-                       );
-               gnome_vfs_close(fd);
-               return FALSE;
-       }
-       gnome_vfs_close(fd);    
-       // now we have in tmp whole content of file, we have to "parse it"
-       gchar** table = g_strsplit(tmp, "\n", 100);
-       gint i;
-       for(i=0; table[i]!=NULL; ++i)
-       {
-               gchar* eq = g_strstr_len (table[i], 0xffff, "=");
-               if(eq == NULL) continue;
-               *eq = '\0';
-               ++eq;
-               eg_debug("SD *.ifo record -> Key=%s => Value=%s\n",table[i],eq);
-               sd_parse_record(data, table[i], eq);
-       }
-
-       g_free(tmp); tmp = NULL;
-       g_strfreev(table); table = NULL;
-       if(data->title)
-       {
-               return TRUE;
-       }
-       else 
-       {
-               return FALSE;
-       }
-}
-//------------------------------------------------------------------------------
-//-------------------------------------------------------------- STANDARD ------
-//------------------------------------------------------------------------------
-/** \brief Opening file not compressed
- * 
- * @param filename <b>gchar*</b> full filename (with path) to file to open
- * @return <b>gpointer</b> pointer to memory which is needed for other functions
- * from this wrapper. Under this pointer could be simple gint or more
- * complicated structure - depends on what kind of file we are trying to open.
- * If opening failed - function return NULL.
- */
-static gpointer sd_open(gchar* filename)
-{
-       gint tmp = open(filename, O_RDONLY);
-       if(tmp == -1)
-       {
-               eg_debug("---> Error while trying to open file %s\n",filename);
-               return NULL;
-       }
-       gint* result = (int*)g_try_malloc0(sizeof(gint));
-       *result = tmp;
-       return (gpointer)result;
-}
-//------------------------------------------------------------------------------
-/** \brief Reading from not compressed file
- * 
- * @param f <b>gpointer</b> pointer returned from sd_open()
- * @param buffer <b>gchar*</b> buffer where data should be put after reading
- * @param l <b>gint</b> maximum bytes to read. Effective number of bytes readed
- * could be different from this argument and is returned from function.
- * @return <b>gint</b> effective number of readed bytes
- */
-static gint sd_read(gpointer f, gchar* buffer, gint l)
-{
-       gint tmp = *((gint*)(f));
-       return (gint)read(tmp, buffer, l);
-}
-//------------------------------------------------------------------------------
-/** \brief Seek throught not compressed files
- *
- * @param f <b>gpointer</b>  pointer returned from sd_open()
- * @param l <b>glong</b> offset which we want to seek
- * @param from <b>gchar</b> postion from which we want to seek. Possible values
- * are:\n _FILES_WRAPPER_BEG for the beggining of file \n
- * _FILES_WRAPPER_CUR for the current position \n
- * _FILES_WRAPPER_END for the end of file.
- * @return <b>glong</b> previous position in file if operation was successful,
- * or non positive value if there was an error.
- */
-static glong sd_seek(gpointer f, glong l, gchar from)
-{
-       gint tmp = *((gint*)(f));
-       switch(from)
-       {
-               case _FILES_WRAPPER_BEG:
-                       return (glong)lseek(tmp, l, SEEK_SET);
-               case _FILES_WRAPPER_CUR:
-                       return (glong)lseek(tmp, l, SEEK_CUR);
-               case _FILES_WRAPPER_END:
-                       return (glong)lseek(tmp, l, SEEK_END);
-               default:
-                       eg_debug("---> Wrong relative position for sd_seek!\n");
-                       return -2;
-       }
-}
-//------------------------------------------------------------------------------
-/** \brief Close uncompressed file
- *
- * @param f <b>gpointer</b> pointer returned from sd_open() - file to close.
- */
-static void sd_close(gpointer f)
-{
-       gint tmp = *((gint*)(f));
-       close(tmp);
-}
-//------------------------------------------------------------------------------
-//------------------------------------------------------- GZIPPED --------------
-//------------------------------------------------------------------------------
-/** \brief Opening file compressed with standard gzip
- * 
- * @param filename <b>gchar*</b> full filename (with path) to file to open
- * @return <b>gpointer</b> pointer to memory which is needed for other functions
- * from this wrapper. Under this pointer could be simple gint or more
- * complicated structure - depends on what kind of file we are trying to open.
- * If opening failed - function return NULL.
- */
-static gpointer sd_open_z(gchar* filename)
-{
-       gzFile* out = (gzFile*)g_try_malloc0(sizeof(gzFile));
-       *out = gzopen(filename, "rb9");
-       if(out == NULL)
-       {
-               eg_debug("Error while opening compressed file with gzip!\n");
-       }
-       return (gpointer)out;
-}
-//------------------------------------------------------------------------------
-/** \brief Reading from compressed file with gzip
- * 
- * @param f <b>gpointer</b> pointer retunred from sd_open()
- * @param buffer <b>gchar*</b> buffer where data should be put after reading
- * @param l <b>gint</b> maximum bytes to read. Effective number of bytes readed
- * could be different from this argument and is returned from function.
- * @return <b>gint</b> effective number of readed bytes
- */
-static gint sd_read_z(gpointer f, gchar* buffer, gint l)
-{
-       gzFile tmp = *((gzFile*)f);
-       return (gint)gzread(tmp, buffer, l);
-}
-//------------------------------------------------------------------------------
-/** \brief Seek throught compressed files with gzip
- *
- * @param f <b>gpointer</b>  pointer returned from sd_open()
- * @param l <b>glong</b> offset which we want to seek
- * @param from <b>gchar</b> postion from which we want to seek. Possible values
- * are:\n _FILES_WRAPPER_BEG for the beggining of file \n
- * _FILES_WRAPPER_CUR for the current position \n
- * _FILES_WRAPPER_END for the end of file.
- * @return <b>glong</b> previous position in file if operation was successful,
- * or non positive value if there was an error.
- */
-static glong sd_seek_z(gpointer f, glong l, gchar from)
-{
-       gzFile tmp = *((gzFile*)f);
-       switch(from)
-       {
-               case _FILES_WRAPPER_BEG:
-                       return (glong)gzseek(tmp, l, SEEK_SET);
-               case _FILES_WRAPPER_CUR:
-                       return (glong)gzseek(tmp, l, SEEK_CUR);
-               default:
-                       eg_debug("---> Wrong position for sd_seek_z!\n");
-                       return -2;
-       }
-}
-//------------------------------------------------------------------------------
-/** \brief Close compressed file with gzip
- *
- * @param f <b>gpointer</b> pointer returned from sd_open() - file to close.
- */
-static void sd_close_z(gpointer f)
-{
-       gzFile tmp = *((gzFile*)f);
-       gzclose(tmp);
-}
-/*@}*/
diff --git a/src/plugins/stardict/src/test.c b/src/plugins/stardict/src/test.c
deleted file mode 100755 (executable)
index 4498a77..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006 ComArch S.A.
-*******************************************************************************/
-#include <gmodule.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <dictionary_engine.h>
-
-#define DICT_PATH0 "/home/str/mdictionary/stardictDicts/stardict-comn_dictd03_slovnyk_pl-ru-2.4.2"
-#define DICT_PATH1 "/home/str/mdictionary/stardictDicts/stardict-comn_dictd03_slovnyk_pl-en-2.4.2"
-#define DICT_PATH2 "/home/str/mdictionary/stardictDicts/stardict-dictd_www.dict.org_foldoc-2.4.2"
-#define DICT_PATH3 "/home/str/mdictionary/stardictDicts/stardict-dictd_www.freedict.de_eng-fra-2.4.2"
-#define DICT_PATH4 "/home/gandzia/MyDocs/.documents/stardict-comn_dictd03_engcom-2.4.2"
-#define DICT_PATH5 "/home/lukasz/MyDocs/stardict-foldoc"
-#define DICT_PATH6
-
-
-#define DICT_PATH DICT_PATH5
-
-gchar* dictionaries[] = {
-       DICT_PATH0,
-       DICT_PATH1,
-       DICT_PATH2,
-       DICT_PATH3,
-       NULL
-};
-
-getting_additional get_functions; // additional functions for concrete module (e.g. XDXF)
-
-void print_list(GArray* list, gchar* pattern, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,pattern);
-       int i = 0;
-       while(g_array_index(list, gchar*, i) != NULL) 
-       {
-               printf("  %d. : %s\n",i+1,g_array_index(list, gchar*, i));
-               i++;
-       }
-
-}
-
-void print_translation(gchar* translation, gchar* word, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,word);
-       printf("%s\n\nTRANSLATION ENDS.\n",translation);
-}
-
-void caching_progress(gdouble value, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,value);
-}
-
-int main(int argc, char** argv) 
-{
-       char* nameApp = "StarDictEngine test: ";
-       printf("%sStarting test program of module: dictionary_engine - StarDict\n",nameApp);
-
-       
-       gchar* current_directory = g_get_current_dir();
-       printf("%sCurrent directory: %s\n",nameApp,current_directory);
-       gchar* library_to_path = g_strconcat(current_directory, "/bin/engine_stardict.so", NULL);
-       printf("%sEngine library should be in location:\n\t%s\n",nameApp,library_to_path);
-       
-       GModule *library = g_module_open(library_to_path, G_MODULE_BIND_LAZY);
-       if(!library)
-       {
-               printf("%sLoading module failed. \nReason: %s\n",nameApp,g_module_error());
-               return 1;               
-       };
-       
-       g_module_symbol ( (library),_GLOBAL_FUNCTIONS_NAME_, (gpointer)&get_functions);
-       if(get_functions == NULL)
-       {
-               printf("%sLoading function failed\n",nameApp);
-               return 2;
-       }
-       else 
-       {
-               printf("%sLoading function OK\n",nameApp);
-       }
-
-       EngineModule module = get_functions();
-       printf("Module description: %s\n",dict_eng_module_get_description(module));
-       Engine* sd;
-       
-        gboolean is_compatible = dict_eng_module_check(module, DICT_PATH);
-       if(is_compatible == TRUE)
-       {
-               printf("Location is compatible with enigne!\n");
-       }
-       else {
-               printf("Location is not compatible with enigne!\n");
-               return 1;
-       }
-       
-
-       sd = dict_eng_module_create(module, DICT_PATH, ENGINE_NO);
-       printf("Searching in dictionary: \'%s\'\n",dict_eng_get_title(sd));
-       dict_eng_set_callback(sd,
-                             ENGINE_WORD_LIST_SIGNAL,
-                             print_list,
-                             "Word list matches to pattern: %s\n"
-                            );
-       dict_eng_set_callback(sd,
-                       ENGINE_WORD_TRANSLATION_SIGNAL ,
-                       print_translation,
-                       "Translation for word\'%s\':\n"
-                       );
-
-       dict_eng_search_word_list(sd,"a");
-       dict_eng_search_word_list(sd,"z");
-       dict_eng_search_word_translation(sd,"deb");
-       dict_eng_search_word_translation(sd,"abort");
-       
-       
-       dict_eng_destroy(sd);
-       printf("%sClosed.\n",nameApp);  
-       return 0;
-}
-
diff --git a/src/plugins/stardict/test_dictsip/data.c b/src/plugins/stardict/test_dictsip/data.c
deleted file mode 100644 (file)
index 1463d05..0000000
+++ /dev/null
@@ -1,524 +0,0 @@
-/* data.c -- 
- * Created: Tue Jul 16 12:45:41 1996 by faith@dict.org
- * Revised: Sat Mar 30 10:46:06 2002 by faith@dict.org
- * Copyright 1996, 1997, 1998, 2000, 2002 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * $Id: data.c,v 1.24 2004/10/12 12:55:14 cheusov Exp $
- * 
- */
-
-#include "dictP.h"
-
-#include "data.h"
-#include "dictzip.h"
-
-#include <sys/stat.h>
-#ifdef HAVE_MMAP
-#include <sys/mman.h>
-#endif
-#include <ctype.h>
-#include <fcntl.h>
-#include <assert.h>
-#ifdef HAVE_MMAP
-#include <sys/mman.h>
-#endif
-
-#define USE_CACHE 1
-
-#ifdef HAVE_MMAP
-int mmap_mode = 1; /* dictd uses mmap() function (the default) */
-#else
-int mmap_mode = 0;
-#endif
-
-int dict_data_filter( char *buffer, int *len, int maxLength,
-                     const char *filter )
-{
-   char *outBuffer;
-   int  outLen;
-
-   if (!filter) return 0;
-   outBuffer = xmalloc( maxLength + 2 );
-   
-   outLen = pr_filter( filter, buffer, *len, outBuffer, maxLength + 1 );
-   if (outLen > maxLength )
-      err_fatal( __FUNCTION__,
-                "Filter grew buffer from %d past limit of %d\n",
-                *len, maxLength );
-   memcpy( buffer, outBuffer, outLen );
-   xfree( outBuffer );
-
-   PRINTF(DBG_UNZIP|DBG_ZIP,("Length was %d, now is %d\n",*len,outLen));
-
-   *len = outLen;
-   
-   return 0;
-}
-
-static int dict_read_header( const char *filename,
-                            dictData *header, int computeCRC )
-{
-   FILE          *str;
-   int           id1, id2, si1, si2;
-   char          buffer[BUFFERSIZE];
-   int           extraLength, subLength;
-   int           i;
-   char          *pt;
-   int           c;
-   struct stat   sb;
-   unsigned long crc   = crc32( 0L, Z_NULL, 0 );
-   int           count;
-   unsigned long offset;
-
-   if (!(str = fopen( filename, "r" )))
-      err_fatal_errno( __FUNCTION__,
-                      "Cannot open data file \"%s\" for read\n", filename );
-
-   header->filename     = str_find( filename );
-   header->headerLength = GZ_XLEN - 1;
-   header->type         = DICT_UNKNOWN;
-   
-   id1                  = getc( str );
-   id2                  = getc( str );
-
-   if (id1 != GZ_MAGIC1 || id2 != GZ_MAGIC2) {
-      header->type = DICT_TEXT;
-      fstat( fileno( str ), &sb );
-      header->compressedLength = header->length = sb.st_size;
-      header->origFilename     = str_find( filename );
-      header->mtime            = sb.st_mtime;
-      if (computeCRC) {
-        rewind( str );
-        while (!feof( str )) {
-           if ((count = fread( buffer, 1, BUFFERSIZE, str ))) {
-              crc = crc32( crc, buffer, count );
-           }
-        }
-      }
-      header->crc = crc;
-      fclose( str );
-      return 0;
-   }
-   header->type = DICT_GZIP;
-   
-   header->method       = getc( str );
-   header->flags        = getc( str );
-   header->mtime        = getc( str ) <<  0;
-   header->mtime       |= getc( str ) <<  8;
-   header->mtime       |= getc( str ) << 16;
-   header->mtime       |= getc( str ) << 24;
-   header->extraFlags   = getc( str );
-   header->os           = getc( str );
-   
-   if (header->flags & GZ_FEXTRA) {
-      extraLength          = getc( str ) << 0;
-      extraLength         |= getc( str ) << 8;
-      header->headerLength += extraLength + 2;
-      si1                  = getc( str );
-      si2                  = getc( str );
-      
-      if (si1 == GZ_RND_S1 && si2 == GZ_RND_S2) {
-        subLength            = getc( str ) << 0;
-        subLength           |= getc( str ) << 8;
-        header->version      = getc( str ) << 0;
-        header->version     |= getc( str ) << 8;
-        
-        if (header->version != 1)
-           err_internal( __FUNCTION__,
-                         "dzip header version %d not supported\n",
-                         header->version );
-   
-        header->chunkLength  = getc( str ) << 0;
-        header->chunkLength |= getc( str ) << 8;
-        header->chunkCount   = getc( str ) << 0;
-        header->chunkCount  |= getc( str ) << 8;
-        
-        if (header->chunkCount <= 0) {
-           fclose( str );
-           return 5;
-        }
-        header->chunks = xmalloc( sizeof( header->chunks[0] )
-                                  * header->chunkCount );
-        for (i = 0; i < header->chunkCount; i++) {
-           header->chunks[i]  = getc( str ) << 0;
-           header->chunks[i] |= getc( str ) << 8;
-        }
-        header->type = DICT_DZIP;
-      } else {
-        fseek( str, header->headerLength, SEEK_SET );
-      }
-   }
-   
-   if (header->flags & GZ_FNAME) { /* FIXME! Add checking against header len */
-      pt = buffer;
-      while ((c = getc( str )) && c != EOF){
-        *pt++ = c;
-
-        if (pt == buffer + sizeof (buffer)){
-           err_fatal (
-              __FUNCTION__,
-              "too long FNAME field in dzip file \"%s\"\n", filename);
-        }
-      }
-
-      *pt = '\0';
-      header->origFilename = str_find( buffer );
-      header->headerLength += strlen( header->origFilename ) + 1;
-   } else {
-      header->origFilename = NULL;
-   }
-   
-   if (header->flags & GZ_COMMENT) { /* FIXME! Add checking for header len */
-      pt = buffer;
-      while ((c = getc( str )) && c != EOF){
-        *pt++ = c;
-
-        if (pt == buffer + sizeof (buffer)){
-           err_fatal (
-              __FUNCTION__,
-              "too long COMMENT field in dzip file \"%s\"\n", filename);
-        }
-      }
-
-      *pt = '\0';
-      header->comment = str_find( buffer );
-      header->headerLength += strlen( header->comment ) + 1;
-   } else {
-      header->comment = NULL;
-   }
-
-   if (header->flags & GZ_FHCRC) {
-      getc( str );
-      getc( str );
-      header->headerLength += 2;
-   }
-
-   if (ftell( str ) != header->headerLength + 1)
-      err_internal( __FUNCTION__,
-                   "File position (%lu) != header length + 1 (%d)\n",
-                   ftell( str ), header->headerLength + 1 );
-
-   fseek( str, -8, SEEK_END );
-   header->crc     = getc( str ) <<  0;
-   header->crc    |= getc( str ) <<  8;
-   header->crc    |= getc( str ) << 16;
-   header->crc    |= getc( str ) << 24;
-   header->length  = getc( str ) <<  0;
-   header->length |= getc( str ) <<  8;
-   header->length |= getc( str ) << 16;
-   header->length |= getc( str ) << 24;
-   header->compressedLength = ftell( str );
-
-                               /* Compute offsets */
-   header->offsets = xmalloc( sizeof( header->offsets[0] )
-                             * header->chunkCount );
-   for (offset = header->headerLength + 1, i = 0;
-       i < header->chunkCount;
-       i++)
-   {
-      header->offsets[i] = offset;
-      offset += header->chunks[i];
-   }
-
-   fclose( str );
-   return 0;
-}
-
-dictData *dict_data_open( const char *filename, int computeCRC )
-{
-   dictData    *h = NULL;
-   struct stat sb;
-   int         j;
-
-   if (!filename)
-      return NULL;
-
-   h = xmalloc( sizeof( struct dictData ) );
-
-   memset( h, 0, sizeof( struct dictData ) );
-   h->initialized = 0;
-
-   if (stat( filename, &sb ) || !S_ISREG(sb.st_mode)) {
-      err_warning( __FUNCTION__,
-                  "%s is not a regular file -- ignoring\n", filename );
-      return h;
-   }
-   
-   if (dict_read_header( filename, h, computeCRC )) {
-      err_fatal( __FUNCTION__,
-                "\"%s\" not in text or dzip format\n", filename );
-   }
-   
-   if ((h->fd = open( filename, O_RDONLY )) < 0)
-      err_fatal_errno( __FUNCTION__,
-                      "Cannot open data file \"%s\"\n", filename );
-   if (fstat( h->fd, &sb ))
-      err_fatal_errno( __FUNCTION__,
-                      "Cannot stat data file \"%s\"\n", filename );
-   h->size = sb.st_size;
-
-   if (mmap_mode){
-#ifdef HAVE_MMAP
-      h->start = mmap( NULL, h->size, PROT_READ, MAP_SHARED, h->fd, 0 );
-      if ((void *)h->start == (void *)(-1))
-        err_fatal_errno(
-           __FUNCTION__,
-           "Cannot mmap data file \"%s\"\n", filename );
-#else
-      err_fatal (__FUNCTION__, "This should not happen");
-#endif
-   }else{
-      h->start = xmalloc (h->size);
-      if (-1 == read (h->fd, (char *) h->start, h->size))
-        err_fatal_errno (
-           __FUNCTION__,
-           "Cannot read data file \"%s\"\n", filename );
-
-      close (h -> fd);
-      h -> fd = 0;
-   }
-
-   h->end = h->start + h->size;
-
-   for (j = 0; j < DICT_CACHE_SIZE; j++) {
-      h->cache[j].chunk    = -1;
-      h->cache[j].stamp    = -1;
-      h->cache[j].inBuffer = NULL;
-      h->cache[j].count    = 0;
-   }
-   
-   return h;
-}
-
-void dict_data_close( dictData *header )
-{
-   int i;
-
-   if (!header)
-      return;
-
-   if (header->fd >= 0) {
-      if (mmap_mode){
-#ifdef HAVE_MMAP
-        munmap( (void *)header->start, header->size );
-        close( header->fd );
-        header->fd = 0;
-        header->start = header->end = NULL;
-#else
-        err_fatal (__FUNCTION__, "This should not happen");
-#endif
-      }else{
-        if (header -> start)
-           xfree ((char *) header -> start);
-      }
-   }
-
-   if (header->chunks)       xfree( header->chunks );
-   if (header->offsets)      xfree( header->offsets );
-
-   if (header->initialized) {
-      if (inflateEnd( &header->zStream ))
-        err_internal( __FUNCTION__,
-                      "Cannot shut down inflation engine: %s\n",
-                      header->zStream.msg );
-   }
-
-   for (i = 0; i < DICT_CACHE_SIZE; ++i){
-      if (header -> cache [i].inBuffer)
-        xfree (header -> cache [i].inBuffer);
-   }
-
-   memset( header, 0, sizeof( struct dictData ) );
-   xfree( header );
-}
-
-char *dict_data_obtain (const dictDatabase *db, const dictWord *dw)
-{
-   char *word_copy;
-   int len;
-
-   if (!dw || !db)
-      return NULL;
-
-   if (dw -> def){
-      if (-1 == dw -> def_size){
-        len = strlen (dw -> def);
-      }else{
-        len = dw -> def_size;
-      }
-
-      word_copy = xmalloc (2 + len);
-      memcpy (word_copy, dw -> def, len);
-      word_copy [len + 0] = '\n';
-      word_copy [len + 1] = 0;
-
-      return word_copy;
-   }else{
-      assert (db);
-      assert (db -> data);
-
-      return dict_data_read_ (
-        db -> data, dw -> start, dw -> end,
-        db->prefilter, db->postfilter);
-   }
-}
-
-char *dict_data_read_ (
-   dictData *h, unsigned long start, unsigned long size,
-   const char *preFilter, const char *postFilter )
-{
-   char          *buffer, *pt;
-   unsigned long end;
-   int           count;
-   char          *inBuffer;
-   char          outBuffer[OUT_BUFFER_SIZE];
-   int           firstChunk, lastChunk;
-   int           firstOffset, lastOffset;
-   int           i, j;
-   int           found, target, lastStamp;
-   static int    stamp = 0;
-
-   end  = start + size;
-
-   buffer = xmalloc( size + 1 );
-   
-   PRINTF(DBG_UNZIP,
-         ("dict_data_read( %p, %lu, %lu, %s, %s )\n",
-          h, start, size, preFilter, postFilter ));
-
-   assert( h != NULL);
-   switch (h->type) {
-   case DICT_GZIP:
-      err_fatal( __FUNCTION__,
-                "Cannot seek on pure gzip format files.\n"
-                "Use plain text (for performance)"
-                " or dzip format (for space savings).\n" );
-      break;
-   case DICT_TEXT:
-      memcpy( buffer, h->start + start, size );
-      buffer[size] = '\0';
-      break;
-   case DICT_DZIP:
-      if (!h->initialized) {
-        ++h->initialized;
-        h->zStream.zalloc    = NULL;
-        h->zStream.zfree     = NULL;
-        h->zStream.opaque    = NULL;
-        h->zStream.next_in   = 0;
-        h->zStream.avail_in  = 0;
-        h->zStream.next_out  = NULL;
-        h->zStream.avail_out = 0;
-        if (inflateInit2( &h->zStream, -15 ) != Z_OK)
-           err_internal( __FUNCTION__,
-                         "Cannot initialize inflation engine: %s\n",
-                         h->zStream.msg );
-      }
-      firstChunk  = start / h->chunkLength;
-      firstOffset = start - firstChunk * h->chunkLength;
-      lastChunk   = end / h->chunkLength;
-      lastOffset  = end - lastChunk * h->chunkLength;
-      PRINTF(DBG_UNZIP,
-            ("   start = %lu, end = %lu\n"
-             "firstChunk = %d, firstOffset = %d,"
-             " lastChunk = %d, lastOffset = %d\n",
-             start, end, firstChunk, firstOffset, lastChunk, lastOffset ));
-      for (pt = buffer, i = firstChunk; i <= lastChunk; i++) {
-
-                               /* Access cache */
-        found  = 0;
-        target = 0;
-        lastStamp = INT_MAX;
-        for (j = 0; j < DICT_CACHE_SIZE; j++) {
-#if USE_CACHE
-           if (h->cache[j].chunk == i) {
-              found  = 1;
-              target = j;
-              break;
-           }
-#endif
-           if (h->cache[j].stamp < lastStamp) {
-              lastStamp = h->cache[j].stamp;
-              target = j;
-           }
-        }
-
-        h->cache[target].stamp = ++stamp;
-        if (found) {
-           count = h->cache[target].count;
-           inBuffer = h->cache[target].inBuffer;
-        } else {
-           h->cache[target].chunk = i;
-           if (!h->cache[target].inBuffer)
-              h->cache[target].inBuffer = xmalloc( IN_BUFFER_SIZE );
-           inBuffer = h->cache[target].inBuffer;
-
-           if (h->chunks[i] >= OUT_BUFFER_SIZE ) {
-              err_internal( __FUNCTION__,
-                            "h->chunks[%d] = %d >= %ld (OUT_BUFFER_SIZE)\n",
-                            i, h->chunks[i], OUT_BUFFER_SIZE );
-           }
-           memcpy( outBuffer, h->start + h->offsets[i], h->chunks[i] );
-           dict_data_filter( outBuffer, &count, OUT_BUFFER_SIZE, preFilter );
-        
-           h->zStream.next_in   = outBuffer;
-           h->zStream.avail_in  = h->chunks[i];
-           h->zStream.next_out  = inBuffer;
-           h->zStream.avail_out = IN_BUFFER_SIZE;
-           if (inflate( &h->zStream,  Z_PARTIAL_FLUSH ) != Z_OK)
-              err_fatal( __FUNCTION__, "inflate: %s\n", h->zStream.msg );
-           if (h->zStream.avail_in)
-              err_internal( __FUNCTION__,
-                            "inflate did not flush (%d pending, %d avail)\n",
-                            h->zStream.avail_in, h->zStream.avail_out );
-           
-           count = IN_BUFFER_SIZE - h->zStream.avail_out;
-           dict_data_filter( inBuffer, &count, IN_BUFFER_SIZE, postFilter );
-
-           h->cache[target].count = count;
-        }
-        
-        if (i == firstChunk) {
-           if (i == lastChunk) {
-              memcpy( pt, inBuffer + firstOffset, lastOffset-firstOffset);
-              pt += lastOffset - firstOffset;
-           } else {
-              if (count != h->chunkLength )
-                 err_internal( __FUNCTION__,
-                               "Length = %d instead of %d\n",
-                               count, h->chunkLength );
-              memcpy( pt, inBuffer + firstOffset,
-                      h->chunkLength - firstOffset );
-              pt += h->chunkLength - firstOffset;
-           }
-        } else if (i == lastChunk) {
-           memcpy( pt, inBuffer, lastOffset );
-           pt += lastOffset;
-        } else {
-           assert( count == h->chunkLength );
-           memcpy( pt, inBuffer, h->chunkLength );
-           pt += h->chunkLength;
-        }
-      }
-      *pt = '\0';
-      break;
-   case DICT_UNKNOWN:
-      err_fatal( __FUNCTION__, "Cannot read unknown file type\n" );
-      break;
-   }
-   
-   return buffer;
-}
diff --git a/src/plugins/stardict/test_dictsip/data.h b/src/plugins/stardict/test_dictsip/data.h
deleted file mode 100644 (file)
index 0cd39da..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* data.h -- 
- * Created: Sat Mar 15 18:04:25 2003 by Aleksey Cheusov <vle@gmx.net>
- * Copyright 1994-2003 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id: data.h,v 1.1 2003/03/19 16:43:15 cheusov Exp $
- */
-
-#ifndef _DATA_H_
-#define _DATA_H_
-
-#include "dictP.h"
-#include "defs.h"
-
-/* initialize .data file */
-extern dictData *dict_data_open (
-   const char *filename, int computeCRC);
-/* */
-extern void dict_data_close (
-   dictData *data);
-
-extern void     dict_data_print_header( FILE *str, dictData *data );
-extern int      dict_data_zip(
-   const char *inFilename, const char *outFilename,
-   const char *preFilter, const char *postFilter );
-
-extern char *dict_data_obtain (
-   const dictDatabase *db,
-   const dictWord *dw);
-
-extern char *dict_data_read_ (
-   dictData *data,
-   unsigned long start, unsigned long end,
-   const char *preFilter,
-   const char *postFilter );
-
-extern int   dict_data_filter(
-   char *buffer, int *len, int maxLength,
-   const char *filter );
-
-extern int        mmap_mode;
-
-#endif /* _DATA_H_ */
diff --git a/src/plugins/stardict/test_dictsip/dictd.c b/src/plugins/stardict/test_dictsip/dictd.c
deleted file mode 100644 (file)
index 64a9edc..0000000
+++ /dev/null
@@ -1,1962 +0,0 @@
-/* dictd.c -- 
- * Created: Fri Feb 21 20:09:09 1997 by faith@dict.org
- * Revised: Sat May  4 21:58:16 2002 by faith@dict.org
- * Copyright 1997-2000, 2002 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * $Id: dictd.c,v 1.124 2005/04/14 07:52:16 cheusov Exp $
- * 
- */
-
-#include "dictd.h"
-#include "str.h"
-
-#include "servparse.h"
-#include "strategy.h"
-#include "index.h"
-#include "data.h"
-#include "parse.h"
-
-#ifdef USE_PLUGIN
-#include "plugin.h"
-#endif
-
-#include <grp.h>                /* initgroups */
-#include <pwd.h>                /* getpwuid */
-#include <locale.h>             /* setlocale */
-#include <ctype.h>
-
-#define MAXPROCTITLE 2048       /* Maximum amount of proc title we'll use. */
-#undef MIN
-#define MIN(a,b) ((a)<(b)?(a):(b))
-#ifndef UID_NOBODY
-#define UID_NOBODY  65534
-#endif
-#ifndef GID_NOGROUP
-#define GID_NOGROUP 65534
-#endif
-
-
-
-
-
-extern int        yy_flex_debug;
-
-static int        _dict_daemon;
-static int        _dict_reaps;
-
-static char      *_dict_argvstart;
-static int        _dict_argvlen;
-
-       int        _dict_forks;
-
-
-
-int default_strategy_set; /* 1 if set by command line option */
-
-
-int                logOptions   = 0;
-
-const char         *logFile     = NULL;
-int logFile_set; /* 1 if set by command line option */
-
-const char *pidFile     = "/var/run/dictd.pid";
-int pidFile_set; /* 1 if set by command line option */
-
-const char         *daemon_service     = DICT_DEFAULT_SERVICE;
-int daemon_service_set; /* 1 if set by command line option */
-
-int        _dict_daemon_limit        = DICT_DAEMON_LIMIT;
-int _dict_daemon_limit_set; /* 1 if set by command line option */
-
-int        _dict_markTime = 0;
-int _dict_markTime_set; /* 1 if set by command line option */
-
-const char        *locale       = NULL;
-int locale_set; /* 1 if set by command line option */
-
-int         client_delay        = DICT_DEFAULT_DELAY;
-int client_delay_set; /* 1 if set by command line option */
-
-int                depth        = DICT_QUEUE_DEPTH;
-int depth_set; /* 1 if set by command line option */
-
-int                useSyslog    = 0;
-int syslog_facility_set; /* 1 if set by command line option */
-
-const char        *preprocessor = NULL;
-
-const char        *bind_to      = NULL;
-int bind_to_set; /* 1 if set by command line option */
-
-
-
-
-
-
-int                inetd        = 0;
-
-int                need_reload_config    = 0;
-
-int                need_unload_databases = 0;
-int                databases_unloaded    = 0;
-
-static const char *configFile  = DICT_CONFIG_PATH DICTD_CONFIG_NAME;
-
-static void dict_close_databases (dictConfig *c);
-static void sanity (const char *confFile);
-static void dict_init_databases (dictConfig *c);
-static void dict_config_print (FILE *stream, dictConfig *c);
-static void postprocess_filenames (dictConfig *dc);
-
-void dict_initsetproctitle( int argc, char **argv, char **envp )
-{
-   int i;
-
-   _dict_argvstart = argv[0];
-   
-   for (i = 0; envp[i]; i++) continue;
-
-   if (i)
-      _dict_argvlen = envp[i-1] + strlen(envp[i-1]) - _dict_argvstart;
-   else
-      _dict_argvlen = argv[argc-1] + strlen(argv[argc-1]) - _dict_argvstart;
-
-   argv[1] = NULL;
-}
-
-void dict_setproctitle( const char *format, ... )
-{
-   va_list ap;
-   int     len;
-   char    buf[MAXPROCTITLE];
-
-   va_start( ap, format );
-   vsnprintf( buf, MAXPROCTITLE, format, ap );
-   va_end( ap );
-
-   if ((len = strlen(buf)) > MAXPROCTITLE-1)
-      err_fatal( __FUNCTION__, "buffer overflow (%d)\n", len );
-
-   buf[ MIN(_dict_argvlen,MAXPROCTITLE) - 1 ] = '\0';
-   strcpy( _dict_argvstart, buf );
-   memset( _dict_argvstart+len, 0, _dict_argvlen-len );
-}
-
-const char *dict_format_time( double t )
-{
-   static int  current = 0;
-   static char buf[10][128];   /* Rotate 10 buffers */
-   static char *this;
-   long int    s, m, h, d;
-
-   this = buf[current];
-   if (++current >= 10) current = 0;
-
-   if (t < 600) {
-      snprintf( this, sizeof (buf [0]), "%0.3f", t );
-   } else {
-      s = (long int)t;
-      d = s / (3600*24);
-      s -= d * 3600 * 24;
-      h = s / 3600;
-      s -= h * 3600;
-      m = s / 60;
-      s -= m * 60;
-
-      if (d)
-        snprintf( this, sizeof (buf [0]), "%ld+%02ld:%02ld:%02ld", d, h, m, s );
-      else if (h)
-        snprintf( this, sizeof (buf [0]), "%02ld:%02ld:%02ld", h, m, s );
-      else
-        snprintf( this, sizeof (buf [0]), "%02ld:%02ld", m, s );
-   }
-
-   return this;
-}
-
-static int waitpid__exit_status (int status)
-{
-   if (WIFEXITED(status)){
-      return WEXITSTATUS(status);
-   }else if (WIFSIGNALED(status)){
-      return 128 + WTERMSIG(status);
-   }else{
-      return -1;
-   }
-}
-
-static void reaper( int dummy )
-{
-#if 0
-   union wait status;
-#else
-   int        status;
-#endif
-   pid_t      pid;
-
-   while ((pid = wait3(&status, WNOHANG, NULL)) > 0) {
-      ++_dict_reaps;
-
-      if (flg_test(LOG_SERVER))
-         log_info( ":I: Reaped %d%s, exit status %i\n",
-                   pid,
-                   _dict_daemon ? " IN CHILD": "",
-                  waitpid__exit_status (status));
-   }
-}
-
-static int start_daemon( void )
-{
-   pid_t pid;
-   
-   ++_dict_forks;
-   switch ((pid = fork())) {
-   case 0:
-      ++_dict_daemon;
-      break;
-   case -1:
-      log_info( ":E: Unable to fork daemon\n" );
-      alarm(10);               /* Can't use sleep() here */
-      pause();
-      break;
-   default:
-      if (flg_test(LOG_SERVER)) log_info( ":I: Forked %d\n", pid );
-      break;
-   }
-   return pid;
-}
-
-static const char * signal2name (int sig)
-{
-   static char name [50];
-
-   switch (sig) {
-   case SIGHUP:
-      return "SIGHUP";
-   case SIGINT:
-      return "SIGINT";
-   case SIGQUIT:
-      return "SIGQUIT";
-   case SIGILL:
-      return "SIGILL";
-   case SIGTRAP:
-      return "SIGTRAP";
-   case SIGTERM:
-      return "SIGTERM";
-   case SIGPIPE:
-      return "SIGPIPE";
-   case SIGALRM:
-      return "SIGALRM";
-   default:
-      snprintf (name, sizeof (name), "Signal %d", sig);
-      return name;
-   }
-}
-
-static void log_sig_info (int sig)
-{
-   log_info (
-      ":I: %s: c/f = %d/%d; %sr %su %ss\n",
-      signal2name (sig),
-      _dict_comparisons,
-      _dict_forks,
-      dict_format_time (tim_get_real ("dictd")),
-      dict_format_time (tim_get_user ("dictd")),
-      dict_format_time (tim_get_system ("dictd")));
-}
-
-static void unload_databases (void)
-{
-   dict_close_databases (DictConfig);
-   DictConfig = NULL;
-}
-
-static void reload_config (void)
-{
-   dict_close_databases (DictConfig);
-
-   if (!access(configFile,R_OK)){
-      prs_file_pp (preprocessor, configFile);
-      postprocess_filenames (DictConfig);
-   }
-
-   sanity (configFile);
-
-   if (dbg_test (DBG_VERBOSE))
-      dict_config_print( NULL, DictConfig );
-
-   dict_init_databases (DictConfig);
-}
-
-static void handler( int sig )
-{
-   const char *name = NULL;
-   time_t     t;
-
-   name = signal2name (sig);
-
-   if (_dict_daemon) {
-      daemon_terminate( sig, name );
-   } else {
-      tim_stop( "dictd" );
-      switch (sig){
-      case SIGALRM:
-        if (_dict_markTime > 0){
-           time(&t);
-           log_info( ":T: %24.24s; %d/%d %sr %su %ss\n",
-                     ctime(&t),
-                     _dict_forks - _dict_reaps,
-                     _dict_forks,
-                     dict_format_time( tim_get_real( "dictd" ) ),
-                     dict_format_time( tim_get_user( "dictd" ) ),
-                     dict_format_time( tim_get_system( "dictd" ) ) );
-           alarm(_dict_markTime);
-           return;
-        }
-
-        break;
-      }
-
-      log_sig_info (sig);
-   }
-   if (!dbg_test(DBG_NOFORK) || sig != SIGALRM)
-      exit(sig+128);
-}
-
-static const char *postprocess_filename (const char *fn, const char *prefix)
-{
-   char *new_fn;
-
-   if (!fn)
-      return NULL;
-
-   if (fn [0] != '/' && fn [0] != '.'){
-      new_fn = xmalloc (2 + strlen (prefix) + strlen (fn));
-      strcpy (new_fn, prefix);
-      strcat (new_fn, fn);
-
-      return new_fn;
-   }else{
-      return xstrdup (fn);
-   }
-}
-
-const char *postprocess_plugin_filename (const char *fn)
-{
-   return postprocess_filename (fn, DICT_PLUGIN_PATH);
-}
-
-const char *postprocess_dict_filename (const char *fn)
-{
-   return postprocess_filename (fn, DICT_DICTIONARY_PATH);
-}
-
-static void postprocess_filenames (dictConfig *dc)
-{
-   lst_Position p;
-   dictDatabase *db;
-
-   LST_ITERATE(dc -> dbl, p, db) {
-      db -> dataFilename = postprocess_dict_filename (db -> dataFilename);
-      db -> indexFilename = postprocess_dict_filename (db -> indexFilename);
-      db -> indexsuffixFilename = postprocess_dict_filename (db -> indexsuffixFilename);
-      db -> indexwordFilename = postprocess_dict_filename (db -> indexwordFilename);
-      db -> pluginFilename = postprocess_plugin_filename (db -> pluginFilename);
-   }
-
-   dc -> site = postprocess_dict_filename (dc -> site);
-}
-
-static void handler_sighup (int sig)
-{
-   log_sig_info (sig);
-   need_reload_config = 1;
-}
-
-static void handler_sigusr1 (int sig)
-{
-   log_sig_info (sig);
-   need_unload_databases = 1;
-}
-
-static void setsig( int sig, void (*f)(int), int sa_flags )
-{
-   struct sigaction   sa;
-
-   sa.sa_handler = f;
-   sigemptyset(&sa.sa_mask);
-   sa.sa_flags = sa_flags;
-   sigaction(sig, &sa, NULL);
-}
-
-struct access_print_struct {
-   FILE *s;
-   int  offset;
-};
-
-static int access_print( const void *datum, void *arg )
-{
-   dictAccess                 *a     = (dictAccess *)datum;
-   struct access_print_struct *aps   = (struct access_print_struct *)arg;
-   FILE                       *s     = aps->s;
-   int                        offset = aps->offset;
-   int                        i;
-   const char                 *desc;
-
-   for (i = 0; i < offset; i++) fputc( ' ', s );
-   switch (a->type) {
-   case DICT_DENY:     desc = "deny";     break;
-   case DICT_ALLOW:    desc = "allow";    break;
-   case DICT_AUTHONLY: desc = "authonly"; break;
-   case DICT_USER:     desc = "user";     break;
-   case DICT_GROUP:    desc = "group";    break; /* Not implemented. */
-   default:            desc = "unknown";  break;
-   }
-   fprintf( s, "%s %s\n", desc, a->spec );
-   return 0;
-}
-
-static void acl_print( FILE *s, lst_List l, int offset)
-{
-   struct access_print_struct aps;
-   int                        i;
-
-   aps.s      = s;
-   aps.offset = offset + 3;
-   
-   for (i = 0; i < offset; i++) fputc( ' ', s );
-   fprintf( s, "access {\n" );
-   lst_iterate_arg( l, access_print, &aps );
-   for (i = 0; i < offset; i++) fputc( ' ', s );
-   fprintf( s, "}\n" );
-}
-
-static int user_print( const void *key, const void *datum, void *arg )
-{
-   const char *username = (const char *)key;
-   const char *secret   = (const char *)datum;
-   FILE       *s        = (FILE *)arg;
-
-   if (dbg_test(DBG_AUTH))
-      fprintf( s, "user %s %s\n", username, secret );
-   else
-      fprintf( s, "user %s *\n", username );
-   return 0;
-}
-
-static int config_print( const void *datum, void *arg )
-{
-   dictDatabase *db = (dictDatabase *)datum;
-   FILE         *s  = (FILE *)arg;
-
-   fprintf( s, "database %s {\n", db->databaseName );
-
-   if (db->dataFilename)
-      fprintf( s, "   data       %s\n", db->dataFilename );
-   if (db->indexFilename)
-      fprintf( s, "   index      %s\n", db->indexFilename );
-   if (db->indexsuffixFilename)
-      fprintf( s, "   index_suffix      %s\n", db->indexsuffixFilename );
-   if (db->indexwordFilename)
-      fprintf( s, "   index_word      %s\n", db->indexwordFilename );
-   if (db->filter)
-      fprintf( s, "   filter     %s\n", db->filter );
-   if (db->prefilter)
-      fprintf( s, "   prefilter  %s\n", db->prefilter );
-   if (db->postfilter)
-      fprintf( s, "   postfilter %s\n", db->postfilter );
-   if (db->databaseShort)
-      fprintf( s, "   name       %s\n", db->databaseShort );
-   if (db->acl)
-      acl_print( s, db->acl, 3 );
-
-   fprintf( s, "}\n" );
-
-   return 0;
-}
-
-static void dict_config_print( FILE *stream, dictConfig *c )
-{
-   FILE *s = stream ? stream : stderr;
-
-   if (c->acl) acl_print( s, c->acl, 0 );
-   lst_iterate_arg( c->dbl, config_print, s );
-   if (c->usl) hsh_iterate_arg( c->usl, user_print, s );
-}
-
-static const char *get_entry_info( dictDatabase *db, const char *entryName )
-{
-   dictWord *dw;
-   lst_List list = lst_create();
-   char     *pt, *buf;
-
-   if (
-      0 >= dict_search (
-        list, entryName, db, DICT_STRAT_EXACT, 0,
-        NULL, NULL, NULL ))
-   {
-#ifdef USE_PLUGIN
-      call_dictdb_free (DictConfig->dbl);
-#endif
-      lst_destroy( list );
-      return NULL;
-   }
-
-   dw = lst_nth_get( list, 1 );
-
-   assert (dw -> database);
-
-   buf = pt = dict_data_obtain( dw -> database, dw );
-
-   if (!strncmp (pt, "00database", 10) || !strncmp (pt, "00-database", 11)){
-      while (*pt != '\n')
-        ++pt;
-
-      ++pt;
-   }
-
-   while (*pt == ' ' || *pt == '\t')
-      ++pt;
-
-   pt[ strlen(pt) - 1 ] = '\0';
-
-#ifdef USE_PLUGIN
-   call_dictdb_free (DictConfig->dbl);
-#endif
-   dict_destroy_list( list );
-
-   pt = xstrdup (pt);
-
-   xfree (buf);
-
-   return pt;
-}
-
-static dictDatabase *dbname2database (const char *dbname)
-{
-   dictDatabase *db    = NULL;
-   lst_Position db_pos = lst_init_position (DictConfig->dbl);
-
-   while (db_pos){
-      db = lst_get_position (db_pos);
-
-      if (!strcmp (db -> databaseName, dbname)){
-        return db;
-      }
-
-      db_pos = lst_next_position (db_pos);
-   }
-
-   return NULL;
-}
-
-static lst_List string2virtual_db_list (char *s)
-{
-   int len, i;
-   lst_List virtual_db_list;
-   char *p;
-
-   dictDatabase *db = NULL;
-
-   p   = s;
-   len = strlen (s);
-
-   virtual_db_list = lst_create ();
-
-   for (i = 0; i <= len; ++i){
-      if (s [i] == ',' || s [i] == '\n' || s [i] == '\0'){
-        s [i] = '\0';
-
-        if (*p){
-           db = dbname2database (p);
-
-           if (db){
-              lst_append (virtual_db_list, db);
-           }else{
-              log_info( ":E: Unknown database '%s'\n", p );
-              PRINTF(DBG_INIT, (":E: Unknown database '%s'\n", p));
-              exit (2);
-           }
-        }
-
-        p = s + i + 1;
-      }
-   }
-
-   return virtual_db_list;
-}
-
-static int init_virtual_db_list (const void *datum)
-{
-   lst_List list;
-   dictDatabase *db  = (dictDatabase *)datum;
-   dictWord *dw;
-   char *buf;
-   int ret;
-
-   if (db -> database_list){
-      buf = xstrdup (db -> database_list);
-      db -> virtual_db_list = string2virtual_db_list (buf);
-      xfree (buf);
-   }else{
-      if (!db -> index)
-        return 0;
-
-      list = lst_create();
-      ret = dict_search (
-        list, DICT_FLAG_VIRTUAL, db, DICT_STRAT_EXACT, 0,
-        NULL, NULL, NULL);
-
-      switch (ret){
-      case 1: case 2:
-        dw  = (dictWord *) lst_pop (list);
-        buf = dict_data_obtain (db, dw);
-        dict_destroy_datum (dw);
-
-        db -> virtual_db_list = string2virtual_db_list (buf);
-
-        xfree (buf);
-        break;
-      case 0:
-        break;
-      default:
-        err_fatal (
-           __FUNCTION__,
-           "index file contains more than one %s entry",
-           DICT_FLAG_VIRTUAL);
-      }
-
-      dict_destroy_list (list);
-   }
-
-   return 0;
-}
-
-static int init_mime_db_list (const void *datum)
-{
-   lst_List list;
-   dictDatabase *db  = (dictDatabase *)datum;
-   dictWord *dw;
-   char *buf;
-   int ret;
-
-   if (!db -> mime_db)
-      return 0;
-
-   /* MIME */
-   if (db -> mime_mimeDbname){
-      db -> mime_mimeDB = dbname2database (db -> mime_mimeDbname);
-
-      if (!db -> mime_mimeDB){
-        err_fatal (
-           __FUNCTION__,
-           "Incorrect database name '%s'\n",
-           db -> mime_mimeDbname);
-      }
-   }else{
-      err_fatal (
-        __FUNCTION__,
-        "MIME database '%s' has no mime_dbname keyword\n",
-        db -> databaseName);
-   }
-
-   /* NO MIME */
-   if (db -> mime_nomimeDbname){
-      db -> mime_nomimeDB = dbname2database (db -> mime_nomimeDbname);
-
-      if (!db -> mime_nomimeDB){
-        err_fatal (
-           __FUNCTION__,
-           "Incorrect database name '%s'\n",
-           db -> mime_nomimeDbname);
-      }
-   }else{
-      err_fatal (
-        __FUNCTION__,
-        "MIME database '%s' has no nomime_dbname keyword\n",
-        db -> databaseName);
-   }
-
-   return 0;
-}
-
-static int init_plugin( const void *datum )
-{
-#ifdef USE_PLUGIN
-   dictDatabase *db = (dictDatabase *)datum;
-   dict_plugin_init (db);
-#endif
-
-   return 0;
-}
-
-void dict_disable_strat (dictDatabase *db, const char* strategy)
-{
-   int strat = -1;
-   int array_size = get_max_strategy_num () + 1;
-
-   assert (db);
-   assert (strategy);
-
-   if (!db -> strategy_disabled){
-      db -> strategy_disabled = xmalloc (array_size * sizeof (int));
-      memset (db -> strategy_disabled, 0, array_size * sizeof (int));
-   }
-
-   strat = lookup_strategy_ex (strategy);
-   assert (strat >= 0);
-
-   db -> strategy_disabled [strat] = 1;
-}
-
-static void init_database_alphabet (dictDatabase *db)
-{
-   int ret;
-   lst_List l;
-   const dictWord *dw;
-   char *data;
-
-   if (!db -> normal_db)
-      return;
-
-   l = lst_create ();
-
-   ret = dict_search_database_ (l, DICT_FLAG_ALPHABET, db, DICT_STRAT_EXACT);
-
-   if (ret){
-      dw = (const dictWord *) lst_top (l);
-      data = dict_data_obtain (db, dw);
-      db -> alphabet = data;
-
-      data = strchr (db -> alphabet, '\n');
-      if (data)
-        *data = 0;
-   }
-
-   dict_destroy_list (l);
-}
-
-static void init_database_default_strategy (dictDatabase *db)
-{
-   int ret;
-   lst_List l;
-   const dictWord *dw;
-   char *data;
-   int def_strat = -1;
-   char *p;
-
-   if (!db -> normal_db)
-      return;
-
-   if (db -> default_strategy > 0){
-      /* already set by `default_strategy' directive*/
-      return;
-   }
-
-   l = lst_create ();
-
-   ret = dict_search_database_ (l, DICT_FLAG_DEFAULT_STRAT, db, DICT_STRAT_EXACT);
-
-   if (ret){
-      dw = (const dictWord *) lst_top (l);
-      data = dict_data_obtain (db, dw);
-
-      for (p=data; *p && isalpha ((unsigned char) *p); ++p){
-      }
-      *p = '\0';
-
-      def_strat = lookup_strategy (data);
-      if (-1 == def_strat){
-        PRINTF (DBG_INIT, (":I:     `%s' is not supported by dictd\n", data));
-      }else{
-        db -> default_strategy = def_strat;
-      }
-
-      xfree (data);
-   }
-
-   dict_destroy_list (l);
-}
-
-static int init_database_mime_header (const void *datum)
-{
-   dictDatabase *db = (dictDatabase *) datum;
-   int ret;
-   lst_List l;
-   const dictWord *dw;
-   char *data;
-
-   if (!db -> normal_db)
-      return 0;
-
-   if (db -> mime_header){
-      /* already set by `mime_header' directive*/
-      return 0;
-   }
-
-   l = lst_create ();
-
-   ret = dict_search_database_ (l, DICT_FLAG_MIME_HEADER, db, DICT_STRAT_EXACT);
-
-   if (ret){
-      dw = (const dictWord *) lst_top (l);
-      data = dict_data_obtain (db, dw);
-
-      db -> mime_header = xstrdup (data);
-
-      xfree (data);
-   }
-
-   dict_destroy_list (l);
-
-   return 0;
-}
-
-static int init_database( const void *datum )
-{
-   dictDatabase *db = (dictDatabase *)datum;
-   const char *strat_name = NULL;
-
-   PRINTF (DBG_INIT, (":I: Initializing '%s'\n", db->databaseName));
-
-   if (db->indexFilename){
-      PRINTF (DBG_INIT, (":I:   Opening indices\n"));
-   }
-
-   db->index        = dict_index_open( db->indexFilename, 1, 0, 0 );
-
-   if (db->indexFilename){
-      PRINTF (DBG_INIT, (":I:     .index <ok>\n"));
-   }
-
-   if (db->index){
-      db->index_suffix = dict_index_open(
-        db->indexsuffixFilename,
-        0, db->index->flag_utf8, db->index->flag_allchars);
-      db->index_word = dict_index_open(
-        db->indexwordFilename,
-        0, db->index->flag_utf8, db->index->flag_allchars);
-   }
-
-   if (db->index_suffix){
-      PRINTF (DBG_INIT, (":I:     .indexsuffix <ok>\n"));
-      db->index_suffix->flag_8bit     = db->index->flag_8bit;
-      db->index_suffix->flag_utf8     = db->index->flag_utf8;
-      db->index_suffix->flag_allchars = db->index->flag_allchars;
-   }
-   if (db->index_word){
-      PRINTF (DBG_INIT, (":I:     .indexword <ok>\n"));
-      db->index_word->flag_utf8     = db->index->flag_utf8;
-      db->index_word->flag_8bit     = db->index->flag_8bit;
-      db->index_word->flag_allchars = db->index->flag_allchars;
-   }
-
-   if (db->dataFilename){
-      PRINTF (DBG_INIT, (":I:   Opening data\n"));
-   }
-
-   db->data         = dict_data_open( db->dataFilename, 0 );
-
-   init_database_alphabet (db);
-   if (db -> alphabet){
-      PRINTF (DBG_INIT, (":I:     alphabet: %s\n", db -> alphabet));
-   }else{
-      PRINTF (DBG_INIT, (":I:     alphabet: (NULL)\n"));
-   }
-
-   if (db -> default_strategy){
-      strat_name = get_strategy (db -> default_strategy) -> name;
-      PRINTF (DBG_INIT, (":I:     default_strategy (from conf file): %s\n",
-                        strat_name));
-   }else{
-      init_database_default_strategy (db);
-      if (db -> default_strategy){
-        strat_name = get_strategy (db -> default_strategy) -> name;
-        PRINTF (DBG_INIT, (":I:     default_strategy (from db): %s\n", strat_name));
-      }else{
-        db -> default_strategy = default_strategy;
-      }
-   }
-
-   if (db->dataFilename){
-      PRINTF(DBG_INIT,
-            (":I: '%s' initialized\n", db->databaseName));
-   }
-
-   return 0;
-}
-
-static int init_database_short (const void *datum)
-{
-   char *NL;
-
-   dictDatabase *db = (dictDatabase *) datum;
-
-   if (!db->databaseShort){
-      db->databaseShort = get_entry_info( db, DICT_SHORT_ENTRY_NAME );
-   }else if (*db->databaseShort == '@'){
-      db->databaseShort = get_entry_info( db, db->databaseShort + 1 );
-   }else{
-      db->databaseShort = xstrdup (db->databaseShort);
-   }
-
-   if (db->databaseShort){
-      NL = strchr (db->databaseShort, '\n');
-      if (NL)
-        *NL = 0;
-   }
-
-   if (!db->databaseShort)
-      db->databaseShort = xstrdup (db->databaseName);
-
-   return 0;
-}
-
-static int close_plugin (const void *datum)
-{
-#ifdef USE_PLUGIN
-   dictDatabase  *db = (dictDatabase *)datum;
-   dict_plugin_destroy (db);
-#endif
-
-   return 0;
-}
-
-static int close_database (const void *datum)
-{
-   dictDatabase  *db = (dictDatabase *)datum;
-
-   dict_index_close (db->index);
-   dict_index_close (db->index_suffix);
-   dict_index_close (db->index_word);
-
-   dict_data_close (db->data);
-
-   if (db -> databaseShort)
-      xfree ((void *) db -> databaseShort);
-
-   if (db -> indexFilename)
-      xfree ((void *) db -> indexFilename);
-   if (db -> dataFilename)
-      xfree ((void *) db -> dataFilename);
-   if (db -> indexwordFilename)
-      xfree ((void *) db -> indexwordFilename);
-   if (db -> indexsuffixFilename)
-      xfree ((void *) db -> indexsuffixFilename);
-   if (db -> pluginFilename)
-      xfree ((void *) db -> pluginFilename);
-   if (db -> strategy_disabled)
-      xfree ((void *) db -> strategy_disabled);
-   if (db -> alphabet)
-      xfree ((void *) db -> alphabet);
-   if (db -> mime_header)
-      xfree ((void *) db -> mime_header);
-
-   return 0;
-}
-
-static int log_database_info( const void *datum )
-{
-   dictDatabase  *db = (dictDatabase *)datum;
-   const char    *pt;
-   unsigned long headwords = 0;
-
-   if (db->index){
-      for (pt = db->index->start; pt < db->index->end; pt++)
-        if (*pt == '\n') ++headwords;
-      db->index->headwords = headwords;
-
-      log_info( ":I: %-12.12s %12lu %12lu %12lu %12lu\n",
-               db->databaseName, headwords,
-               db->index->size, db->data->size, db->data->length );
-   }
-
-   return 0;
-}
-
-static void dict_ltdl_init ()
-{
-#if USE_PLUGIN && !HAVE_DLFCN_H
-   if (lt_dlinit ())
-      err_fatal( __FUNCTION__, "Can not initialize 'ltdl' library\n" );
-#endif
-}
-
-static void dict_ltdl_close ()
-{
-#if USE_PLUGIN && !HAVE_DLFCN_H
-   if (lt_dlexit ())
-      err_fatal( __FUNCTION__, "Can not deinitialize 'ltdl' library\n" );
-#endif
-}
-
-/*
-  Makes dictionary_exit db invisible if it is the last visible one
- */
-static void make_dictexit_invisible (dictConfig *c)
-{
-   lst_Position p;
-   dictDatabase *db;
-   dictDatabase *db_exit = NULL;
-
-   LST_ITERATE(c -> dbl, p, db) {
-      if (!db -> invisible){
-        if (db_exit)
-           db_exit -> invisible = 0;
-
-        db_exit = NULL;
-      }
-
-      if (db -> exit_db){
-        db_exit = db;
-        db_exit -> invisible = 1;
-      }
-   }
-}
-
-static void dict_init_databases( dictConfig *c )
-{
-   make_dictexit_invisible (c);
-
-   lst_iterate( c->dbl, init_database );
-   lst_iterate( c->dbl, init_plugin );
-   lst_iterate( c->dbl, init_virtual_db_list );
-   lst_iterate( c->dbl, init_mime_db_list );
-   lst_iterate( c->dbl, init_database_short );
-   lst_iterate( c->dbl, init_database_mime_header);
-   lst_iterate( c->dbl, log_database_info );
-}
-
-static void dict_close_databases (dictConfig *c)
-{
-   dictDatabase *db;
-   dictAccess   *acl;
-
-   if (!c)
-      return;
-
-   if (c -> dbl){
-      while (lst_length (c -> dbl) > 0){
-        db = (dictDatabase *) lst_pop (c -> dbl);
-
-        if (db -> virtual_db_list)
-           lst_destroy (db -> virtual_db_list);
-
-        close_plugin (db);
-        close_database (db);
-        xfree (db);
-      }
-      lst_destroy (c -> dbl);
-   }
-
-   if (c -> acl){
-      while (lst_length (c -> acl) > 0){
-        acl = (dictAccess *) lst_pop (c->acl);
-        xfree (acl);
-      }
-      lst_destroy (c -> acl);
-   }
-
-   if (c -> site)
-      xfree ((void *) c -> site);
-
-   xfree (c);
-}
-
-static int match_mode = 0;
-
-static int dump_def( const void *datum )
-{
-   char         *buf;
-   const dictWord     *dw = (dictWord *)datum;
-
-   const dictDatabase *db = dw -> database_visible;
-   if (!db)
-      db = dw -> database;
-
-   if (match_mode){
-      printf (
-        "%s:\t\"%s\"\n", db -> databaseName, dw -> word );
-   }else{
-      buf = dict_data_obtain( dw -> database, dw );
-
-      printf (
-        "From %s [%s]:\n\n%s\n", db -> databaseShort, db -> databaseName, buf );
-
-      xfree( buf );
-   }
-
-   return 0;
-}
-
-static void dict_dump_defs( lst_List list )
-{
-   lst_iterate (list, dump_def);
-}
-
-static const char *id_string( const char *id )
-{
-   static char buffer [BUFFERSIZE];
-
-   snprintf( buffer, BUFFERSIZE, "%s", DICT_VERSION );
-
-   return buffer;
-}
-
-const char *dict_get_banner( int shortFlag )
-{
-   static char    *shortBuffer = NULL;
-   static char    *longBuffer = NULL;
-   const char     *id = "$Id: dictd.c,v 1.124 2005/04/14 07:52:16 cheusov Exp $";
-   struct utsname uts;
-   
-   if (shortFlag && shortBuffer) return shortBuffer;
-   if (!shortFlag && longBuffer) return longBuffer;
-   
-   uname( &uts );
-
-   shortBuffer = xmalloc(256);
-   snprintf(
-      shortBuffer, 256,
-      "%s %s", err_program_name(), id_string( id ) );
-
-   longBuffer = xmalloc(256);
-   snprintf(
-      longBuffer, 256,
-      "%s %s/rf on %s %s", err_program_name(), id_string( id ),
-      uts.sysname,
-      uts.release );
-
-   if (shortFlag)
-      return shortBuffer;
-
-   return longBuffer;
-}
-
-static void banner( void )
-{
-   printf( "%s\n", dict_get_banner(0) );
-   printf( "Copyright 1997-2002 Rickard E. Faith (faith@dict.org)\n\n" );
-}
-
-static void license( void )
-{
-   static const char *license_msg[] = {
-     "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 1, 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.,",
-     "675 Mass Ave, Cambridge, MA 02139, USA.",
-   0 };
-   const char        **p = license_msg;
-   
-   banner();
-   while (*p) printf( "   %s\n", *p++ );
-}
-
-static void help( void )
-{
-   static const char *help_msg[] = {
-   "Usage: dictd [options]",
-   "Start the dictd daemon",
-   "",
-      "-h --help             give this help",
-      "   --license          display software license",
-      "-v --verbose          verbose mode",
-      "-V --version          display version number",
-      "-p --port <port>      port number",
-      "   --delay <seconds>  client timeout in seconds",
-      "   --depth <length>   TCP/IP queue depth",
-      "   --limit <children> maximum simultaneous children",
-      "-c --config <file>    configuration file",
-      "-l --log <option>     select logging option",
-      "-s --syslog           log via syslog(3)",
-      "-L --logfile <file>   log via specified file",
-      "-m --mark <minutes>   how often should a timestamp be logged",
-      "   --facility <fac>   set syslog logging facility",
-      "-d --debug <option>   select debug option",
-      "-i --inetd            run from inetd",
-      "   --pid-file <path>  PID filename",
-      "   --pp <prog>        set preprocessor for configuration file",
-      "-f --force            force startup even if daemon running",
-      "   --locale <locale>  specifies the locale used for searching.\n\
-                      if no locale is specified, the \"C\" locale is used.",
-"   --default-strategy   set the default search strategy for 'match' queries.\n\
-                      the default is 'lev'.",
-"   --without-strategy <strategies> disable strategies.\n\
-                                   <strategies> is a comma-separated list.",
-"   --add-strategy <strat>:<descr>  adds new strategy <strat>\n\
-                                   with a description <descr>.",
-"   --listen-to                     bind a socket to the specified address",
-"\n------------------ options for debugging ---------------------------",
-"-t --test <word>                lookup word",
-"   --test-file <file>",
-"   --ftest <file>               lookup all words in file",
-"   --test-strategy <strategy>   search strategy for --test and --ftest.\n\
-                                the default is 'exact'",
-"   --test-db <database>         database name for --test and --ftest.\n\
-                                the default is '*'",
-"   --test-match                 show matched words but the definitions",
-"   --test-nooutput              produces no output",
-"   --test-idle                  does everything except search",
-"   --test-show-info <database>  shows information about specified database",
-"   --fast-start                 don't create additional index.",
-#ifdef HAVE_MMAP
-"   --without-mmap               do not use mmap() function and load files\n\
-                                into memory instead.",
-#endif
-      0 };
-   const char        **p = help_msg;
-
-   banner();
-   while (*p)
-      printf( "%s\n", *p++ );
-}
-
-void set_minimal( void )
-{
-   flg_set(flg_name(LOG_FOUND));
-   flg_set(flg_name(LOG_NOTFOUND));
-   flg_set(flg_name(LOG_STATS));
-   flg_set(flg_name(LOG_CLIENT));
-   flg_set(flg_name(LOG_AUTH));
-   flg_set("-min");
-}
-
-static void release_root_privileges( void )
-/* At the spring 1999 Linux Expo in Raleigh, Rik Faith told me that he
- * did not want dictd to be allowed to run as root for any reason.
- * This patch irrevocably releases root privileges.  -- Kirk Hilliard
- *
- * Updated to set the user to `dictd' if that user exists on the
- * system; if user dictd doesn't exist, it sets the user to `nobody'.
- * -- Bob Hilliard
- */
-{
-   if (geteuid() == 0) {
-      struct passwd *pwd;
-
-      if ((pwd = getpwnam("dictd"))) {
-         setgid(pwd->pw_gid);
-         initgroups("dictd",pwd->pw_gid);
-         setuid(pwd->pw_uid);
-      } else if ((pwd = getpwnam("nobody"))) {
-         setgid(pwd->pw_gid);
-         initgroups("nobody",pwd->pw_gid);
-         setuid(pwd->pw_uid);
-      } else {
-         setgid(GID_NOGROUP);
-         initgroups("nobody", GID_NOGROUP);
-         setuid(UID_NOBODY);
-      }
-   }
-}
-
-/* Perform sanity checks that are often problems for people trying to
- * get dictd running.  Do this early, before we detach from the
- * console. */
-static void sanity(const char *confFile)
-{
-   int           fail = 0;
-   int           reading_error = 0;
-   struct passwd *pw = NULL;
-   struct group  *gr = NULL;
-
-   if (access(confFile,R_OK)) {
-      log_info(":E: %s is not readable (config file)\n", confFile);
-      ++fail;
-   }
-   if (DictConfig && !DictConfig->dbl) {
-      log_info(":E: no databases have been defined\n");
-      log_info(":E: check %s or use -c\n", confFile);
-      ++fail;
-   }
-   if (DictConfig && DictConfig->dbl) {
-      lst_Position p;
-      dictDatabase *e;
-      LST_ITERATE(DictConfig->dbl, p, e) {
-        if (e->indexFilename && access(e->indexFilename, R_OK)) {
-           log_info(":E: %s is not readable (index file)\n",
-                    e->indexFilename);
-           ++fail;
-           reading_error = 1;
-        }
-        if (e->indexsuffixFilename && access(e->indexsuffixFilename, R_OK)) {
-           log_info(":E: %s is not readable (index_suffix file)\n",
-                    e->indexsuffixFilename);
-           ++fail;
-           reading_error = 1;
-        }
-        if (e->indexwordFilename && access(e->indexwordFilename, R_OK)) {
-           log_info(":E: %s is not readable (index_word file)\n",
-                    e->indexwordFilename);
-           ++fail;
-           reading_error = 1;
-        }
-        if (e->dataFilename && access(e->dataFilename, R_OK)) {
-           log_info(":E: %s is not readable (data file)\n",
-                    e->dataFilename);
-           ++fail;
-           reading_error = 1;
-        }
-        if (e->virtual_db && !e->database_list){
-           log_info(
-              ":E: database list is not specified for virtual dictionary '%s'\n",
-              e->databaseName);
-           ++fail;
-        }
-        if (e->normal_db && !e->dataFilename){
-           log_info(
-              ":E: data filename is not specified for dictionary '%s'\n",
-              e->databaseName);
-           ++fail;
-        }
-        if (e->normal_db && !e->indexFilename){
-           log_info(
-              ":E: index filename is not specified for dictionary '%s'\n",
-              e->databaseName);
-           ++fail;
-        }
-        if (e->plugin_db && !e->pluginFilename){
-           log_info(
-              ":E: plugin filename is not specified for dictionary '%s'\n",
-              e->databaseName);
-           ++fail;
-        }
-#ifndef USE_PLUGIN
-        if (e -> plugin_db){
-           log_info (
-              ":E: plugin support was disabled at compile time\n");
-           ++fail;
-        }
-#endif
-      }
-   }
-   if (fail) {
-      if (reading_error){
-        pw = getpwuid (geteuid ());
-        gr = getgrgid (getegid ());
-
-        log_info(":E: for security, this program will not run as root.\n");
-        log_info(":E: if started as root, this program will change"
-                 " to \"dictd\" or \"nobody\".\n");
-        log_info(":E: currently running as user %d/%s, group %d/%s\n",
-                 geteuid(), pw && pw->pw_name ? pw->pw_name : "?",
-                 getegid(), gr && gr->gr_name ? gr->gr_name : "?");
-        log_info(":E: config and db files must be readable by that user\n");
-      }
-      err_fatal(__FUNCTION__, ":E: terminating due to errors. See log file\n");
-   }
-}
-
-static void set_locale_and_flags (const char *loc)
-{
-   const char *charset = NULL;
-   int ascii_mode;
-
-   if (!setlocale(LC_COLLATE, loc) || !setlocale(LC_CTYPE, loc)){
-      fprintf (stderr, "invalid locale '%s'\n", locale);
-      exit (2);
-   }
-
-   charset = nl_langinfo (CODESET);
-
-   utf8_mode = !strcmp (charset, "UTF-8") || !strcmp (charset, "utf-8");
-
-#if !HAVE_UTF8
-   if (utf8_mode){
-      err_fatal (
-        __FUNCTION__,
-        "utf-8 support was disabled at compile time\n");
-   }
-#endif
-
-   ascii_mode = 
-      !strcmp (charset, "ANSI_X3.4-1968") ||
-      !strcmp (charset, "US-ASCII") ||
-      (locale [0] == 'C' && locale [1] == 0);
-
-   bit8_mode = !ascii_mode && !utf8_mode;
-}
-
-static void init (const char *fn)
-{
-   maa_init (fn);
-   dict_ltdl_init ();
-   dict_init_strategies ();
-}
-
-static void destroy ()
-{
-   maa_shutdown ();
-
-   dict_ltdl_close ();
-   dict_destroy_strategies ();
-}
-
-static void dict_make_dbs_available (dictConfig *cfg)
-{
-   lst_Position  p;
-   dictDatabase *db;
-
-   LST_ITERATE (cfg -> dbl, p, db) {
-      db -> available = 1;
-   }
-}
-
-static const char *database_arg="*";
-
-static int idle_mode     = 0;
-static int nooutput_mode = 0;
-static int show_info_mode= 0;
-
-static void dict_test (
-   const char *word,
-   int strategy)
-{
-   lst_List l;
-   int count = 0;
-   int db_found = 0;
-
-   l = lst_create ();
-
-   count = dict_search_databases (l, NULL, database_arg, word, strategy, &db_found);
-
-   if (db_found){
-      if (!nooutput_mode){
-        if (count > 0){
-           dict_dump_defs (l);
-        }else{
-           fprintf (stderr, "No definitions found for \"%s\"\n", word);
-        }
-      }
-   }else{
-      fprintf (stderr, "%s is not a valid database\n", database_arg);
-   }
-
-#ifdef USE_PLUGIN
-   call_dictdb_free (DictConfig->dbl);
-#endif
-
-   dict_destroy_list (l);
-}
-
-static void dict_test_word (const char *word, int strategy)
-{
-   dict_config_print( NULL, DictConfig );
-   dict_init_databases( DictConfig );
-
-   dict_make_dbs_available (DictConfig);
-
-   if (!idle_mode){
-      dict_test (word, strategy);
-
-      if (!nooutput_mode){
-        fprintf( stderr, "%d comparisons\n", _dict_comparisons );
-      }
-   }
-
-   dict_close_databases (DictConfig);
-
-   destroy ();
-
-   exit( 0 );
-}
-
-static void dict_test_file (const char *filename, int strategy)
-{
-   FILE         *str;
-   char         buf[1024], *pt;
-   int          words = 0;
-   int                word_len;
-
-   if (!(str = fopen(filename,"r")))
-      err_fatal_errno( "Cannot open \"%s\" for read\n", filename );
-
-   dict_config_print( NULL, DictConfig );
-   dict_init_databases( DictConfig );
-   dict_make_dbs_available (DictConfig);
-
-   while (fgets(buf,1024,str)) {
-      word_len = strlen( buf );
-      if (word_len > 0){
-        if ('\n' == buf [word_len - 1]){
-           buf [word_len - 1] = '\0';
-        }
-      }
-
-      if ((pt = strchr(buf, '\t')))
-        *pt = '\0'; /* stop at tab */
-
-      if (buf[0]){
-        ++words;
-
-        if (!idle_mode){
-           dict_test (buf, strategy);
-        }
-      }
-
-      if (words && !(words % 1000)){
-        if (!nooutput_mode){
-           fprintf(
-              stderr,
-              "%d comparisons, %d words\n", _dict_comparisons, words );
-        }
-      }
-   }
-
-   if (!nooutput_mode){
-      fprintf(
-        stderr,
-        "%d comparisons, %d words\n", _dict_comparisons, words );
-   }
-
-   fclose( str);
-
-   dict_close_databases (DictConfig);
-
-   destroy ();
-
-   exit(0);
-/* Comparisons:
-   P5/133
-   1878064 comparisons, 113955 words
-   39:18.72u 1.480s 55:20.27 71%
-*/
-}
-
-extern void daemon_show_info (
-   const char *cmdline, int argc, const char **argv);
-
-static void dict_test_show_info (const char *database)
-{
-   const char * argv [] = {"SHOW", "INFO", database};
-
-   dict_config_print( NULL, DictConfig );
-   dict_init_databases( DictConfig );
-   dict_make_dbs_available (DictConfig);
-
-   daemon_show_info ("", 3, argv);
-
-   dict_close_databases (DictConfig);
-
-   destroy ();
-
-   exit (0);
-}
-
-static void create_pid_file ()
-{
-   FILE *fd = fopen (pidFile, "w");
-
-   if (!fd){
-      log_info(":E: cannot open pif file '%s'\n:E:    err msg: %s\n",
-              pidFile, strerror (errno));
-      exit (1);
-   }
-
-   fprintf (fd, "%lu", (unsigned long) getpid ());
-   if (fclose (fd)){
-      log_info(":E: cannot write to pif file '%s'\n:E:    err msg: %s\n",
-              pidFile, strerror (errno));
-      exit (1);
-   }
-}
-
-int main (int argc, char **argv, char **envp)
-{
-   int                childSocket;
-   int                masterSocket;
-   struct sockaddr_in csin;
-   int                c;
-   time_t             startTime;
-   int                alen         = sizeof(csin);
-   int                detach       = 1;
-   const char         *testWord    = NULL;
-   const char         *testFile    = NULL;
-   int                forceStartup = 0;
-   int                i;
-
-   const char *       strategy_arg = "exact";
-   int                strategy     = DICT_STRAT_EXACT;
-
-   const char *       default_strategy_arg = "???";
-
-   char *             new_strategy;
-   char *             new_strategy_descr;
-
-   struct option      longopts[]   = {
-      { "verbose",  0, 0, 'v' },
-      { "version",  0, 0, 'V' },
-      { "debug",    1, 0, 'd' },
-      { "port",     1, 0, 'p' },
-      { "config",   1, 0, 'c' },
-      { "help",     0, 0, 'h' },
-      { "license",  0, 0, 500 },
-      { "test",     1, 0, 't' },
-      { "ftest",    1, 0, 501 },
-      { "test-file",1, 0, 501 },
-      { "log",      1, 0, 'l' },
-      { "logfile",  1, 0, 'L' },
-      { "syslog",   0, 0, 's' },
-      { "mark",     1, 0, 'm' },
-      { "delay",    1, 0, 502 },
-      { "depth",    1, 0, 503 },
-      { "limit",    1, 0, 504 },
-      { "facility", 1, 0, 505 },
-      { "force",    1, 0, 'f' },
-      { "inetd",    0, 0, 'i' },
-      { "locale",           1, 0, 506 },
-      { "test-strategy",    1, 0, 507 },
-#ifdef HAVE_MMAP
-      { "no-mmap",          0, 0, 508 },
-      { "without-mmap",     0, 0, 508 },
-#endif
-      { "test-db",          1, 0, 509 },
-      { "default-strategy", 1, 0, 511 },
-      { "test-match",       0, 0, 512 },
-      { "without-strategy", 1, 0, 513 },
-      { "test-nooutput",    0, 0, 514 },
-      { "test-idle",        0, 0, 515 },
-      { "add-strategy",     1, 0, 516 },
-      { "fast-start",       0, 0, 517 },
-      { "pp",               1, 0, 518 },
-      { "listen-to",        1, 0, 519 },
-      { "test-show-info",   1, 0, 520 },
-      { "pid-file",         1, 0, 521 },
-      { 0,                  0, 0, 0  }
-   };
-
-   init (argv[0]);
-
-   flg_register( LOG_SERVER,    "server" );
-   flg_register( LOG_CONNECT,   "connect" );
-   flg_register( LOG_STATS,     "stats" );
-   flg_register( LOG_COMMAND,   "command" );
-   flg_register( LOG_FOUND,     "found" );
-   flg_register( LOG_NOTFOUND,  "notfound" );
-   flg_register( LOG_CLIENT,    "client" );
-   flg_register( LOG_HOST,      "host" );
-   flg_register( LOG_TIMESTAMP, "timestamp" );
-   flg_register( LOG_MIN,       "min" );
-   flg_register( LOG_AUTH,      "auth" );
-
-   dbg_register( DBG_VERBOSE,  "verbose" );
-   dbg_register( DBG_UNZIP,    "unzip" );
-   dbg_register( DBG_SCAN,     "scan" );
-   dbg_register( DBG_PARSE,    "parse" );
-   dbg_register( DBG_SEARCH,   "search" );
-   dbg_register( DBG_INIT,     "init" );
-   dbg_register( DBG_PORT,     "port" );
-   dbg_register( DBG_LEV,      "lev" );
-   dbg_register( DBG_AUTH,     "auth" );
-   dbg_register( DBG_NODETACH, "nodetach" );
-   dbg_register( DBG_NOFORK,   "nofork" );
-   dbg_register( DBG_ALT,      "alt" );
-
-   log_stream ("dictd", stderr);
-
-   while ((c = getopt_long( argc, argv,
-                           "vVd:p:c:hL:t:l:sm:fi", longopts, NULL )) != EOF)
-      switch (c) {
-                                /* Remember to copy optarg since we're
-                                   going to destroy argv soon... */
-      case 'v': dbg_set( "verbose" );                     break;
-      case 'V': banner(); exit(1);                        break;
-      case 'd': dbg_set( optarg );                        break;
-      case 'p':
-        daemon_service     = str_copy(optarg);
-        daemon_service_set = 1;
-        break;
-      case 'c': configFile = str_copy(optarg);            break;
-      case 't': testWord = str_copy(optarg);              break;
-      case 'L':
-        logFile     = str_copy(optarg);
-        logFile_set = 1;
-        break;
-      case 's': ++useSyslog;                              break;
-      case 'm':
-        _dict_markTime     = 60*atoi(optarg);
-        _dict_markTime_set = 1;
-        break;
-      case 'f': ++forceStartup;                           break;
-      case 'i':
-        inetd         = 1;
-        optStart_mode = 0;
-        break;
-      case 'l':
-        ++logOptions;
-        flg_set( optarg );
-        if (flg_test(LOG_MIN)) set_minimal();
-        break;
-      case 500: license(); exit(1);                       break;
-      case 501: testFile = str_copy(optarg);              break;
-      case 502:
-        client_delay     = atoi(optarg);
-        client_delay_set = 1;
-        break;
-      case 503:
-        depth     = atoi(optarg);
-        depth_set = 1;
-        break;
-      case 504:
-        _dict_daemon_limit     = atoi(optarg);
-        _dict_daemon_limit_set = 1;
-        break;
-      case 505:
-        ++useSyslog;
-        log_set_facility (optarg);
-        syslog_facility_set = 1;
-        break;
-      case 506:
-        locale     = str_copy (optarg);
-        locale_set = 1;
-        break;
-      case 508: mmap_mode = 0;                            break;
-      case 509: database_arg = str_copy(optarg);          break;
-      case 507:
-        strategy_arg = str_copy (optarg);
-        strategy = lookup_strategy (strategy_arg);
-        break;
-      case 511:
-        default_strategy_arg = str_copy (optarg);
-        default_strategy     = lookup_strategy_ex (default_strategy_arg);
-        default_strategy_set = 1;
-        break;
-      case 512:
-        match_mode = 1;
-        break;
-      case 513:
-        dict_disable_strategies (optarg);
-        break;
-      case 514:
-        nooutput_mode = 1;
-        break;
-      case 515:
-        idle_mode = 1;
-        break;
-      case 516:
-        new_strategy = optarg;
-        new_strategy_descr = strchr (new_strategy, ':');
-        if (!new_strategy_descr){
-           fprintf (stderr, "missing ':' symbol in --add-strategy option\n");
-           exit (1);
-        }
-
-        *new_strategy_descr++ = 0;
-
-        dict_add_strategy (new_strategy, new_strategy_descr);
-
-        break;
-      case 517: optStart_mode = 0;                        break;
-      case 518: preprocessor = str_copy (optarg);         break;
-      case 519:
-        bind_to     = str_copy (optarg);
-        bind_to_set = 1;
-        break;
-      case 520:
-        database_arg = str_copy(optarg);
-        show_info_mode = 1;
-        break;
-      case 521:
-        pidFile     = str_copy(optarg);
-        pidFile_set = 1;
-        break;
-      case 'h':
-      default:  help(); exit(0);                          break;
-      }
-
-   log_stream (NULL, NULL);
-
-   if (testWord || testFile || inetd || show_info_mode)
-      detach = 0;
-
-   if (
-      -1 == strategy ||
-      (strategy_arg = default_strategy_arg, -1 == default_strategy))
-   {
-      fprintf (stderr, "%s is not a valid search strategy\n", strategy_arg);
-      fprintf (stderr, "available ones are:\n");
-      for (i = 0; i < get_strategy_count (); ++i){
-         fprintf (
-             stderr, "  %15s : %s\n",
-             get_strategies () [i] -> name, get_strategies () [i] -> description);
-      }
-      exit (1);
-   }
-
-   if (dbg_test(DBG_NOFORK))    dbg_set_flag( DBG_NODETACH);
-   if (dbg_test(DBG_NODETACH))  detach = 0;
-   if (dbg_test(DBG_PARSE))     prs_set_debug(1);
-   if (dbg_test(DBG_SCAN))      yy_flex_debug = 1;
-   else                         yy_flex_debug = 0;
-   if (flg_test(LOG_TIMESTAMP)) log_option( LOG_OPTION_FULL );
-   else                         log_option( LOG_OPTION_NO_FULL );
-
-   if (!access(configFile,R_OK)) {
-      prs_file_pp (preprocessor, configFile );
-      postprocess_filenames (DictConfig);
-   }
-
-   if (detach)
-      net_detach();
-
-   if (logFile)   log_file ("dictd", logFile);
-   if (useSyslog) log_syslog ("dictd");
-   if (! inetd && ! detach)   log_stream ("dictd", stderr);
-   if (detach) create_pid_file ();
-
-   release_root_privileges();
-
-   if ((logFile || useSyslog || !detach) && !logOptions)
-      set_minimal();
-
-   time(&startTime);
-   log_info(":I: %d starting %s %24.24s\n",
-           getpid(), dict_get_banner(0), ctime(&startTime));
-
-   tim_start( "dictd" );
-   alarm(_dict_markTime);
-
-   if (locale)
-      set_locale_and_flags (locale);
-
-   sanity(configFile);
-
-   if (match_mode)
-      strategy |= DICT_MATCH_MASK;
-
-
-   if (show_info_mode) {
-      dict_test_show_info (database_arg);
-      abort (); /* this should not happen */
-   }
-
-   if (testWord) {             /* stand-alone test mode */
-      dict_test_word (testWord, strategy);
-      abort (); /* this should not happen */
-   }
-
-   if (testFile) {
-      dict_test_file (testFile, strategy);
-      abort (); /* this should not happen */
-   }
-
-   setsig(SIGCHLD, reaper, SA_RESTART);
-   setsig(SIGHUP,   handler_sighup, 0);
-   setsig(SIGUSR1,  handler_sigusr1, 0);
-   if (!dbg_test(DBG_NOFORK))
-      setsig(SIGINT,  handler, 0);
-   setsig(SIGQUIT, handler, 0);
-   setsig(SIGILL,  handler, 0);
-   setsig(SIGTRAP, handler, 0);
-   setsig(SIGTERM, handler, 0);
-   setsig(SIGPIPE, handler, 0);
-   setsig(SIGALRM, handler, SA_RESTART);
-
-   fflush(stdout);
-   fflush(stderr);
-
-   if (locale)
-      log_info(":I: using locale \"%s\"\n", locale);
-
-   if (dbg_test(DBG_VERBOSE))
-      dict_config_print( NULL, DictConfig );
-
-   dict_init_databases( DictConfig );
-
-   dict_initsetproctitle(argc, argv, envp);
-
-   if (inetd) {
-      dict_inetd(&argv, client_delay, 0);
-      exit(0);
-   }
-
-   masterSocket = net_open_tcp( bind_to, daemon_service, depth );
-
-
-   for (;;) {
-      dict_setproctitle( "%s: %d/%d",
-                        dict_get_banner(1),
-                        _dict_forks - _dict_reaps,
-                        _dict_forks );
-      if (flg_test(LOG_SERVER))
-         log_info( ":I: %d accepting on %s\n", getpid(), daemon_service );
-      if ((childSocket = accept(masterSocket,
-                               (struct sockaddr *)&csin, &alen)) < 0) {
-        if (errno == EINTR){
-           if (need_reload_config){
-              reload_config ();
-              need_reload_config = 0;
-              databases_unloaded = 0;
-           }
-
-           if (need_unload_databases){
-              unload_databases ();
-              need_unload_databases = 0;
-              databases_unloaded = 1;
-           }
-           continue;
-        }
-
-#ifdef __linux__
-                               /* Linux seems to return more types of
-                                   errors than other OSs. */
-        if (errno == ETIMEDOUT
-            || errno == ECONNRESET
-            || errno == EHOSTUNREACH
-            || errno == ENETUNREACH) continue;
-        log_info( ":E: can't accept: errno = %d: %s\n",
-                  errno, strerror(errno) );
-#else
-        err_fatal_errno( __FUNCTION__, ":E: can't accept" );
-#endif
-      }
-
-      if (_dict_daemon || dbg_test(DBG_NOFORK)) {
-        dict_daemon(childSocket,&csin,&argv,client_delay,0);
-      } else {
-        if (_dict_forks - _dict_reaps < _dict_daemon_limit) {
-           if (!start_daemon()) { /* child */
-              int databases_loaded = (DictConfig != NULL);
-
-              alarm(0);
-              dict_daemon (
-                 childSocket, &csin, &argv, client_delay,
-                 databases_loaded ? 0 : 2);
-              exit(0);
-           } else {               /* parent */
-              close(childSocket);
-           }
-        } else {
-           dict_daemon(childSocket,&csin,&argv,client_delay,1);
-        }
-      }
-   }
-
-   dict_close_databases (DictConfig);
-
-   destroy ();
-}
diff --git a/src/plugins/stardict/test_dictsip/dictd.h b/src/plugins/stardict/test_dictsip/dictd.h
deleted file mode 100644 (file)
index 0e68b9c..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* dictd.h -- Header file for dict program
- * Created: Fri Dec  2 20:01:18 1994 by faith@dict
- * Revised: Mon Apr 22 15:47:26 2002 by faith@dict.org
- * Copyright 1994-2000, 2002 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef _DICTD_H_
-#define _DICTD_H_
-
-#include "dictP.h"
-#include "maa.h"
-#include "codes.h"
-#include "defs.h"
-
-#include "net.h"
-#include <errno.h>
-
-#include <netdb.h>
-#include <signal.h>
-/*
-#ifdef __osf__
-#define _XOPEN_SOURCE_EXTENDED
-#endif
-#include <sys/wait.h>
-#include <grp.h>
-#include <arpa/inet.h>
-*/
-
-extern const char *daemon_service;
-extern int client_delay;
-extern int depth;
-extern int _dict_daemon_limit;
-extern int _dict_markTime;
-extern const char *logFile;
-extern const char *pidFile;
-extern int logOptions;
-extern const char *bind_to;
-extern int useSyslog;
-extern const char *logFile;
-
-extern int daemon_service_set;
-extern int logFile_set;
-extern int pidFile_set;
-extern int _dict_markTime_set;
-extern int client_delay_set;
-extern int depth_set;
-extern int _dict_daemon_limit_set;
-extern int syslog_facility_set;
-extern int locale_set;
-extern int default_strategy_set;
-extern int bind_to_set;
-
-
-
-
-extern void       dict_disable_strat (dictDatabase *db, const char* strat);
-
-extern void       dict_dump_list( lst_List list );
-extern void       dict_destroy_list( lst_List list );
-
-extern int        dict_destroy_datum( const void *datum );
-
-#ifdef USE_PLUGIN
-extern int        dict_plugin_open (dictDatabase *db);
-extern void       dict_plugin_close (dictDatabase *db);
-#endif
-
-/* dictd.c */
-
-extern void set_minimal (void);
-
-extern void       dict_initsetproctitle( int argc, char **argv, char **envp );
-extern void       dict_setproctitle( const char *format, ... );
-extern const char *dict_format_time( double t );
-extern const char *dict_get_hostname( void );
-extern const char *dict_get_banner( int shortFlag );
-
-extern dictConfig *DictConfig;  /* GLOBAL VARIABLE */
-extern int        _dict_comparisons; /* GLOBAL VARIABLE */
-extern int        _dict_forks; /* GLOBAL VARIABLE */
-extern const char *locale;
-
-extern const char *locale;
-extern       int   inetd;    /* 1 if --inetd is applied, 0 otherwise */
-
-/*
-  If the filename doesn't start with / or .,
-  it is prepended with DICT_DIR
-*/
-extern const char *postprocess_dict_filename (const char *fn);
-/*
-  If the filename doesn't start with / or .,
-  it is prepended with PLUGIN_DIR
-*/
-extern const char *postprocess_plugin_filename (const char *fn);
-
-/* daemon.c */
-
-extern int  dict_daemon( int s, struct sockaddr_in *csin, char ***argv0,
-                        int delay_, int error );
-extern int  dict_inetd( char ***argv0, int delay_, int error );
-extern void daemon_terminate( int sig, const char *name );
-
-/* */
-extern int        utf8_mode;
-
-                               /* dmalloc must be last */
-#ifdef DMALLOC_FUNC_CHECK
-# include "dmalloc.h"
-#endif
-
-#endif
diff --git a/src/plugins/stardict/test_dictsip/dictzip.c b/src/plugins/stardict/test_dictsip/dictzip.c
deleted file mode 100644 (file)
index 400ded7..0000000
+++ /dev/null
@@ -1,529 +0,0 @@
-/* dictzip.c -- 
- * Created: Tue Jul 16 12:45:41 1996 by faith@dict.org
- * Revised: Mon Apr 22 11:40:17 2002 by faith@dict.org
- * Copyright 1996-1998, 2000, 2002 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- * 
- * $Id: dictzip.c,v 1.26 2004/11/17 12:39:44 cheusov Exp $
- * 
- */
-
-#include "dictzip.h"
-#include "data.h"
-
-#include <sys/stat.h>
-
-void dict_data_print_header( FILE *str, dictData *header )
-{
-   char        *date, *year;
-   long        ratio, num, den;
-   static int  first = 1;
-
-   if (first) {
-      fprintf( str,
-              "type   crc        date    time chunks  size     compr."
-              "  uncompr. ratio name\n" );
-      first = 0;
-   }
-   
-   switch (header->type) {
-   case DICT_TEXT:
-      date = ctime( &header->mtime ) + 4; /* no day of week */
-      date[12] = date[20] = '\0'; /* no year or newline*/
-      year = &date[16];
-      fprintf( str, "text %08lx %s %11s ", header->crc, year, date );
-      fprintf( str, "            " );
-      fprintf( str, "          %9ld ", header->length );
-      fprintf( str, "  0.0%% %s",
-              header->origFilename ? header->origFilename : "" );
-      putc( '\n', str );
-      break;
-   case DICT_GZIP:
-   case DICT_DZIP:
-      fprintf( str, "%s", header->type == DICT_DZIP ? "dzip " : "gzip " );
-#if 0
-      switch (header->method) {
-      case 0:  fprintf( str, "store" ); break;
-      case 1:  fprintf( str, "compr" ); break;
-      case 2:  fprintf( str, "pack " ); break;
-      case 3:  fprintf( str, "lzh  " ); break;
-      case 8:  fprintf( str, "defla" ); break;
-      default: fprintf( str, "?    " ); break;
-      }
-#endif
-      date = ctime( &header->mtime ) + 4; /* no day of week */
-      date[12] = date[20] = '\0'; /* no year or newline*/
-      year = &date[16];
-      fprintf( str, "%08lx %s %11s ", header->crc, year, date );
-      if (header->type == DICT_DZIP) {
-        fprintf( str, "%5d %5d ", header->chunkCount, header->chunkLength );
-      } else {
-        fprintf( str, "            " );
-      }
-      fprintf( str, "%9ld %9ld ", header->compressedLength, header->length );
-      /* Algorithm for calculating ratio from gzip-1.2.4,
-         util.c:display_ratio Copyright (C) 1992-1993 Jean-loup Gailly.
-         May be distributed under the terms of the GNU General Public
-         License. */
-      num = header->length-(header->compressedLength-header->headerLength);
-      den = header->length;
-      if (!den)
-        ratio = 0;
-      else if (den < 2147483L)
-        ratio = 1000L * num / den;
-      else
-        ratio = num / (den/1000L);
-      if (ratio < 0) {
-        putc( '-', str );
-        ratio = -ratio;
-      } else putc( ' ', str );
-      fprintf( str, "%2ld.%1ld%%", ratio / 10L, ratio % 10L);
-      fprintf( str, " %s",
-              header->origFilename ? header->origFilename : "" );
-      putc( '\n', str );
-      break;
-   case DICT_UNKNOWN:
-   default:
-      break;
-   }
-}
-
-int dict_data_zip( const char *inFilename, const char *outFilename,
-                  const char *preFilter, const char *postFilter )
-{
-   char          inBuffer[IN_BUFFER_SIZE];
-   char          outBuffer[OUT_BUFFER_SIZE];
-   int           count;
-   unsigned long inputCRC = crc32( 0L, Z_NULL, 0 );
-   z_stream      zStream;
-   FILE          *outStr;
-   FILE          *inStr;
-   int           len;
-   struct stat   st;
-   char          *header;
-   int           headerLength;
-   int           dataLength;
-   int           extraLength;
-   int           chunkLength;
-#if HEADER_CRC
-   int           headerCRC;
-#endif
-   unsigned long chunks;
-   unsigned long chunk = 0;
-   unsigned long total = 0;
-   int           i;
-   char          tail[8];
-   char          *pt, *origFilename;
-
-   
-   /* Open files */
-   if (!(inStr = fopen( inFilename, "r" )))
-      err_fatal_errno( __FUNCTION__,
-                      "Cannot open \"%s\" for read\n", inFilename );
-   if (!(outStr = fopen( outFilename, "w" )))
-      err_fatal_errno( __FUNCTION__,
-                      "Cannot open \"%s\"for write\n", outFilename );
-
-   origFilename = xmalloc( strlen( inFilename ) + 1 );
-   if ((pt = strrchr( inFilename, '/' )))
-      strcpy( origFilename, pt + 1 );
-   else
-      strcpy( origFilename, inFilename );
-
-   /* Initialize compression engine */
-   zStream.zalloc    = NULL;
-   zStream.zfree     = NULL;
-   zStream.opaque    = NULL;
-   zStream.next_in   = NULL;
-   zStream.avail_in  = 0;
-   zStream.next_out  = NULL;
-   zStream.avail_out = 0;
-   if (deflateInit2( &zStream,
-                    Z_BEST_COMPRESSION,
-                    Z_DEFLATED,
-                    -15,       /* Suppress zlib header */
-                    Z_BEST_COMPRESSION,
-                    Z_DEFAULT_STRATEGY ) != Z_OK)
-      err_internal( __FUNCTION__,
-                   "Cannot initialize deflation engine: %s\n", zStream.msg );
-
-   /* Write initial header information */
-   chunkLength = (preFilter ? PREFILTER_IN_BUFFER_SIZE : IN_BUFFER_SIZE );
-   fstat( fileno( inStr ), &st );
-   chunks = st.st_size / chunkLength;
-   if (st.st_size % chunkLength) ++chunks;
-   PRINTF(DBG_VERBOSE,("%lu chunks * %u per chunk = %lu (filesize = %lu)\n",
-                       chunks, chunkLength, chunks * chunkLength,
-                       (unsigned long) st.st_size ));
-   dataLength   = chunks * 2;
-   extraLength  = 10 + dataLength;
-   headerLength = GZ_FEXTRA_START
-                 + extraLength         /* FEXTRA */
-                 + strlen( origFilename ) + 1  /* FNAME  */
-                 + (HEADER_CRC ? 2 : 0);       /* FHCRC  */
-   PRINTF(DBG_VERBOSE,("(data = %d, extra = %d, header = %d)\n",
-                      dataLength, extraLength, headerLength ));
-   header = xmalloc( headerLength );
-   for (i = 0; i < headerLength; i++) header[i] = 0;
-   header[GZ_ID1]        = GZ_MAGIC1;
-   header[GZ_ID2]        = GZ_MAGIC2;
-   header[GZ_CM]         = Z_DEFLATED;
-   header[GZ_FLG]        = GZ_FEXTRA | GZ_FNAME;
-#if HEADER_CRC
-   header[GZ_FLG]        |= GZ_FHCRC;
-#endif
-   header[GZ_MTIME+3]    = (st.st_mtime & 0xff000000) >> 24;
-   header[GZ_MTIME+2]    = (st.st_mtime & 0x00ff0000) >> 16;
-   header[GZ_MTIME+1]    = (st.st_mtime & 0x0000ff00) >>  8;
-   header[GZ_MTIME+0]    = (st.st_mtime & 0x000000ff) >>  0;
-   header[GZ_XFL]        = GZ_MAX;
-   header[GZ_OS]         = GZ_OS_UNIX;
-   header[GZ_XLEN+1]     = (extraLength & 0xff00) >> 8;
-   header[GZ_XLEN+0]     = (extraLength & 0x00ff) >> 0;
-   header[GZ_SI1]        = GZ_RND_S1;
-   header[GZ_SI2]        = GZ_RND_S2;
-   header[GZ_SUBLEN+1]   = ((extraLength - 4) & 0xff00) >> 8;
-   header[GZ_SUBLEN+0]   = ((extraLength - 4) & 0x00ff) >> 0;
-   header[GZ_VERSION+1]  = 0;
-   header[GZ_VERSION+0]  = 1;
-   header[GZ_CHUNKLEN+1] = (chunkLength & 0xff00) >> 8;
-   header[GZ_CHUNKLEN+0] = (chunkLength & 0x00ff) >> 0;
-   header[GZ_CHUNKCNT+1] = (chunks & 0xff00) >> 8;
-   header[GZ_CHUNKCNT+0] = (chunks & 0x00ff) >> 0;
-   strcpy( &header[GZ_FEXTRA_START + extraLength], origFilename );
-   fwrite( header, 1, headerLength, outStr );
-    
-   /* Read, compress, write */
-   while (!feof( inStr )) {
-      if ((count = fread( inBuffer, 1, chunkLength, inStr ))) {
-        dict_data_filter( inBuffer, &count, IN_BUFFER_SIZE, preFilter );
-        
-        inputCRC = crc32( inputCRC, inBuffer, count );
-        zStream.next_in   = inBuffer;
-        zStream.avail_in  = count;
-        zStream.next_out  = outBuffer;
-        zStream.avail_out = OUT_BUFFER_SIZE;
-        if (deflate( &zStream, Z_FULL_FLUSH ) != Z_OK)
-           err_fatal( __FUNCTION__, "deflate: %s\n", zStream.msg );
-        assert( zStream.avail_in == 0 );
-        len = OUT_BUFFER_SIZE - zStream.avail_out;
-        assert( len <= 0xffff );
-
-        dict_data_filter( outBuffer, &len, OUT_BUFFER_SIZE, postFilter );
-        
-        assert( len <= 0xffff );
-        header[GZ_RNDDATA + chunk*2 + 1] = (len & 0xff00) >>  8;
-        header[GZ_RNDDATA + chunk*2 + 0] = (len & 0x00ff) >>  0;
-        fwrite( outBuffer, 1, len, outStr );
-
-        ++chunk;
-        total += count;
-        if (dbg_test( DBG_VERBOSE )) {
-           printf( "chunk %5lu: %lu of %lu total\r",
-                   chunk, total, (unsigned long) st.st_size );
-           fflush( stdout );
-        }
-      }
-   }
-   PRINTF(DBG_VERBOSE,("total: %lu chunks, %lu bytes\n", chunks, (unsigned long) st.st_size));
-    
-   /* Write last bit */
-#if 0
-   dmalloc_verify(0);
-#endif
-   zStream.next_in   = inBuffer;
-   zStream.avail_in  = 0;
-   zStream.next_out  = outBuffer;
-   zStream.avail_out = OUT_BUFFER_SIZE;
-   if (deflate( &zStream, Z_FINISH ) != Z_STREAM_END)
-      err_fatal( __FUNCTION__, "deflate: %s\n", zStream.msg );
-   assert( zStream.avail_in == 0 );
-   len = OUT_BUFFER_SIZE - zStream.avail_out;
-   fwrite( outBuffer, 1, len, outStr );
-   PRINTF(DBG_VERBOSE,("(wrote %d bytes, final, crc = %lx)\n",
-                      len, inputCRC ));
-
-   /* Write CRC and length */
-#if 0
-   dmalloc_verify(0);
-#endif
-   tail[0 + 3] = (inputCRC & 0xff000000) >> 24;
-   tail[0 + 2] = (inputCRC & 0x00ff0000) >> 16;
-   tail[0 + 1] = (inputCRC & 0x0000ff00) >>  8;
-   tail[0 + 0] = (inputCRC & 0x000000ff) >>  0;
-   tail[4 + 3] = (st.st_size & 0xff000000) >> 24;
-   tail[4 + 2] = (st.st_size & 0x00ff0000) >> 16;
-   tail[4 + 1] = (st.st_size & 0x0000ff00) >>  8;
-   tail[4 + 0] = (st.st_size & 0x000000ff) >>  0;
-   fwrite( tail, 1, 8, outStr );
-
-   /* Write final header information */
-#if 0
-   dmalloc_verify(0);
-#endif
-   rewind( outStr );
-#if HEADER_CRC
-   headerCRC = crc32( 0L, Z_NULL, 0 );
-   headerCRC = crc32( headerCRC, header, headerLength - 2);
-   header[headerLength - 1] = (headerCRC & 0xff00) >> 8;
-   header[headerLength - 2] = (headerCRC & 0x00ff) >> 0;
-#endif
-   fwrite( header, 1, headerLength, outStr );
-
-   /* Close files */
-#if 0
-   dmalloc_verify(0);
-#endif
-   fclose( outStr );
-   fclose( inStr );
-    
-   /* Shut down compression */
-   if (deflateEnd( &zStream ) != Z_OK)
-      err_fatal( __FUNCTION__, "defalteEnd: %s\n", zStream.msg );
-
-   xfree( origFilename );
-   xfree( header );
-
-   return 0;
-}
-
-static const char *id_string( const char *id )
-{
-   static char buffer[BUFFERSIZE];
-   char        *pt;
-
-   snprintf( buffer, BUFFERSIZE, "%s", DICT_VERSION );
-   pt = buffer + strlen( buffer );
-
-   return buffer;
-}
-
-static void banner( void )
-{
-   const char *id = "$Id: dictzip.c,v 1.26 2004/11/17 12:39:44 cheusov Exp $";
-   
-   fprintf( stderr, "%s %s\n", err_program_name(), id_string( id ) );
-   fprintf( stderr,
-           "Copyright 1996-2002 Rickard E. Faith (faith@dict.org)\n\n" );
-}
-
-static void license( void )
-{
-   static const char *license_msg[] = {
-     "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 1, 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.,",
-     "675 Mass Ave, Cambridge, MA 02139, USA.",
-   0 };
-   const char        **p = license_msg;
-   
-   banner();
-   while (*p) fprintf( stderr, "   %s\n", *p++ );
-}
-
-static void help( void )
-{
-   static const char *help_msg[] = {
-      "Usage: dictzip [options] name",
-      "",
-      "-d --decompress      decompress",
-      "-f --force           force overwrite of output file",
-      "-h --help            give this help",
-      "-k --keep            do not delete original file",
-      "-l --list            list compressed file contents",
-      "-L --license         display software license",
-      "-c --stdout          write to stdout (decompression only)",
-      "-t --test            test compressed file integrity",
-      "-v --verbose         verbose mode",
-      "-V --version         display version number",
-      "-D --debug           select debug option",
-      "-s --start <offset>  starting offset for decompression (decimal)",
-      "-e --size <offset>   size for decompression (decimal)",
-      "-S --Start <offset>  starting offset for decompression (base64)",
-      "-E --Size <offset>   size for decompression (base64)",
-      "-p --pre <filter>    pre-compression filter",
-      "-P --post <filter>   post-compression filter",
-      0 };
-   const char        **p = help_msg;
-
-   banner();
-   while (*p) fprintf( stderr, "%s\n", *p++ );
-}
-
-int main( int argc, char **argv )
-{
-   int           c;
-   size_t        i;
-   size_t        j;
-   int           decompressFlag = 0;
-   int           forceFlag      = 0;
-   int           keepFlag       = 0;
-   int           listFlag       = 0;
-   int           stdoutFlag     = 0;
-   int           testFlag       = 0;
-   char          buffer[BUFFERSIZE];
-   char          *buf;
-   char          *pre           = NULL;
-   char          *post          = NULL;
-   unsigned long start          = 0;
-   unsigned long size           = 0;
-   unsigned long clSize         = 0; /* from command line */
-   unsigned long clStart        = 0; /* from comment line */
-   dictData      *header;
-   char          *pt;
-   FILE          *str;
-   int           len;
-   char          filename[BUFFERSIZE];
-   struct option longopts[] = {
-      { "stdout",       0, 0, 'c' },
-      { "decompress",   0, 0, 'd' },
-      { "force",        0, 0, 'f' },
-      { "help",         0, 0, 'h' },
-      { "keep",         0, 0, 'k' },
-      { "list",         0, 0, 'l' },
-      { "license",      0, 0, 'L' },
-      { "test",         0, 0, 't' },
-      { "verbose",      0, 0, 'v' },
-      { "version",      0, 0, 'V' },
-      { "debug",        1, 0, 'D' },
-      { "start",        1, 0, 's' },
-      { "size",         1, 0, 'e' },
-      { "Start",        1, 0, 'S' },
-      { "Size",         1, 0, 'E' },
-      { "pre",          1, 0, 'p' },
-      { "post",         1, 0, 'P' },
-      { 0,              0, 0,  0  }
-   };
-
-   /* Initialize Libmaa */
-   maa_init( argv[0] );
-   dbg_register( DBG_VERBOSE, "verbose" );
-   dbg_register( DBG_ZIP,     "zip" );
-   dbg_register( DBG_UNZIP,   "unzip" );
-
-   if ((pt = strrchr( argv[0], '/' ))) ++pt;
-   else                                pt = argv[0];
-   if (!strcmp(pt, "dictunzip")) ++decompressFlag;
-   if (!strcmp(pt, "dictzcat")) {
-      ++decompressFlag;
-      ++stdoutFlag;
-   }
-   
-#if 0
-   if (signal( SIGINT, SIG_IGN ) != SIG_IGN)  signal( SIGINT, sig_handler );
-   if (signal( SIGQUIT, SIG_IGN ) != SIG_IGN) signal( SIGQUIT, sig_handler );
-#endif
-
-   while ((c = getopt_long( argc, argv,
-                           "cdfhklLe:E:s:S:tvVD:p:P:",
-                           longopts, NULL )) != EOF)
-      switch (c) {
-      case 'd': ++decompressFlag;                                      break;
-      case 'f': ++forceFlag;                                           break;
-      case 'k': ++keepFlag;                                            break;
-      case 'l': ++listFlag;                                            break;
-      case 'L': license(); exit( 1 );                                  break;
-      case 'c': ++stdoutFlag;                                          break;
-      case 't': ++testFlag;                                            break;
-      case 'v': dbg_set( "verbose" );                                  break;
-      case 'V': banner(); exit( 1 );                                   break;
-      case 'D': dbg_set( optarg );                                     break;
-      case 's': ++decompressFlag; clStart = strtoul( optarg, NULL, 10 ); break;
-      case 'e': ++decompressFlag; clSize  = strtoul( optarg, NULL, 10 ); break;
-      case 'S': ++decompressFlag; clStart = b64_decode( optarg );        break;
-      case 'E': ++decompressFlag; clSize  = b64_decode( optarg );        break;
-      case 'p': pre = optarg;                                          break;
-      case 'P': post = optarg;                                         break;
-      default:  
-      case 'h': help(); exit( 1 );                                     break;
-      }
-
-   if (testFlag) ++listFlag;
-
-   for (i = optind; i < (size_t) argc; i++) {
-      size  = clSize  ? clSize  : 0;
-      start = clStart ? clStart : 0;
-      if (listFlag) {
-        header = dict_data_open( argv[i], 1 );
-        dict_data_print_header( stdout, header );
-        dict_data_close( header );
-      } else if (decompressFlag) {
-        if (stdoutFlag) {
-           header = dict_data_open( argv[i], 0 );
-           if (!size) size = header->length;
-           if (!start) {
-              len = header->chunkLength;
-              for (j = 0; j < size; j += len) {
-                 if (j + len >= size) len = size - j;
-                 buf = dict_data_read_ ( header, j, len, pre, post );
-                 fwrite( buf, len, 1, stdout );
-                 fflush( stdout );
-                 xfree( buf );
-              }
-           } else {
-              buf = dict_data_read_ ( header, start, size, pre, post );
-              fwrite( buf, size, 1, stdout );
-              fflush( stdout );
-              xfree( buf );
-           }
-           dict_data_close( header );
-        } else {
-           strlcpy( filename, argv[i], BUFFERSIZE );
-
-           if ((pt = strrchr( filename, '.' ))) *pt = '\0';
-           else
-              err_fatal( __FUNCTION__, "Cannot truncate filename\n" );
-           if (!forceFlag && (str = fopen( filename, "r" )))
-              err_fatal( __FUNCTION__, "%s already exists\n", filename );
-           if (!(str = fopen( filename, "w" )))
-              err_fatal_errno( __FUNCTION__,
-                               "Cannot open %s for write\n", filename );
-           header = dict_data_open( argv[i], 0 );
-           if (!size) size = header->length;
-           len = header->chunkLength;
-           for (j = 0; j < size; j += len) {
-              if (j + len >= size) len = size - j;
-              buf = dict_data_read_ ( header, j, len, pre, post );
-              fwrite( buf, len, 1, str );
-              fflush( str );
-              xfree( buf );
-           }       
-           dict_data_close( header );
-           if (!keepFlag && unlink( argv[i] ))
-              err_fatal_errno( __FUNCTION__, "Cannot unlink %s\n", argv[i] );
-        }
-      } else {
-        snprintf( buffer,BUFFERSIZE-1, "%s.dz", argv[i] );
-        if (!dict_data_zip( argv[i], buffer, pre, post )) {
-           if (!keepFlag && unlink( argv[i] ))
-               err_fatal_errno( __FUNCTION__, "Cannot unlink %s\n", argv[i] );
-        } else {
-           err_fatal( __FUNCTION__, "Compression failed\n" );
-        }
-      }
-   }
-
-   return 0;
-}
diff --git a/src/plugins/stardict/test_dictsip/dictzip.h b/src/plugins/stardict/test_dictsip/dictzip.h
deleted file mode 100644 (file)
index 6da7e2c..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/* dictzip.h -- Header file for dict program
- * Created: Fri Dec  2 20:01:18 1994 by faith@dict.org
- * Revised: Fri Dec 22 06:06:31 2000 by faith@dict.org
- * Copyright 1994, 1995, 1996, 1997, 2000 Rickard E. Faith (faith@dict.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 1, 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.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef _DICTZIP_H_
-#define _DICTZIP_H_
-
-//#include "maa.h"
-#include "zlib.h"
-//#include "dictd.h"
-
-                               /* End of configurable things */
-
-#define BUFFERSIZE 10240
-#define DBG_VERBOSE     (0<<30|1<< 0) /* Verbose                           */
-#define DBG_ZIP         (0<<30|1<< 1) /* Zip                               */
-#define DBG_UNZIP       (0<<30|1<< 2) /* Unzip                             */
-#define DBG_SEARCH      (0<<30|1<< 3) /* Search                            */
-#define DBG_SCAN        (0<<30|1<< 4) /* Config file scan                  */
-#define DBG_PARSE       (0<<30|1<< 5) /* Config file parse                 */
-#define DBG_INIT        (0<<30|1<< 6) /* Database initialization           */
-
-#define HEADER_CRC 0           /* Conflicts with gzip 1.2.4               */
-
-/* Use of the FEXTRA fields.  The FEXTRA area can be 0xffff bytes long, 2
-   bytes of which are used for the subfield ID, and 2 bytes of which are
-   used for the subfield length.  This leaves 0xfffb bytes (0x7ffd 2-byte
-   entries or 0x3ffe 4-byte entries).  Given that the zip output buffer must
-   be 10% + 12 bytes larger than the input buffer, we can store 58969 bytes
-   per entry, or about 1.8GB if the 2-byte entries are used.  If this
-   becomes a limiting factor, another format version can be selected and
-   defined for 4-byte entries. */
-
-
-                               /* Output buffer must be greater than or
-                                   equal to 110% of input buffer size, plus
-                                   12 bytes. */
-#define OUT_BUFFER_SIZE 0xffffL
-
-#define IN_BUFFER_SIZE ((unsigned long)((double)(OUT_BUFFER_SIZE - 12) * 0.89))
-
-#define PREFILTER_IN_BUFFER_SIZE (IN_BUFFER_SIZE * 0.89)
-
-
-/* For gzip-compatible header, as defined in RFC 1952 */
-
-                               /* Magic for GZIP (rfc1952)                */
-#define GZ_MAGIC1     0x1f     /* First magic byte                        */
-#define GZ_MAGIC2     0x8b     /* Second magic byte                       */
-
-                               /* FLaGs (bitmapped), from rfc1952         */
-#define GZ_FTEXT      0x01     /* Set for ASCII text                      */
-#define GZ_FHCRC      0x02     /* Header CRC16                            */
-#define GZ_FEXTRA     0x04     /* Optional field (random access index)    */
-#define GZ_FNAME      0x08     /* Original name                           */
-#define GZ_COMMENT    0x10     /* Zero-terminated, human-readable comment */
-#define GZ_MAX           2     /* Maximum compression                     */
-#define GZ_FAST          4     /* Fasted compression                      */
-
-                               /* These are from rfc1952                  */
-#define GZ_OS_FAT        0     /* FAT filesystem (MS-DOS, OS/2, NT/Win32) */
-#define GZ_OS_AMIGA      1     /* Amiga                                   */
-#define GZ_OS_VMS        2     /* VMS (or OpenVMS)                        */
-#define GZ_OS_UNIX       3      /* Unix                                    */
-#define GZ_OS_VMCMS      4      /* VM/CMS                                  */
-#define GZ_OS_ATARI      5      /* Atari TOS                               */
-#define GZ_OS_HPFS       6      /* HPFS filesystem (OS/2, NT)              */
-#define GZ_OS_MAC        7      /* Macintosh                               */
-#define GZ_OS_Z          8      /* Z-System                                */
-#define GZ_OS_CPM        9      /* CP/M                                    */
-#define GZ_OS_TOPS20    10      /* TOPS-20                                 */
-#define GZ_OS_NTFS      11      /* NTFS filesystem (NT)                    */
-#define GZ_OS_QDOS      12      /* QDOS                                    */
-#define GZ_OS_ACORN     13      /* Acorn RISCOS                            */
-#define GZ_OS_UNKNOWN  255      /* unknown                                 */
-
-#define GZ_RND_S1       'R'    /* First magic for random access format    */
-#define GZ_RND_S2       'A'    /* Second magic for random access format   */
-
-#define GZ_ID1           0     /* GZ_MAGIC1                               */
-#define GZ_ID2           1     /* GZ_MAGIC2                               */
-#define GZ_CM            2     /* Compression Method (Z_DEFALTED)         */
-#define GZ_FLG          3      /* FLaGs (see above)                       */
-#define GZ_MTIME         4     /* Modification TIME                       */
-#define GZ_XFL           8     /* eXtra FLags (GZ_MAX or GZ_FAST)         */
-#define GZ_OS            9     /* Operating System                        */
-#define GZ_XLEN         10     /* eXtra LENgth (16bit)                    */
-#define GZ_FEXTRA_START 12     /* Start of extra fields                   */
-#define GZ_SI1          12     /* Subfield ID1                            */
-#define GZ_SI2          13      /* Subfield ID2                            */
-#define GZ_SUBLEN       14     /* Subfield length (16bit)                 */
-#define GZ_VERSION      16      /* Version for subfield format             */
-#define GZ_CHUNKLEN     18     /* Chunk length (16bit)                    */
-#define GZ_CHUNKCNT     20     /* Number of chunks (16bit)                */
-#define GZ_RNDDATA      22     /* Random access data (16bit)              */
-
-#define DICT_UNKNOWN    0
-#define DICT_TEXT       1
-#define DICT_GZIP       2
-#define DICT_DZIP       3
-
-
-#endif
diff --git a/src/plugins/xdxf/COPYING b/src/plugins/xdxf/COPYING
deleted file mode 100644 (file)
index fb6319b..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-    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 Lesser 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) <year>  <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) year 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 Lesser General
-Public License instead of this License.
\ No newline at end of file
diff --git a/src/plugins/xdxf/Makefile b/src/plugins/xdxf/Makefile
deleted file mode 100755 (executable)
index 60c71ec..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-COMPILER = gcc
-DEBUG = -Wall -g
-INCLUDE = include
-INCLUDE_ENGINE = ../../../include
-LIBS = `pkg-config --libs glib-2.0 gmodule-2.0 gnome-vfs-2.0` -lexpat
-FLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0 gnome-vfs-2.0` -I${INCLUDE} -I${INCLUDE_ENGINE}
-SOURCES = src
-BINARIES = bin
-MAIN_BINARIES = ../../../bin
-EXECUTABLE = ${SOURCES}/test_engin
-
-${EXECUTABLE}: ${BINARIES}/engine_xdxf.o ${INCLUDE_ENGINE}/dictionary_engine.h                 
-               @echo -e -n   "| Linking engine-xdxf to dynamic library...                                          |\n"
-               @gcc -shared -fPIC ${FLAGS} ${LIBS} ${DEBUG} ${BINARIES}/engine_xdxf.o -o ${SOURCES}/engine_xdxf.so 
-               @echo -e -n   "| Building engine_xdxf module done...                                                |\n"
-               @echo -e -n   "+------------------------------------------------------------------------------------+\n\n"
-               @cp ${SOURCES}/engine_xdxf.so ${MAIN_BINARIES}
-
-
-${BINARIES}/engine_xdxf.o: ${SOURCES}/engine_xdxf.c ${INCLUDE}/engine_xdxf.h
-               @echo -e -n "\n+---------------- ENGINE XDXF -------------------------------------------------------+\n"
-               @echo -e -n   "| Compiling engine_xdxf module => engine_xdxf.o ...                                  |\n"
-               @gcc ${FLAGS} ${DEBUG} -c -fPIC ${SOURCES}/engine_xdxf.c -o ${BINARIES}/engine_xdxf.o 
-
-test: test.o
-               @echo "Linking test program..."
-               @gcc ${LIBS} ${DEBUG} ${DEBUG} -o ${SOURCES}/test ${BINARIES}/test.o
-               @echo -e "Building test program finished.\n"
-test.o:
-               @echo "Compiling test program..."
-               @gcc ${FLAGS} ${DEBUG} -c -o ${BINARIES}/test.o ${SOURCES}/test.c
-
-check:
-               @echo "Running test program:"
-               @run-standalone.sh ${SOURCES}/test
-
-clean :
-               @rm -f ${BINARIES}/*
-               @rm -f ${SOURCES}/test
-               @rm -f ${SOURCES}/*~
-               @rm -f *~
-               @rm -f ${INCLUDE}/*~
-               @rm -f ${SOURCES}/engine_xdxf.so
diff --git a/src/plugins/xdxf/Makefile.am b/src/plugins/xdxf/Makefile.am
deleted file mode 100644 (file)
index f83dcbb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src
\ No newline at end of file
diff --git a/src/plugins/xdxf/Makefile_old b/src/plugins/xdxf/Makefile_old
deleted file mode 100755 (executable)
index 60c71ec..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-COMPILER = gcc
-DEBUG = -Wall -g
-INCLUDE = include
-INCLUDE_ENGINE = ../../../include
-LIBS = `pkg-config --libs glib-2.0 gmodule-2.0 gnome-vfs-2.0` -lexpat
-FLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0 gnome-vfs-2.0` -I${INCLUDE} -I${INCLUDE_ENGINE}
-SOURCES = src
-BINARIES = bin
-MAIN_BINARIES = ../../../bin
-EXECUTABLE = ${SOURCES}/test_engin
-
-${EXECUTABLE}: ${BINARIES}/engine_xdxf.o ${INCLUDE_ENGINE}/dictionary_engine.h                 
-               @echo -e -n   "| Linking engine-xdxf to dynamic library...                                          |\n"
-               @gcc -shared -fPIC ${FLAGS} ${LIBS} ${DEBUG} ${BINARIES}/engine_xdxf.o -o ${SOURCES}/engine_xdxf.so 
-               @echo -e -n   "| Building engine_xdxf module done...                                                |\n"
-               @echo -e -n   "+------------------------------------------------------------------------------------+\n\n"
-               @cp ${SOURCES}/engine_xdxf.so ${MAIN_BINARIES}
-
-
-${BINARIES}/engine_xdxf.o: ${SOURCES}/engine_xdxf.c ${INCLUDE}/engine_xdxf.h
-               @echo -e -n "\n+---------------- ENGINE XDXF -------------------------------------------------------+\n"
-               @echo -e -n   "| Compiling engine_xdxf module => engine_xdxf.o ...                                  |\n"
-               @gcc ${FLAGS} ${DEBUG} -c -fPIC ${SOURCES}/engine_xdxf.c -o ${BINARIES}/engine_xdxf.o 
-
-test: test.o
-               @echo "Linking test program..."
-               @gcc ${LIBS} ${DEBUG} ${DEBUG} -o ${SOURCES}/test ${BINARIES}/test.o
-               @echo -e "Building test program finished.\n"
-test.o:
-               @echo "Compiling test program..."
-               @gcc ${FLAGS} ${DEBUG} -c -o ${BINARIES}/test.o ${SOURCES}/test.c
-
-check:
-               @echo "Running test program:"
-               @run-standalone.sh ${SOURCES}/test
-
-clean :
-               @rm -f ${BINARIES}/*
-               @rm -f ${SOURCES}/test
-               @rm -f ${SOURCES}/*~
-               @rm -f *~
-               @rm -f ${INCLUDE}/*~
-               @rm -f ${SOURCES}/engine_xdxf.so
diff --git a/src/plugins/xdxf/autogen.sh b/src/plugins/xdxf/autogen.sh
deleted file mode 100755 (executable)
index 6b00028..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-rm -rf compile config.sub config.guess depcomp install-sh ltmain.sh missing aclocal.m4  autom4te.cache/ Makefile.in configure
-rm config.log config.status libtool Makefile
-
-rm -rf src/.libs src/*.la src/.lo src/.deps src/*.o src/*.lo src/Makefile src/Makefile.in
-
-#[ "_""$1" != "_nogen" ] && aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake
-
-[ "_""$1" != "_nogen" ] && ( aclocal ; libtoolize ; autoconf ; automake --add-missing ; automake )
diff --git a/src/plugins/xdxf/configure.ac b/src/plugins/xdxf/configure.ac
deleted file mode 100644 (file)
index 16563eb..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-AC_INIT([src/engine_xdxf.c])
-AC_CONFIG_AUX_DIR([.])
-
-AM_INIT_AUTOMAKE(engine_xdxf, 1.0)
-
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.0)
-PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= 2.0)
-PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0 >= 2.0)
-
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-
-AC_SUBST(GMODULE_CFLAGS)
-AC_SUBST(GMODULE_LIBS)
-
-AC_SUBST(GNOMEVFS_CFLAGS)
-AC_SUBST(GNOMEVFS_LIBS)
-
-AC_PROG_CC
-AC_PROG_INSTALL
-AM_PROG_LIBTOOL
-
-AC_OUTPUT([  Makefile 
-                          src/Makefile])
\ No newline at end of file
diff --git a/src/plugins/xdxf/include/engine_xdxf.h b/src/plugins/xdxf/include/engine_xdxf.h
deleted file mode 100644 (file)
index 4b6fd6e..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-/*******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-*******************************************************************************/
-/** \defgroup XDXFEngine Dictionary Engine - XDXF format
- * \brief XDXF-based dictionary engine.
- *
- * This is library with dictionary engine supporting XDXF dictionaries. XDXF is
- * based on XML language. For more information, please go to:
- * \li http://xdxf.sourceforge.net/
- *
- * TODO: currently XDXF engine does not support all function from engine API!
- * It need implementation of API version 0.2 function, like getting icon path
- * etc.
- */
-/*@{*/
-/** \file engine_xdxf.h
- * \brief Header for XDXF-based dictionary engine.
- */
-
-#ifndef _DICTIONARY_ENGINE_XDXF
-#define _DICTIONARY_ENGINE_XDXF
-
-#ifdef __cplusplus
-        extern "C" {
-#endif
-
-/* headers with unix types/functions - onl for timers */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#include <glib.h> /* header with GLIB definitions/functions/types */
-#include <libgnomevfs/gnome-vfs.h> /* header with gnome-vfs - recommended I/O
-                                    * API for maemo */
-#include <expat.h> /* header with expat - XML Parser API */
-#include <string.h> /* manipulating strings */
-#include <dictionary_engine.h> /* header wit engine API */
-
-
-/** \name Timers */
-/*@{*/
-/** \brief Flags telling that we want to start timer. */
-#define TIMER_START     TRUE
-/** \brief Flags telling that we want to stop timer. */
-#define TIMER_STOP      FALSE
-
-/** \brief Start/stop timers.
- *
- * \param start do we want start new timer or end the last one
- * \param message string which shoul be printed by function while debbuging
- * \return -1.0 if we start or seconds passed from start if we want to 
- * stop timer
- */
-/* in final releases timer capapilities should be removed for increase
- * performance */
-/* static double timer(gboolean start, gchar* message); */
-
-/*@}*/
-
-
-/** \brief Version of XDXF engine. */
-#define DIC_ENG_VERSION "0.1b"
-
-/** \brief Short description of format supported by the current engine. */
-#define DIC_ENG_FORMAT  "XDXF"
-
-/** \brief Buffer's length used while generating cache for dictionary. */
-#define DICT_CACHEING_BUFF_SIZE                 16*1024
-
-/** \brief Buffer's length used while searching for words list. */
-#define DICT_SEARCHING_WORD_LIST_BUFF_SIZE      16*1024
-
-/** \brief Buffer's length used while searching for translation. */
-#define DICT_SEARCHING_WORD_TRAN_BUFF_SIZE      16*1024
-
-/** \brief Maximum length of word in dictionary.
- *
- * Engine use this value while searching in cache file. If this would be too
- * low value engine would work incorrectly, but too big value will decrease
- * performance of searching. 512 is optimal in most cases.
- */
-#define DICT_MAX_WORD_LENGTH   512
-
-/** \brief Translate boolean value into string. */
-#define PRINT_STATE(state) ( (state) ? "TRUE" : "FALSE" )
-
-
-/** \brief Structure used while dict_eng_module_check() is working.
- */
-struct _XDXFCheckingData {
-       gboolean further;
-       /**< \brief do we need to continue checking */
-       gboolean good;
-       /**< \brief returned value telling if given file was proper XDXF
-        * dictionary */
-       guint    deep;
-       /**< \brief keep depth of XDXF structure while parsing file */
-};
-typedef struct _XDXFCheckingData XDXFCheckingData;
-
-/** \brief Structure to help parse xdxf file for searching words list.
- */
-struct _XDXFWordsListData {
-       gchar*   last_word;
-       /**< \brief last found word */
-       gchar*   pattern;
-       /**< \brief pattern for words to search */
-       guint    pattern_len;
-       /**< \brief length of pattern */
-       guint    last_word_length;
-       /**< \brief length of last found word */
-       GArray*  result;
-       /**< \brief result of searching - GArray with words matching pattern */
-       guint    one_word;
-       /**< \brief 1 while engine is parsing whole particular word (k tag), 0 
-        * otherwise */
-       gboolean cont;
-       /**< \brief do we need to continue searching */
-};
-typedef struct _XDXFWordsListData       XDXFWordsListData;
-
-/** \brief Structure to help parse xdxf file for searching word's translation.
- */
-struct _XDXFWordsTransData {
-       gchar*          last_word;
-       /**< \brief last found word in dictionary */
-       gchar*          word;
-       /**< \brief word to search translation for */
-       guint           word_len;
-       /**< \brief length of word */
-       guint           last_word_length;
-       /**< \brief length of last found word */
-       gchar*          translation;
-       /**< \brief found translation or NULL if such was not found */
-       guint           one_word;
-       /**< \brief 1 while engine is parsing whole particular word (k tag), 0
-        * otherwise */
-       gboolean        cont;
-       /**< \brief do we need to continue searching */
-       gulong          last_start;
-       /**< \brief keeps offset in file of last found article 
-        * (word plus translation) */
-       XML_Parser*     parser;
-       /**< \brief pointer to expat XML parser */
-       gboolean        found;
-       /**< \brief telling if translation was found */
-       GnomeVFSHandle* xdxf;
-       /**< \brief pointer to dictionary file */
-};
-typedef struct _XDXFWordsTransData      XDXFWordsTransData;
-
-/** \brief Structure to help make optimization possible
- */
-struct _XDXFCacheData {
-       gchar*          buffer;
-       /**< \brief buffer with output part of cache file */
-       long            last_start;
-       /**< \brief keeps offset in file of the beggining of last found article
-        */
-       long            last_stop;
-       /**< \brief keeps offset in file of the end of last found article */
-       long            last_length;
-       /**< \brief keeps length of last found article */
-       GnomeVFSHandle* cache;
-       /**< \brief pointer to cache file */
-       XML_Parser      parser;
-       /**< \brief pointer to expat XML parser */
-       int             state;
-       /**< \brief 1 if parser is parsing article key (word), 2 if parser is
-        * parsing article value (translation), 0 otherwise. */
-       long            buffer_length;
-       /**< \brief buffer's length */
-};
-typedef struct _XDXFCacheData           XDXFCacheData;
-
-/** \brief Internal data structure for representing part of file.
- */
-struct _FilePart {
-       guint offset;
-       /**< \brief offset in file of file part */
-       guint length;
-       /**< \brief length of file part */
-};
-typedef struct _FilePart        FilePart;
-
-/** \brief Internal data structure of XDXF Engine.
- */
-struct _XDXFData {
-       GnomeVFSHandle*         xdxf;
-       /**< \brief pointer to *.xdxf file */
-       GnomeVFSHandle*         cache;
-       /**< \brief pointer to cache file */
-       gchar*                  dict_path;
-       /**< \brief path to dictionary */
-       EngineStatus            last_error;
-       /**< \brief status of last taken action */
-       gboolean                auto_free;
-       /**< \brief auto free mechanism status: FALSE - off, TRUE - on */
-
-       cb_progress             cb_progress_caching;
-       /**< \brief pointer to callback function called while informing about 
-        * caching progress */
-       gpointer                cb_progress_caching_data;
-       /**< \brief pointer to data passed to callback function called while
-        * informing about caching progress */
-       gdouble                 cb_progress_caching_seed;
-       /**< \brief how often progress callback should be called. 0.01 mean 
-        * that after each 1% of work callback shoul be called */
-
-       cb_progress             cb_progress_word_list;
-       /**< \brief pointer to callback function called while informing about
-        * words list searching progress */
-       gpointer                cb_progress_word_list_data;
-       /**< \brief pointer to data passed to callback function called while
-        * informing about words list searching progress */
-       gdouble                 cb_progress_word_list_seed;
-       /**< \brief how often progress callback should be called. 0.01 mean
-        * that after each 1% of work callback shoul be called */
-
-       cb_progress             cb_progress_word_trans;
-       /**< \brief pointer to callback function called while informing about
-        * word's translation searching progress */
-       gpointer                cb_progress_word_trans_data;
-       /**< \brief pointer to data passed to callback function called while
-        * informing about word's translation searching progress */
-       gdouble                 cb_progress_word_trans_seed;
-       /**< \brief how often progress callback should be called. 0.01 mean
-        * that after each 1% of work callback shoul be called */
-
-       cb_word_list            cb_search_word_list;
-       /**< \brief pointer to callback function called after words list is
-        * found */
-       gpointer                cb_search_word_list_data;
-       /**< \brief pointer to data passed to callback function called after
-        * words list is found */
-
-       cb_word_translation     cb_search_word_trans;
-       /**< \brief pointer to callback function called after word's translation
-        * is found */
-       gpointer                cb_search_word_trans_data;
-       /**< \brief pointer to data passed to callback function called after
-        * word's translation is found */
-};
-typedef struct _XDXFData        XDXFData;
-
-
-/** \name Parsing Expat's callbacks */
-/*@{*/
-
-/** \brief Checking XML file is proper XDXF file - tag starts.
- *
- * See Expat documentation for more information about parser callbacks.
- */
-static void     is_xdxf_file_start(void *data,
-                                   const char *el,
-                                   const char **attr);
-
-/** \brief Checking XML file is proper XDXF file - tag ends.
- *
- * See Expat documentation for more information about parser callbacks.
- */
-static void     is_xdxf_file_end(void *data,  const char *el);
-
-/** \brief Searching for words list - tag start.
- *
- * See Expat documentation for more information about parser callbacks.
- */
-static void     search_word_list_start(void *data,
-                                       const char *el,
-                                       const char **attr);
-/** \brief Searching for words list - tag ends.
- *
- * See Expat documentation for more information about parser callbacks.
- */
-static void     search_word_list_end(void *data, const char *el);
-
-/** \brief Searching for words list - text node.
- *
- * See Expat documentation for more information about parser callbacks.
- */
-static void     search_word_list_text(void *data, const XML_Char *txt, int len);
-
-/** \brief Searching for word's translation - tag start.
- *
- * See Expat documentation for more information about parser callbacks.
- */
-static void     search_word_trans_start(void *data,
-                                        const char *el,
-                                        const char **attr);
-
-/** \brief Searching for word's translation - tag ends.
- *
- * See Expat documentation for more information about parser callbacks.
- */
-static void     search_word_trans_end(void *data, const char *el);
-
-/** \brief Searching for word's translation - text node.
- *
- * See Expat documentation for more information about parser callbacks.
- */
-static void     search_word_trans_text(void *data,
-                                       const XML_Char *txt,
-                                       int len);
-/*@}*/
-
-
-/** \brief Return particular part of file. */
-static gchar* read_file_part(FilePart* part, GnomeVFSHandle* file);
-
-/** \brief Convert string to proper path name. */
-static gchar*           string_to_path(gchar** string);
-
-/** \brief Tells if file is in XDXF format (file should exist). */
-static gboolean         is_xdxf_file(gchar* file);
-
-/** \brief Get file's lenght. */
-static guint64          get_file_size(GnomeVFSHandle* file);
-
-/** \brief Return how many records (from cache file) are in the current buffer.
- */
-static guint            get_max_length(gchar* a, guint length);
-
-/** \brief Searching for word's translation in cache file. */
-static gchar* word_translation_cache(XDXFData* data, gchar* word);
-
-/** \brief Searching for word's translation in XDXF file. */
-static gchar* word_translation_xdxf(XDXFData* data, gchar* word);
-
-/** \brief Searching for words list in cache file. */
-static void word_list_cache(XDXFData* data,
-                            gchar* pattern,
-                            GArray* result,
-                            gpointer cb_data);
-
-/** \brief Searching for words list in XDXF file. */
-static void word_list_xdxf(XDXFData* data,
-                           gchar* pattern,
-                           GArray* result,
-                           gpointer cb_data);
-
-/** \name Module functions */
-/*@{*/
-
-/** \brief dict_eng_module_check() function implementation. */
-gboolean        xdxf_engine_check(gchar* location);
-
-/** \brief dict_eng_module_get_description() function implementation. */
-gchar*          xdxf_engine_description();
-
-/** \brief dict_eng_module_get_format() function implementation. */
-gchar*          xdxf_engine_format();
-
-/** \brief dict_eng_module_get_version() function implementation. */
-gchar*          xdxf_engine_version();
-
-/** \brief dict_eng_module_create() function implementation. */
-Engine*         xdxf_engine_create(gchar* location, 
-                              EngineOptimizationFlag flags,
-                              cb_progress progress_handler,
-                              gpointer progress_data,
-                              gdouble seed);
-/*@}*/
-
-
-/** \name Particular dictionary function */
-/*@{*/
-
-/** \brief dict_eng_destroy() function implementation. */
-void            xdxf_engine_close(Engine* engine);
-
-/** \brief dict_eng_get_location() function implementation. */
-gchar*          xdxf_engine_location(Engine* engine);
-
-/** \brief dict_eng_optimize() function implementation. */
-void            xdxf_engine_optimize(Engine* engine);
-
-/** \brief dict_eng_is_optimized() function implementation. */
-gboolean        xdxf_engine_is_optimized(Engine* engine);
-
-/** \brief dict_eng_set_auto_free() function implementation. */
-void            xdxf_engine_set_auto_free(Engine* engine, gboolean state);
-
-/** \brief dict_eng_set_callback() function implementation. */
-gpointer        xdxf_engine_set_callbacks(Engine* engine,
-                                     gchar* event,
-                                     gpointer c_handler,
-                                     gpointer user_data);
-
-/** \brief dict_eng_set_progress_seed() function implementation. */
-void            xdxf_engine_set_progress_seed(Engine* engine,
-                                         gchar* signal,
-                                         gdouble seed);
-
-/** \brief dict_eng_search_word_list() function implementation. */
-void            xdxf_engine_search_word_list(Engine* engine,
-                                             gchar* pattern,
-                                             gpointer data);
-
-/** \brief dict_eng_search_word_translation() function implementation. */
-void            xdxf_engine_search_word_translation(Engine* engine,
-                                                    gchar* word,
-                                                    gpointer data);
-
-/*** \brief dict_eng_search_word_translation_extended() function implementation.
- */
-/* this function was removed from engine API */
-/*void            xdxf_engine_search_word_translation_extended(Engine* engine,
-                                                        gchar* word);
-*/
-
-/** \brief dict_eng_get_last_status() function implementation. */
-EngineStatus    xdxf_engine_error(Engine* engine);
-
-/** \brief dict_eng_status_message() function implementation. */
-gchar*          xdxf_engine_error_message(EngineStatus error);
-
-/** \brief dict_eng_add_word() function implementation. */
-gboolean        xdxf_engine_add_word(Engine* engine,
-                                     gchar*  word,
-                                     gchar*  translation);
-
-/** \brief dict_eng_remove_word() function implementation. */
-gboolean        xdxf_engine_remove_word(Engine* engine, gchar*  word);
-/*@}*/
-
-/** \brief implementation of engine_global_functions(void) function. */
-EngineModule    engine_global_functions();
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-/*@}*/
diff --git a/src/plugins/xdxf/src/Makefile.am b/src/plugins/xdxf/src/Makefile.am
deleted file mode 100644 (file)
index 2995e7a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-lib_LTLIBRARIES = libengine_xdxf.la
-libengine_xdxf_la_SOURCES = engine_xdxf.c
-libengine_xdxf_la_CFLAGS = $(GLIB_CFLAGS) $(GMODULE_CFLAGS)  $(GNOMEVFS_CFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)/../../../include
-libengine_xdxf_la_LDFLAGS = $(GLIB_LIBS) $(GMODULE_LIBS)  $(GNOMEVFS_LIBS) -lexpat
-
-## bin_PROGRAMS = test
-## test_SOURCES = test.c
-## test_CFLAGS = $(GLIB_CFLAGS) $(GMODULE_CFLAGS)  $(GNOMEVFS_CFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)/../../../include
-## test_LDFLAGS = $(GLIB_LIBS) $(GMODULE_LIBS)  $(GNOMEVFS_LIBS) -lexpat
diff --git a/src/plugins/xdxf/src/engine_xdxf.c b/src/plugins/xdxf/src/engine_xdxf.c
deleted file mode 100644 (file)
index d057038..0000000
+++ /dev/null
@@ -1,1776 +0,0 @@
-/******************************************************************************
-This file is part of mdictionary.
-
-mdictionary 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.
-
-mdictionary 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 mdictionary; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Copyright 2006-2008 ComArch S.A.
-******************************************************************************/
-/** \addtogroup XDXFEngine
- */
-/*@{*/
-/** \file engine_xdxf.c
- * \brief Code of XDXF-based dictionary engine.
- */
-
-#include <engine_xdxf.h>
-
-
-/**
- * \param data engine's global data
- * \param word word to search translation for
- * \return translation of given word or NULL
- */
-static gchar* word_translation_cache(XDXFData* data, gchar* word)
-{
-       gnome_vfs_seek(data->cache, GNOME_VFS_SEEK_START, 0);
-       gchar b[DICT_SEARCHING_WORD_TRAN_BUFF_SIZE + 1];
-       GnomeVFSFileSize bytes_readed;
-
-       guint word_length = strlen(word);
-       guint record_length = 0;
-       guint trans_offset = 0;
-       guint already = 0;
-       guint64 readed = 0;
-       gchar* buffer = NULL;
-       gchar* trans = NULL;
-       guint file_size = get_file_size(data->cache);
-       while(TRUE) {
-               gnome_vfs_read( data->cache,
-                               b,
-                               DICT_SEARCHING_WORD_TRAN_BUFF_SIZE,
-                               &bytes_readed );
-               guint max_length = (guint)get_max_length(b,bytes_readed);
-               readed += max_length;
-               buffer = b;
-               already = 0;
-               gchar* tmp = NULL;
-               while(already < max_length) {
-                       memcpy(&record_length, buffer, sizeof(guint));
-                       memcpy( &trans_offset,
-                               buffer+record_length-2*sizeof(guint),
-                               sizeof(guint) );
-                       buffer[record_length-sizeof(guint)*2] = '\0';
-                       tmp = g_utf8_casefold(buffer+sizeof(guint), -1);
-                       if(((record_length - 3*sizeof(guint)) == word_length) &&
-                          (g_utf8_collate(word,tmp) == 0) )
-                       {
-                               FilePart translation = {0,0};
-                               translation.offset = trans_offset;
-                               memcpy( &(translation.length),
-                                       buffer + record_length - sizeof(guint),
-                                       sizeof(guint) );
-                               trans = read_file_part( &translation,
-                                                       data->xdxf );
-                               g_free(tmp); tmp = NULL;
-                               break;
-                       };
-                       already += record_length;
-                       buffer += record_length;
-                       g_free(tmp); tmp = NULL;
-               };
-
-               if( ( bytes_readed < DICT_SEARCHING_WORD_TRAN_BUFF_SIZE ) ||
-                   ( readed > (file_size - 3) ))
-               {
-                       break;
-               };
-
-               gnome_vfs_seek(
-                     data->cache,
-                     GNOME_VFS_SEEK_CURRENT,
-                    ((gint)max_length) -DICT_SEARCHING_WORD_TRAN_BUFF_SIZE );
-       }
-       return trans;
-}
-
-/**
- * \param data engine's global data
- * \param word word to search translation for
- * \return translation of given word or NULL
- */
-static gchar* word_translation_xdxf(XDXFData* data, gchar* word)
-{
-       gchar* casefold_word = g_utf8_casefold(word, -1);
-       guint word_length = strlen(casefold_word);
-       gchar* trans = NULL;
-       gnome_vfs_seek(data->xdxf, GNOME_VFS_SEEK_START, 0);
-       GnomeVFSResult vfs_result;
-       GnomeVFSFileSize bytes_readed = DICT_SEARCHING_WORD_TRAN_BUFF_SIZE;
-       gchar buffer[DICT_SEARCHING_WORD_TRAN_BUFF_SIZE+1];
-       guint64 file_size = get_file_size(data->xdxf);
-
-
-       XML_Parser parser = XML_ParserCreate(NULL);
-       if (!parser) {
-               g_warning("XDXF/%s->%s() Could not open initialize "
-                         "XML parser.\n",
-                         __FILE__,
-                         __FUNCTION__ );
-               /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-               return NULL;
-       };
-
-       gchar tmp[DICT_MAX_WORD_LENGTH];
-       XDXFWordsTransData search_data = {
-                                          tmp,
-                                          casefold_word,
-                                          word_length,
-                                          0,
-                                          NULL,
-                                          FALSE,
-                                          TRUE,
-                                          0,
-                                          &parser,
-                                          FALSE,
-                                          data->xdxf
-                                        };
-       XML_SetElementHandler( parser,
-                              search_word_trans_start,
-                              search_word_trans_end );
-       XML_SetCharacterDataHandler(parser, search_word_trans_text);
-       XML_SetUserData(parser, &search_data);
-
-       gdouble last_prog = 0.0;
-       while(TRUE) {
-               vfs_result = gnome_vfs_read( data->xdxf,
-                                            buffer,
-                                            DICT_SEARCHING_WORD_TRAN_BUFF_SIZE,
-                                            &bytes_readed );
-               XML_Parse( parser,
-                          buffer,
-                          bytes_readed,
-                          bytes_readed < DICT_SEARCHING_WORD_TRAN_BUFF_SIZE );
-
-               last_prog = 0.0;
-               if(data->cb_progress_word_trans != NULL) {
-                       GnomeVFSFileSize act_pos;
-                       gnome_vfs_tell(data->xdxf, &act_pos);
-                       gdouble progress =
-                                  ((gdouble)act_pos)/((gdouble)file_size);
-                       if((( (progress - last_prog)/
-                              (data->cb_progress_word_trans_seed) ) > 1.0) ||
-                           (progress >= 1.0))
-                       {
-                               data->
-                               cb_progress_word_trans(progress,
-                                          data->cb_progress_word_trans_data,
-                                          ENGINE_NO_ERROR );
-                               last_prog = progress;
-                       };
-               }
-
-               if(bytes_readed < DICT_SEARCHING_WORD_TRAN_BUFF_SIZE)
-               {
-                       break;
-               };
-               if(search_data.cont == FALSE)
-               {
-                       break;
-               };
-       }
-       XML_ParserFree(parser);
-       trans = search_data.translation; 
-       g_free(casefold_word); casefold_word = NULL;
-       return trans;
-}
-
-/** \sa dict_eng_search_word_translation */
-void xdxf_engine_search_word_translation(Engine* engine,
-                                         gchar* word,
-                                         gpointer user_data)
-{
-       g_debug( "XDXF/%s->%s() called.\n"
-                "-->PARAM:engine at adress=%p\n"
-                "-->PARAM:word=\'%s\'\n",
-                __FILE__,
-                __FUNCTION__,
-                engine,
-                word );
-       g_assert(engine != NULL);
-       g_assert(word != NULL);
-
-       /* timer(TIMER_START, (gchar*)__FUNCTION__); */
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       /* if callback is not set, we do not have to search word */
-       if(data->cb_search_word_trans == NULL) {
-               g_warning("XDXF/%s->%s() callback for Word Translation not set."
-                         " Searching aborted.\n",
-                         __FILE__,
-                         __FUNCTION__ );
-               /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-               /* do not call any callback, just exit */
-               return;
-       };
-
-
-       gchar* trans;
-       gchar* casefold_word = g_utf8_casefold(word, -1);
-       /* is dictionary optimized */
-       if(data->cache != NULL) {
-               trans = word_translation_cache(data, casefold_word);
-       }
-       else
-       {
-               trans = word_translation_xdxf(data, casefold_word);
-       };
-       g_free(casefold_word); casefold_word = NULL;
-
-       g_debug("XDXF/%s->%s() found for word \'%s\' translation:\n\'%s\'\n",
-               __FILE__,
-               __FUNCTION__,
-               word,
-               trans
-       );
-       /*timer(TIMER_STOP,(gchar*)__FUNCTION__);
-       timer(TIMER_START,"callback for returning word's translation START"); */
-
-       /* calling callback for word translation */
-       gpointer tmp = user_data;
-       if (NULL == tmp)
-       {
-               tmp = data->cb_search_word_trans_data;
-       }
-       
-       data->cb_search_word_trans( trans,
-                                   word,
-                                   tmp,
-                                   ENGINE_NO_ERROR );
-       /*timer(TIMER_STOP,"callback for returning word's translation END"); */
-
-       /* free memmory if needed */
-       if (data->auto_free && (NULL != trans) )
-       {
-               g_free(trans);
-               trans = NULL;
-       }
-       return;
-}
-
-/** \sa dict_eng_remove_word */
-gboolean xdxf_engine_remove_word(Engine* engine,
-                             gchar*  word)
-{
-       g_debug("%s -> %s()", __FILE__, __FUNCTION__);
-       g_debug("Not implemented yet. And wont be.");
-       return FALSE;
-}
-
-/** \sa dict_eng_add_word */
-gboolean xdxf_engine_add_word(Engine* engine,
-                         gchar*  word,
-                         gchar*  translation) 
-{
-       g_debug("%s -> %s()", __FILE__, __FUNCTION__);
-       g_debug("Not implemented yet. And wont be.");
-       return FALSE;
-}
-
-static void search_word_trans_start(void *data,
-                                    const char *el,
-                                    const char **attr )
-{
-       XDXFWordsTransData* loc_data = (XDXFWordsTransData*)data;
-       if( (NULL != loc_data->translation) || !(loc_data->cont) )
-       {
-               return;
-       };
-
-       if( ('k' == el[0]) && ('\0' == el[1]) )
-       {
-               /* beggining of article key */
-               loc_data->one_word = 1;
-               loc_data->last_word_length = 0;
-               loc_data->last_word[0] = '\0';
-       }
-       else if( ('a' == el[0]) && ('r' == el[1]) && ('\0' == el[2]) )
-       {
-               /* begining of article */
-               loc_data->last_start =
-                         XML_GetCurrentByteIndex(*(loc_data->parser));
-       }
-}
-
-static void search_word_trans_end(void *data, const char *el)
-{
-       XDXFWordsTransData* loc_data = (XDXFWordsTransData*)data;
-       if( (NULL != loc_data->translation) || (FALSE == loc_data->cont) )
-       {
-               return;
-       };
-
-       if( ('k' == el[0]) && ('\0' == el[1]) )
-       {
-               /* end of article key */
-               loc_data->one_word = 0;
-               gchar* tmp = g_utf8_casefold(loc_data->last_word, -1);
-               gint com = g_utf8_collate(tmp, loc_data->word);
-               g_free(tmp); tmp = NULL;
-               if(com != 0)
-               {
-                       /* loc_data->cont = FALSE; */
-                       /* dictionaries are not alway properly sorted, so for
-                       searching we should lookd in whole file! */
-                       return;
-               }
-               else if( (loc_data->last_word_length == loc_data->word_len) &&
-                        (0 == com) )
-               {
-                       loc_data->found = TRUE;
-               };
-
-               /* "clearing" buffer for next word - article key */
-               loc_data->last_word_length = 0;
-       }
-       else if( (TRUE == loc_data->found) && (0 == g_utf8_collate(el,"ar")) )
-       {
-               loc_data->found = FALSE;
-               loc_data->cont = FALSE;
-               gulong last_stop =
-                        (gulong)XML_GetCurrentByteIndex(*(loc_data->parser));
-               last_stop += strlen("</ar>");
-               FilePart fp = { loc_data->last_start,
-                               (last_stop - (loc_data->last_start)) };
-               loc_data->translation = read_file_part(&fp, loc_data->xdxf);
-       }
-}
-
-static void search_word_trans_text(void *data, const XML_Char *txt, int len)
-{
-       XDXFWordsTransData* loc_data = (XDXFWordsTransData*)data;
-       if( (NULL != loc_data->translation ) || (FALSE == loc_data->cont) )
-       {
-
-               return;
-       };
-
-       if(1 == loc_data->one_word)
-       {
-               memcpy( &(loc_data->last_word[loc_data->last_word_length]),
-                       (gchar*)txt,
-                       len );
-               loc_data->last_word_length += (guint)len;
-               loc_data->last_word[loc_data->last_word_length] = '\0';
-       };
-}
-
-/**
- * \param engine pointer to the engine
- * \param signal signal identifier
- * \param seed how often progress callback should be called (0.01 = 1% of work)
- */
-void xdxf_engine_set_progress_seed(Engine* engine, gchar* signal, gdouble seed)
-{
-       g_debug("XDXF/%s->%s() called.\n",__FILE__,__FUNCTION__);
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       if(g_ascii_strcasecmp(signal,ENGINE_PROGRESS_OPTIMIZING_SIGNAL) == 0)
-       {
-               data->cb_progress_caching_seed = seed;
-               g_debug( "XDXF/%s->%s() sets new seed=%0.2f for for signal "
-                        "\"%s\".\n",
-                        __FILE__,
-                        __FUNCTION__,
-                        seed,
-                        signal );
-       }
-       else
-       {
-               g_warning("XDXF/%s->%s() unsupported signal "
-                         "for progress: %s.\n",
-                         __FILE__,
-                         __FUNCTION__,
-                         signal );
-       };
-}
-
-/**
- * \param engine pointer to the engine
- * \param signal signal identifier to which we want to set callback
- * \param c_handler callback to be called on signal
- * \param user_data pointer to data which will be passed to the callback
- * \return previously set callback for selected signal
- */
-gpointer xdxf_engine_set_callbacks(Engine* engine,
-                             gchar* signal,
-                             gpointer c_handler,
-                             gpointer user_data)
-{
-       g_debug("XDXF/%s->%s() called.\n", __FILE__, __FUNCTION__);
-       g_assert(engine != NULL);
-       g_assert(signal != NULL);
-       g_assert(c_handler != NULL);
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-
-       if(g_ascii_strcasecmp(signal,ENGINE_PROGRESS_OPTIMIZING_SIGNAL) == 0)  {
-               gpointer result = data->cb_progress_caching;
-               data->cb_progress_caching = c_handler;
-               data->cb_progress_caching_data = user_data;
-               g_debug("XDXF/%s->%s() sets handler for signal \"%s\".\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       signal );
-               g_debug("XDXF/%s->%s() Function at adress =  %d.\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       (guint)c_handler );
-               g_debug("XDXF/%s->%s()     Data at adress =  %d.\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       (guint)user_data );
-               return result;
-       }
-       else if(g_ascii_strcasecmp(signal, ENGINE_WORD_LIST_SIGNAL) == 0)
-       {
-               gpointer result = data->cb_search_word_list;
-               data->cb_search_word_list = c_handler;
-               data->cb_search_word_list_data = user_data;
-               g_debug("XDXF/%s->%s() sets handler for signal \"%s\".\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       signal );
-               g_debug("XDXF/%s->%s() Function at adress =  %d.\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       (guint)c_handler );
-               g_debug("XDXF/%s->%s()     Data at adress =  %d.\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       (guint)user_data );
-               return result;
-       }
-       else if(g_ascii_strcasecmp(signal, ENGINE_WORD_TRANSLATION_SIGNAL) == 0)
-       {
-               gpointer result = data->cb_search_word_trans;
-               data->cb_search_word_trans = c_handler;
-               data->cb_search_word_trans_data = user_data;
-               g_debug("XDXF/%s->%s() sets handler for signal \"%s\".\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       signal );
-               g_debug("XDXF/%s->%s() Function at adress =  %d.\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       (guint)c_handler );
-               g_debug("XDXF/%s->%s()     Data at adress =  %d.\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       (guint)user_data );
-               return result;
-       }
-       else {
-               g_warning("XDXF/%s->%s() unsupported signal: %s.\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       signal );
-               return NULL;
-       }
-}
-
-/**
- * \param engine pointer to the engine do destroy
- */
-void xdxf_engine_close(Engine* engine)
-{
-       g_debug("XDXF/%s->%s() called.\n-->PARAM: engine adress=%p\n",
-               __FILE__,
-               __FUNCTION__,
-               engine );
-
-       if(engine == NULL)
-       {
-               g_warning("XDXF/%s->%s() Trying delete not existed engine.\n",
-                         __FILE__,
-                         __FUNCTION__ );
-               return;
-       }
-
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       if(data->cache != NULL)
-       {
-               gnome_vfs_close(data->cache);
-       };
-       if(data->xdxf != NULL)
-       {
-               gnome_vfs_close(data->xdxf);
-       };
-
-       g_free(data->dict_path);
-       g_free(data);
-       g_free(engine);
-
-       g_debug("XDXF/%s->%s() engine at adress=%p is deleted.\n",
-                __FILE__,
-                __FUNCTION__,
-                engine );
-}
-
-/**
- * \param error status to translate into meaningful message
- */
-gchar* xdxf_engine_error_message(EngineStatus error) 
-{
-        g_debug("XDXF/%s->%s() called.\n",__FILE__,__FUNCTION__);
-        return "Error - not yet implemented.";
-}
-
-/**
- * \param location path to the dictionary file directory
- * \param auto_cache flag deciding if we want to use optimization for engine
- * \param progress_handler optional progress handler for chaching proccess
- * \param progress_data data for progress_handler
- * \param seed how often caching progress callback will be called
- */
-Engine* xdxf_engine_create( gchar* location,
-                            EngineOptimizationFlag auto_cache,
-                            cb_progress progress_handler,
-                            gpointer progress_data,
-                            gdouble seed)
-{
-       g_debug("XDXF/%s->%s() called.\n"
-               "-->PARAM:location=\'%s\'\n"
-               "-->PARAM:auto_cache=%d\n",
-               __FILE__,
-               __FUNCTION__,
-               location,
-               (guint)auto_cache );
-
-       /* timer(TIMER_START,(gchar*)__FUNCTION__); */
-       GnomeVFSResult open_result;
-
-       if(!gnome_vfs_initialized ()) {
-               gnome_vfs_init ();
-       };
-
-       gchar* tmp = g_strdup(location);
-       string_to_path(&tmp);
-
-       Engine* result = (Engine*)g_try_malloc(sizeof(Engine));
-       result->engine_location = xdxf_engine_location;
-       result->engine_is_optimized = xdxf_engine_is_optimized;
-       result->engine_optimize = xdxf_engine_optimize;
-       result->engine_search_word_list = xdxf_engine_search_word_list;
-       result->engine_search_word_translation = 
-                       xdxf_engine_search_word_translation;
-
-       result->engine_close = xdxf_engine_close;
-       result->engine_status = xdxf_engine_error;
-       result->engine_status_message = xdxf_engine_error_message;
-       result->engine_set_callback = xdxf_engine_set_callbacks;
-       result->engine_set_progress_seed = xdxf_engine_set_progress_seed;
-       result->engine_set_auto_free = xdxf_engine_set_auto_free;
-       /* API 0.2 functions: */
-       result->engine_add_word = xdxf_engine_add_word;
-       result->engine_remove_word = xdxf_engine_remove_word;
-
-       XDXFData* data = (XDXFData*)g_try_malloc(sizeof(XDXFData));
-       result->engine_data = (gpointer)data;
-
-       g_debug("XDXF/%s->%s() opening file...\'%s\'.\n",
-               __FILE__,
-               __FUNCTION__,
-               location );
-       gchar* tmp2 = g_strconcat(tmp,"/dict.xdxf",NULL);
-       open_result =
-               gnome_vfs_open (&(data->xdxf), tmp2, GNOME_VFS_OPEN_READ);
-       g_free(tmp2); tmp2 = NULL;
-
-       if(open_result != GNOME_VFS_OK)
-       {
-               g_warning("XDXF/%s->%s() opening dictionary file failed"
-                         " due to reason: %s.\n",
-                         __FILE__,
-                         __FUNCTION__,
-                         gnome_vfs_result_to_string(open_result) );
-               result->engine_data = NULL;
-               g_free(data);
-               g_free(result);
-               result = NULL;
-       }
-       else
-       {
-               g_debug("XDXF/%s->%s() opening dictionary file successed.\n",
-                       __FILE__,
-                       __FUNCTION__ );
-
-               data->dict_path = g_strdup(tmp);
-               data->cache = NULL;
-               data->cb_progress_caching = progress_handler;
-               data->cb_progress_caching_data = progress_data;
-               data->cb_progress_caching_seed = seed;
-               data->cb_progress_word_list = NULL;
-               data->cb_progress_word_list_data = NULL;
-               data->cb_progress_word_list_seed = 0.01;
-               data->cb_progress_word_trans = NULL;
-               data->cb_progress_word_trans_data = NULL;
-               data->cb_progress_word_trans_seed = 0.01;
-
-               data->cb_search_word_list = NULL;
-               data->cb_search_word_list_data = NULL;
-
-               data->cb_search_word_trans = NULL;
-               data->cb_search_word_trans_data = NULL;
-
-               data->auto_free = FALSE;
-               if(auto_cache != ENGINE_NO)
-               {
-                       if(auto_cache == ENGINE_REFRESH)
-                       {
-                               xdxf_engine_optimize(result);
-                       }
-                       else if(auto_cache == ENGINE_CREATE)
-                       {
-                               gchar* cache_path = g_strconcat(data->dict_path,
-                                                               "/dict.cache",
-                                                               NULL );
-                               open_result =
-                                       gnome_vfs_open( &(data->cache),
-                                                       cache_path,
-                                                       GNOME_VFS_OPEN_READ );
-                               if(open_result != GNOME_VFS_OK) {
-                                       xdxf_engine_optimize(result);
-                               };
-                               g_free(cache_path);
-                               cache_path = NULL;
-                       }
-               };
-       }
-       g_free(tmp); tmp = NULL;
-
-       /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-       g_debug("XDXF/%s->%s() returned Engine at adress=%p\n",
-               __FILE__,
-               __FUNCTION__,
-               result );
-       return result;
-}
-
-/**
- * \return EngineModule structure for XDXF engine
- */
-EngineModule engine_global_functions()
-{
-       g_debug("XDXF/%s->%s() called.\n",__FILE__,__FUNCTION__);
-
-       EngineModule result;
-       result.engine_check             = xdxf_engine_check;
-       result.engine_description       = xdxf_engine_description;
-       result.engine_format            = xdxf_engine_format;
-       result.engine_version           = xdxf_engine_version;
-       result.engine_create            = xdxf_engine_create;
-
-       g_debug("XDXF/%s->%s() returned EngineModule at adress=%p.\n",
-               __FILE__,
-               __FUNCTION__,
-               &result );
-       return result;
-}
-
-/* we remove for this moment timers capabilities - but it could be easily
-   move back again in the future for time consuption measurement.
-static double timer(gboolean start, gchar* message)
-{
-        static GArray* stack = NULL;
-        static gboolean first_run = TRUE;
-        static struct timeval actual_time;
-        static struct timeval last_time;
-        static struct timeval result;
-        static double seconds = 0.0;
-        if(first_run) {
-                first_run = FALSE;
-                stack = g_array_new(TRUE, TRUE, sizeof(struct timeval));
-        };
-
-        if (start) {
-                g_debug("XDXF->%s() start counting time for function '%s()'.\n",
-                        __FUNCTION__,
-                        message
-                       );
-                g_array_prepend_val(stack, actual_time);
-                gettimeofday(&g_array_index(stack, struct timeval, 0),NULL);
-                return -1.0;
-        }
-        // we just want to end some timer - print some information about 
-        // working time;
-        else {
-                gettimeofday(&actual_time,NULL);
-                last_time = g_array_index(stack, struct timeval, 0);
-                g_array_remove_index(stack, 0);
-
-                if (actual_time.tv_usec < last_time.tv_usec) {
-                        int nsec = (last_time.tv_usec - actual_time.tv_usec) / 
-                                                                  (1000000 + 1);
-                        last_time.tv_usec -= 1000000 * nsec;
-                        last_time.tv_sec += nsec;
-                }
-                if (actual_time.tv_usec - last_time.tv_usec > 1000000) {
-                        int nsec = (last_time.tv_usec - actual_time.tv_usec) / 
-                                                                        1000000;
-                        last_time.tv_usec += 1000000 * nsec;
-                        last_time.tv_sec -= nsec;
-                }
-                result.tv_sec = actual_time.tv_sec - last_time.tv_sec;
-                result.tv_usec = actual_time.tv_usec - last_time.tv_usec;
-                seconds = (((double)(result.tv_usec)) / 1e6) +
-                                                      ((double)(result.tv_sec));
-
-                g_debug("XDXF->%s() function \'%s()\' was working for: %g [s] "
-                        "or %ld [us].\n",
-                        __FUNCTION__,
-                        message,
-                        seconds,
-                        ((long)(result.tv_sec*1e6)+(result.tv_usec))
-                       );
-                // stack is empty so we delete everything
-                if(stack->len == 0)   
-                {
-                        g_array_free(stack, TRUE);
-                        first_run = TRUE;
-                }
-        }
-        return seconds;
-}
-*/
-
-/**
- * \param part strucutre defining what part of file we want to read
- * \param file pointer to file from which we want to read
- * \return readed file part or NULL if read did not successed
- */
-static gchar* read_file_part(FilePart* part, GnomeVFSHandle* file) 
-{
-       g_debug("XDXF/%s->%s() called.\n",__FILE__,__FUNCTION__);
-       /* timer(TIMER_START,(gchar*)__FUNCTION__); */
-       gchar* result = NULL;
-       GnomeVFSResult    f_result;
-       GnomeVFSFileSize  bytes_read;
-
-       f_result = gnome_vfs_seek(file, GNOME_VFS_SEEK_START, part->offset);
-       if(f_result != GNOME_VFS_OK)
-       {
-               g_warning("XDXF/%s->%s() failed. Not possible to seek "
-                         "through file!\n",
-                         __FILE__,
-                         __FUNCTION__ );
-               /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-               return result;
-       };
-
-       result = g_try_malloc((part->length + 1) * sizeof(gchar));
-       if(result == NULL) {
-               g_warning("XDXF/%s->%s() failed. Not possible to allocate "
-                         "so big memmory chunk!\n",
-                         __FILE__,
-                         __FUNCTION__ );
-               /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-               return result;
-       };
-
-       f_result = gnome_vfs_read (file, result, part->length, &bytes_read);
-       if((f_result != GNOME_VFS_OK) ||
-               (((gulong)bytes_read) != part->length)) {
-               g_debug("XDXF/%s->%s() failed. Not possible to read from "
-                       "file!\n",
-                       __FILE__,
-                       __FUNCTION__ );
-               /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-               g_free(result); result = NULL;
-               return result;
-       };
-       result[part->length] = '\0';
-
-       g_debug("XDXF/%s->%s() returned string=\n\'%s\'.\n",
-               __FILE__,
-               __FUNCTION__,
-               result );
-
-       /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-       return result;
-}
-
-/**
-* Translate given string to proper full file path. Function works "in-situ".
-* It means that string is translated and replaced by proper full file path if
-* this file path exists, or this string is cleared and setted to NULL, if string
-* was representing wrong path. This function is static - to use only 
-* within this module.
-*
-* @param string pointer to to string 
-*       representing file path - it will be replaced by a proper filepath.
-*       It should be path to directory or file, ended with "/" or not, absolute 
-*       or not
-* @return pointer to new full file path, it is the same
-*       as string[0] in fact and it is returned only for abillity of nesting of
-* functions by pointer to string identyfying full file path
-*/
-static gchar* string_to_path(gchar** string) {
-       g_debug("XDXF/%s->%s() called.\n"
-               "-->PARAM:string=\'%s\'\n",
-               __FILE__,
-               __FUNCTION__,
-               string[0] );
-       gchar* arg = string[0];
-       gchar* new = NULL;
-
-       /* cleaning from leading and trailing whitespaces */
-       g_strstrip(arg);
-
-       /* add current directory if this is not absolute directory */
-       if (!g_path_is_absolute(arg))
-       {
-               gchar* tmp = g_get_current_dir();
-               new = g_strconcat(tmp,"/",arg,NULL);
-               g_free(arg); arg = new; new = NULL;
-       };
-
-       /* this is not a directory */
-       if (!g_file_test(arg, G_FILE_TEST_IS_DIR))
-       {
-               /* if this is wrong filepath, string was wrong */
-               if (!g_file_test(arg, G_FILE_TEST_IS_REGULAR))
-               {
-                       g_free(arg);
-                       new = NULL;
-               }
-               else
-               {
-                       /* if this is a file, remove filename */
-                       new = g_path_get_dirname (arg);
-                       g_free(arg);
-               }
-       }
-       else
-       {
-               /* this is a directory ... */
-               /* remove suffix "/" if neded... */
-               if (g_str_has_suffix(arg,"/") )
-               {
-                       new = g_path_get_dirname (arg);
-                       g_free(arg);
-               }
-               else
-               {
-                       new = arg;
-               }
-       };
-
-       /* now in new should be proper filepath, if not, string was wrong */
-       if (!g_file_test(new, G_FILE_TEST_IS_DIR))
-       {
-               /* if that directory does not exist, passed string wasn't proper
-                */
-               g_free(new);
-               new = NULL;
-       };
-
-       /* replace string under passed address */
-       string[0] = new;
-       g_debug("XDXF/%s->%s() returned string=\'%s\'\n",
-                __FILE__,
-                __FUNCTION__,
-                string[0] );
-       return new;
-}
-
-/**
- * \param file path to file which we want to test
- * \return TRUE if file was XDXF format, FALSE otherwise
- */
-static gboolean is_xdxf_file(gchar* file) {
-       g_debug("XDXF/%s->%s() called.\n"
-               "-->PARAM:file=\'%s\'\n",
-               __FILE__,
-               __FUNCTION__,
-               file );
-
-       gboolean                result = TRUE;
-       GnomeVFSHandle*         fd     = NULL;
-       GnomeVFSResult          file_result;
-       GnomeVFSFileSize        bytes_read;
-
-       if(!gnome_vfs_initialized ())
-       {
-               gnome_vfs_init ();
-       };
-
-       file_result = gnome_vfs_open (&fd, file, GNOME_VFS_OPEN_READ);
-       if(file_result != GNOME_VFS_OK)
-       {
-               g_warning("XDXF/%s->%s() Could not open the file.\n",
-                         __FILE__,
-                         __FUNCTION__ );
-               return FALSE;
-       };
-
-       XML_Parser p = XML_ParserCreate(NULL);
-       if (!p)
-       {
-               g_warning("XDXF/%s->%s() Could not open initialize "
-                         "XML parser.\n",
-                         __FILE__,
-                         __FUNCTION__ );
-               gnome_vfs_close(fd);
-               return FALSE;
-       };
-
-       XML_SetElementHandler(p, is_xdxf_file_start, is_xdxf_file_end);
-       XDXFCheckingData user_data = {TRUE, FALSE, 0};
-       XML_SetUserData(p, &user_data);
-       gchar buffer[DICT_CACHEING_BUFF_SIZE];
-
-       guint loop_count = 0;
-       while(TRUE)
-       {
-               file_result = gnome_vfs_read( fd,
-                                             buffer,
-                                             DICT_CACHEING_BUFF_SIZE,
-                                             &bytes_read );
-               if  (file_result != GNOME_VFS_OK)
-               {
-                       result = FALSE;
-                       g_warning("XDXF/%s->%s() Could not read enought from"
-                                 " file.\n",
-                                 __FILE__,
-                                 __FUNCTION__ );
-                       break;
-               };
-               if (! XML_Parse( p,
-                                buffer,
-                                (gulong)bytes_read,
-                                ((gulong)bytes_read) < DICT_CACHEING_BUFF_SIZE
-               ))
-               {
-                       result = FALSE;
-                       g_warning("XDXF/%s->%s() Could not parse file.\n",
-                                 __FILE__,
-                                 __FUNCTION__ );
-                       break;
-               };
-               if (user_data.further == FALSE)
-               {
-                       result = user_data.good;
-                       g_debug("XDXF/%s->%s() statement: location is "
-                               "compatible with this module, is %s\n",
-                               __FILE__,
-                               __FUNCTION__,
-                               PRINT_STATE(result) );
-                       break;
-               };
-               if (loop_count > 1)
-               {
-                       result = FALSE;
-                       g_debug("XDXF/%s->%s() Wrong file format.\n",
-                               __FILE__,
-                               __FUNCTION__ );
-                       break;
-               };
-               loop_count++;
-       }
-
-       gnome_vfs_close(fd);
-       XML_ParserFree(p);
-       g_debug("XDXF/%s->%s() returned bool statement=%s.\n",
-               __FILE__,
-               __FUNCTION__,
-               PRINT_STATE(result));
-       return result;
-}
-
-static void is_xdxf_file_start(void *data, const char *el, const char **attr) 
-{
-       XDXFCheckingData* user_data = (XDXFCheckingData*)data;
-       if (user_data->deep == 0) {
-               if (g_utf8_collate (el,"xdxf") != 0) {
-                       user_data->good = FALSE;
-               }
-               else {
-                       user_data->good = TRUE;
-               }
-               user_data->further = FALSE;
-       }
-       user_data->deep++;
-}
-static void is_xdxf_file_end(void *data, const char *el)
-{ /* clear as far as in this callback is nothing to do */ }
-
-/**
- * \param engine pointer to the engine
- * \return status of last taken action
- */
-EngineStatus xdxf_engine_error(Engine* engine) 
-{
-       g_debug("XDXF/%s->%s() called.\n",__FILE__,__FUNCTION__);
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       g_debug("XDXF/%s->%s() returned error code: %d\n",
-               __FILE__,
-               __FUNCTION__,
-              (gint)(data->last_error) );
-       return data->last_error;
-}
-
-static void caching_expat_start(void *data, const char *el, const char **attr) {
-       XDXFCacheData* loc_data = (XDXFCacheData*)data;
-       if(g_utf8_collate(el,"ar") == 0)
-       {
-               loc_data->last_start =
-                                    XML_GetCurrentByteIndex(loc_data->parser);
-       }
-       else if(g_utf8_collate(el,"k") == 0)
-       {
-               loc_data->state = 1;
-       }
-}
-
-static void caching_expat_end(void *data, const char *el) {
-       XDXFCacheData* loc_data = (XDXFCacheData*)data;
-       loc_data->last_stop = XML_GetCurrentByteIndex(loc_data->parser);
-
-       static guint record_length;
-       static guint start;
-       static guint length;
-       static guint buffer_length;
-
-       if((g_utf8_collate("k",el) == 0) &&
-          (loc_data->state == 1))
-       {
-               loc_data->state = 2;
-       }
-       else if((g_utf8_collate("ar",el) == 0) &&
-               (loc_data->state == 2))
-       {
-               buffer_length = loc_data->buffer_length;
-               record_length = sizeof(guint)*3 + loc_data->buffer_length;
-               start = loc_data->last_start;
-               length = loc_data->last_stop + strlen("</ar>") -
-                                                     loc_data->last_start;
-
-               gboolean error_writting = FALSE;
-               GnomeVFSFileSize bytes_written;
-               GnomeVFSResult vfs_result;
-
-               vfs_result = gnome_vfs_write(loc_data->cache,
-                                            &record_length,
-                                            sizeof(guint),
-                                            &bytes_written );
-               if(vfs_result != GNOME_VFS_OK) error_writting = TRUE;
-
-               vfs_result = gnome_vfs_write(loc_data->cache,
-                                            loc_data->buffer,
-                                            loc_data->buffer_length,
-                                            &bytes_written );
-               if(vfs_result != GNOME_VFS_OK) error_writting = TRUE;
-
-               vfs_result = gnome_vfs_write(loc_data->cache,
-                                            &start,
-                                            sizeof(guint),
-                                            &bytes_written );
-               if(vfs_result != GNOME_VFS_OK) error_writting = TRUE;
-
-               vfs_result = gnome_vfs_write(loc_data->cache,
-                                            &length,
-                                            sizeof(guint),
-                                            &bytes_written );
-               if(vfs_result != GNOME_VFS_OK) error_writting = TRUE;
-
-               loc_data->buffer[0] = '\0';
-               loc_data->buffer_length = 0;
-               loc_data->state = 0;
-       };
-}
-
-static void caching_expat_text(void *data, const XML_Char *txt, int len) {
-       XDXFCacheData* loc_data = (XDXFCacheData*)data;
-
-       if(loc_data->state == 1)
-       {
-               memcpy( &(loc_data->buffer[loc_data->buffer_length]),
-                       (gchar*)txt,
-                       len );
-               loc_data->buffer_length += (long)len;
-               loc_data->buffer[loc_data->buffer_length] = '\0';
-       };
-}
-
-/**
- * \param file pointer to file
- * \return size of given file
- */
-static guint64 get_file_size(GnomeVFSHandle* file)
-{
-       guint64 result = 0;
-       guint64 old_pos = 0;
-       gnome_vfs_tell(file, &old_pos);
-
-       if( gnome_vfs_seek(file, GNOME_VFS_SEEK_END, 0) != GNOME_VFS_OK)
-       {
-               return 0;
-       }
-
-       if( gnome_vfs_tell(file, &result) != GNOME_VFS_OK)
-       {
-               result = 0;
-       }
-
-       gnome_vfs_seek(file, GNOME_VFS_SEEK_START, old_pos);
-       return result;
-}
-
-/**
- * \param engine pointer to the engine
- */
-void xdxf_engine_optimize(Engine* engine)
-{
-       g_debug("XDXF/%s->%s() called for engine at adress=%p\n",
-               __FILE__,
-               __FUNCTION__,
-               engine );
-       /* timer(TIMER_START,(gchar*)__FUNCTION__); */
-
-       GnomeVFSResult vfs_result;
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       gchar* cache_path = g_strconcat(data->dict_path,"/dict.cache",NULL);
-       vfs_result = gnome_vfs_create(&(data->cache),
-                                     cache_path,
-                                     GNOME_VFS_OPEN_WRITE,
-                                     FALSE,
-                                     0666 );
-
-       if(vfs_result != GNOME_VFS_OK)
-       {
-               data->cache = NULL;
-               g_warning("XDXF/%s->%s().Could not create new "
-                         "cache file: %s.\n",
-                         __FILE__,
-                         __FUNCTION__,
-                         cache_path );
-       }
-       else
-       {
-               XDXFCacheData* c_data = 
-                        (XDXFCacheData*)g_try_malloc(sizeof(XDXFCacheData));
-               c_data->parser = XML_ParserCreate(NULL);
-               c_data->cache = data->cache;
-               c_data->buffer = 
-               (gchar*)g_try_malloc(sizeof(gchar)*DICT_CACHEING_BUFF_SIZE);
-               c_data->buffer_length = 0;
-               c_data->last_start = 0;
-               c_data->last_stop = 0;
-               c_data->last_length = 0;
-               
-               guint64 file_size = get_file_size(data->xdxf);
-
-               XML_SetUserData(c_data->parser, (gpointer)c_data);
-               XML_SetElementHandler(c_data->parser,
-                                     caching_expat_start,
-                                     caching_expat_end );
-               XML_SetCharacterDataHandler(c_data->parser, caching_expat_text);
-
-               GnomeVFSFileSize bytes_readed = DICT_CACHEING_BUFF_SIZE;
-               gchar b[DICT_CACHEING_BUFF_SIZE + 1];
-               gdouble last_prog = 0;
-               while(TRUE)
-               {
-                       vfs_result = gnome_vfs_read( data->xdxf,
-                                                    b,
-                                                    DICT_CACHEING_BUFF_SIZE,
-                                                    &bytes_readed );
-                       XML_Parse(c_data->parser,
-                                 b,
-                                 bytes_readed,
-                                 bytes_readed < DICT_CACHEING_BUFF_SIZE );
-
-                       if(data->cb_progress_caching != NULL)
-                       {
-                               GnomeVFSFileSize act_pos;
-                               gnome_vfs_tell(data->xdxf, &act_pos);
-                               gdouble progress = ((gdouble)act_pos)/
-                                                       ((gdouble)file_size);
-                               if((( (progress - last_prog) /
-                                   (data->cb_progress_caching_seed) ) > 1.0) ||
-                                   (progress >= 1.0))
-                               {
-                                       data->cb_progress_caching(
-                                               progress,
-                                               data->cb_progress_caching_data,
-                                               ENGINE_NO_ERROR );
-                                       last_prog = progress;
-                               };
-                       }
-                       if(bytes_readed < DICT_CACHEING_BUFF_SIZE)
-                       {
-                               break;
-                       }
-               }
-
-               g_free(c_data->buffer);
-               g_free(c_data);
-       }
-
-       vfs_result = gnome_vfs_close(data->cache);
-       vfs_result = gnome_vfs_open( &(data->cache),
-                                    cache_path,
-                                    GNOME_VFS_OPEN_READ );
-       g_free(cache_path); cache_path = NULL;
-       /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-       g_debug("XDXF/%s->%s()'s work finished.\n",__FILE__,__FUNCTION__);
-}
-
-/**
- * \param location path to file to check
- * \return 
- */
-gboolean xdxf_engine_check(gchar* location) 
-{
-       g_debug("XDXF/%s->%s() called.\n-->PARAM:location=\'%s\'\n",
-               __FILE__,
-               __FUNCTION__,
-               location );
-       /* timer(TIMER_START,(gchar*)__FUNCTION__); */
-       gboolean result = TRUE;        
-       gchar* filepath = g_strdup(location);
-       gchar* tmp = NULL;
-
-       string_to_path(&filepath);
-       if (filepath == NULL)
-       {
-               result = FALSE;
-               g_warning("XDXF/%s->%s() location \'%s\' is not a proper "
-                       "path!\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       location
-                       );
-       }
-       else
-       {
-               tmp = g_strconcat(filepath,"/dict.xdxf",NULL);
-               g_free(filepath);
-               filepath = tmp;
-               tmp = NULL;
-
-               g_debug("XDXF/%s->%s() finnal file to check is: %s\n",
-                       __FILE__,
-                       __FUNCTION__,
-                       filepath
-               );
-               if (!g_file_test(filepath, G_FILE_TEST_IS_REGULAR))
-               {
-                       g_warning("XDXF/%s->%s() file \'%s\' does not "
-                               "exists!\n",
-                               __FILE__,
-                               __FUNCTION__,
-                               filepath
-                               );
-                       result = FALSE;
-               };
-       };
-       if (result != FALSE) {
-               result = is_xdxf_file(filepath);
-       };
-
-       g_free(filepath);
-       /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-       g_debug("XDXF/%s->%s() returned bool statement=%s.\n",
-               __FILE__,
-               __FUNCTION__,
-               PRINT_STATE(result)
-       );
-       return result;
-}
-
-/**
- * \param a pointer to buffer
- * \param length length of buffer
- * \return number of words in buffer
- */
-static guint get_max_length(gchar* a, guint length) 
-{
-       gchar* b = a;
-       guint len = 0;
-       guint n = 0;
-       memcpy(&n,b,sizeof(guint));
-       while((len + n) <= length) {
-               len += n;
-               b = b + n;
-               if(len >= (length-sizeof(guint))) break;
-               memcpy(&n,b,sizeof(guint));
-       }
-       return len;
-}
-
-/**
- * \param engine pointer to the engine
- * \param state do auto free mechanism should be enabled?
- */
-void xdxf_engine_set_auto_free(Engine* engine, gboolean state) 
-{
-       g_debug( "XDXF/%s->%s() called.\n"
-                "-->PARAM:engine at adress=%p\n"
-                "-->PARAM:state=%s\n",
-                __FILE__,
-                __FUNCTION__,
-                engine,
-                PRINT_STATE(state) );
-       g_assert(engine != NULL);
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       data->auto_free = state;
-       g_debug( "XDXF/%s->%s() Current auto_free is %s\n",
-                __FILE__,
-                __FUNCTION__,
-                PRINT_STATE(data->auto_free) );
-}
-
-/**
- * \return string with engine version
- */
-gchar* xdxf_engine_version() 
-{
-       g_debug("XDXF/%s->%s() called.\n",__FILE__,__FUNCTION__);
-       gchar* result = g_strdup(DIC_ENG_VERSION);
-       g_debug( "XDXF/%s->%s() return string=%s\n",
-                __FILE__,
-                __FUNCTION__,
-                result );
-       return result;
-}
-
-/**
- * \return string with engine supported format - XDXF
- */
-gchar* xdxf_engine_format() 
-{
-       g_debug("XDXF/%s->%s() called.\n",__FILE__,__FUNCTION__);
-       gchar* result = g_strdup(DIC_ENG_FORMAT);
-       g_debug("XDXF/%s->%s() return string=%s\n",
-               __FILE__,
-               __FUNCTION__,
-               result
-       );
-       return result;
-}
-
-/**
- * \return string with short description of engine
- */
-gchar* xdxf_engine_description() 
-{
-       g_debug("XDXF/%s->%s() called.\n",__FILE__,__FUNCTION__);
-       gchar* result = g_strdup("This module operates on " 
-                                DIC_ENG_FORMAT
-                                " dictionaries. Version "
-                                DIC_ENG_VERSION
-                                "." );
-       g_debug("XDXF/%s->%s() return string=%s\n",
-               __FILE__,
-               __FUNCTION__,
-               result );
-       return result;
-}
-
-/**
- * \param engine pointer to the engine
- * \return TRUE if particular dictionary is optimized
- */
-gboolean xdxf_engine_is_optimized(Engine* engine) 
-{
-       g_debug("XDXF/%s->%s() called.\n-->PARAM: engine adress=%p\n",
-               __FILE__,
-               __FUNCTION__,
-               engine );
-
-       g_assert(engine != NULL);
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       gboolean result = (data->cache != NULL);
-       g_debug("XDXF/%s->%s() returned bool statement=%s.\n",
-               __FILE__,
-               __FUNCTION__,
-               PRINT_STATE(result) );
-       return result;
-}
-
-/**
- * \param engine pointer to the engine
- * \return string with path to the dictionary file
- */
-gchar* xdxf_engine_location(Engine* engine)
-{
-       g_debug("XDXF/%s->%s() called.\n-->PARAM: engine adress=%p\n",
-               __FILE__,
-               __FUNCTION__,
-               engine );
-       g_assert(engine != NULL);
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       gchar* result;
-       if(data->auto_free)
-       {
-               result = data->dict_path;
-       }
-       else
-       {
-               result = g_strdup(data->dict_path);
-       }
-
-       g_debug("XDXF/%s->%s() returned string=%s\n",
-               __FILE__,
-               __FUNCTION__,
-               result );
-       return result;
-}
-
-static void search_word_list_start(void *data,
-                                   const char *el,
-                                   const char **attr )
-{
-       XDXFWordsListData* loc_data = (XDXFWordsListData*)data;
-       if( ('k' == el[0]) && ('\0' == el[1]) ) {
-               loc_data->one_word = 1;
-       };
-}
-
-static void search_word_list_end(void *data, const char *el)
-{
-       static gboolean matched   = FALSE;
-       static gchar* tmp = NULL;
-
-       XDXFWordsListData* loc_data = (XDXFWordsListData*)data;
-       GPatternSpec* regex;
-       regex = g_pattern_spec_new (loc_data->pattern);
-       
-       if( ('k' == el[0]) && ('\0' == el[1]) )
-       {
-               loc_data->one_word = 0;
-       }
-       else
-       {
-               return;
-       }
-
-       gchar *tmp1 = g_strconcat (loc_data->last_word, " ", NULL);
-       tmp = g_utf8_casefold(tmp1, -1);
-       g_free (tmp1);
-       tmp1 = g_utf8_casefold(loc_data->last_word, -1);
-
-       if (( g_pattern_match_string (regex, tmp) == TRUE ) ||
-           ( g_pattern_match_string (regex, tmp1) == TRUE ) )
-       {
-               matched = TRUE;
-               gchar* new = g_strdup(loc_data->last_word);
-               g_array_append_val((loc_data->result), new);
-               g_debug("New Word for pattern \"%s\" found: %s\n",
-                       loc_data->pattern,
-                       new );
-       }
-       else
-       {
-               matched = FALSE;
-       }
-
-       /* "clearing" buffer for next word */
-       loc_data->last_word_length = 0;
-       /* if we passed words matching -> ends */
-       if( (loc_data->result->len > 0) && (!matched) )
-       {
-               loc_data->cont = FALSE;
-       };
-
-       g_free(tmp); tmp = NULL;
-       g_free(tmp1);
-       g_pattern_spec_free (regex);
-}
-
-static void search_word_list_text(void *data, const XML_Char *txt, int len) 
-{
-       XDXFWordsListData* loc_data = (XDXFWordsListData*)data;
-
-       if(1 == loc_data->one_word)
-       {
-               memcpy( &(loc_data->last_word[loc_data->last_word_length]),
-                       (gchar*)txt,
-                       len );
-               loc_data->last_word_length += (guint)len;
-               loc_data->last_word[loc_data->last_word_length] = '\0';
-       };
-}
-
-/**
- * \param data engine global data
- * \param pattern pattern for words list
- * \param result GArray for output words list
- * \param cb_data optional data for words list callback
- */
-static void word_list_cache(XDXFData* data,
-                            gchar* pattern,
-                            GArray* result,
-                            gpointer cb_data)
-{
-       gnome_vfs_seek(data->cache, GNOME_VFS_SEEK_START, 0);
-
-       GnomeVFSFileSize bytes_readed;
-       guint record_length = 0;
-       gchar buffer[DICT_SEARCHING_WORD_LIST_BUFF_SIZE];
-       gchar* buf;
-       guint already = 0;
-       guint max_length = 0;
-       guint64 file_size = get_file_size(data->cache);
-       gchar* casefold_pattern = g_utf8_casefold(pattern, -1);
-
-       
-       GPatternSpec* regex;
-       regex = g_pattern_spec_new (casefold_pattern);
-       
-       guint i = 0;
-       while(TRUE)
-       {
-               gnome_vfs_read( data->cache,
-                               buffer,
-                               DICT_SEARCHING_WORD_LIST_BUFF_SIZE,
-                               &bytes_readed );
-
-               max_length = get_max_length(buffer, (guint)bytes_readed);
-               already += max_length;
-               buf = buffer;
-
-               guint how_far = 0;
-               while(how_far < max_length)
-               {
-                       ++i;
-                       memcpy(&record_length, buf, sizeof(guint));
-                       buf[record_length-sizeof(guint)*2] = '\0';
-                       
-                       gchar *tmp1 = g_strconcat( buf + sizeof(guint),
-                                                  " ",
-                                                  NULL );
-                       gchar* tmp = g_utf8_casefold(tmp1, -1);
-                       g_free (tmp1);
-
-                       if ( g_pattern_match_string (regex, tmp) == TRUE )
-                       {
-                               gchar* new = g_strndup(buf + sizeof(guint),
-                                                      record_length -
-                                                      3*sizeof(guint) );
-                               g_array_append_val(result, new);
-                               g_debug("New Word for pattern \"%s\" found: "
-                                       "%s (pos:%d)\n",
-                                       pattern,
-                                       new,
-                                       i );
-                       };
-                       how_far += record_length;
-                       buf = buf + record_length;
-                       g_free(tmp); tmp = NULL;
-               }
-               if( (bytes_readed < DICT_SEARCHING_WORD_LIST_BUFF_SIZE) ||
-                    (already > (file_size -3)) )
-               {
-                       break;
-               }
-
-               gnome_vfs_seek( data->cache,
-                               GNOME_VFS_SEEK_CURRENT,
-                               (gint)max_length -
-                               DICT_SEARCHING_WORD_LIST_BUFF_SIZE );
-       }
-
-       /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-       /* timer(TIMER_START,"callback for returning words list START"); */
-       data->cb_search_word_list( result,
-                                  pattern,
-                                  cb_data,
-                                  ENGINE_NO_ERROR );
-       g_free(casefold_pattern);
-       casefold_pattern = NULL;
-       /* timer(TIMER_STOP,"callback for returning words list END"); */
-}
-
-/**
- * \param data engine global data
- * \param pattern pattern for words list
- * \param result GArray for output words list
- * \param cb_data optional data for words list callback
- */
-static void word_list_xdxf(XDXFData* data,
-                           gchar* pattern,
-                           GArray* result,
-                           gpointer cb_data)
-{
-       gnome_vfs_seek(data->xdxf, GNOME_VFS_SEEK_START, 0);
-       GnomeVFSResult vfs_result;
-       GnomeVFSFileSize bytes_readed = DICT_SEARCHING_WORD_LIST_BUFF_SIZE;
-       gchar buffer[DICT_SEARCHING_WORD_LIST_BUFF_SIZE+1];
-       guint64 file_size = get_file_size(data->xdxf);
-       gchar* casefold_pattern = g_utf8_casefold(pattern, -1);
-       guint pattern_len = strlen(casefold_pattern);
-       
-
-       XML_Parser parser = XML_ParserCreate(NULL);
-       if (!parser)
-       {
-               g_warning("XDXF/%s->%s() Could not open initialize XML "
-                       "parser.\n",
-                       __FILE__,
-                       __FUNCTION__
-                       );
-               /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-               return;
-       };
-
-       gchar tmp[DICT_MAX_WORD_LENGTH];
-       XML_SetElementHandler( parser,
-                              search_word_list_start,
-                              search_word_list_end );
-       XML_SetCharacterDataHandler(parser, search_word_list_text);
-
-       /*
-        buffer for single word 
-        pattern to search 
-        length of pattern 
-        actal length of readed word 
-        array to append words 
-        continuation of the same word 
-        continue of searching?
-       */
-       XDXFWordsListData search_data = { tmp,
-                                         casefold_pattern,
-                                         pattern_len,
-                                         0,
-                                         result,
-                                         0,
-                                         TRUE
-                                       };
-       XML_SetUserData(parser, &search_data);
-
-       gdouble last_prog = 0;
-       while(TRUE) {
-               vfs_result = gnome_vfs_read( data->xdxf,
-                                            buffer,
-                                            DICT_SEARCHING_WORD_LIST_BUFF_SIZE,
-                                            &bytes_readed );
-               XML_Parse( parser,
-                          buffer,
-                          bytes_readed,
-                          bytes_readed < DICT_SEARCHING_WORD_LIST_BUFF_SIZE );
-
-               if(NULL != data->cb_progress_word_list)
-               {
-                       GnomeVFSFileSize act_pos;
-                       gnome_vfs_tell(data->xdxf, &act_pos);
-                       gdouble progress = ((gdouble)act_pos)/
-                                                       ((gdouble)file_size);
-                       if((((progress - last_prog)/
-                            (data->cb_progress_word_list_seed)) > 1.0) ||
-                            (progress >= 1.0))
-                       {
-                               data->cb_progress_word_list(
-                                         progress,
-                                         data->cb_progress_word_list_data,
-                                         ENGINE_NO_ERROR );
-                               last_prog = progress;
-                       };
-               };
-
-               if(bytes_readed < DICT_SEARCHING_WORD_LIST_BUFF_SIZE)
-               {
-                       break;
-               };
-
-               if(FALSE == search_data.cont)
-               {
-                       g_debug("XDXF/%s->%s() We found every words matching "
-                               "pattern \"%s\". Abort further searching.\n",
-                               __FILE__,
-                               __FUNCTION__,
-                               pattern
-                       );
-                       break;
-               };
-       }
-       XML_ParserFree(parser);
-       g_free(casefold_pattern); casefold_pattern = NULL;
-
-       /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-       /* timer(TIMER_START,"callback for returning words list START"); */
-       data->cb_search_word_list( result,
-                                  pattern,
-                                  cb_data,
-                                  ENGINE_NO_ERROR );
-       /* timer(TIMER_STOP,"callback for returning words list END"); */
-}
-
-/**
- * \param data engine global data
- * \param pattern pattern for words list
- * \param user_data optional data for translation callback
- */
-void xdxf_engine_search_word_list(Engine* engine,
-                                  gchar* pattern,
-                                  gpointer user_data)
-{
-       g_debug("XDXF/%s->%s() called. Searching words list\n"
-               "-->PARAM:engine at adress=%p\n"
-               "-->PARAM:pattern=\"%s\"\n",
-               __FILE__,
-               __FUNCTION__,
-               engine,
-               pattern );
-
-       g_assert(engine != NULL);
-       g_assert(pattern != NULL);
-
-       /* timer(TIMER_START,(gchar*)__FUNCTION__); */
-       XDXFData* data = (XDXFData*)(engine->engine_data);
-       if(data->cb_search_word_list == NULL)
-       {
-               g_warning( "XDXF/%s->%s() callback for Word List not set. "
-                          "Searching aborted.\n",
-                          __FILE__,
-                          __FUNCTION__ );
-               /* timer(TIMER_STOP,(gchar*)__FUNCTION__); */
-               return;
-       };
-
-       gpointer cb_data =  user_data;
-       if ( NULL == cb_data )
-       {
-               cb_data = data->cb_search_word_list_data;
-       }
-
-       GArray* result = g_array_new(TRUE,FALSE,sizeof(gchar*));
-       /* dictionary is optimized so search in cache file */
-       if(data->cache != NULL)
-       {
-               word_list_cache(data, pattern, result, cb_data);
-       }
-       else
-       {
-               /* dictionary is not optimized-search directly fom XDXF file */
-               word_list_xdxf(data, pattern, result, cb_data);
-       };
-
-       guint i = 0;
-       if (result!=NULL){
-               for (i = 0; i < result->len; i++)
-               {
-                       g_free(g_array_index(result, gchar*, i));
-               }
-               g_array_free(result, TRUE);
-               result = NULL;
-       }
-
-       g_debug("XDXF/%s->%s() finished definately its work.\n",
-               __FILE__,
-               __FUNCTION__
-       );
-       return;
-}
-
-/*@}*/
diff --git a/src/plugins/xdxf/src/test.c b/src/plugins/xdxf/src/test.c
deleted file mode 100644 (file)
index 81e7ad1..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/**********************************************************************************
- *     copyright (C) 2006, Dariusz Wiechecki
- *     dariusz.wiechecki@gmail.com
- *     14 August 2006, Lodz, Poland
- **********************************************************************************
- *             This file is part of str-vfs-test.
- *
- *     str-vfs-test 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.
- *
- *     str-vfs-test 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 str-vfs-test; if not, write to the Free Software
- *     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *********************************************************************************/
-#include <gmodule.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <dictionary_engine.h>
-
-
-getting_additional get_functions; // additinal functions for concrete module (e.g. XDXF)
-
-void print_list(GArray* list, gchar* pattern, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,pattern);
-       int i = 0;
-       while(g_array_index(list, gchar*, i) != NULL) 
-       {
-               printf("  %d. : %s\n",i+1,g_array_index(list, gchar*, i));
-               i++;
-       }
-
-}
-
-void print_translation(gchar* translation, gchar* word, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,word);
-       printf("%s\n\nTRANSLATION ENDS.\n",translation);
-}
-
-void caching_progress(gdouble value, gpointer user_data, EngineStatus error) {
-       printf((gchar*)user_data,value);
-}
-
-int main(int argc, char** argv) 
-{
-       char* nameApp = "mdictionary: ";
-       printf("%sStarting test program of module: dictionary_engine.\n",nameApp);
-       
-       gchar* current_directory = g_get_current_dir();
-       printf("%sCurrent directory: %s\n",nameApp,current_directory);
-       gchar* library_to_path = g_strconcat(current_directory, "/src/engine_xdxf.so", NULL);
-       printf("%sEngine library should be in location:\n\t%s\n",nameApp,library_to_path);
-       
-       GModule *library = g_module_open(library_to_path, G_MODULE_BIND_LAZY);
-       g_module_symbol (library, "engine_global_functions", (gpointer)&get_functions);
-       
-
-       if(get_functions == NULL) {
-               printf("%sLoading function failed\n",nameApp);
-               return 1;
-       }
-       else printf("%sLoading function OK\n",nameApp);
-       
-
-       EngineModule module = get_functions();
-       Engine* xdxf;
-
-        gboolean is_compatible = dict_eng_module_check(module,"/home/lukasz/MyDocs/idioms_eng_eng");
-       if(is_compatible == TRUE)
-       {
-               printf("Location is compatible with enigne!\n");
-       }
-       else {
-               printf("Location is not compatible with enigne!\n");
-               return 1;
-       }
-
-       //printf("%sCheck OK. Module description: %s\n", nameApp, dict_eng_module_get_description(module));
-
-       //xdxf = dict_eng_module_create_ext(module, "/home/lukasz/MyDocs/repo/mdictionary/trunk/engine/bin" , ENGINE_CREATE, caching_progress, "Current progress of caching is: %0.2f.\n", 0.03 );
-       //home/stranger/mdictionary/engine0.2/
-//     xdxf = dict_eng_module_create(module, "/home/stranger/mdictionary/engine0.2/" , ENGINE_NO);
-//     dict_eng_set_callback(xdxf, ENGINE_PROGRESS_CACHING, caching_progress, "Current progress of caching is: %0.2f.\n");
-//     dict_eng_set_progress_seed(xdxf, ENGINE_PROGRESS_CACHING, 0.02);
-
-/*     if(dict_eng_is_optimized(xdxf) == FALSE)
-       {
-               printf("Dictionary has no cache!\nCreating cache file....\n");
-               dict_eng_optimize(xdxf);
-       }
-       else {
-               printf("Dictionary has already cache file!\n");
-       }*/
-        xdxf = dict_eng_module_create(module, "/home/lukasz/MyDocs/idioms_eng_eng" , ENGINE_CREATE);
-       dict_eng_set_callback(xdxf, ENGINE_WORD_LIST_SIGNAL , print_list, "Wort list matches to pattern: %s\n");
-       dict_eng_set_callback(xdxf, ENGINE_WORD_TRANSLATION_SIGNAL , print_translation, "Translation for word\'%s\':\n");
-       
-       dict_eng_search_word_list(xdxf,"z");
-       dict_eng_search_word_translation(xdxf,"zone defense");
-       //dict_eng_search_word_list(xdxf,"A");  
-       
-       dict_eng_destroy(xdxf);
-       g_free(current_directory);
-       g_free(library_to_path);
-       printf("%sClosed.\n",nameApp);
-       return 0;
-}
-