summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules6
-rw-r--r--CMakeL10n.txt26
-rw-r--r--CMakeLists.txt20
-rw-r--r--ConfigureChecks.cmake28
m---------admin0
m---------cmake0
-rw-r--r--config.h6
-rwxr-xr-xconfigure164
-rw-r--r--doc/CMakeLists.txt12
-rw-r--r--doc/en/CMakeLists.txt12
-rw-r--r--doc/en/SConscript12
-rw-r--r--doc/man/abakus.1143
-rw-r--r--po/CMakeLists.txt17
-rw-r--r--src/CMakeL10n.txt8
-rw-r--r--src/CMakeLists.txt11
-rw-r--r--src/abakus.cpp2
-rw-r--r--src/abakus.desktop28
-rw-r--r--src/abakuslistview.cpp8
-rw-r--r--src/abakuslistview.h6
-rw-r--r--src/dragsupport.h2
-rw-r--r--src/editor.cpp29
-rw-r--r--src/editor.h6
-rw-r--r--src/evaluator.cpp2
-rw-r--r--src/evaluator.h2
-rw-r--r--src/function.h2
-rw-r--r--src/hmath.cpp2
-rw-r--r--src/hmath.h2
-rw-r--r--src/lexer.ll6
-rw-r--r--src/mainwindow.cpp88
-rw-r--r--src/mainwindow.h2
-rw-r--r--src/node.cpp2
-rw-r--r--src/node.h2
-rw-r--r--src/number.c2
-rw-r--r--src/number.h2
-rw-r--r--src/numerictypes.cpp2
-rw-r--r--src/numerictypes.h2
-rw-r--r--src/parser.yy2
-rw-r--r--src/result.h2
-rw-r--r--src/resultlistview.cpp8
-rw-r--r--src/resultlistview.h2
-rw-r--r--src/rpnmuncher.cpp2
-rw-r--r--src/sharedptr.h2
-rw-r--r--src/valuemanager.cpp2
-rw-r--r--src/valuemanager.h4
-rw-r--r--translations/desktop_files/abakus.desktop/abakus.desktop.pot32
-rw-r--r--translations/desktop_files/abakus.desktop/bg.po33
-rw-r--r--translations/desktop_files/abakus.desktop/br.po32
-rw-r--r--translations/desktop_files/abakus.desktop/cs.po34
-rw-r--r--translations/desktop_files/abakus.desktop/cy.po32
-rw-r--r--translations/desktop_files/abakus.desktop/da.po32
-rw-r--r--translations/desktop_files/abakus.desktop/de.po34
-rw-r--r--translations/desktop_files/abakus.desktop/el.po33
-rw-r--r--translations/desktop_files/abakus.desktop/es.po33
-rw-r--r--translations/desktop_files/abakus.desktop/et.po32
-rw-r--r--translations/desktop_files/abakus.desktop/fr.po33
-rw-r--r--translations/desktop_files/abakus.desktop/ga.po32
-rw-r--r--translations/desktop_files/abakus.desktop/gl.po32
-rw-r--r--translations/desktop_files/abakus.desktop/it.po33
-rw-r--r--translations/desktop_files/abakus.desktop/ka.po32
-rw-r--r--translations/desktop_files/abakus.desktop/lt.po32
-rw-r--r--translations/desktop_files/abakus.desktop/nl.po33
-rw-r--r--translations/desktop_files/abakus.desktop/pt.po33
-rw-r--r--translations/desktop_files/abakus.desktop/ru.po34
-rw-r--r--translations/desktop_files/abakus.desktop/rw.po32
-rw-r--r--translations/desktop_files/abakus.desktop/sk.po33
-rw-r--r--translations/desktop_files/abakus.desktop/sr.po32
-rw-r--r--translations/desktop_files/abakus.desktop/sr@Latn.po32
-rw-r--r--translations/desktop_files/abakus.desktop/sv.po32
-rw-r--r--translations/desktop_files/abakus.desktop/tr.po33
-rw-r--r--translations/messages/abakus.pot229
-rw-r--r--translations/messages/cs.po237
-rw-r--r--translations/messages/de.po239
-rw-r--r--translations/messages/es.po234
-rw-r--r--translations/messages/it.po238
-rw-r--r--translations/messages/nl.po240
-rw-r--r--translations/messages/pt.po235
-rw-r--r--translations/messages/ru.po240
-rw-r--r--translations/messages/sk.po238
-rw-r--r--translations/messages/tr.po235
79 files changed, 3473 insertions, 395 deletions
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 4fce771..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,6 +0,0 @@
-[submodule "admin"]
- path = admin
- url = http://system@scm.trinitydesktop.org/scm/git/tde-common-admin
-[submodule "cmake"]
- path = cmake
- url = http://system@scm.trinitydesktop.org/scm/git/tde-common-cmake
diff --git a/CMakeL10n.txt b/CMakeL10n.txt
new file mode 100644
index 0000000..0176702
--- /dev/null
+++ b/CMakeL10n.txt
@@ -0,0 +1,26 @@
+#################################################
+#
+# (C) 2018 Slávek Banko
+# slavek.banko (AT) axis.cz
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+
+##### set project version ########################
+
+include( TDEVersion )
+cmake_minimum_required( VERSION ${TDE_CMAKE_MINIMUM_VERSION} )
+
+
+##### include our cmake modules #################
+
+include( TDEL10n )
+
+
+##### create translation templates ##############
+
+tde_l10n_auto_add_subdirectories( )
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 80ccb6a..9733f87 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,7 +9,12 @@
#
#################################################
-cmake_minimum_required( VERSION 2.8 )
+
+##### set project version ########################
+
+include( TDEVersion )
+cmake_minimum_required( VERSION ${TDE_CMAKE_MINIMUM_VERSION} )
+tde_set_project_version( )
##### general package setup #####################
@@ -31,7 +36,6 @@ include( FindPkgConfig )
##### include our cmake modules #################
-set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEMacros )
@@ -60,16 +64,20 @@ add_definitions(
)
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" )
-set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
-set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" )
+set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
+set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" )
##### source directories ########################
add_subdirectory( icons )
add_subdirectory( src )
-tde_conditional_add_subdirectory( BUILD_DOC doc )
-tde_conditional_add_subdirectory( BUILD_TRANSLATIONS po )
+
+
+##### other data ################################
+
+tde_conditional_add_project_docs( BUILD_DOC )
+tde_conditional_add_project_translations( BUILD_TRANSLATIONS )
##### write configure files #####################
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 33307a6..97fb72b 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -9,17 +9,24 @@
#
#################################################
+
+# required stuff
+
+tde_setup_architecture_flags( )
+
+include(TestBigEndian)
+test_big_endian(WORDS_BIGENDIAN)
+
+tde_setup_largefiles( )
+
+find_package( TQt )
+find_package( TDE )
+
+
##### check for gcc visibility support #########
-# FIXME
-# This should check for [T]Qt3 visibility support
if( WITH_GCC_VISIBILITY )
- if( NOT UNIX )
- tde_message_fatal(FATAL_ERROR "\ngcc visibility support was requested, but your system is not *NIX" )
- endif( NOT UNIX )
- set( __KDE_HAVE_GCC_VISIBILITY 1 )
- set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
- set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
+ tde_setup_gcc_visibility( )
endif( )
@@ -36,9 +43,6 @@ check_type_size( "long" SIZEOF_LONG BUILTIN_TYPES_ONLY )
check_include_file( stdint.h HAVE_STDINT_H )
check_include_file( systems.h HAVE_SYSTEMS_H )
check_include_file( linux/inotify.h HAVE_INOTIFY )
+check_include_file( mpfr.h HAVE_MPFR )
check_function_exists( statvfs HAVE_STATVFS )
-
-# common required stuff
-find_package( TQt )
-find_package( TDE )
diff --git a/admin b/admin
deleted file mode 160000
-Subproject 7fdd2988caef038bdd5657667c8b7e507e2c0d3
diff --git a/cmake b/cmake
deleted file mode 160000
-Subproject e5692c8bdbde55e425a1ec60601680d1114b909
diff --git a/config.h b/config.h
deleted file mode 100644
index b469afd..0000000
--- a/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* config.h -- Automatically generated by abakus.py
- * Any changes you make to this file will be overwritten!
- */
-
-/* HAVE_MPFR -- Defined if the MPFR library is being used. */
-/* #undef HAVE_MPFR */
diff --git a/configure b/configure
deleted file mode 100755
index 9a62bdd..0000000
--- a/configure
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env python
-# Configure script for abakus. I think it's better than the sample that came
-# with bksys. Feel free to do with it what you want.
-# By Michael Pyne <michael.pyne@kdemail.net>
-
-import sys
-import re
-
-BOLD="\033[1m"
-RED="\033[91m"
-GREEN="\033[92m"
-YELLOW="\033[93m"
-CYAN="\033[96m"
-NORMAL="\033[0m"
-
-PROGRAM_NAME='abakus'
-
-# First let's see if they asked for help.
-if '--help' in sys.argv:
- print '''This is a configure script to prepare %s for building.
-
-You can pass the command line argument debug=1 to enable debugging for the
-application, which can be useful if you have problems.
-
-Otherwise, just run ./configure, and if you don't already have scons, a mini
-version will be installed suitable for building %s.
-'''.replace('%s', PROGRAM_NAME)
- sys.exit(0)
-
-# Check that we have the minimum version of Python needs to run SCons.
-if sys.hexversion < 0x02030000:
- # Use regexp for compatibility with ancient Python
- version = re.split(' ', sys.version)[0]
-
- print RED + 'Sorry, your version of Python is too old.' + NORMAL
- print PROGRAM_NAME + ' requires Python 2.3 or greater to build.'
- print "\nYou have Python " + version
- sys.exit(1)
-
-import os
-
-# Check if scons is installed. We can use cool Python features now that we
-# know we aren't using an ancient version of Python.
-result = os.system('scons -v > /dev/null 2>&1')
-scons = 'scons'
-
-if os.WEXITSTATUS(result) == 0:
- print GREEN + "scons already installed." + NORMAL
-else:
- # If we didn't find scons, don't whine to the user about it, just fix it.
- print YELLOW + 'scons not installed, installing local copy.' + NORMAL
-
- # Split this into two steps since some tars don't use j to mean bzip2
- # compressed.
- result = os.system('bzcat bksys/scons-mini.tar.bz2 | tar x')
-
- if os.WEXITSTATUS(result) != 0:
- print RED + 'Unable to extract scons' + NORMAL
- sys.exit(2)
-
- scons = '%s/scons' % os.getcwd()
-
-# Now we now where scons is. Let's create a Makefile (after we configure) so
-# that all the user has to do is type 'make'. Allow the user to pass command
-# line arguments, which will be passed to the configure process.
-if len(sys.argv) < 2:
- options = ''
-else:
- options = " ".join(sys.argv[1:])
- # reduce is pretty cool
-# options = reduce(lambda x, y: x + '\n' + y, sys.argv[1:])
-
-result = os.system(scons + ' configure ' + options)
-if os.WEXITSTATUS(result) != 0:
- print RED + 'Unable to configure scons' + NORMAL
- sys.exit(3)
-
-# Recursive generates a makefile for a directory. If topDir is True, the
-# Makefile is slightly different.
-def generate_makefile(dir, topDir = False):
-
- file = name + "/Makefile"
-
- # Write out Makefile.
- try:
- makefile = open(file, 'w')
- except IOError:
- print RED + "Unable to open " + file + NORMAL
- sys.exit(4)
-
- text = '''
-## Makefile automatically generated by configure
-
-SCONS=$scons
-
-# $scons : compile
-# $scons -c : clean
-# $scons install : install
-# $scons -c install : uninstall and clean
-
-# Default target: use scons to build the program
-all:
- @$(SCONS) -Q
-
-# Debugging possibilies:
-# $scons --debug=explain, $scons --debug=tree
-
-# To optimize the runtime:
-# $scons --max-drift=1 --implicit-deps-unchanged
-debug:
- @$(SCONS) -Q --debug=tree
-
-clean:
- @$(SCONS) -c
-
-install:
- @$(SCONS) install
-
-uninstall:
- @$(SCONS) uninstall
-
-# This target creates a tarball of the project (in theory)
-dist:
- @$(SCONS) dist
-'''
-
- if topDir:
- text = text.replace('$scons', scons)
- else:
- text = text.replace('$scons', scons + ' -u')
-
- try:
- print "Generating " + GREEN + file + NORMAL
- makefile.write(text)
- makefile.close()
- except IOError:
- print RED + "Unable to write to the Makefile!" + NORMAL
- sys.exit(5)
-
-# Recursively generate Makefiles for convienience.
-for name, dirs, files in os.walk('.'):
- # Don't try to build hidden directories.
- remove = filter(lambda x: x[0] == '.', dirs)
- for i in remove:
- dirs.remove(i)
-
- if 'SConstruct' in files:
- # We're in the very top directory.
- generate_makefile(name, topDir = True)
-
- for dir in ['cache', 'bksys']:
- if dir in dirs:
- dirs.remove(dir)
- elif 'SConscript' in files:
- generate_makefile(name)
-
-# The Makefile has been written, we're pretty much done.
-message = '''
-The Makefile(s) have been generated. Type:
- `make' to build %s, and
- `make install' to install %s.
-'''.replace('%s', PROGRAM_NAME)
-
-print GREEN + message + NORMAL
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
deleted file mode 100644
index a8b8de4..0000000
--- a/doc/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-tde_auto_add_subdirectories()
diff --git a/doc/en/CMakeLists.txt b/doc/en/CMakeLists.txt
deleted file mode 100644
index 68a3d33..0000000
--- a/doc/en/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-#################################################
-#
-# (C) 2011 Timothy Pearson
-# kb9vqf (AT) pearsoncomputing.net
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-tde_create_handbook( LANG en DESTINATION abakus )
diff --git a/doc/en/SConscript b/doc/en/SConscript
deleted file mode 100644
index ef81fcd..0000000
--- a/doc/en/SConscript
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/python
-
-Import('env')
-
-import glob
-
-sources = glob.glob("*.png")
-
-destination = 'abakus'
-for lang in ['en']:
- for pic in sources:
- env.KDEinstall('KDEDOC', "%s/%s" % (lang, destination), pic)
diff --git a/doc/man/abakus.1 b/doc/man/abakus.1
new file mode 100644
index 0000000..b6ea749
--- /dev/null
+++ b/doc/man/abakus.1
@@ -0,0 +1,143 @@
+.\" This file was generated by kdemangen.pl
+.TH ABAKUS 1 "Oct 2005" "Trinity Desktop Environment" "A simple keyboard-driven calculator"
+.SH NAME
+abakus
+\- A simple keyboard-driven calculator
+.SH SYNOPSIS
+abakus [TQt\-options] [TDE\-options]
+.SH DESCRIPTION
+A simple keyboard-driven calculator
+.SH OPTIONS
+.SS Generic options:
+.TP
+.B \-\-help
+Show help about options
+.TP
+.B \-\-help\-tqt
+Show TQt specific options
+.TP
+.B \-\-help\-tde
+Show TDE specific options
+.TP
+.B \-\-help\-all
+Show all options
+.TP
+.B \-\-author
+Show author information
+.TP
+.B \-v, \-\-version
+Show version information
+.TP
+.B \-\-license
+Show license information
+.TP
+.B \-\-
+End of options
+.SS
+.SS TDE options:
+.TP
+.B \-\-caption <caption>
+Use 'caption' as name in the titlebar
+.TP
+.B \-\-icon <icon>
+Use 'icon' as the application icon
+.TP
+.B \-\-miniicon <icon>
+Use 'icon' as the icon in the titlebar
+.TP
+.B \-\-config <filename>
+Use alternative configuration file
+.TP
+.B \-\-dcopserver <server>
+Use the DCOP Server specified by 'server'
+.TP
+.B \-\-nocrashhandler
+Disable crash handler, to get core dumps
+.TP
+.B \-\-waitforwm
+Waits for a WM_NET compatible windowmanager
+.TP
+.B \-\-style <style>
+sets the application GUI style
+.TP
+.B \-\-geometry <geometry>
+sets the client geometry of the main widget - see man X for the argument format
+.SS TQt options:
+.TP
+.B \-\-display <displayname>
+Use the X-server display 'displayname'
+.TP
+.B \-\-session <sessionId>
+Restore the application for the given 'sessionId'
+.TP
+.B \-\-cmap
+Causes the application to install a private color
+map on an 8-bit display
+.TP
+.B \-\-ncols <count>
+Limits the number of colors allocated in the color
+cube on an 8-bit display, if the application is
+using the QApplication::ManyColor color
+specification
+.TP
+.B \-\-nograb
+tells TQt to never grab the mouse or the keyboard
+.TP
+.B \-\-dograb
+running under a debugger can cause an implicit
+-nograb, use -dograb to override
+.TP
+.B \-\-sync
+switches to synchronous mode for debugging
+.TP
+.B \-\-fn, \-\-font <fontname>
+defines the application font
+.TP
+.B \-\-bg, \-\-background <color>
+sets the default background color and an
+application palette (light and dark shades are
+calculated)
+.TP
+.B \-\-fg, \-\-foreground <color>
+sets the default foreground color
+.TP
+.B \-\-btn, \-\-button <color>
+sets the default button color
+.TP
+.B \-\-name <name>
+sets the application name
+.TP
+.B \-\-title <title>
+sets the application title (caption)
+.TP
+.B \-\-visual TrueColor
+forces the application to use a TrueColor visual on
+an 8-bit display
+.TP
+.B \-\-inputstyle <inputstyle>
+sets XIM (X Input Method) input style. Possible
+values are onthespot, overthespot, offthespot and
+root
+.TP
+.B \-\-im <XIM server>
+set XIM server
+.TP
+.B \-\-noxim
+disable XIM
+.TP
+.B \-\-reverse
+mirrors the whole layout of widgets
+.SS
+
+.SH SEE ALSO
+Full user documentation is available through the TDE Help Center. You can also enter the URL
+.BR help:/abakus/
+directly into konqueror or you can run
+.BR "`khelpcenter help:/abakus/'"
+from the command-line.
+.br
+.SH AUTHORS
+.nf
+Michael Pyne <michael.pyne@kdemail.net>
+.br
+
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
deleted file mode 100644
index 23c62d8..0000000
--- a/po/CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-#################################################
-#
-# (C) 2011 Timothy Pearson
-# kb9vqf (AT) pearsoncomputing.net
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-file( GLOB_RECURSE po_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} abakus.po )
-
-foreach( _po ${po_files} )
- get_filename_component( _lang ${_po} PATH )
- tde_create_translation( FILES ${_po} LANG ${_lang} )
-endforeach( )
diff --git a/src/CMakeL10n.txt b/src/CMakeL10n.txt
new file mode 100644
index 0000000..9f473ec
--- /dev/null
+++ b/src/CMakeL10n.txt
@@ -0,0 +1,8 @@
+##### create translation templates ##############
+
+tde_l10n_create_template( "messages/abakus" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/abakus.desktop/"
+ SOURCES abakus.desktop
+)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a7365d2..a29fed0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -23,22 +23,25 @@ link_directories(
include( ${CMAKE_SOURCE_DIR}/BisonMacros.cmake )
+
##### other data ################################
-install( FILES abakus.desktop DESTINATION ${APPS_INSTALL_DIR}/Utilities )
+tde_create_translated_desktop( abakus.desktop )
+
install( FILES abakusui.rc DESTINATION ${DATA_INSTALL_DIR}/abakus )
+
##### abakus (executable) #######################
GENERATE_BISON_FLEX_SOURCES(${CMAKE_SOURCE_DIR}/src/parser.yy "" ${CMAKE_SOURCE_DIR}/src/lexer.ll "")
if( HAVE_MPFR )
set( MPFR_SOURCES "" )
- set( MPFR_LIBRARIES "mpfr gmp" )
-else( HAVE_MPFR )
+ set( MPFR_LIBRARIES mpfr gmp )
+else( )
set( MPFR_SOURCES hmath.cpp number.c )
set( MPFR_LIBRARIES "" )
-endif( HAVE_MPFR )
+endif( )
tde_add_executable( abakus AUTOMOC
SOURCES abakus.cpp abakuslistview.cpp
diff --git a/src/abakus.cpp b/src/abakus.cpp
index 80e89af..56f4baa 100644
--- a/src/abakus.cpp
+++ b/src/abakus.cpp
@@ -66,7 +66,7 @@ int main(int argc, char **argv)
MainWindow *win = new MainWindow;
app.setMainWidget(win);
- app.connect(&app, TQT_SIGNAL(lastWindowClosed()), TQT_SLOT(quit()));
+ app.connect(&app, TQ_SIGNAL(lastWindowClosed()), TQ_SLOT(quit()));
win->show();
win->resize(500, 300);
diff --git a/src/abakus.desktop b/src/abakus.desktop
index 769e072..db90275 100644
--- a/src/abakus.desktop
+++ b/src/abakus.desktop
@@ -4,35 +4,9 @@ Type=Application
X-TDE-StartupNotify=true
Exec=abakus -caption "%c" %i %m
Icon=abakus
-Comment=
-Comment[xx]=xxxx
+Comment=A simple keyboard-driven calculator
Terminal=0
Name=Abakus
-Name[tr]=Abaküs
-Name[xx]=xxAbakusxx
GenericName=Calculator
-GenericName[bg]=Калкулатор
-GenericName[br]=Jederez
-GenericName[cs]=Kalkulátor
-GenericName[cy]=Cyfrifiannell
-GenericName[da]=Lommeregner
-GenericName[el]=Υπολογιστής Τσέπης
-GenericName[es]=Calculadora
-GenericName[et]=Kalkulaator
-GenericName[fr]=Calculateur
-GenericName[ga]=Áireamhán
-GenericName[gl]=Calculadora
-GenericName[it]=Calcolatrice
-GenericName[ka]=კალკულატორი
-GenericName[lt]=Skaičiuotuvas
-GenericName[nl]=Rekenmachine
-GenericName[pt]=Calculadora
-GenericName[rw]=Mubazi
-GenericName[sk]=Kalkulačka
-GenericName[sr]=Рачунаљка
-GenericName[sr@Latn]=Računaljka
-GenericName[sv]=Miniräknare
-GenericName[tr]=Hesap Makinesi
-GenericName[xx]=xxCalculatorxx
Categories=Qt;TDE;Utility;X-TDE-Utilities-Desktop;
X-DocPath=abakus/index.html
diff --git a/src/abakuslistview.cpp b/src/abakuslistview.cpp
index f97c096..a309e2b 100644
--- a/src/abakuslistview.cpp
+++ b/src/abakuslistview.cpp
@@ -36,8 +36,8 @@ ListView::ListView(TQWidget *parent, const char *name) :
setResizeMode(LastColumn);
setDragEnabled(true);
- connect(this, TQT_SIGNAL(contextMenuRequested(TQListViewItem *, const TQPoint &, int)),
- TQT_SLOT(rightClicked(TQListViewItem *, const TQPoint &)));
+ connect(this, TQ_SIGNAL(contextMenuRequested(TQListViewItem *, const TQPoint &, int)),
+ TQ_SLOT(rightClicked(TQListViewItem *, const TQPoint &)));
}
TQDragObject *ListView::dragObject()
@@ -70,8 +70,8 @@ void ListView::enablePopupHandler(bool enable)
m_menu = new TDEPopupMenu(this);
- m_removeSingleId = m_menu->insertItem(removeItemString(), this, TQT_SLOT(removeSelected()));
- m_removeAllId = m_menu->insertItem("Placeholder", this, TQT_SLOT(removeAllItems()));
+ m_removeSingleId = m_menu->insertItem(removeItemString(), this, TQ_SLOT(removeSelected()));
+ m_removeAllId = m_menu->insertItem("Placeholder", this, TQ_SLOT(removeAllItems()));
}
else {
delete m_menu;
diff --git a/src/abakuslistview.h b/src/abakuslistview.h
index 708ff31..1abab46 100644
--- a/src/abakuslistview.h
+++ b/src/abakuslistview.h
@@ -27,7 +27,7 @@ class TDEPopupMenu;
class ListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -110,7 +110,7 @@ class ValueListViewItem : public TDEListViewItem
*/
class VariableListView : public ListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -131,7 +131,7 @@ class VariableListView : public ListView
*/
class FunctionListView : public ListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/src/dragsupport.h b/src/dragsupport.h
index ff0d7a6..4a7fcf2 100644
--- a/src/dragsupport.h
+++ b/src/dragsupport.h
@@ -29,5 +29,3 @@ namespace DragSupport {
}
#endif
-
-// vim: set et ts=8 sw=4:
diff --git a/src/editor.cpp b/src/editor.cpp
index 82fcbea..b088fcd 100644
--- a/src/editor.cpp
+++ b/src/editor.cpp
@@ -47,7 +47,6 @@
#include <algorithm>
-// XXX: QT 4: Replace this with qBinaryFind().
using std::binary_search;
class CalcResultLabel : public TQLabel
@@ -233,16 +232,16 @@ Editor::Editor( TQWidget* parent, const char* name ):
setTabChangesFocus( true );
setLinkUnderline( false );
- connect( d->completion, TQT_SIGNAL( selectedCompletion( const TQString& ) ),
- TQT_SLOT( autoComplete( const TQString& ) ) );
- connect( this, TQT_SIGNAL( textChanged() ), TQT_SLOT( checkAutoComplete() ) );
- connect( d->completionTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( triggerAutoComplete() ) );
+ connect( d->completion, TQ_SIGNAL( selectedCompletion( const TQString& ) ),
+ TQ_SLOT( autoComplete( const TQString& ) ) );
+ connect( this, TQ_SIGNAL( textChanged() ), TQ_SLOT( checkAutoComplete() ) );
+ connect( d->completionTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( triggerAutoComplete() ) );
- connect( this, TQT_SIGNAL( textChanged() ), TQT_SLOT( checkMatching() ) );
- connect( d->matchingTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( doMatchingLeft() ) );
- connect( d->matchingTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( doMatchingRight() ) );
- connect( this, TQT_SIGNAL( textChanged() ), TQT_SLOT( checkAutoCalc() ) );
- connect( d->autoCalcTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( autoCalc() ) );
+ connect( this, TQ_SIGNAL( textChanged() ), TQ_SLOT( checkMatching() ) );
+ connect( d->matchingTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( doMatchingLeft() ) );
+ connect( d->matchingTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( doMatchingRight() ) );
+ connect( this, TQ_SIGNAL( textChanged() ), TQ_SLOT( checkAutoCalc() ) );
+ connect( d->autoCalcTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( autoCalc() ) );
d->autoCalcLabel = new CalcResultLabel( 0, "autocalc", WStyle_StaysOnTop |
WStyle_Customize | WStyle_NoBorder | WStyle_Tool | WX11BypassWM );
d->autoCalcLabel->setFrameStyle( TQFrame::Plain | TQFrame::Box );
@@ -268,7 +267,7 @@ TQSize Editor::sizeHint() const
int h = TQMAX(fm.lineSpacing(), 14);
int w = fm.width( 'x' ) * 20;
int m = frameWidth() * 2;
- return( style().tqsizeFromContents(TQStyle::CT_LineEdit, this,
+ return( style().sizeFromContents(TQStyle::CT_LineEdit, this,
TQSize( w + m, h + m + 4 ).
expandedTo(TQApplication::globalStrut())));
}
@@ -639,7 +638,7 @@ void Editor::autoCalc()
d->autoCalcLabel->raise();
// do not show it forever
- TQTimer::singleShot( 5000, d->autoCalcLabel, TQT_SLOT( hide()) );
+ TQTimer::singleShot( 5000, d->autoCalcLabel, TQ_SLOT( hide()) );
}
else
{
@@ -778,7 +777,7 @@ EditorCompletion::~EditorCompletion()
bool EditorCompletion::eventFilter( TQObject *obj, TQEvent *ev )
{
- if ( TQT_BASE_OBJECT(obj) == TQT_BASE_OBJECT(d->completionPopup) || TQT_BASE_OBJECT(obj) == TQT_BASE_OBJECT(d->completionListBox) )
+ if ( obj == d->completionPopup || obj == d->completionListBox )
{
if ( ev->type() == TQEvent::KeyPress )
@@ -850,7 +849,7 @@ void EditorCompletion::showCompletion( const TQStringList &choices )
if(!shown)
{
d->completionPopup->show();
- TQTimer::singleShot ( 0, this, TQT_SLOT(moveCompletionPopup()) );
+ TQTimer::singleShot ( 0, this, TQ_SLOT(moveCompletionPopup()) );
}
else
{
@@ -893,5 +892,3 @@ void EditorCompletion::moveCompletionPopup()
}
#include "editor.moc"
-
-// vim: set et sw=2 ts=8:
diff --git a/src/editor.h b/src/editor.h
index acef6fe..9fb6836 100644
--- a/src/editor.h
+++ b/src/editor.h
@@ -36,7 +36,7 @@ class Evaluator;
class Editor : public TQTextEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -104,7 +104,7 @@ class Editor : public TQTextEdit
class EditorCompletion : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -129,5 +129,3 @@ class EditorCompletion : public TQObject
};
#endif // ABAKUS_EDITOR_H
-
-// vim: set et ts=8 sw=4:
diff --git a/src/evaluator.cpp b/src/evaluator.cpp
index 92e64d4..e43d959 100644
--- a/src/evaluator.cpp
+++ b/src/evaluator.cpp
@@ -257,5 +257,3 @@ TQString Evaluator::autoFix( const TQString& expr )
return result;
}
-
-// vim: set et ts=8 sw=4:
diff --git a/src/evaluator.h b/src/evaluator.h
index 2377f27..1a60e40 100644
--- a/src/evaluator.h
+++ b/src/evaluator.h
@@ -127,5 +127,3 @@ private:
#endif // EVALUATOR
-
-// vim: set et ts=8 sw=4:
diff --git a/src/function.h b/src/function.h
index c765e8f..3160122 100644
--- a/src/function.h
+++ b/src/function.h
@@ -63,7 +63,7 @@ Abakus::TrigMode trigMode();
class FunctionManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
typedef TQDict<Function> functionDict;
diff --git a/src/hmath.cpp b/src/hmath.cpp
index 893d7b3..26181a2 100644
--- a/src/hmath.cpp
+++ b/src/hmath.cpp
@@ -1793,5 +1793,3 @@ int test_hmath()
};
#endif
-
-// vim: set et sw=2 ts=8:
diff --git a/src/hmath.h b/src/hmath.h
index a143f29..19a3f81 100644
--- a/src/hmath.h
+++ b/src/hmath.h
@@ -355,5 +355,3 @@ public:
std::ostream& operator<<( std::ostream& s, HNumber );
#endif // HMATH_H
-
-// vim: set et sw=2 ts=8:
diff --git a/src/lexer.ll b/src/lexer.ll
index 5e7d049..c73f8db 100644
--- a/src/lexer.ll
+++ b/src/lexer.ll
@@ -140,7 +140,7 @@ public:
YY_BUFFER_STATE buffer;
int lastToken, thisToken;
int lastPos, thisPos;
- QString lastTokenData, thisTokenData;
+ TQString lastTokenData, thisTokenData;
};
/* Declared in function.h, implemented here in lexer.l since this is where
@@ -159,7 +159,7 @@ Lexer::Lexer(const TQString &expr) :
m_private->lastPos = -1;
m_private->thisToken = yylex();
- m_private->thisTokenData = QString(yytext);
+ m_private->thisTokenData = TQString(yytext);
if(yyCurTokenPos != 0)
{
@@ -187,7 +187,7 @@ int Lexer::nextType()
m_private->lastToken = m_private->thisToken;
m_private->thisToken = yylex();
- m_private->thisTokenData = QString(yytext);
+ m_private->thisTokenData = TQString(yytext);
m_private->thisPos = yyCurTokenPos;
return m_private->lastToken;
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index b4609e3..67ef101 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -82,12 +82,12 @@ MainWindow::MainWindow() : TDEMainWindow(0, "abakus-mainwindow"), m_popup(0), m_
buttonGroup->insert(m_degrees);
buttonGroupLayout->addWidget(m_degrees);
slotDegrees();
- connect(m_degrees, TQT_SIGNAL(clicked()), TQT_SLOT(slotDegrees()));
+ connect(m_degrees, TQ_SIGNAL(clicked()), TQ_SLOT(slotDegrees()));
m_radians = new TQRadioButton(i18n("&Radians"), buttonGroupBox);
buttonGroup->insert(m_radians);
buttonGroupLayout->addWidget(m_radians);
- connect(m_radians, TQT_SIGNAL(clicked()), TQT_SLOT(slotRadians()));
+ connect(m_radians, TQ_SIGNAL(clicked()), TQ_SLOT(slotRadians()));
m_history = new TQVBox(box);
layout->addWidget(m_history);
@@ -97,10 +97,10 @@ MainWindow::MainWindow() : TDEMainWindow(0, "abakus-mainwindow"), m_popup(0), m_
m_result = new ResultListView(m_history);
m_result->setSelectionMode(TQListView::NoSelection);
m_result->setHScrollBarMode(ResultListView::AlwaysOff);
- connect(m_result, TQT_SIGNAL(signalEntrySelected(const TQString &)),
- TQT_SLOT(slotEntrySelected(const TQString &)));
- connect(m_result, TQT_SIGNAL(signalResultSelected(const TQString &)),
- TQT_SLOT(slotResultSelected(const TQString &)));
+ connect(m_result, TQ_SIGNAL(signalEntrySelected(const TQString &)),
+ TQ_SLOT(slotEntrySelected(const TQString &)));
+ connect(m_result, TQ_SIGNAL(signalResultSelected(const TQString &)),
+ TQ_SLOT(slotResultSelected(const TQString &)));
m_history->setStretchFactor(m_result, 1);
layout->setStretchFactor(m_history, 1);
@@ -115,12 +115,12 @@ MainWindow::MainWindow() : TDEMainWindow(0, "abakus-mainwindow"), m_popup(0), m_
KPushButton *evalButton = new KPushButton(i18n("&Evaluate"), editBox);
- connect(evalButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotEvaluate()));
+ connect(evalButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotEvaluate()));
- connect(m_edit, TQT_SIGNAL(returnPressed()), TQT_SLOT(slotReturnPressed()));
- connect(m_edit, TQT_SIGNAL(textChanged()), TQT_SLOT(slotTextChanged()));
+ connect(m_edit, TQ_SIGNAL(returnPressed()), TQ_SLOT(slotReturnPressed()));
+ connect(m_edit, TQ_SIGNAL(textChanged()), TQ_SLOT(slotTextChanged()));
- m_listSplitter = new TQSplitter(Qt::Vertical, m_mainSplitter);
+ m_listSplitter = new TQSplitter(TQt::Vertical, m_mainSplitter);
m_fnList = new FunctionListView(m_listSplitter);
m_fnList->addColumn("Functions");
m_fnList->addColumn("Value");
@@ -129,17 +129,17 @@ MainWindow::MainWindow() : TDEMainWindow(0, "abakus-mainwindow"), m_popup(0), m_
m_varList->addColumn("Variables");
m_varList->addColumn("Value");
- connect(FunctionManager::instance(), TQT_SIGNAL(signalFunctionAdded(const TQString &)),
- this, TQT_SLOT(slotNewFunction(const TQString &)));
- connect(FunctionManager::instance(), TQT_SIGNAL(signalFunctionRemoved(const TQString &)),
- this, TQT_SLOT(slotRemoveFunction(const TQString &)));
+ connect(FunctionManager::instance(), TQ_SIGNAL(signalFunctionAdded(const TQString &)),
+ this, TQ_SLOT(slotNewFunction(const TQString &)));
+ connect(FunctionManager::instance(), TQ_SIGNAL(signalFunctionRemoved(const TQString &)),
+ this, TQ_SLOT(slotRemoveFunction(const TQString &)));
- connect(ValueManager::instance(), TQT_SIGNAL(signalValueAdded(const TQString &, Abakus::number_t)),
- this, TQT_SLOT(slotNewValue(const TQString &, Abakus::number_t)));
- connect(ValueManager::instance(), TQT_SIGNAL(signalValueChanged(const TQString &, Abakus::number_t)),
- this, TQT_SLOT(slotChangeValue(const TQString &, Abakus::number_t)));
- connect(ValueManager::instance(), TQT_SIGNAL(signalValueRemoved(const TQString &)),
- this, TQT_SLOT(slotRemoveValue(const TQString &)));
+ connect(ValueManager::instance(), TQ_SIGNAL(signalValueAdded(const TQString &, Abakus::number_t)),
+ this, TQ_SLOT(slotNewValue(const TQString &, Abakus::number_t)));
+ connect(ValueManager::instance(), TQ_SIGNAL(signalValueChanged(const TQString &, Abakus::number_t)),
+ this, TQ_SLOT(slotChangeValue(const TQString &, Abakus::number_t)));
+ connect(ValueManager::instance(), TQ_SIGNAL(signalValueRemoved(const TQString &)),
+ this, TQ_SLOT(slotRemoveValue(const TQString &)));
setupLayout();
@@ -228,7 +228,7 @@ void MainWindow::slotReturnPressed()
// Skip creating list view items if in compact mode.
if(!m_history->isShown()) {
m_edit->setText(resultVal);
- TQTimer::singleShot(0, m_edit, TQT_SLOT(selectAll()));
+ TQTimer::singleShot(0, m_edit, TQ_SLOT(selectAll()));
return;
}
@@ -276,7 +276,7 @@ void MainWindow::slotReturnPressed()
// Skip creating list view items if in compact mode.
if(compact) {
m_edit->setText(resultVal);
- TQTimer::singleShot(0, m_edit, TQT_SLOT(selectAll()));
+ TQTimer::singleShot(0, m_edit, TQ_SLOT(selectAll()));
return;
}
@@ -287,7 +287,7 @@ void MainWindow::slotReturnPressed()
m_result->setCurrentItem(item);
m_result->ensureItemVisible(item);
- TQTimer::singleShot(0, m_edit, TQT_SLOT(selectAll()));
+ TQTimer::singleShot(0, m_edit, TQ_SLOT(selectAll()));
}
void MainWindow::slotTextChanged()
@@ -411,7 +411,7 @@ void MainWindow::loadConfig()
action<TDEToggleAction>("toggleCompactMode")->setChecked(compactMode);
if(compactMode)
- TQTimer::singleShot(0, TQT_TQOBJECT(this), TQT_SLOT(slotToggleCompactMode()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotToggleCompactMode()));
}
{
@@ -503,60 +503,60 @@ void MainWindow::setupLayout()
{
TDEActionCollection *ac = actionCollection();
- KStdAction::quit(TQT_TQOBJECT(kapp), TQT_SLOT(quit()), ac);
- KStdAction::showMenubar(TQT_TQOBJECT(this), TQT_SLOT(slotToggleMenuBar()), ac);
+ KStdAction::quit(kapp, TQ_SLOT(quit()), ac);
+ KStdAction::showMenubar(this, TQ_SLOT(slotToggleMenuBar()), ac);
- TDEToggleAction *ta = new TDEToggleAction(i18n("&Degrees"), SHIFT + ALT + Key_D, TQT_TQOBJECT(this), TQT_SLOT(slotDegrees()), ac, "setDegreesMode");
+ TDEToggleAction *ta = new TDEToggleAction(i18n("&Degrees"), SHIFT + ALT + Key_D, this, TQ_SLOT(slotDegrees()), ac, "setDegreesMode");
ta->setExclusiveGroup("TrigMode");
ta->setChecked(trigMode() == Abakus::Degrees);
- ta = new TDEToggleAction(i18n("&Radians"), SHIFT + ALT + Key_R, TQT_TQOBJECT(this), TQT_SLOT(slotRadians()), ac, "setRadiansMode");
+ ta = new TDEToggleAction(i18n("&Radians"), SHIFT + ALT + Key_R, this, TQ_SLOT(slotRadians()), ac, "setRadiansMode");
ta->setExclusiveGroup("TrigMode");
ta->setChecked(trigMode() == Abakus::Radians);
- ta = new TDEToggleAction(i18n("Show &History List"), SHIFT + ALT + Key_H, TQT_TQOBJECT(this), TQT_SLOT(slotToggleHistoryList()), ac, "toggleHistoryList");
+ ta = new TDEToggleAction(i18n("Show &History List"), SHIFT + ALT + Key_H, this, TQ_SLOT(slotToggleHistoryList()), ac, "toggleHistoryList");
ta->setChecked(true);
- ta = new TDEToggleAction(i18n("Show &Variables"), SHIFT + ALT + Key_V, TQT_TQOBJECT(this), TQT_SLOT(slotToggleVariableList()), ac, "toggleVariableList");
+ ta = new TDEToggleAction(i18n("Show &Variables"), SHIFT + ALT + Key_V, this, TQ_SLOT(slotToggleVariableList()), ac, "toggleVariableList");
ta->setChecked(true);
- ta = new TDEToggleAction(i18n("Show &Functions"), SHIFT + ALT + Key_F, TQT_TQOBJECT(this), TQT_SLOT(slotToggleFunctionList()), ac, "toggleFunctionList");
+ ta = new TDEToggleAction(i18n("Show &Functions"), SHIFT + ALT + Key_F, this, TQ_SLOT(slotToggleFunctionList()), ac, "toggleFunctionList");
ta->setChecked(true);
- ta = new TDEToggleAction(i18n("Activate &Compact Mode"), SHIFT + ALT + Key_C, TQT_TQOBJECT(this), TQT_SLOT(slotToggleCompactMode()), ac, "toggleCompactMode");
+ ta = new TDEToggleAction(i18n("Activate &Compact Mode"), SHIFT + ALT + Key_C, this, TQ_SLOT(slotToggleCompactMode()), ac, "toggleCompactMode");
ta->setChecked(false);
- ta = new TDEToggleAction(i18n("Use R&PN Mode"), SHIFT + ALT + Key_P, TQT_TQOBJECT(this), TQT_SLOT(slotToggleExpressionMode()), ac, "toggleExpressionMode");
+ ta = new TDEToggleAction(i18n("Use R&PN Mode"), SHIFT + ALT + Key_P, this, TQ_SLOT(slotToggleExpressionMode()), ac, "toggleExpressionMode");
ta->setChecked(false);
// Precision actions.
- ta = new TDEToggleAction(i18n("&Automatic Precision"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotPrecisionAuto()), ac, "precisionAuto");
+ ta = new TDEToggleAction(i18n("&Automatic Precision"), 0, this, TQ_SLOT(slotPrecisionAuto()), ac, "precisionAuto");
ta->setExclusiveGroup("Precision");
ta->setChecked(true);
- ta = new TDEToggleAction(i18n("&3 Decimal Digits"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotPrecision3()), ac, "precision3");
+ ta = new TDEToggleAction(i18n("&3 Decimal Digits"), 0, this, TQ_SLOT(slotPrecision3()), ac, "precision3");
ta->setExclusiveGroup("Precision");
ta->setChecked(false);
- ta = new TDEToggleAction(i18n("&8 Decimal Digits"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotPrecision8()), ac, "precision8");
+ ta = new TDEToggleAction(i18n("&8 Decimal Digits"), 0, this, TQ_SLOT(slotPrecision8()), ac, "precision8");
ta->setExclusiveGroup("Precision");
ta->setChecked(false);
- ta = new TDEToggleAction(i18n("&15 Decimal Digits"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotPrecision15()), ac, "precision15");
+ ta = new TDEToggleAction(i18n("&15 Decimal Digits"), 0, this, TQ_SLOT(slotPrecision15()), ac, "precision15");
ta->setExclusiveGroup("Precision");
ta->setChecked(false);
- ta = new TDEToggleAction(i18n("&50 Decimal Digits"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotPrecision50()), ac, "precision50");
+ ta = new TDEToggleAction(i18n("&50 Decimal Digits"), 0, this, TQ_SLOT(slotPrecision50()), ac, "precision50");
ta->setExclusiveGroup("Precision");
ta->setChecked(false);
- ta = new TDEToggleAction(i18n("C&ustom Precision..."), 0, TQT_TQOBJECT(this), TQT_SLOT(slotPrecisionCustom()), ac, "precisionCustom");
+ ta = new TDEToggleAction(i18n("C&ustom Precision..."), 0, this, TQ_SLOT(slotPrecisionCustom()), ac, "precisionCustom");
ta->setExclusiveGroup("Precision");
ta->setChecked(false);
- new TDEAction(i18n("Clear &History"), "edit-clear", SHIFT + ALT + Key_L, TQT_TQOBJECT(m_result), TQT_SLOT(clear()), ac, "clearHistory");
+ new TDEAction(i18n("Clear &History"), "edit-clear", SHIFT + ALT + Key_L, m_result, TQ_SLOT(clear()), ac, "clearHistory");
- new TDEAction(i18n("Select Editor"), "goto", Key_F6, TQT_TQOBJECT(m_edit), TQT_SLOT(setFocus()), ac, "select_edit");
+ new TDEAction(i18n("Select Editor"), "goto", Key_F6, m_edit, TQ_SLOT(setFocus()), ac, "select_edit");
}
void MainWindow::populateListViews()
@@ -682,7 +682,7 @@ void MainWindow::slotToggleCompactMode()
m_oldSize = size();
m_newSize = TQSize(0, 0);
- TQTimer::singleShot(0, TQT_TQOBJECT(this), TQT_SLOT(slotUpdateSize()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotUpdateSize()));
}
else {
m_fnList->setShown(m_wasFnShown);
@@ -694,7 +694,7 @@ void MainWindow::slotToggleCompactMode()
action<TDEToggleAction>("toggleHistoryList")->setChecked(m_wasHistoryShown);
m_newSize = m_oldSize;
- TQTimer::singleShot(0, TQT_TQOBJECT(this), TQT_SLOT(slotUpdateSize()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotUpdateSize()));
}
}
@@ -821,5 +821,3 @@ void MainWindow::selectCorrectPrecisionAction()
}
#include "mainwindow.moc"
-
-// vim: set et ts=8 sw=4:
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 9b1e8a5..b88da98 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -45,7 +45,7 @@ class AbakusIface;
// Main window class, handles events and layout and stuff
class MainWindow : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
MainWindow();
diff --git a/src/node.cpp b/src/node.cpp
index 99b544d..07d2f3e 100644
--- a/src/node.cpp
+++ b/src/node.cpp
@@ -415,5 +415,3 @@ TQString NumericValue::infixString() const
{
return value().toString();
}
-
-// vim: set et ts=8 sw=4:
diff --git a/src/node.h b/src/node.h
index f5820e6..8ce7975 100644
--- a/src/node.h
+++ b/src/node.h
@@ -215,5 +215,3 @@ class NumericValue : public Node
};
#endif
-
-// vim: set et sw=4 ts=8:
diff --git a/src/number.c b/src/number.c
index 72370fb..33601bb 100644
--- a/src/number.c
+++ b/src/number.c
@@ -1805,5 +1805,3 @@ pv (name, num, len)
for (i=0; i<len; i++) printf ("%c",BCD_CHAR(num[i]));
printf ("\n");
}
-
-// vim: set et sw=2 ts=8:
diff --git a/src/number.h b/src/number.h
index c7d07ac..cd60b03 100644
--- a/src/number.h
+++ b/src/number.h
@@ -165,5 +165,3 @@ _PROTOTYPE(void bc_out_num, (bc_num num, int o_base, void (* out_char)(int),
#endif
#endif
-
-// vim: set et sw=2 ts=8:
diff --git a/src/numerictypes.cpp b/src/numerictypes.cpp
index d1fe591..d7bfe82 100644
--- a/src/numerictypes.cpp
+++ b/src/numerictypes.cpp
@@ -201,5 +201,3 @@ const Abakus::number_t::value_type Abakus::number_t::PI = HMath::pi();
const Abakus::number_t::value_type Abakus::number_t::E = HMath::exp(1);
#endif /* HAVE_MPFR */
-
-// vim: set et ts=8 sw=4:
diff --git a/src/numerictypes.h b/src/numerictypes.h
index 7277aea..f0721f9 100644
--- a/src/numerictypes.h
+++ b/src/numerictypes.h
@@ -689,5 +689,3 @@ private:
}; // namespace Abakus
#endif /* ABAKUS_NUMERICTYPES_H */
-
-// vim: set et ts=8 sw=4:
diff --git a/src/parser.yy b/src/parser.yy
index 9ab2c7d..450baca 100644
--- a/src/parser.yy
+++ b/src/parser.yy
@@ -316,7 +316,7 @@ VALUE: NUMBER { $$ = $1; }
NUMBER: NUM {
TDELocale *locale = TDEGlobal::locale();
- QChar decimal = locale->decimalSymbol()[0];
+ TQChar decimal = locale->decimalSymbol()[0];
// Replace current decimal separator with US Decimal separator to be
// evil.
diff --git a/src/result.h b/src/result.h
index 49936f5..600338a 100644
--- a/src/result.h
+++ b/src/result.h
@@ -73,5 +73,3 @@ private:
};
#endif /* ABAKUS_RESULT_H */
-
-// vim: set et ts=8 sw=4:
diff --git a/src/resultlistview.cpp b/src/resultlistview.cpp
index 86db28f..1d78b10 100644
--- a/src/resultlistview.cpp
+++ b/src/resultlistview.cpp
@@ -37,8 +37,8 @@ using namespace ResultList;
ResultListView::ResultListView(TQWidget *parent, const char *name) :
TDEListView(parent, name), m_itemRightClicked(0)
{
- connect(this, TQT_SIGNAL(doubleClicked(TQListViewItem *, const TQPoint &, int)),
- TQT_SLOT(slotDoubleClicked(TQListViewItem *, const TQPoint &, int)));
+ connect(this, TQ_SIGNAL(doubleClicked(TQListViewItem *, const TQPoint &, int)),
+ TQ_SLOT(slotDoubleClicked(TQListViewItem *, const TQPoint &, int)));
addColumn(i18n("Expression"));
addColumn(i18n("Result"));
@@ -115,9 +115,9 @@ TDEPopupMenu *ResultListView::constructPopupMenu(const ResultListViewText *item)
{
TDEPopupMenu *menu = new TDEPopupMenu(this, "list view context menu");
- menu->insertItem(i18n("Clear &History"), this, TQT_SLOT(clear()), ALT+Key_R);
+ menu->insertItem(i18n("Clear &History"), this, TQ_SLOT(clear()), ALT+Key_R);
- int id = menu->insertItem(i18n("Copy Result to Clipboard"), this, TQT_SLOT(slotCopyResult()));
+ int id = menu->insertItem(i18n("Copy Result to Clipboard"), this, TQ_SLOT(slotCopyResult()));
if(!item || item->wasError())
menu->setItemEnabled(id, false);
diff --git a/src/resultlistview.h b/src/resultlistview.h
index c8ef15e..32fecff 100644
--- a/src/resultlistview.h
+++ b/src/resultlistview.h
@@ -33,7 +33,7 @@ namespace ResultList {
class ResultListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/src/rpnmuncher.cpp b/src/rpnmuncher.cpp
index 309a819..a541e33 100644
--- a/src/rpnmuncher.cpp
+++ b/src/rpnmuncher.cpp
@@ -263,5 +263,3 @@ static int tokenize (const TQString &token)
return Unknown;
}
-
-// vim: set et sw=4 ts=8:
diff --git a/src/sharedptr.h b/src/sharedptr.h
index 1c63ca3..91d80da 100644
--- a/src/sharedptr.h
+++ b/src/sharedptr.h
@@ -118,5 +118,3 @@ private:
};
#endif /* ABAKUS_SHARED_PTR_H */
-
-// vim: set et ts=8 sw=4:
diff --git a/src/valuemanager.cpp b/src/valuemanager.cpp
index 4880fdf..bc55203 100644
--- a/src/valuemanager.cpp
+++ b/src/valuemanager.cpp
@@ -101,5 +101,3 @@ TQString ValueManager::description(const TQString &valueName)
}
#include "valuemanager.moc"
-
-// vim: set et ts=8 sw=4 encoding=utf-8:
diff --git a/src/valuemanager.h b/src/valuemanager.h
index b637e14..ed52dbb 100644
--- a/src/valuemanager.h
+++ b/src/valuemanager.h
@@ -28,7 +28,7 @@
class ValueManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
typedef TQMap<TQString, Abakus::number_t> valueMap;
@@ -66,5 +66,3 @@ class ValueManager : public TQObject
};
#endif
-
-// vim: set et sw=4 ts=8:
diff --git a/translations/desktop_files/abakus.desktop/abakus.desktop.pot b/translations/desktop_files/abakus.desktop/abakus.desktop.pot
new file mode 100644
index 0000000..7c8290e
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/abakus.desktop.pot
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr ""
diff --git a/translations/desktop_files/abakus.desktop/bg.po b/translations/desktop_files/abakus.desktop/bg.po
new file mode 100644
index 0000000..6cc7067
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/bg.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Tony Ivanov <cheery.bed9609@fastmail.com>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2023-05-07 15:15+0000\n"
+"Last-Translator: Tony Ivanov <cheery.bed9609@fastmail.com>\n"
+"Language-Team: Bulgarian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/bg/>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Лесен калкулатор управляем с клавиатура"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Калкулатор"
diff --git a/translations/desktop_files/abakus.desktop/br.po b/translations/desktop_files/abakus.desktop/br.po
new file mode 100644
index 0000000..e7b0526
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/br.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Jederez"
diff --git a/translations/desktop_files/abakus.desktop/cs.po b/translations/desktop_files/abakus.desktop/cs.po
new file mode 100644
index 0000000..33b8c93
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/cs.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2020-03-24 13:46+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"applications/abakus-abakusdesktop/cs/>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 3.11.3\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Jednoduchá kalkulačka ovládaná klávesnicí"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Kalkulátor"
diff --git a/translations/desktop_files/abakus.desktop/cy.po b/translations/desktop_files/abakus.desktop/cy.po
new file mode 100644
index 0000000..601cedb
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/cy.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Cyfrifiannell"
diff --git a/translations/desktop_files/abakus.desktop/da.po b/translations/desktop_files/abakus.desktop/da.po
new file mode 100644
index 0000000..2fb9a2b
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/da.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Lommeregner"
diff --git a/translations/desktop_files/abakus.desktop/de.po b/translations/desktop_files/abakus.desktop/de.po
new file mode 100644
index 0000000..0182613
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/de.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2020-03-24 13:46+0000\n"
+"Last-Translator: Chris <xchrisx@uber.space>\n"
+"Language-Team: German <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/de/>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.11.3\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Ein einfacher, tastaturgesteuerter Taschenrechner"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Taschenrechner"
diff --git a/translations/desktop_files/abakus.desktop/el.po b/translations/desktop_files/abakus.desktop/el.po
new file mode 100644
index 0000000..fd624eb
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/el.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# blu.256 <mavridisf@gmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2020-12-30 17:15+0000\n"
+"Last-Translator: blu.256 <mavridisf@gmail.com>\n"
+"Language-Team: Greek <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"applications/abakus-abakusdesktop/el/>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.4\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Μια απλή αριθμομηχανή με χειρισμό πληκτρολογίου"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Υπολογιστής Τσέπης"
diff --git a/translations/desktop_files/abakus.desktop/es.po b/translations/desktop_files/abakus.desktop/es.po
new file mode 100644
index 0000000..3e37f65
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/es.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# SALOMON ALEJANDRO L <asalomon@agro.uba.ar>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2021-10-31 18:05+0000\n"
+"Last-Translator: SALOMON ALEJANDRO L <asalomon@agro.uba.ar>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/es/>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.8.1\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Una simple calculadora comandada por teclado"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Ábaco"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Calculadora"
diff --git a/translations/desktop_files/abakus.desktop/et.po b/translations/desktop_files/abakus.desktop/et.po
new file mode 100644
index 0000000..cff33ed
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/et.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Kalkulaator"
diff --git a/translations/desktop_files/abakus.desktop/fr.po b/translations/desktop_files/abakus.desktop/fr.po
new file mode 100644
index 0000000..dd31817
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/fr.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Stanislas Leduc <stanislas.leduc@balinor.net>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2020-06-20 16:30+0000\n"
+"Last-Translator: Stanislas Leduc <stanislas.leduc@balinor.net>\n"
+"Language-Team: French <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/fr/>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Generator: Weblate 4.1\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Une simple calculatrice pilotée par clavier"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Calculateur"
diff --git a/translations/desktop_files/abakus.desktop/ga.po b/translations/desktop_files/abakus.desktop/ga.po
new file mode 100644
index 0000000..7d37686
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/ga.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Áireamhán"
diff --git a/translations/desktop_files/abakus.desktop/gl.po b/translations/desktop_files/abakus.desktop/gl.po
new file mode 100644
index 0000000..82e4257
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/gl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Calculadora"
diff --git a/translations/desktop_files/abakus.desktop/it.po b/translations/desktop_files/abakus.desktop/it.po
new file mode 100644
index 0000000..d2fe2a9
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/it.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2020-05-23 09:48+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/it/>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.0.4\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Una semplice calcolatrice controllata da tastiera"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Calcolatrice"
diff --git a/translations/desktop_files/abakus.desktop/ka.po b/translations/desktop_files/abakus.desktop/ka.po
new file mode 100644
index 0000000..89b928d
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/ka.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "კალკულატორი"
diff --git a/translations/desktop_files/abakus.desktop/lt.po b/translations/desktop_files/abakus.desktop/lt.po
new file mode 100644
index 0000000..3f9f3df
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/lt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Skaičiuotuvas"
diff --git a/translations/desktop_files/abakus.desktop/nl.po b/translations/desktop_files/abakus.desktop/nl.po
new file mode 100644
index 0000000..6f77f0d
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/nl.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Heimen Stoffels <vistausss@outlook.com>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2023-04-09 19:15+0000\n"
+"Last-Translator: Heimen Stoffels <vistausss@outlook.com>\n"
+"Language-Team: Dutch <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"applications/abakus-abakusdesktop/nl/>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.16.1\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Een eenvoudige toetsenbord-aangedreven rekenmachine"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Rekenmachine"
diff --git a/translations/desktop_files/abakus.desktop/pt.po b/translations/desktop_files/abakus.desktop/pt.po
new file mode 100644
index 0000000..7a0bf60
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/pt.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2021-02-07 22:01+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/pt/>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Generator: Weblate 4.4.2\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Uma simples calculadora guiada por teclado"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Calculadora"
diff --git a/translations/desktop_files/abakus.desktop/ru.po b/translations/desktop_files/abakus.desktop/ru.po
new file mode 100644
index 0000000..87e4b60
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/ru.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrey (Андрей) <sosic.heh@ya.ru>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2021-09-04 17:14+0000\n"
+"Last-Translator: Andrey (Андрей) <sosic.heh@ya.ru>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Простой калькулятор"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Калькулятор"
diff --git a/translations/desktop_files/abakus.desktop/rw.po b/translations/desktop_files/abakus.desktop/rw.po
new file mode 100644
index 0000000..8147f15
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/rw.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Mubazi"
diff --git a/translations/desktop_files/abakus.desktop/sk.po b/translations/desktop_files/abakus.desktop/sk.po
new file mode 100644
index 0000000..9663152
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/sk.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Marek Mlynar <marek.inq.mlynar@gmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2020-05-27 20:46+0000\n"
+"Last-Translator: Marek Mlynar <marek.inq.mlynar@gmail.com>\n"
+"Language-Team: Slovak <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/sk/>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 4.0.4\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Jednoduchá kalkulačka ovládaná klávesnicou"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abakus"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Kalkulačka"
diff --git a/translations/desktop_files/abakus.desktop/sr.po b/translations/desktop_files/abakus.desktop/sr.po
new file mode 100644
index 0000000..f24b360
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/sr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Рачунаљка"
diff --git a/translations/desktop_files/abakus.desktop/sr@Latn.po b/translations/desktop_files/abakus.desktop/sr@Latn.po
new file mode 100644
index 0000000..8ce5747
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/sr@Latn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Računaljka"
diff --git a/translations/desktop_files/abakus.desktop/sv.po b/translations/desktop_files/abakus.desktop/sv.po
new file mode 100644
index 0000000..3c5e014
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/sv.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+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"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr ""
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Miniräknare"
diff --git a/translations/desktop_files/abakus.desktop/tr.po b/translations/desktop_files/abakus.desktop/tr.po
new file mode 100644
index 0000000..e6e7882
--- /dev/null
+++ b/translations/desktop_files/abakus.desktop/tr.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Mehmet Dokuz <madanadam@gmail.com>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-18 04:00+0100\n"
+"PO-Revision-Date: 2022-03-02 12:11+0000\n"
+"Last-Translator: Mehmet Dokuz <madanadam@gmail.com>\n"
+"Language-Team: Turkish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus-abakusdesktop/tr/>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11\n"
+
+#. Comment
+#: abakus.desktop:7
+msgid "A simple keyboard-driven calculator"
+msgstr "Klavye-temelli basit bir hesap makinesi"
+
+#. Name
+#: abakus.desktop:9
+msgid "Abakus"
+msgstr "Abaküs"
+
+#. GenericName
+#: abakus.desktop:10
+msgid "Calculator"
+msgstr "Hesap Makinesi"
diff --git a/translations/messages/abakus.pot b/translations/messages/abakus.pot
new file mode 100644
index 0000000..5a957b8
--- /dev/null
+++ b/translations/messages/abakus.pot
@@ -0,0 +1,229 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\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=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+#, ignore-inconsistent
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr ""
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+#, ignore-inconsistent
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr ""
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr ""
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr ""
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr ""
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr ""
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr ""
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr ""
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr ""
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr ""
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr ""
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr ""
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr ""
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr ""
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr ""
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr ""
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr ""
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr ""
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr ""
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr ""
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr ""
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr ""
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr ""
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr ""
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr ""
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr ""
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr ""
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr ""
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr ""
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr ""
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr ""
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr ""
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr ""
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr ""
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr ""
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr ""
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr ""
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr ""
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr ""
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr ""
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr ""
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr ""
diff --git a/translations/messages/cs.po b/translations/messages/cs.po
new file mode 100644
index 0000000..11acf83
--- /dev/null
+++ b/translations/messages/cs.po
@@ -0,0 +1,237 @@
+# SOME DESCRIPTIVE TITLE.
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2021-09-03 08:53+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"applications/abakus/cs/>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 4.8\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Slávek Banko"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "slavek.banko@axis.cz"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "abakus"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Jednoduchá kalkulačka ovládaná klávesnicí"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Vývojář"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Vysoce přesné matematické postupy a inspirace pro nový návrh vycházející "
+"z jeho implementace v C++ (SpeedCrunch)"
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr "Přišel s počáteční myšlenkou, spolu s implementací v Pythonu."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr "Inspirace/kód pro počáteční návrh přišel z jeho implementace v Ruby."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Odstranit vybranou proměnnou"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+"Odstranit všechny proměnné (1 proměnná)\n"
+"Odstranit všechny proměnné (%n proměnné)\n"
+"Odstranit všechny proměnné (%n proměnných)"
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr "Odstranit vybranou funkci"
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+"Odstranit všechny funkce (1 funkce)\n"
+"Odstranit všechny funkce (%n funkce)\n"
+"Odstranit všechny funkce (%n funkcí)"
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr "Historie: "
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr "&Stupně"
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr "&Radiány"
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr "Vy&hodnotit"
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr "Chyba: %1"
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr "Zobrazit výpis &historie"
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr "Zobrazit &proměnné"
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr "Zobrazit &funkce"
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr "Zapnout &kompaktní režim"
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr "Použít režim R&PN"
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr "&Automatická přesnost"
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr "&3 desetinná místa"
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr "&8 desetinných míst"
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr "&15 desetinných míst"
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr "&50 desetinných míst"
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr "&Vlastní přesnost…"
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr "Vyčistit &historii"
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr "Vybrat editor"
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr "Značka %1 není nastavena"
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr "Vybrat počet zobrazovaných desetinných míst"
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr "Desetinná přesnost:"
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr "Výraz"
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr "Výsledek"
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr "Odkaz"
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr "Zkopírovat výsledek do schránky"
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr "Nelze vyzvednout z prázdného zásobníku."
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr "Nedostatečný počet operandů pro funkci %1"
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr "Příkazy nastavit a odstranit lze použít pouze v normálním režimu."
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr "Nedostatečný počet operandů pro operátor umocnění."
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr "Neznámý token %1"
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr "Nedostatečný počet operandů pro operátor sčítání."
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr "Nedostatečný počet operandů pro operátor odečítání."
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr "Nedostatečný počet operandů pro operátor násobení."
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr "Nedostatečný počet operandů pro operátor dělení."
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr "Eulerovo číslo – 2,7182818284"
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr "pí (π) – 3,1415926"
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr "Reži&m"
diff --git a/translations/messages/de.po b/translations/messages/de.po
new file mode 100644
index 0000000..72a17f1
--- /dev/null
+++ b/translations/messages/de.po
@@ -0,0 +1,239 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2020-03-25 21:58+0000\n"
+"Last-Translator: Chris <xchrisx@uber.space>\n"
+"Language-Team: German <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus/de/>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.11.3\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Chris (TDE), Juergen Ihlau"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "(Keine Email), juergen@ihlau.net"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "Abakus"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Ein einfacher, tastaturgesteuerter Taschenrechner"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Entwickler"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Hochpräzise mathematische Routinen und Inspiration für das neue Design kamen "
+"von seiner C++-Implementierung (SpeedCrunch)."
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr "Zusammen mit einer Python-Implementierung entstand die erste Idee."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr ""
+"Inspiration/Code für das erste Design kam von seiner Ruby-Implementierung."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Ausgewählte Variable entfernen"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+"Alle Variablen entfernen (Eine Variable)\n"
+"Alle Variablen entfernen (%n Variablen)"
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr "Ausgewählte Funktion entfernen"
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+"Alle Funktionen entfernen (Eine Funktion)\n"
+"Alle Funktionen entfernen (%n-Funktionen)"
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr "Verlaufsspeicher: "
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr "Gra&d"
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr "&Radien"
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr "B&ewerten"
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr "Fehler: %1"
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr "&Verlaufsspeicher anzeigen"
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr "&Variablen anzeigen"
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr "&Funktionen anzeigen"
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr "&Minimalmodus einschalten"
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr "R&PN-Modus verwenden"
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr "&Automatische Präzision"
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr "&3 Dezimalstellen"
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr "&8 Dezimalstellen"
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr "&15 Dezimalstellen"
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr "&50 Dezimalstellen"
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr "Individ&uelle Präzision ..."
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr "&Verlaufsspeicher löschen"
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr "Editor auswählen"
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr "Marker %1 ist nicht gesetzt"
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr "Anzahl der anzuzeigenden Dezimalstellen auswählen"
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr "Anzahl der Nachkommastellen:"
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr "Ausdruck"
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr "Ergebnis"
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr "Tastenkürzel"
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr "Ergebnis in die Zwischenablage kopieren"
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr "Aus einem leeren Stapel kann nicht herausgesprungen werden."
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr "Nicht genügend Operanden für Funktion %1"
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr ""
+"Die Befehle \"Setzen\" und \"Entfernen\" können nur im Normalmodus verwendet "
+"werden."
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr "Nicht genügend Operanden für eine Potenzierung."
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr "Unbekanntes Token %1"
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr "Nicht genügend Operanden für eine Addition."
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr "Nicht genügend Operanden für eine Subtraktion."
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr "Nicht genügend Operanden für eine Multiplikation."
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr "Nicht genügend Operanden für eine Division."
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr "Natürliche exponentielle Basis - 2.71828281818"
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr "pi (π) - 3.1415926"
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr "&Modus"
diff --git a/translations/messages/es.po b/translations/messages/es.po
new file mode 100644
index 0000000..274c585
--- /dev/null
+++ b/translations/messages/es.po
@@ -0,0 +1,234 @@
+# SOME DESCRIPTIVE TITLE.
+# SALOMON ALEJANDRO L <asalomon@agro.uba.ar>, 2021.
+# Eduardo Herrera <edhu21@gmail.com>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2023-03-21 23:14+0000\n"
+"Last-Translator: Eduardo Herrera <edhu21@gmail.com>\n"
+"Language-Team: Spanish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus/es/>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.16.1\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Alejandro Salomón"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "asalomon@agro.uba.ar"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "abakus"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Una simple calculadora comandada por teclado"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Desarrollador"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Las rutinas matemáticas de alta precisión y la inspiración para el nuevo "
+"diseño provinieron de su implementación de C++ (SpeedCrunch)"
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr "Se me ocurrió la idea inicial, junto con una implementación de Python."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr ""
+"La inspiración/código para el diseño inicial provino de su implementación de "
+"Ruby."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Eliminar variable seleccionada"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr "Eliminar la función seleccionada"
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr "Historial "
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr "Grados"
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr "Radianes"
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr "Evaluar"
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr ""
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr ""
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr ""
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr ""
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr ""
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr ""
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr ""
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr ""
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr ""
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr "Seleccionar editor"
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr ""
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr "Seleccione el número de dígitos decimales para mostrar"
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr "Precisión decimal:"
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr "Expresión"
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr "Resultado"
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr "Atajo"
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr ""
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr ""
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr ""
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr "Los comandos set y remove solo se pueden usar en modo normal."
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr ""
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr ""
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr ""
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr ""
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr ""
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr ""
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr ""
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr ""
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr ""
diff --git a/translations/messages/it.po b/translations/messages/it.po
new file mode 100644
index 0000000..9f78be3
--- /dev/null
+++ b/translations/messages/it.po
@@ -0,0 +1,238 @@
+# SOME DESCRIPTIVE TITLE.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2020-05-23 09:48+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus/it/>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.0.4\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Michele Calgaro"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "michele.calgaro@yahoo.it"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "abakus"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Una semplice calcolatrice controllata da tastiera"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Sviluppatore"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Funzioni matematiche ad alta precisione e nuovo design ispirate alla sua "
+"implementazione in C++ (SpeedCrunch)"
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr "Ha creato il concetto iniziale e sviluppato la versione Python."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr ""
+"Ispirazione e codice per il design iniziale derivate dalla sua "
+"implementazione in Ruby."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Rimozione della variabile selezionata"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+"Rimozione di tutte le variabili (1 variabile)\n"
+"Rimozione di tutte le variabili (%n variabili)"
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr "Rimozione della funzione selezionata"
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+"Rimozione di tutte le funzioni (1 funzione)\n"
+"Rimozione di tutte le funzioni (%n funzioni)"
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr "Cronologia: "
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr "&Gradi"
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr "&Radianti"
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr "&Calcola"
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr "Errore: %1"
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr "Visualizza la &Cronologia"
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr "Visualizza &Variabili"
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr "Visualizza &Funzioni"
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr "Attiva il Modo &Compatto"
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr "Usa modalità R&PN"
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr "Precisione &Automatica"
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr "&3 Cifre Decimali"
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr "&8 Cifre Decimali"
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr "&15 Cifre Decimali"
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr "&50 Cifre Decimali"
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr "P&recisione Personalizzata..."
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr "Cancella &Cronologia"
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr "Seleziona Editor"
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr "Segnalibro %1 non settato"
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr "Seleziona il numero di cifre decimali da visualizzare"
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr "Precisione decimale:"
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr "Espressione"
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr "Risultato"
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr "Scorciatoia"
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr "Copia il risultato negli Appunti"
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr "Impossibile estrarre un valore da uno stack vuoto."
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr "Numero di operandi insufficiente per la funzione %1"
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr ""
+"I comandi Setta e Rimuovi possono essere usati solo in modalità normale."
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr "Numero di operandi insufficiente per l'operatore esponenziale."
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr "Token sconosciuto %1"
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr "Numero di operandi insufficiente per l'operatore addizione."
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr "Numero di operandi insufficiente per l'operatore sottrazione."
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr "Numero di operandi insufficiente per l'operatore moltiplicazione."
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr "Numero di operandi insufficiente per l'operatore divisione."
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr "Base dell'esponente naturale - 2.7182818"
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr "pi greco (π) - 3.1415926"
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr "&Modo"
diff --git a/translations/messages/nl.po b/translations/messages/nl.po
new file mode 100644
index 0000000..36ace92
--- /dev/null
+++ b/translations/messages/nl.po
@@ -0,0 +1,240 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2019-08-02 19:05+0000\n"
+"Last-Translator: Heimen Stoffels <vistausss@outlook.com>\n"
+"Language-Team: Dutch <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"applications/abakus/nl/>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.7.1\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Heimen Stoffels"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "vistausss@outlook.com"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "abakus"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Een eenvoudige rekenmachine, bedienbaar via het toetsenbord"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Ontwikkelaar"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Wiskundige routines met nauwkeurige precisie en inspiratie voor het "
+"vernieuwde ontwerp waren afkomstig van zijn C++-implementatie (SpeedCrunch)"
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr "Kwam met het idee op de proppen en een Python-implementatie."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr ""
+"Inspiratie/Code van het eerste ontwerp waren afkomstig van zijn Ruby-"
+"implementatie."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Geselecteerde variabele wissen"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+"Alle variabelen wissen (1 variabele)\n"
+"Alle variabelen wissen (%n variabelen)"
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr "Geselecteerde functie wissen"
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+"Alle functies wissen (1 functie)\n"
+"Alle functies wissen (%n functies)"
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr "Geschiedenis: "
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr "Gra&den"
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr "St&ralen"
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr "&Evalueren"
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr "Fout: %1"
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr "&Eerdere berekeningen tonen"
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr "&Variabelen tonen"
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr "&Functies tonen"
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr "&Compacte modus inschakelen"
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr "R&PN-modus gebruiken"
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr "&Automatische precisie"
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr "&3 decimalen"
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr "&8 decimalen"
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr "&15 decimalen"
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr "&50 decimalen"
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr "A&angepaste precisie..."
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr "&Eerdere berekeningen wissen"
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr "Bewerker selecteren"
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr "De markering '%1' is niet ingesteld"
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr "Kies het aantal te tonen decimalen"
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr "Decimale precisie:"
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr "Expressie"
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr "Resultaat"
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr "Sneltoets"
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr "Resultaat kopiëren naar klembord"
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr "Kan niet plukken van een kale kip."
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr "Onvoldoende operanden bij functie '%1'"
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr ""
+"De opdrachten 'instellen' en 'wissen' kunnen alleen worden gebruikt in de "
+"normale modus."
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr "Onvoldoende operanden voor exponentiatie-operatoren."
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr "Onbekende sleutel '%1'"
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr "Onvoldoende operanden voor optelling."
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr "Onvoldoende operanden voor aftrekking."
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr "Onvoldoende operanden voor vermenigvuldiging."
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr "Onvoldoende operanden voor deling."
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr "Natuurlijke exponentiële basis - 2.71828281818"
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr "pi (π) - 3.1415926"
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr "&Modus"
diff --git a/translations/messages/pt.po b/translations/messages/pt.po
new file mode 100644
index 0000000..507609e
--- /dev/null
+++ b/translations/messages/pt.po
@@ -0,0 +1,235 @@
+# SOME DESCRIPTIVE TITLE.
+# Tiago Carmo <tiagompca@gmail.com>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2022-09-24 17:56+0000\n"
+"Last-Translator: Tiago Carmo <tiagompca@gmail.com>\n"
+"Language-Team: Portuguese <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus/pt/>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Generator: Weblate 4.13.1\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Hugo Carvalho"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "hugokarvalho@gmail.com"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "abakus"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Uma calculadora simples conduzida por teclado"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Desenvolvedor"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Rotinas matemáticas de alta precisão e inspiração para o novo design veio de "
+"sua implementação C++ (SpeedCrunch)"
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr ""
+"Surgiu com a ideia inicial, juntamente com uma implementação em Python."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr ""
+"A inspiração/código para o design inicial veio de sua implementação Ruby."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Remover variável selecionada"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+"remove todas as variáveis (1 variável)\n"
+"Remova todas as variáveis (%n variáveis)"
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr ""
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr ""
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr ""
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr ""
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr ""
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr ""
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr ""
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr ""
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr ""
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr ""
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr ""
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr ""
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr ""
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr ""
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr ""
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr ""
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr ""
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr ""
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr ""
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr ""
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr ""
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr ""
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr ""
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr ""
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr ""
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr ""
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr ""
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr ""
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr ""
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr ""
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr ""
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr ""
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr ""
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr ""
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr ""
diff --git a/translations/messages/ru.po b/translations/messages/ru.po
new file mode 100644
index 0000000..4de6e63
--- /dev/null
+++ b/translations/messages/ru.po
@@ -0,0 +1,240 @@
+# SOME DESCRIPTIVE TITLE.
+# Andrei Stepanov <adem4ik@gmail.com>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2023-06-04 15:15+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Андрей Степанов"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "adem4ik@gmail.com"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "abakus"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Простой калькулятор с клавиатурным управлением"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Разработчик"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Высокоточные математические процедуры, а вдохновением для нового дизайна "
+"послужила его реализация на C++ (SpeedCrunch)"
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr "Придумал первоначальную идею, а также реализацию на Python."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr ""
+"Вдохновением/кодом для первоначального дизайна послужила его реализация на "
+"Ruby."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Удалить выбранную переменную"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+"Удалить все переменные (1 переменная)\n"
+"Удалить все переменные (%n переменные)\n"
+"Удалить все переменные (%n переменных)"
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr "Удалить выбранную функцию"
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+"Удалить все функции (1 функция)\n"
+"Удалить все функции (%n функции)\n"
+"Удалить все функции (%n функций)"
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr "История: "
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr "&Градусы"
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr "&Радианы"
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr "&Вычислить"
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr "Ошибка: %1"
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr "Показать список исто&рии"
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr "Показать пере&менные"
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr "Пок&азать функции"
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr "Включить ко&мпактный режим"
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr "Использовать ре&жим ОПН"
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr "Автоматическа&я точность"
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr "&3 десятичных знака"
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr "&8 десятичных знаков"
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr "&15 десятичных знаков"
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr "&50 десятичных знаков"
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr "Выб&ранная точность…"
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr "Очистить исто&рию"
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr "Выбрать редактор"
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr "Метка %1 не задана"
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr "Выберите число десятичных цифр для показа"
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr "Знаков после запятой:"
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr "Выражение"
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr "Результат"
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr "Сочетание клавиш"
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr "Копировать результат в буфер обмена"
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr "Невозможно открыть из пустого стека."
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr "Недостаточно операндов для функции %1"
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr "Команды set и remove можно использовать только в нормальном режиме."
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr "Недостаточно операндов для оператор экспоненции."
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr "Неизвестный токен %1"
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr "Недостаточно операндов для оператора сложения."
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr "Недостаточно операндов для оператора вычитания."
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr "Недостаточно операндов для оператора умножения."
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr "Недостаточно операндов для оператора деления."
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr "Натуральное экспоненциальное основание - 2,7182818"
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr "пи (π) - 3,1415926"
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr "&Режим"
diff --git a/translations/messages/sk.po b/translations/messages/sk.po
new file mode 100644
index 0000000..1e6e883
--- /dev/null
+++ b/translations/messages/sk.po
@@ -0,0 +1,238 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2020-02-13 02:05+0000\n"
+"Last-Translator: Marek Mlynar <marek.inq.mlynar@gmail.com>\n"
+"Language-Team: Slovak <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus/sk/>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Weblate 3.10.3\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Marek Mlynár"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "marek.inq.mlynar@gmail.com"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "abakus"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Jednoduchá kalkulačka ovládaná klávesnicou"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Vývojár"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Vysoko presné matematické postupy a inšpirácia pre nový dizajn pochádzajú z "
+"jeho implementácie C ++ (SpeedCrunch)"
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr "Prišiel s prvotnou myšlienkou a implementáciou v Python-e."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr ""
+"Inšpirácia/kód pre prvotný dizajn pochádza z jeho implementácie v jazyku "
+"Ruby."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Odstráň zvolenú premennú"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+"Odstráň všetky premenné (1 premenná)\n"
+"Odstráň všetky premenné (%n premenných)"
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr "Odober zvolenú funkciu"
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+"Odstráň všetky funkcie (1 funkcia)\n"
+"Odstráň všetky funkcie (%n funkcií)"
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr "História: "
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr "&Stupne"
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr "&Radiány"
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr "&Vyčísli"
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr "Chyba: %1"
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr "Ukáž zoznam &histórie"
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr "Zobraz &premenné"
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr "Zobraz &funkcie"
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr "Zapni &kompaktný mód"
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr "Použi R&PN Mód"
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr "&Automatická presnosť"
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr "&3 Desiatkové číslice"
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr "&8 Desiatkových číslic"
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr "&15 Desiatkových číslic"
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr "&50 Desiatkových číslic"
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr "U&žívateľská presnosť..."
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr "Vyčisti &históriu"
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr "Vyber editor"
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr "Zvýrazňovač %1 nie je nastavený"
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr "Vyber počet desiatkových číslic na zobrazenie"
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr "Presnosť desiatkových číslic:"
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr "Výraz"
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr "Výsledok"
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr "Odkaz"
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr "Kopíruj výsledok do schránky"
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr "Nemôžem vybrať z prázdneho zásobníka."
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr "Nedostatočný počet operandov pre funkciu %1"
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr "Príkazy nastav a odstráň sa môžu používať iba v normálnom móde."
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr "Nedostatok operandov pre operáciu umocňovania."
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr "Neznámy token %1"
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr "Nedostatočný počet operandov pre operáciu sčítania."
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr "Nedostatočný počet operandov pre operáciu odčítania."
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr "Nedostatočný počet operandov pre operáciu násobenia."
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr "Nedostatočný počet operandov pre operáciu delenia."
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr "Eulerovo číslo - 2,7182818"
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr "pi (π) - 3,1415926"
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr "&Mód"
diff --git a/translations/messages/tr.po b/translations/messages/tr.po
new file mode 100644
index 0000000..657b055
--- /dev/null
+++ b/translations/messages/tr.po
@@ -0,0 +1,235 @@
+# SOME DESCRIPTIVE TITLE.
+# Mehmet Dokuz <madanadam@gmail.com>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-05-09 01:25+0200\n"
+"PO-Revision-Date: 2022-03-02 12:11+0000\n"
+"Last-Translator: Mehmet Dokuz <madanadam@gmail.com>\n"
+"Language-Team: Turkish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/applications/abakus/tr/>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.11\n"
+
+#. Instead of a literal translation, add your name to the end of the list (separated by a comma).
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Mehmet Akif"
+
+#. Instead of a literal translation, add your email to the end of the list (separated by a comma).
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "madanadam@gmail.com"
+
+#: abakus.cpp:36
+msgid "abakus"
+msgstr "abaküs"
+
+#: abakus.cpp:37
+msgid "A simple keyboard-driven calculator"
+msgstr "Klavye-temelli basit bir hesap makinesi"
+
+#: abakus.cpp:42
+msgid "Developer"
+msgstr "Geliştirici"
+
+#: abakus.cpp:46
+msgid ""
+"High precision math routines, and inspiration for the new design came from "
+"his C++ implementation (SpeedCrunch)"
+msgstr ""
+"Yüksek hassasiyetli matematik rutinleri ve yeni tasarım için ilham kaynağı "
+"onun C++ uygulamasından geldi. (SpeedCrunch)"
+
+#: abakus.cpp:50
+msgid "Came up with the initial idea, along with a Python implementation."
+msgstr "Bir Python uygulamasıyla birlikte ilk fikir geldi."
+
+#: abakus.cpp:54
+msgid ""
+"Inspiration/code for the initial design came from his Ruby implementation."
+msgstr "İlk tasarım için ilham/kod, Ruby uygulamasından geldi."
+
+#: abakuslistview.cpp:158
+msgid "Remove selected variable"
+msgstr "Seçili değişkeni kaldır"
+
+#: abakuslistview.cpp:173
+#, c-format
+msgid ""
+"_n: Remove all variables (1 variable)\n"
+"Remove all variables (%n variables)"
+msgstr ""
+"Tüm değişkenleri kaldırın (1 değişken)\n"
+"Tüm değişkenleri kaldır (%n değişken)"
+
+#: abakuslistview.cpp:200
+msgid "Remove selected function"
+msgstr "Seçili işlevi kaldır"
+
+#: abakuslistview.cpp:206
+#, c-format
+msgid ""
+"_n: Remove all functions (1 function)\n"
+"Remove all functions (%n functions)"
+msgstr ""
+"Tüm işlevleri kaldır (1 işlev)\n"
+"Tüm işlevleri kaldır (%n işlev)"
+
+#: mainwindow.cpp:69
+msgid "History: "
+msgstr "Tarih: "
+
+#: mainwindow.cpp:81 mainwindow.cpp:509
+msgid "&Degrees"
+msgstr "&Derece"
+
+#: mainwindow.cpp:87 mainwindow.cpp:513
+msgid "&Radians"
+msgstr "&Radyan"
+
+#: mainwindow.cpp:116
+msgid "&Evaluate"
+msgstr "D&eğerlendirme"
+
+#: mainwindow.cpp:225
+#, c-format
+msgid "Error: %1"
+msgstr "Hata: %1"
+
+#: mainwindow.cpp:517
+msgid "Show &History List"
+msgstr "&Geçmişi Göster"
+
+#: mainwindow.cpp:520
+msgid "Show &Variables"
+msgstr "&Değişkenleri Göster"
+
+#: mainwindow.cpp:523
+msgid "Show &Functions"
+msgstr "&Fonksiyonları Göster"
+
+#: mainwindow.cpp:526
+msgid "Activate &Compact Mode"
+msgstr "&Kompakt Modu Etkinleştir"
+
+#: mainwindow.cpp:529
+msgid "Use R&PN Mode"
+msgstr "R&PN Modunu Kullan"
+
+#: mainwindow.cpp:533
+msgid "&Automatic Precision"
+msgstr "&Otomatik Hassasiyet"
+
+#: mainwindow.cpp:537
+msgid "&3 Decimal Digits"
+msgstr "&3 Ondalık Basamak"
+
+#: mainwindow.cpp:541
+msgid "&8 Decimal Digits"
+msgstr "&8 Ondalık Basamak"
+
+#: mainwindow.cpp:545
+msgid "&15 Decimal Digits"
+msgstr "&15 Ondalık Basamak"
+
+#: mainwindow.cpp:549
+msgid "&50 Decimal Digits"
+msgstr "&50 Ondalık Basamak"
+
+#: mainwindow.cpp:553
+msgid "C&ustom Precision..."
+msgstr "&Özel Hassasiyet..."
+
+#: mainwindow.cpp:557 resultlistview.cpp:118
+msgid "Clear &History"
+msgstr "Geçmişi &Temizle"
+
+#: mainwindow.cpp:559
+msgid "Select Editor"
+msgstr "Düzenleyici Seç"
+
+#: mainwindow.cpp:717
+msgid "Marker %1 isn't set"
+msgstr "%1 işaretçisi ayarlanmadı"
+
+#: mainwindow.cpp:760
+msgid "Select number of decimal digits to display"
+msgstr "Görüntülenecek ondalık basamak sayısını seçin"
+
+#: mainwindow.cpp:761
+msgid "Decimal precision:"
+msgstr "Ondalık hassasiyet:"
+
+#: resultlistview.cpp:43
+msgid "Expression"
+msgstr "İfade"
+
+#: resultlistview.cpp:44
+msgid "Result"
+msgstr "Sonuç"
+
+#: resultlistview.cpp:45
+msgid "Shortcut"
+msgstr "Kısayol"
+
+#: resultlistview.cpp:120
+msgid "Copy Result to Clipboard"
+msgstr "Sonucu Panoya Kopyala"
+
+#: rpnmuncher.cpp:104
+msgid "Can't pop from an empty stack."
+msgstr "Boş bir yığından çıkarma yapılamaz."
+
+#: rpnmuncher.cpp:118
+#, c-format
+msgid "Insufficient operands for function %1"
+msgstr "%1 işlevi için işlenen yetersiz"
+
+#: rpnmuncher.cpp:135
+msgid "The set and remove commands can only be used in normal mode."
+msgstr "Ayarla ve kaldır komutları yalnızca normal modda kullanılabilir."
+
+#: rpnmuncher.cpp:142
+msgid "Insufficient operands for exponentiation operator."
+msgstr "Üs alma operatörü için yetersiz işlenen."
+
+#: rpnmuncher.cpp:153
+#, c-format
+msgid "Unknown token %1"
+msgstr "Bilinmeyen belirteç %1"
+
+#: rpnmuncher.cpp:168
+msgid "Insufficient operands for addition operator."
+msgstr "Toplama operatörü için yetersiz işlenen."
+
+#: rpnmuncher.cpp:180
+msgid "Insufficient operands for subtraction operator."
+msgstr "Çıkarma operatörü için yetersiz işlenen."
+
+#: rpnmuncher.cpp:192
+msgid "Insufficient operands for multiplication operator."
+msgstr "Çarpma operatörü için yetersiz işlenen."
+
+#: rpnmuncher.cpp:204
+msgid "Insufficient operands for division operator."
+msgstr "Bölme operatörü için yetersiz işlenen."
+
+#: valuemanager.cpp:96
+msgid "Natural exponential base - 2.7182818"
+msgstr "Doğal üstel taban - 2.7182818"
+
+#: valuemanager.cpp:98
+msgid "pi (π) - 3.1415926"
+msgstr "pi (π) - 3.1415926"
+
+#: abakusui.rc:26
+#, no-c-format
+msgid "&Mode"
+msgstr "&Mod"