Compare commits

..

27 Commits

Author SHA1 Message Date
Simon Rozman
8596e6fb28 Set version to 2.0.2 2018-08-28 08:49:05 +02:00
Simon Rozman
d5f4b76835 Register en_US language in nmake register
When "Language" setting is absent in registry, the initialization of
wxWidget localization raises asserts.
2018-08-24 14:48:20 +02:00
Simon Rozman
6c79118505 Update font and database 2018-08-24 13:56:53 +02:00
Simon Rozman
3d56cdd59b Update submodules 2018-08-24 13:53:32 +02:00
Simon Rozman
c7677d4a90 Update Amebis URL 2018-08-24 13:41:02 +02:00
Simon Rozman
613241d5ab Use absolute devenv.com path 2018-08-24 13:40:36 +02:00
Simon Rozman
bb4304d439 Update submodule 2018-08-24 13:38:31 +02:00
Simon Rozman
8539e6eb9f Update wxWidgets to 3.0.3 2017-12-22 10:31:59 +01:00
Simon Rozman
bd914829c5 Update documentation 2017-12-22 10:28:00 +01:00
Simon Rozman
bc22273385 Update submodules 2017-12-22 10:23:59 +01:00
Simon Rozman
1d579c922b Extend copyright to 2017 2017-12-22 10:23:48 +01:00
Simon Rozman
083ee099df Update MSI build config 2017-12-22 10:03:18 +01:00
Simon Rozman
7a6607827e Update submodule 2017-12-22 10:02:58 +01:00
Simon Rozman
3839f0f99e Remove lib/MSICALib submodule 2017-12-22 09:59:51 +01:00
Simon Rozman
e0881da497 Remove lib/atlex submodule 2017-12-22 09:45:00 +01:00
Simon Rozman
fde9d40105 Main frame no longer deletes child dialogues in destructor, causing after-death wxPersist saving of deleted dialogue states later. 2017-12-22 08:50:22 +01:00
Simon Rozman
c87d95204e ZRCola::translation_db::Compose fixed to honor inputMax==-1 correctly 2017-12-22 08:47:45 +01:00
Simon Rozman
ee9db7e262 Reverted to SHA1 Authenticode signatures for Windows XP compatibility 2017-12-22 08:47:26 +01:00
Simon Rozman
520c5a9b31 ZRCola tutorial is now displayed only if ZRCola feature was installed 2017-12-22 08:46:52 +01:00
Simon Rozman
a330bd3c62 wxWidget RTL dependencies fixed 2017-12-22 08:46:31 +01:00
Simon Rozman
9d36cc2d45 Changed to RFC3161 time-stamping and forced SHA1 digest to support Vista 2017-12-22 08:46:04 +01:00
Simon Rozman
d200094c7d Folder options added 2017-12-22 08:45:14 +01:00
Simon Rozman
214991e4e3 00ZRCOla fonts replaced with ZRCOla 2017-12-22 08:44:48 +01:00
Simon Rozman
fdadb29377 Unicode apostrophe changed to ASCII version for simplicity 2017-12-22 08:44:07 +01:00
Simon Rozman
1bcea13f57 Update sub-modules 2017-12-22 08:42:44 +01:00
Simon Rozman
2fa697ea74 Font and database updated 2017-12-22 08:09:24 +01:00
Simon Rozman
c9ba0d97bf Preset version to 2.0.1 2017-12-22 08:01:52 +01:00
162 changed files with 2809 additions and 8881 deletions

6
.gitmodules vendored
View File

@@ -1,9 +1,3 @@
[submodule "lib/atlex"]
path = lib/atlex
url = https://github.com/Amebis/atlex.git
[submodule "lib/MSICALib"]
path = lib/MSICALib
url = https://github.com/Amebis/MSICALib.git
[submodule "lib/stdex"]
path = lib/stdex
url = https://github.com/Amebis/stdex.git

20
LOCALIZATION.md Normal file
View File

@@ -0,0 +1,20 @@
# Localization of ZRCola
In order to get ZRCola experience in your language the following resources should be translated:
1. [ZRCola](https://poeditor.com/join/project/NTidhEPdDM)
2. [ZRCola-zrcdb](https://poeditor.com/join/project/QBuYsTwk0d)
3. [libZRColaUI](https://poeditor.com/join/project/vrnIvk5IOM)
4. [Updater](https://poeditor.com/join/project/oDK4ktH3ZV)
5. [wxExtend](https://poeditor.com/join/project/YmsdlC3CBv)
6. Setup
- [MSIBuildUI](https://poeditor.com/join/project/ikxWBlq1o5)
- [MSIBuildCore](https://poeditor.com/join/project/RSCSsz9fXi)
- [MSICALib](https://poeditor.com/join/project/cKP0wwBrHU)
- [MSICA](https://poeditor.com/join/project/gCNPagUQvn)
## General Guidelines
Please use the Windows "official" translations for terms published at [Microsoft Language Portal](https://www.microsoft.com/en-us/language). This will provide a consistent terminology experience on Windows.
Should you need any assistance to get started, please do not hesitate to contact project maintainer at [simon.rozman@amebis.si](mailto:simon.rozman@amebis.si).

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

Binary file not shown.

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

Binary file not shown.

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

Binary file not shown.

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

Binary file not shown.

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

Binary file not shown.

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#
@@ -24,10 +24,13 @@ PUBLISH_DIR=\\amebis.doma\Splet\WWW\Apache\www.amebis.si-prenos\ZRCola
PLAT=x64
REG_FLAGS=/f /reg:64
REG_FLAGS32=/f /reg:32
PROGRAM_FILES_32=C:\Program Files (x86)
!ELSE
PLAT=Win32
REG_FLAGS=/f
PROGRAM_FILES_32=C:\Program Files
!ENDIF
DEVENV10=$(PROGRAM_FILES_32)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com
All ::
@@ -36,20 +39,20 @@ Clean ::
cd "MSI\MSIBuild\Version"
$(MAKE) /f "Makefile" /$(MAKEFLAGS) Clean
cd "$(MAKEDIR)"
devenv.com "ZRCola.sln" /clean "Release|Win32"
devenv.com "ZRCola.sln" /clean "Debug|Win32"
devenv.com "ZRCola.sln" /clean "Release|x64"
devenv.com "ZRCola.sln" /clean "Debug|x64"
devenv.com "ZRColaUtils.sln" /clean "Release|Win32"
devenv.com "ZRColaUtils.sln" /clean "Debug|Win32"
devenv.com "MSI\MSICA\MSICA.sln" /clean "Release|Win32"
devenv.com "MSI\MSICA\MSICA.sln" /clean "Debug|Win32"
devenv.com "MSI\MSICA\MSICA.sln" /clean "Release|x64"
devenv.com "MSI\MSICA\MSICA.sln" /clean "Debug|x64"
devenv.com "Updater\Updater.sln" /clean "Release|Win32"
devenv.com "Updater\Updater.sln" /clean "Debug|Win32"
devenv.com "Updater\Updater.sln" /clean "Release|x64"
devenv.com "Updater\Updater.sln" /clean "Debug|x64"
"$(DEVENV10)" "ZRCola.sln" /clean "Release|Win32"
"$(DEVENV10)" "ZRCola.sln" /clean "Debug|Win32"
"$(DEVENV10)" "ZRCola.sln" /clean "Release|x64"
"$(DEVENV10)" "ZRCola.sln" /clean "Debug|x64"
"$(DEVENV10)" "ZRColaUtils.sln" /clean "Release|Win32"
"$(DEVENV10)" "ZRColaUtils.sln" /clean "Debug|Win32"
"$(DEVENV10)" "MSI\MSICA\MSICA.sln" /clean "Release|Win32"
"$(DEVENV10)" "MSI\MSICA\MSICA.sln" /clean "Debug|Win32"
"$(DEVENV10)" "MSI\MSICA\MSICA.sln" /clean "Release|x64"
"$(DEVENV10)" "MSI\MSICA\MSICA.sln" /clean "Debug|x64"
"$(DEVENV10)" "Updater\Updater.sln" /clean "Release|Win32"
"$(DEVENV10)" "Updater\Updater.sln" /clean "Debug|Win32"
"$(DEVENV10)" "Updater\Updater.sln" /clean "Release|x64"
"$(DEVENV10)" "Updater\Updater.sln" /clean "Debug|x64"
-if exist "$(OUTPUT_DIR)\locale\de_DE\wxstd.mo" del /f /q "$(OUTPUT_DIR)\locale\de_DE\wxstd.mo"
-if exist "$(OUTPUT_DIR)\locale\ru_RU\wxstd.mo" del /f /q "$(OUTPUT_DIR)\locale\ru_RU\wxstd.mo"
-if exist "$(OUTPUT_DIR)\locale\sl_SI\wxstd.mo" del /f /q "$(OUTPUT_DIR)\locale\sl_SI\wxstd.mo"
@@ -107,7 +110,7 @@ Publish :: "MSI\MSIBuild\Version\Version.mak"
!INCLUDE "include\MSIBuildCfg.mak"
PUBLISH_PACKAGE_DIR=$(PUBLISH_DIR)\$(MSIBUILD_VERSION_STR)
PUBLISH_PACKAGE_URL=http://www.amebis.si/prenos/ZRCola/$(MSIBUILD_VERSION_STR)
PUBLISH_PACKAGE_URL=https://www.amebis.si/prenos/ZRCola/$(MSIBUILD_VERSION_STR)
######################################################################
# Main targets
@@ -177,17 +180,21 @@ Unregister :: \
UnregisterSettings
RegisterSettings ::
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "Language" /t REG_SZ /d "en_US" $(REG_FLAGS) > NUL
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "LocalizationRepositoryPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\locale" $(REG_FLAGS) > NUL
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "DatabasePath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\data" $(REG_FLAGS) > NUL
!IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "Language" /t REG_SZ /d "en_US" $(REG_FLAGS32) > NUL
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "LocalizationRepositoryPath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\locale" $(REG_FLAGS32) > NUL
reg.exe add "HKLM\Software\Amebis\ZRCola" /v "DatabasePath" /t REG_SZ /d "$(MAKEDIR)\$(OUTPUT_DIR)\data" $(REG_FLAGS32) > NUL
!ENDIF
UnregisterSettings ::
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "Language" $(REG_FLAGS) > NUL
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "LocalizationRepositoryPath" $(REG_FLAGS) > NUL
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "DatabasePath" $(REG_FLAGS) > NUL
!IF "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "Language" $(REG_FLAGS32) > NUL
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "LocalizationRepositoryPath" $(REG_FLAGS32) > NUL
-reg.exe delete "HKLM\Software\Amebis\ZRCola" /v "DatabasePath" $(REG_FLAGS32) > NUL
!ENDIF
@@ -338,28 +345,28 @@ Localization :: \
"$(OUTPUT_DIR)\Win32.Release\stdex10u_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Release\wxExtend10u_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Release\ZRCola.exe" ::
devenv.com "ZRCola.sln" /build "Release|Win32"
"$(DEVENV10)" "ZRCola.sln" /build "Release|Win32"
"$(OUTPUT_DIR)\Win32.Debug\libZRCola10ud_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Debug\libZRColaUI10ud_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Debug\stdex10ud_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Debug\wxExtend10ud_vc100.dll" \
"$(OUTPUT_DIR)\Win32.Debug\ZRCola.exe" ::
devenv.com "ZRCola.sln" /build "Debug|Win32"
"$(DEVENV10)" "ZRCola.sln" /build "Debug|Win32"
"$(OUTPUT_DIR)\x64.Release\libZRCola10u_vc100.dll" \
"$(OUTPUT_DIR)\x64.Release\libZRColaUI10u_vc100.dll" \
"$(OUTPUT_DIR)\x64.Release\stdex10u_vc100.dll" \
"$(OUTPUT_DIR)\x64.Release\wxExtend10u_vc100.dll" \
"$(OUTPUT_DIR)\x64.Release\ZRCola.exe" ::
devenv.com "ZRCola.sln" /build "Release|x64"
"$(DEVENV10)" "ZRCola.sln" /build "Release|x64"
"$(OUTPUT_DIR)\x64.Debug\libZRCola10ud_vc100.dll" \
"$(OUTPUT_DIR)\x64.Debug\libZRColaUI10ud_vc100.dll" \
"$(OUTPUT_DIR)\x64.Debug\stdex10ud_vc100.dll" \
"$(OUTPUT_DIR)\x64.Debug\wxExtend10ud_vc100.dll" \
"$(OUTPUT_DIR)\x64.Debug\ZRCola.exe" ::
devenv.com "ZRCola.sln" /build "Debug|x64"
"$(DEVENV10)" "ZRCola.sln" /build "Debug|x64"
"$(OUTPUT_DIR)\ZRCola32.ddf" : \
# "$(OUTPUT_DIR)\ZRCola.de_DE.32.2.msi" \

View File

@@ -16,6 +16,7 @@ https://www.amebis.si/prenos/ZRCola/
- _sed.exe_ and _grep.exe_
- Command line utilities from Microsoft Windows SDK Bin folder: distributed with Visual Studio, add Bin folder to path manually.
- Additional command line utilities from project's bin folder: add bin folder to path. The source code is provided on request.
- wxWidgets 3.0 - set `WXWIN` environment variable to the folder where wxWidgets include and lib files are located. Official binary builds are required.
### Digital Signing of Build Outputs
In order to have the build process digitally sign output files, one should provide the following:
@@ -38,6 +39,9 @@ Use Microsoft NMAKE to build the project. The resulting files can be found in ou
The `/ls` flag can be appended to the commands above to reduce NMAKE's verbosity. You can combine multiple targets (i.e. nmake Unregister Clean). Please, see NMAKE reference for further reading.
## Translating ZRCola
Instructions how to translate ZRCola to your language can be found [here](LOCALIZATION.md).
## Contact Information
Please contact the following addressee for further information and help:
- ZRC SAZU, ZRCola@zrc-sazu.si

Submodule Updater updated: 5e6427ab00...9f119e3182

View File

@@ -1,5 +1,5 @@
#
# Copyright 1991-2016 Amebis
# Copyright 1991-2017 Amebis
#
# This file is part of ZRCola.
#

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -128,8 +128,6 @@
<ItemGroup>
<None Include="locale\ZRCola.pot" />
<None Include="res\char_select.ico" />
<None Include="res\copy_composed_and_return.ico" />
<None Include="res\copy_decomposed_and_return.ico" />
<None Include="res\edit_copy.ico" />
<None Include="res\edit_cut.ico" />
<None Include="res\edit_paste.ico" />

View File

@@ -137,12 +137,6 @@
<None Include="res\navigate_forward.ico">
<Filter>Resource Files</Filter>
</None>
<None Include="res\copy_composed_and_return.ico">
<Filter>Resource Files</Filter>
</None>
<None Include="res\copy_decomposed_and_return.ico">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ZRCola.rc">

View File

@@ -2,7 +2,7 @@
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2017-04-03 12:01+0200\n"
"POT-Creation-Date: 2016-10-18 10:07+0200\n"
"PO-Revision-Date: 2016-05-13 15:52+0200\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
@@ -10,9 +10,10 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"
"X-Generator: Poedit 1.8.10\n"
"X-Poedit-Basepath: ..\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: .\n"
@@ -22,69 +23,66 @@ msgstr ""
msgid "© 2004-%s ZRC SAZU"
msgstr ""
#: zrcolaapp.cpp:72 zrcolafrm.cpp:92 zrcolagui.cpp:980 zrcolagui.h:106
#: zrcolaapp.cpp:71 zrcolafrm.cpp:90 zrcolagui.cpp:874 zrcolagui.h:104
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola"
msgstr ""
#: zrcolachrreq.cpp:49 zrcolagui.cpp:1110
#: zrcolachrreq.cpp:49 zrcolagui.cpp:1004
msgid "Character"
msgstr ""
#: zrcolachrreq.cpp:58 zrcolagui.cpp:1131
#: zrcolachrreq.cpp:58 zrcolagui.cpp:1025
msgid "Context"
msgstr ""
#: zrcolachrreq.cpp:64 zrcolagui.h:379
#: zrcolachrreq.cpp:64 zrcolagui.h:363
msgid "Request a New Character"
msgstr ""
#: zrcolachrslct.cpp:89
msgid "Too many digits in Unicode."
msgstr ""
#: zrcolachrslct.cpp:89 zrcolachrslct.cpp:107
msgid "Validation conflict"
msgstr ""
#: zrcolachrslct.cpp:107
#, c-format
msgid "Invalid character in Unicode found: %c"
msgstr ""
#: zrcolachrslct.cpp:214 zrcolachrslct.cpp:390 zrcolachrslct.cpp:869
#: zrcolachrslct.cpp:46 zrcolachrslct.cpp:226 zrcolachrslct.cpp:677
msgid "▸ Search Options"
msgstr ""
#: zrcolachrslct.cpp:328
#: zrcolachrslct.cpp:164
msgid ", "
msgstr ""
#: zrcolachrslct.cpp:393 zrcolachrslct.cpp:866
#: zrcolachrslct.cpp:229 zrcolachrslct.cpp:674
msgid "▾ Search Options"
msgstr ""
#: zrcolafrm.cpp:143
msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."
#: zrcolafrm.cpp:141
msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available."
msgstr ""
#: zrcolafrm.cpp:143 zrcolafrm.cpp:145
#: zrcolafrm.cpp:141 zrcolafrm.cpp:143
msgid "Warning"
msgstr ""
#: zrcolafrm.cpp:145
msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."
#: zrcolafrm.cpp:143
msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available."
msgstr ""
#: zrcolafrm.cpp:362
#: zrcolafrm.cpp:351
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr ""
#: zrcolafrm.cpp:386
msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolafrm.cpp:375
msgid ""
"http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/"
"ZRCola_tipkovnica_Jun2016.pdf"
msgstr ""
#: zrcolagui.cpp:36
@@ -111,7 +109,7 @@ msgstr ""
msgid "Find C&haracter..."
msgstr ""
#: zrcolagui.cpp:78 zrcolagui.cpp:198
#: zrcolagui.cpp:78 zrcolagui.cpp:180
msgid "Display character search to select character to insert into text"
msgstr ""
@@ -119,459 +117,421 @@ msgstr ""
msgid "&Send Composed"
msgstr ""
#: zrcolagui.cpp:89 zrcolagui.cpp:200
#: zrcolagui.cpp:89 zrcolagui.cpp:182
msgid "Send composed text to source window"
msgstr ""
#: zrcolagui.cpp:98
msgid "Copy Composed and &Return"
msgstr ""
#: zrcolagui.cpp:98
msgid "Copy composed text to clipboard and return focus to source window"
msgstr ""
#: zrcolagui.cpp:107
msgid "Send &Decomposed"
msgstr ""
#: zrcolagui.cpp:107 zrcolagui.cpp:202
#: zrcolagui.cpp:98 zrcolagui.cpp:184
msgid "Send decomposed text to source window"
msgstr ""
#: zrcolagui.cpp:116
msgid "Copy Decomposed and Re&turn"
msgstr ""
#: zrcolagui.cpp:116
msgid "Copy decomposed text to clipboard and return focus to source window"
msgstr ""
#: zrcolagui.cpp:125
#: zrcolagui.cpp:107
msgid "Abort (De)composition"
msgstr ""
#: zrcolagui.cpp:125
#: zrcolagui.cpp:107
msgid "Abort composition and return focus to source window"
msgstr ""
#: zrcolagui.cpp:136
#: zrcolagui.cpp:118
msgid "&Settings..."
msgstr ""
#: zrcolagui.cpp:136
#: zrcolagui.cpp:118
msgid "Open program configuration dialog"
msgstr ""
#: zrcolagui.cpp:139
#: zrcolagui.cpp:121
msgid "&Edit"
msgstr ""
#: zrcolagui.cpp:143
#: zrcolagui.cpp:125
msgid "&Edit Toolbar"
msgstr ""
#: zrcolagui.cpp:143
#: zrcolagui.cpp:125
msgid "Toggle edit toolbar"
msgstr ""
#: zrcolagui.cpp:147
#: zrcolagui.cpp:129
msgid "&Compose Toolbar"
msgstr ""
#: zrcolagui.cpp:147
#: zrcolagui.cpp:129
msgid "Toggle compose toolbar"
msgstr ""
#: zrcolagui.cpp:153
#: zrcolagui.cpp:135
msgid "Character Catalo&g"
msgstr ""
#: zrcolagui.cpp:153
#: zrcolagui.cpp:135
msgid "Toggle character catalog panel"
msgstr ""
#: zrcolagui.cpp:156
#: zrcolagui.cpp:138
msgid "&View"
msgstr ""
#: zrcolagui.cpp:160
#: zrcolagui.cpp:142
msgid "&Instructions..."
msgstr ""
#: zrcolagui.cpp:160
#: zrcolagui.cpp:142
msgid "Open a web site with product instructions"
msgstr ""
#: zrcolagui.cpp:164
#: zrcolagui.cpp:146
msgid "Keyboard &Shortcuts..."
msgstr ""
#: zrcolagui.cpp:164
#: zrcolagui.cpp:146
msgid "Open a list of keyboard shortcuts"
msgstr ""
#: zrcolagui.cpp:170
#: zrcolagui.cpp:152
msgid "&Request a new character..."
msgstr ""
#: zrcolagui.cpp:170
#: zrcolagui.cpp:152
msgid "Submit a request to ZRC to add a new character"
msgstr ""
#: zrcolagui.cpp:174
#: zrcolagui.cpp:156
msgid "Check for &Updates..."
msgstr ""
#: zrcolagui.cpp:174
#: zrcolagui.cpp:156
msgid "Check online for product update"
msgstr ""
#: zrcolagui.cpp:180
#: zrcolagui.cpp:162
msgid "&About..."
msgstr ""
#: zrcolagui.cpp:183
#: zrcolagui.cpp:165
msgid "&Help"
msgstr ""
#: zrcolagui.cpp:188
#: zrcolagui.cpp:170
msgid "Cut"
msgstr ""
#: zrcolagui.cpp:188
#: zrcolagui.cpp:170
msgid "Cut selection"
msgstr ""
#: zrcolagui.cpp:190
#: zrcolagui.cpp:172
msgid "Copy"
msgstr ""
#: zrcolagui.cpp:190
#: zrcolagui.cpp:172
msgid "Copy selection"
msgstr ""
#: zrcolagui.cpp:192
#: zrcolagui.cpp:174
msgid "Paste"
msgstr ""
#: zrcolagui.cpp:192
#: zrcolagui.cpp:174
msgid "Paste selection"
msgstr ""
#: zrcolagui.cpp:195
#: zrcolagui.cpp:177
msgid "Edit"
msgstr ""
#: zrcolagui.cpp:198
#: zrcolagui.cpp:180
msgid "Find Character"
msgstr ""
#: zrcolagui.cpp:200
#: zrcolagui.cpp:182
msgid "Send Composed"
msgstr ""
#: zrcolagui.cpp:202
#: zrcolagui.cpp:184
msgid "Send Decomposed"
msgstr ""
#: zrcolagui.cpp:205
#: zrcolagui.cpp:187
msgid "Compose"
msgstr ""
#: zrcolagui.cpp:209
#: zrcolagui.cpp:191
msgid "Character Catalog"
msgstr ""
#: zrcolagui.cpp:213
#: zrcolagui.cpp:195
msgid "(De)Composer"
msgstr ""
#: zrcolagui.cpp:252
#: zrcolagui.cpp:234
msgid "Decomposed Text"
msgstr ""
#: zrcolagui.cpp:272
#: zrcolagui.cpp:254
msgid "Decomposed Unicode Dump"
msgstr ""
#: zrcolagui.cpp:299
#: zrcolagui.cpp:281
msgid "Composed Text"
msgstr ""
#: zrcolagui.cpp:319
#: zrcolagui.cpp:301
msgid "Composed Unicode Dump"
msgstr ""
#: zrcolagui.cpp:373
#: zrcolagui.cpp:355
msgid "Select category to display"
msgstr ""
#: zrcolagui.cpp:407
#: zrcolagui.cpp:389
msgid "Show &All"
msgstr ""
#: zrcolagui.cpp:408
#: zrcolagui.cpp:390
msgid "Toggle display of less frequent characters"
msgstr ""
#: zrcolagui.cpp:448
#: zrcolagui.cpp:430
msgid "&Browse"
msgstr ""
#: zrcolagui.cpp:455
msgid "Full or partial terms from Unicode character description (in English) to search for"
#: zrcolagui.cpp:437
msgid ""
"Full or partial terms from Unicode character description (in English) to "
"search for"
msgstr ""
#: zrcolagui.cpp:459
#: zrcolagui.cpp:441
msgid "Search Options"
msgstr ""
#: zrcolagui.cpp:460
#: zrcolagui.cpp:442
msgid "Shows/hides additional search options"
msgstr ""
#: zrcolagui.cpp:472
#: zrcolagui.cpp:454
msgid "List of Unicode character categories to search in"
msgstr ""
#: zrcolagui.cpp:479
#: zrcolagui.cpp:461
msgid "All"
msgstr ""
#: zrcolagui.cpp:480
#: zrcolagui.cpp:462
msgid "Select all categories"
msgstr ""
#: zrcolagui.cpp:484
#: zrcolagui.cpp:466
msgid "None"
msgstr ""
#: zrcolagui.cpp:485
#: zrcolagui.cpp:467
msgid "Clear category selection"
msgstr ""
#: zrcolagui.cpp:489
#: zrcolagui.cpp:471
msgid "Invert"
msgstr ""
#: zrcolagui.cpp:490
#: zrcolagui.cpp:472
msgid "Invert category selection"
msgstr ""
#: zrcolagui.cpp:529
#: zrcolagui.cpp:511
msgid "Character search results"
msgstr ""
#: zrcolagui.cpp:539
#: zrcolagui.cpp:521
msgid "Re&cently Used"
msgstr ""
#: zrcolagui.cpp:567
#: zrcolagui.cpp:549
msgid "List of recently inserted characters"
msgstr ""
#: zrcolagui.cpp:581
#: zrcolagui.cpp:563
msgid "Preview"
msgstr ""
#: zrcolagui.cpp:586
#: zrcolagui.cpp:568
msgid "U+"
msgstr ""
#: zrcolagui.cpp:591
#: zrcolagui.cpp:573
msgid "Unicode hexadecimal code"
msgstr ""
#: zrcolagui.cpp:596
#: zrcolagui.cpp:578
msgid "Keyboard shortcut in Composer window"
msgstr ""
#: zrcolagui.cpp:631
#: zrcolagui.cpp:613
msgid "Character preview"
msgstr ""
#: zrcolagui.cpp:636
#: zrcolagui.cpp:618
msgid "Unicode character description"
msgstr ""
#: zrcolagui.cpp:641
#: zrcolagui.cpp:623
msgid "Character tags"
msgstr ""
#: zrcolagui.cpp:646
#: zrcolagui.cpp:628
msgid "Unicode character category"
msgstr ""
#: zrcolagui.cpp:653
#: zrcolagui.cpp:635
msgid "« Back"
msgstr ""
#: zrcolagui.cpp:655
#: zrcolagui.cpp:637
msgid "To previously viewed character"
msgstr ""
#: zrcolagui.cpp:659
#: zrcolagui.cpp:641
msgid "Forward »"
msgstr ""
#: zrcolagui.cpp:661
#: zrcolagui.cpp:643
msgid "To following viewed character"
msgstr ""
#: zrcolagui.cpp:672
#: zrcolagui.cpp:654
msgid "Re&lated"
msgstr ""
#: zrcolagui.cpp:699
#: zrcolagui.cpp:681
msgid "List of related characters"
msgstr ""
#: zrcolagui.cpp:790
#: zrcolagui.cpp:770
msgid ""
"Some character native to specific language you are working with should not decompose to primitives.\n"
"Some character native to specific language you are working with should not "
"decompose to primitives.\n"
"For optimal decomposition you should set the language correctly."
msgstr ""
#: zrcolagui.cpp:794
#: zrcolagui.cpp:774
msgid "Select language &automatically according to selected keyboard"
msgstr ""
#: zrcolagui.cpp:797
#: zrcolagui.cpp:777
msgid "&Manually select the language from the list below:"
msgstr ""
#: zrcolagui.cpp:809
#: zrcolagui.cpp:789
msgid "Text Language"
msgstr ""
#: zrcolagui.cpp:816
msgid ""
"ZRCola offers multiple text transformations that can be arranged in a sequence.\n"
"Please select desired transformations and the order they are applied."
msgstr ""
#: zrcolagui.cpp:831
msgid "A&vailable:"
msgstr ""
#: zrcolagui.cpp:844
msgid ">"
msgstr ""
#: zrcolagui.cpp:847
msgid "<"
msgstr ""
#: zrcolagui.cpp:856
msgid "&Active:"
msgstr ""
#: zrcolagui.cpp:872
msgid "Up"
msgstr ""
#: zrcolagui.cpp:875
msgid "Down"
msgstr ""
#: zrcolagui.cpp:885
msgid "Transformation"
msgstr ""
#: zrcolagui.cpp:892
#: zrcolagui.cpp:794
msgid ""
"ZRCola can be launched every time you log in to your computer.\n"
"It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6."
"It will be available on the system tray and via registered shortcuts Win+F5 "
"and Win+F6."
msgstr ""
#: zrcolagui.cpp:896
#: zrcolagui.cpp:798
msgid "Start ZRCola &automatically on logon"
msgstr ""
#: zrcolagui.cpp:903
#: zrcolagui.cpp:805
msgid "Startup"
msgstr ""
#: zrcolagui.cpp:991
#: zrcolagui.cpp:885
msgid ""
"Program and Website Editor: Janoš Ježovnik\n"
"Development: Amebis, d. o. o., Kamnik\n"
"Translation into English: Janoš Ježovnik\n"
"Translation into Russian language: Domen Krvina, Silvo Torkar, Anastasia Plotnikova\n"
"Translation into Russian language: Domen Krvina, Silvo Torkar, Anastasia "
"Plotnikova\n"
"Development and maintenance of the original program (20042015): Peter Weiss"
msgstr ""
#: zrcolagui.cpp:999
#: zrcolagui.cpp:893
msgid "zrcola.zrc-sazu.si"
msgstr ""
#: zrcolagui.cpp:1005
msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:"
#: zrcolagui.cpp:899
msgid ""
"Texts made using ZRCola have to include in a footnote or some other "
"appropriate part of the publication the note below:"
msgstr ""
#: zrcolagui.cpp:1009
msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss."
#: zrcolagui.cpp:903
msgid ""
"This text was written using the ZRCola input system (http://zrcola.zrc-sazu."
"si), developed at the Science and Research Centre of SAZU in Ljubljana "
"(http://www.zrc-sazu.si) by Peter Weiss."
msgstr ""
#: zrcolagui.cpp:1050
#: zrcolagui.cpp:944
msgid "Log"
msgstr ""
#: zrcolagui.cpp:1066
#: zrcolagui.cpp:960
msgid "Quit and &Update..."
msgstr ""
#: zrcolagui.cpp:1068
#: zrcolagui.cpp:962
msgid "Exit this program and launch product update"
msgstr ""
#: zrcolagui.cpp:1072
#: zrcolagui.cpp:966
msgid "&Close"
msgstr ""
#: zrcolagui.cpp:1073
#: zrcolagui.cpp:967
msgid "Close this window"
msgstr ""
#: zrcolagui.cpp:1112
#: zrcolagui.cpp:1006
msgid "Enter the &character you would like to request:"
msgstr ""
#: zrcolagui.cpp:1119
#: zrcolagui.cpp:1013
msgid "Decomposed character to request"
msgstr ""
#: zrcolagui.cpp:1123
#: zrcolagui.cpp:1017
msgid ""
"Please, use the decomposed form.\n"
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window."
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste "
"it from the Decomposed window."
msgstr ""
#: zrcolagui.cpp:1133
msgid "The &context, examples or description why and where the character is required:"
#: zrcolagui.cpp:1027
msgid ""
"The &context, examples or description why and where the character is "
"required:"
msgstr ""
#: zrcolagui.cpp:1139
#: zrcolagui.cpp:1033
msgid "Additional notes for character request"
msgstr ""
#: zrcolagui.cpp:1146
#: zrcolagui.cpp:1040
msgid ""
"After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway."
"After clicking OK button, your e-mail application should open allowing you "
"to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but "
"the Editor will be able to read them correctly anyway."
msgstr ""
#: zrcolakeyhndlr.cpp:44
msgid "INS key is pressed. Type the Unicode code of desired character now (up to four hexadecimal digits: 0-9, A-F), then release INS."
msgid ""
"INS key is pressed. Type the Unicode code of desired character now (up to "
"four hexadecimal digits: 0-9, A-F), then release INS."
msgstr ""
#: zrcolasettings.cpp:90
#, c-format
msgid "Unknown transformation (%u)"
msgstr ""
#: zrcolasettings.cpp:181
#: zrcolasettings.cpp:93
msgid "Start ZRCola automatically on logon"
msgstr ""
@@ -581,92 +541,139 @@ msgid ""
"Are you sure?"
msgstr ""
#: zrcolaupdater.cpp:94 zrcolagui.h:350
#: zrcolaupdater.cpp:94 zrcolagui.h:334
msgid "Product Update"
msgstr ""
#: zrcolagui.h:248
#: zrcolagui.h:246
msgid "Character Search"
msgstr ""
#: zrcolagui.h:299
#: zrcolagui.h:283
msgid "Settings"
msgstr ""
#: zrcolagui.h:325
#: zrcolagui.h:309
msgid "About ZRCola"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:15
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.x64.Release.Control-2.idtx:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "binUIHeader.bmp"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:5
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:6
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "bintutorial1.bmp"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:7
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "When configured, ZRCola starts at system startup and runs in the background. If needed, it can be brought up by pressing the combination Win+F5."
msgid ""
"When configured, ZRCola starts at system startup and runs in the background. "
"If needed, it can be brought up by pressing the combination Win+F5."
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:8
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the location of the cursor in the text. If ZRCola is brought to the foreground without using the aforementioned combination of keys, the program won't know where to insert the special characters!"
msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
"location of the cursor in the text. If ZRCola is brought to the foreground "
"without using the aforementioned combination of keys, the program won't know "
"where to insert the special characters!"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:19
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.x64.Release.Control-2.idtx:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19
msgid "&Continue"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:11
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:12
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "bintutorial2.bmp"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:13
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "The string of basic and substitute characters is entered into the upper input window of the program. In the window below the resulted special characters are displayed. To insert them in the text, the F5 key is used."
msgid ""
"The string of basic and substitute characters is entered into the upper "
"input window of the program. In the window below the resulted special "
"characters are displayed. To insert them in the text, the F5 key is used."
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:16
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:17
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "bintutorial3.bmp"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:18
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "Characters can be entered using keyboard shortcuts, the character catalogue (F4) or the character finding tool (F8)."
msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue "
"(F4) or the character finding tool (F8)."
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use"

View File

@@ -1,15 +1,15 @@
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2017-04-03 12:04+0200\n"
"PO-Revision-Date: 2017-04-03 12:05+0200\n"
"POT-Creation-Date: 2016-10-18 10:10+0200\n"
"PO-Revision-Date: 2016-10-18 10:10+0200\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"
"X-Generator: Poedit 1.8.10\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: UTF-8\n"
@@ -20,75 +20,74 @@ msgstr ""
msgid "© 2004-%s ZRC SAZU"
msgstr ""
#: zrcolaapp.cpp:72 zrcolafrm.cpp:92 zrcolagui.cpp:980 zrcolagui.h:106
#: zrcolaapp.cpp:71 zrcolafrm.cpp:90 zrcolagui.cpp:874 zrcolagui.h:104
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola"
msgstr "ZRCola"
#: zrcolachrreq.cpp:49 zrcolagui.cpp:1110
#: zrcolachrreq.cpp:49 zrcolagui.cpp:1004
#, fuzzy
msgid "Character"
msgstr "Eingabe eines Zeichenstils"
#: zrcolachrreq.cpp:58 zrcolagui.cpp:1131
#: zrcolachrreq.cpp:58 zrcolagui.cpp:1025
#, fuzzy
msgid "Context"
msgstr "Konnte den Kontext auf dem überlagerten Fenster nicht initialisieren."
#: zrcolachrreq.cpp:64 zrcolagui.h:379
#: zrcolachrreq.cpp:64 zrcolagui.h:363
msgid "Request a New Character"
msgstr ""
#: zrcolachrslct.cpp:89
msgid "Too many digits in Unicode."
msgstr ""
#: zrcolachrslct.cpp:89 zrcolachrslct.cpp:107
msgid "Validation conflict"
msgstr "Fehler bei der Validierung"
#: zrcolachrslct.cpp:107
#, c-format
msgid "Invalid character in Unicode found: %c"
msgstr ""
#: zrcolachrslct.cpp:214 zrcolachrslct.cpp:390 zrcolachrslct.cpp:869
#: zrcolachrslct.cpp:46 zrcolachrslct.cpp:226 zrcolachrslct.cpp:677
msgid "▸ Search Options"
msgstr ""
# Recitation separator
#: zrcolachrslct.cpp:328
#: zrcolachrslct.cpp:164
#, fuzzy
msgid ", "
msgstr ", "
#: zrcolachrslct.cpp:393 zrcolachrslct.cpp:866
#: zrcolachrslct.cpp:229 zrcolachrslct.cpp:674
msgid "▾ Search Options"
msgstr ""
#: zrcolafrm.cpp:143
msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."
#: zrcolafrm.cpp:141
msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available."
msgstr ""
#: zrcolafrm.cpp:143 zrcolafrm.cpp:145
#: zrcolafrm.cpp:141 zrcolafrm.cpp:143
#, fuzzy
msgid "Warning"
msgstr "Warnung: "
#: zrcolafrm.cpp:145
msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."
#: zrcolafrm.cpp:143
msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available."
msgstr ""
#: zrcolafrm.cpp:362
#: zrcolafrm.cpp:351
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/de/info/instructions/"
#: zrcolafrm.cpp:386
msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolafrm.cpp:375
msgid ""
"http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/"
"ZRCola_tipkovnica_Jun2016.pdf"
msgstr ""
"http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/"
"ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolagui.cpp:36
msgid "E&xit"
@@ -118,7 +117,7 @@ msgstr ""
msgid "Find C&haracter..."
msgstr "Eingabe eines Zeichenstils"
#: zrcolagui.cpp:78 zrcolagui.cpp:198
#: zrcolagui.cpp:78 zrcolagui.cpp:180
msgid "Display character search to select character to insert into text"
msgstr ""
@@ -127,489 +126,451 @@ msgstr ""
msgid "&Send Composed"
msgstr "Pošlji sestavljeno (F5)"
#: zrcolagui.cpp:89 zrcolagui.cpp:200
#: zrcolagui.cpp:89 zrcolagui.cpp:182
msgid "Send composed text to source window"
msgstr ""
#: zrcolagui.cpp:98
msgid "Copy Composed and &Return"
msgstr ""
#: zrcolagui.cpp:98
msgid "Copy composed text to clipboard and return focus to source window"
msgstr ""
#: zrcolagui.cpp:107
#, fuzzy
msgid "Send &Decomposed"
msgstr "Pošlji razstavljeno (F6)"
#: zrcolagui.cpp:107 zrcolagui.cpp:202
#: zrcolagui.cpp:98 zrcolagui.cpp:184
msgid "Send decomposed text to source window"
msgstr ""
#: zrcolagui.cpp:116
msgid "Copy Decomposed and Re&turn"
msgstr ""
#: zrcolagui.cpp:116
msgid "Copy decomposed text to clipboard and return focus to source window"
msgstr ""
#: zrcolagui.cpp:125
#: zrcolagui.cpp:107
msgid "Abort (De)composition"
msgstr ""
#: zrcolagui.cpp:125
#: zrcolagui.cpp:107
msgid "Abort composition and return focus to source window"
msgstr ""
#: zrcolagui.cpp:136
#: zrcolagui.cpp:118
msgid "&Settings..."
msgstr ""
#: zrcolagui.cpp:136
#: zrcolagui.cpp:118
msgid "Open program configuration dialog"
msgstr ""
#: zrcolagui.cpp:139
#: zrcolagui.cpp:121
#, fuzzy
msgid "&Edit"
msgstr "&Bearbeiten"
#: zrcolagui.cpp:143
#: zrcolagui.cpp:125
msgid "&Edit Toolbar"
msgstr ""
#: zrcolagui.cpp:143
#: zrcolagui.cpp:125
msgid "Toggle edit toolbar"
msgstr ""
#: zrcolagui.cpp:147
#: zrcolagui.cpp:129
msgid "&Compose Toolbar"
msgstr ""
#: zrcolagui.cpp:147
#: zrcolagui.cpp:129
msgid "Toggle compose toolbar"
msgstr ""
#: zrcolagui.cpp:153
#: zrcolagui.cpp:135
msgid "Character Catalo&g"
msgstr ""
#: zrcolagui.cpp:153
#: zrcolagui.cpp:135
msgid "Toggle character catalog panel"
msgstr ""
#: zrcolagui.cpp:156
#: zrcolagui.cpp:138
#, fuzzy
msgid "&View"
msgstr "&Ansicht..."
#: zrcolagui.cpp:160
#: zrcolagui.cpp:142
msgid "&Instructions..."
msgstr ""
#: zrcolagui.cpp:160
#: zrcolagui.cpp:142
msgid "Open a web site with product instructions"
msgstr ""
#: zrcolagui.cpp:164
#: zrcolagui.cpp:146
msgid "Keyboard &Shortcuts..."
msgstr ""
#: zrcolagui.cpp:164
#: zrcolagui.cpp:146
msgid "Open a list of keyboard shortcuts"
msgstr ""
#: zrcolagui.cpp:170
#: zrcolagui.cpp:152
msgid "&Request a new character..."
msgstr ""
#: zrcolagui.cpp:170
#: zrcolagui.cpp:152
msgid "Submit a request to ZRC to add a new character"
msgstr ""
#: zrcolagui.cpp:174
#: zrcolagui.cpp:156
msgid "Check for &Updates..."
msgstr ""
#: zrcolagui.cpp:174
#: zrcolagui.cpp:156
msgid "Check online for product update"
msgstr ""
#: zrcolagui.cpp:180
#: zrcolagui.cpp:162
msgid "&About..."
msgstr ""
#: zrcolagui.cpp:183
#: zrcolagui.cpp:165
#, fuzzy
msgid "&Help"
msgstr "&Hilfe"
#: zrcolagui.cpp:188
#: zrcolagui.cpp:170
#, fuzzy
msgid "Cut"
msgstr "Ausschneiden"
#: zrcolagui.cpp:188
#: zrcolagui.cpp:170
#, fuzzy
msgid "Cut selection"
msgstr "Auswahl ausschneiden"
#: zrcolagui.cpp:190
#: zrcolagui.cpp:172
#, fuzzy
msgid "Copy"
msgstr "Kopieren"
#: zrcolagui.cpp:190
#: zrcolagui.cpp:172
#, fuzzy
msgid "Copy selection"
msgstr "Auswahl kopieren"
#: zrcolagui.cpp:192
#: zrcolagui.cpp:174
#, fuzzy
msgid "Paste"
msgstr "Einfügen"
#: zrcolagui.cpp:192
#: zrcolagui.cpp:174
#, fuzzy
msgid "Paste selection"
msgstr "Auswahl einfügen"
#: zrcolagui.cpp:195
#: zrcolagui.cpp:177
#, fuzzy
msgid "Edit"
msgstr "Bearbeiten"
#: zrcolagui.cpp:198
#: zrcolagui.cpp:180
#, fuzzy
msgid "Find Character"
msgstr "Eingabe eines Zeichenstils"
#: zrcolagui.cpp:200
#: zrcolagui.cpp:182
#, fuzzy
msgid "Send Composed"
msgstr "Pošlji sestavljeno (F5)"
#: zrcolagui.cpp:202
#: zrcolagui.cpp:184
#, fuzzy
msgid "Send Decomposed"
msgstr "Pošlji razstavljeno (F6)"
#: zrcolagui.cpp:205
#: zrcolagui.cpp:187
msgid "Compose"
msgstr ""
#: zrcolagui.cpp:209
#: zrcolagui.cpp:191
msgid "Character Catalog"
msgstr ""
#: zrcolagui.cpp:213
#: zrcolagui.cpp:195
msgid "(De)Composer"
msgstr ""
#: zrcolagui.cpp:252
#: zrcolagui.cpp:234
msgid "Decomposed Text"
msgstr ""
#: zrcolagui.cpp:272
#: zrcolagui.cpp:254
msgid "Decomposed Unicode Dump"
msgstr ""
#: zrcolagui.cpp:299
#: zrcolagui.cpp:281
msgid "Composed Text"
msgstr ""
#: zrcolagui.cpp:319
#: zrcolagui.cpp:301
msgid "Composed Unicode Dump"
msgstr ""
#: zrcolagui.cpp:373
#: zrcolagui.cpp:355
msgid "Select category to display"
msgstr ""
#: zrcolagui.cpp:407
#: zrcolagui.cpp:389
#, fuzzy
msgid "Show &All"
msgstr "Alles zeigen"
#: zrcolagui.cpp:408
#: zrcolagui.cpp:390
msgid "Toggle display of less frequent characters"
msgstr ""
#: zrcolagui.cpp:448
#: zrcolagui.cpp:430
#, fuzzy
msgid "&Browse"
msgstr "Durchsuchen"
#: zrcolagui.cpp:455
msgid "Full or partial terms from Unicode character description (in English) to search for"
#: zrcolagui.cpp:437
msgid ""
"Full or partial terms from Unicode character description (in English) to "
"search for"
msgstr ""
#: zrcolagui.cpp:459
#: zrcolagui.cpp:441
msgid "Search Options"
msgstr ""
#: zrcolagui.cpp:460
#: zrcolagui.cpp:442
msgid "Shows/hides additional search options"
msgstr ""
#: zrcolagui.cpp:472
#: zrcolagui.cpp:454
msgid "List of Unicode character categories to search in"
msgstr ""
#: zrcolagui.cpp:479
#: zrcolagui.cpp:461
#, fuzzy
msgid "All"
msgstr "Alle"
#: zrcolagui.cpp:480
#: zrcolagui.cpp:462
msgid "Select all categories"
msgstr ""
#: zrcolagui.cpp:484
#: zrcolagui.cpp:466
#, fuzzy
msgid "None"
msgstr "Kein"
#: zrcolagui.cpp:485
#: zrcolagui.cpp:467
#, fuzzy
msgid "Clear category selection"
msgstr "Auswahl kopieren"
#: zrcolagui.cpp:489
#: zrcolagui.cpp:471
msgid "Invert"
msgstr ""
#: zrcolagui.cpp:490
#: zrcolagui.cpp:472
#, fuzzy
msgid "Invert category selection"
msgstr "Auswahl einfügen"
#: zrcolagui.cpp:529
#: zrcolagui.cpp:511
#, fuzzy
msgid "Character search results"
msgstr "Skupine &znakov"
#: zrcolagui.cpp:539
#: zrcolagui.cpp:521
msgid "Re&cently Used"
msgstr ""
#: zrcolagui.cpp:567
#: zrcolagui.cpp:549
msgid "List of recently inserted characters"
msgstr ""
#: zrcolagui.cpp:581
#: zrcolagui.cpp:563
#, fuzzy
msgid "Preview"
msgstr " Vorschau"
#: zrcolagui.cpp:586
#: zrcolagui.cpp:568
msgid "U+"
msgstr "U+"
#: zrcolagui.cpp:591
#: zrcolagui.cpp:573
msgid "Unicode hexadecimal code"
msgstr ""
#: zrcolagui.cpp:596
#: zrcolagui.cpp:578
msgid "Keyboard shortcut in Composer window"
msgstr ""
#: zrcolagui.cpp:631
#: zrcolagui.cpp:613
#, fuzzy
msgid "Character preview"
msgstr "Skupine &znakov"
#: zrcolagui.cpp:636
#: zrcolagui.cpp:618
msgid "Unicode character description"
msgstr ""
#: zrcolagui.cpp:641
#: zrcolagui.cpp:623
#, fuzzy
msgid "Character tags"
msgstr "Eingabe eines Zeichenstils"
#: zrcolagui.cpp:646
#: zrcolagui.cpp:628
msgid "Unicode character category"
msgstr ""
#: zrcolagui.cpp:653
#: zrcolagui.cpp:635
#, fuzzy
msgid "« Back"
msgstr "< &Zurück"
#: zrcolagui.cpp:655
#: zrcolagui.cpp:637
msgid "To previously viewed character"
msgstr ""
#: zrcolagui.cpp:659
#: zrcolagui.cpp:641
#, fuzzy
msgid "Forward »"
msgstr "&Vorwärts"
#: zrcolagui.cpp:661
#: zrcolagui.cpp:643
msgid "To following viewed character"
msgstr ""
#: zrcolagui.cpp:672
#: zrcolagui.cpp:654
msgid "Re&lated"
msgstr ""
#: zrcolagui.cpp:699
#: zrcolagui.cpp:681
msgid "List of related characters"
msgstr ""
#: zrcolagui.cpp:790
#: zrcolagui.cpp:770
msgid ""
"Some character native to specific language you are working with should not decompose to primitives.\n"
"Some character native to specific language you are working with should not "
"decompose to primitives.\n"
"For optimal decomposition you should set the language correctly."
msgstr ""
#: zrcolagui.cpp:794
#: zrcolagui.cpp:774
msgid "Select language &automatically according to selected keyboard"
msgstr ""
#: zrcolagui.cpp:797
#: zrcolagui.cpp:777
msgid "&Manually select the language from the list below:"
msgstr ""
#: zrcolagui.cpp:809
#: zrcolagui.cpp:789
msgid "Text Language"
msgstr ""
#: zrcolagui.cpp:816
msgid ""
"ZRCola offers multiple text transformations that can be arranged in a sequence.\n"
"Please select desired transformations and the order they are applied."
msgstr ""
#: zrcolagui.cpp:831
msgid "A&vailable:"
msgstr ""
#: zrcolagui.cpp:844
msgid ">"
msgstr ">"
#: zrcolagui.cpp:847
msgid "<"
msgstr "<"
#: zrcolagui.cpp:856
msgid "&Active:"
msgstr ""
#: zrcolagui.cpp:872
msgid "Up"
msgstr ""
#: zrcolagui.cpp:875
msgid "Down"
msgstr ""
#: zrcolagui.cpp:885
msgid "Transformation"
msgstr ""
#: zrcolagui.cpp:892
#: zrcolagui.cpp:794
msgid ""
"ZRCola can be launched every time you log in to your computer.\n"
"It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6."
"It will be available on the system tray and via registered shortcuts Win+F5 "
"and Win+F6."
msgstr ""
#: zrcolagui.cpp:896
#: zrcolagui.cpp:798
msgid "Start ZRCola &automatically on logon"
msgstr ""
#: zrcolagui.cpp:903
#: zrcolagui.cpp:805
msgid "Startup"
msgstr ""
#: zrcolagui.cpp:991
#: zrcolagui.cpp:885
msgid ""
"Program and Website Editor: Janoš Ježovnik\n"
"Development: Amebis, d. o. o., Kamnik\n"
"Translation into English: Janoš Ježovnik\n"
"Translation into Russian language: Domen Krvina, Silvo Torkar, Anastasia Plotnikova\n"
"Translation into Russian language: Domen Krvina, Silvo Torkar, Anastasia "
"Plotnikova\n"
"Development and maintenance of the original program (20042015): Peter Weiss"
msgstr ""
#: zrcolagui.cpp:999
#: zrcolagui.cpp:893
msgid "zrcola.zrc-sazu.si"
msgstr ""
#: zrcolagui.cpp:1005
msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:"
#: zrcolagui.cpp:899
msgid ""
"Texts made using ZRCola have to include in a footnote or some other "
"appropriate part of the publication the note below:"
msgstr ""
#: zrcolagui.cpp:1009
msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss."
#: zrcolagui.cpp:903
msgid ""
"This text was written using the ZRCola input system (http://zrcola.zrc-sazu."
"si), developed at the Science and Research Centre of SAZU in Ljubljana "
"(http://www.zrc-sazu.si) by Peter Weiss."
msgstr ""
#: zrcolagui.cpp:1050
#: zrcolagui.cpp:944
#, fuzzy
msgid "Log"
msgstr "&Log"
#: zrcolagui.cpp:1066
#: zrcolagui.cpp:960
#, fuzzy
msgid "Quit and &Update..."
msgstr "Kann Benutzer-Konfigurationsdatei nicht aktualisieren."
#: zrcolagui.cpp:1068
#: zrcolagui.cpp:962
msgid "Exit this program and launch product update"
msgstr ""
#: zrcolagui.cpp:1072
#: zrcolagui.cpp:966
#, fuzzy
msgid "&Close"
msgstr "&Schließen"
#: zrcolagui.cpp:1073
#: zrcolagui.cpp:967
#, fuzzy
msgid "Close this window"
msgstr "Fenster schließen"
#: zrcolagui.cpp:1112
#: zrcolagui.cpp:1006
msgid "Enter the &character you would like to request:"
msgstr ""
#: zrcolagui.cpp:1119
#: zrcolagui.cpp:1013
msgid "Decomposed character to request"
msgstr ""
#: zrcolagui.cpp:1123
#: zrcolagui.cpp:1017
msgid ""
"Please, use the decomposed form.\n"
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window."
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste "
"it from the Decomposed window."
msgstr ""
#: zrcolagui.cpp:1133
msgid "The &context, examples or description why and where the character is required:"
#: zrcolagui.cpp:1027
msgid ""
"The &context, examples or description why and where the character is "
"required:"
msgstr ""
#: zrcolagui.cpp:1139
#: zrcolagui.cpp:1033
msgid "Additional notes for character request"
msgstr ""
#: zrcolagui.cpp:1146
#: zrcolagui.cpp:1040
msgid ""
"After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway."
"After clicking OK button, your e-mail application should open allowing you "
"to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but "
"the Editor will be able to read them correctly anyway."
msgstr ""
#: zrcolakeyhndlr.cpp:44
msgid "INS key is pressed. Type the Unicode code of desired character now (up to four hexadecimal digits: 0-9, A-F), then release INS."
msgid ""
"INS key is pressed. Type the Unicode code of desired character now (up to "
"four hexadecimal digits: 0-9, A-F), then release INS."
msgstr ""
#: zrcolasettings.cpp:90
#, c-format
msgid "Unknown transformation (%u)"
msgstr ""
#: zrcolasettings.cpp:181
#: zrcolasettings.cpp:93
msgid "Start ZRCola automatically on logon"
msgstr ""
@@ -619,55 +580,81 @@ msgid ""
"Are you sure?"
msgstr ""
#: zrcolaupdater.cpp:94 zrcolagui.h:350
#: zrcolaupdater.cpp:94 zrcolagui.h:334
msgid "Product Update"
msgstr ""
#: zrcolagui.h:248
#: zrcolagui.h:246
#, fuzzy
msgid "Character Search"
msgstr "Skupine &znakov"
#: zrcolagui.h:299
#: zrcolagui.h:283
msgid "Settings"
msgstr ""
#: zrcolagui.h:325
#: zrcolagui.h:309
msgid "About ZRCola"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:15
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.x64.Release.Control-2.idtx:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "binUIHeader.bmp"
msgstr "binUIHeader.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:5
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:6
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "bintutorial1.bmp"
msgstr "bintutorial1.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:7
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "When configured, ZRCola starts at system startup and runs in the background. If needed, it can be brought up by pressing the combination Win+F5."
msgid ""
"When configured, ZRCola starts at system startup and runs in the background. "
"If needed, it can be brought up by pressing the combination Win+F5."
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:8
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the location of the cursor in the text. If ZRCola is brought to the foreground without using the aforementioned combination of keys, the program won't know where to insert the special characters!"
msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
"location of the cursor in the text. If ZRCola is brought to the foreground "
"without using the aforementioned combination of keys, the program won't know "
"where to insert the special characters!"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:19
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.x64.Release.Control-2.idtx:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19
@@ -675,38 +662,59 @@ msgstr ""
msgid "&Continue"
msgstr "Konnte den Kontext auf dem überlagerten Fenster nicht initialisieren."
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:11
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:12
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "bintutorial2.bmp"
msgstr "bintutorial2.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:13
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "The string of basic and substitute characters is entered into the upper input window of the program. In the window below the resulted special characters are displayed. To insert them in the text, the F5 key is used."
msgid ""
"The string of basic and substitute characters is entered into the upper "
"input window of the program. In the window below the resulted special "
"characters are displayed. To insert them in the text, the F5 key is used."
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:16
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:17
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "bintutorial3.bmp"
msgstr "bintutorial3.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:18
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "Characters can be entered using keyboard shortcuts, the character catalogue (F4) or the character finding tool (F8)."
msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue "
"(F4) or the character finding tool (F8)."
msgstr ""
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use"

View File

@@ -1,17 +1,18 @@
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2017-04-03 12:04+0200\n"
"PO-Revision-Date: 2017-04-03 12:04+0200\n"
"POT-Creation-Date: 2016-10-18 10:09+0200\n"
"PO-Revision-Date: 2016-10-18 10:10+0200\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"
"X-Generator: Poedit 1.8.10\n"
"X-Poedit-Basepath: .\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"
"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-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: _\n"
@@ -20,71 +21,74 @@ msgstr ""
msgid "© 2004-%s ZRC SAZU"
msgstr "© 2004%s ZRC SAZU"
#: zrcolaapp.cpp:72 zrcolafrm.cpp:92 zrcolagui.cpp:980 zrcolagui.h:106
#: zrcolaapp.cpp:71 zrcolafrm.cpp:90 zrcolagui.cpp:874 zrcolagui.h:104
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola"
msgstr "ZRCola"
#: zrcolachrreq.cpp:49 zrcolagui.cpp:1110
#: zrcolachrreq.cpp:49 zrcolagui.cpp:1004
msgid "Character"
msgstr "Знак"
#: zrcolachrreq.cpp:58 zrcolagui.cpp:1131
#: zrcolachrreq.cpp:58 zrcolagui.cpp:1025
msgid "Context"
msgstr "Контекст"
#: zrcolachrreq.cpp:64 zrcolagui.h:379
#: zrcolachrreq.cpp:64 zrcolagui.h:363
msgid "Request a New Character"
msgstr "Запрос нового знака"
#: zrcolachrslct.cpp:89
msgid "Too many digits in Unicode."
msgstr ""
#: zrcolachrslct.cpp:89 zrcolachrslct.cpp:107
msgid "Validation conflict"
msgstr ""
#: zrcolachrslct.cpp:107
#, c-format
msgid "Invalid character in Unicode found: %c"
msgstr ""
#: zrcolachrslct.cpp:214 zrcolachrslct.cpp:390 zrcolachrslct.cpp:869
#: zrcolachrslct.cpp:46 zrcolachrslct.cpp:226 zrcolachrslct.cpp:677
msgid "▸ Search Options"
msgstr "▸ Опции поиска"
# Recitation separator
#: zrcolachrslct.cpp:328
#: zrcolachrslct.cpp:164
msgid ", "
msgstr ", "
#: zrcolachrslct.cpp:393 zrcolachrslct.cpp:866
#: zrcolachrslct.cpp:229 zrcolachrslct.cpp:674
msgid "▾ Search Options"
msgstr "▾ Опции поиска"
#: zrcolafrm.cpp:143
msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."
msgstr "Сочетание клавиш Win+F5 регистрировать. Некоторые функциональности не будут доступны."
#: zrcolafrm.cpp:141
msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available."
msgstr ""
"Сочетание клавиш Win+F5 \n"
"регистрировать. Некоторые функциональности не будут доступны."
#: zrcolafrm.cpp:143 zrcolafrm.cpp:145
#: zrcolafrm.cpp:141 zrcolafrm.cpp:143
msgid "Warning"
msgstr "Предупреждение"
#: zrcolafrm.cpp:145
msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."
msgstr "Сочетание клавиш Win+F6 невозможно регистрировать. Некоторые функциональности не будут доступны."
#: zrcolafrm.cpp:143
msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available."
msgstr ""
"Сочетание клавиш Win+F6 невозможно регистрировать. Некоторые "
"функциональности не будут доступны."
#: zrcolafrm.cpp:362
#: zrcolafrm.cpp:351
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/ru/info/instructions/"
#: zrcolafrm.cpp:386
msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolafrm.cpp:375
msgid ""
"http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/"
"ZRCola_tipkovnica_Jun2016.pdf"
msgstr ""
"http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/"
"ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolagui.cpp:36
msgid "E&xit"
@@ -110,7 +114,7 @@ msgstr "Выделить весь текст"
msgid "Find C&haracter..."
msgstr "Поиск &знака ..."
#: zrcolagui.cpp:78 zrcolagui.cpp:198
#: zrcolagui.cpp:78 zrcolagui.cpp:180
msgid "Display character search to select character to insert into text"
msgstr "Показать браузер знаков для вставления выбранного знака"
@@ -118,472 +122,449 @@ msgstr "Показать браузер знаков для вставления
msgid "&Send Composed"
msgstr "&Послать составленное"
#: zrcolagui.cpp:89 zrcolagui.cpp:200
#: zrcolagui.cpp:89 zrcolagui.cpp:182
msgid "Send composed text to source window"
msgstr "Послать составленный текст в исходное окно"
#: zrcolagui.cpp:98
msgid "Copy Composed and &Return"
msgstr "Копировать составленное и &возвратиться"
#: zrcolagui.cpp:98
msgid "Copy composed text to clipboard and return focus to source window"
msgstr "Копировать составленный текст в буфер обмена и возвратить фокус в исходное окно"
#: zrcolagui.cpp:107
msgid "Send &Decomposed"
msgstr "Послать &разобранное"
#: zrcolagui.cpp:107 zrcolagui.cpp:202
#: zrcolagui.cpp:98 zrcolagui.cpp:184
msgid "Send decomposed text to source window"
msgstr "Послать разобранный текст в исходное окно"
#: zrcolagui.cpp:116
msgid "Copy Decomposed and Re&turn"
msgstr "Копировать разобранное и возв&ратиться"
#: zrcolagui.cpp:116
msgid "Copy decomposed text to clipboard and return focus to source window"
msgstr "Копировать разобранный текст в буфер обмена и возвратить фокус в исходное окно"
#: zrcolagui.cpp:125
#: zrcolagui.cpp:107
msgid "Abort (De)composition"
msgstr "Прервать составление/разборку"
#: zrcolagui.cpp:125
#: zrcolagui.cpp:107
msgid "Abort composition and return focus to source window"
msgstr "Прервать составление и возвратить фокус в исходное окно"
#: zrcolagui.cpp:136
#: zrcolagui.cpp:118
msgid "&Settings..."
msgstr "&Настройки ..."
#: zrcolagui.cpp:136
#: zrcolagui.cpp:118
msgid "Open program configuration dialog"
msgstr "Открыть диалог конфигурации программы"
#: zrcolagui.cpp:139
#: zrcolagui.cpp:121
msgid "&Edit"
msgstr "&Правка"
#: zrcolagui.cpp:143
#: zrcolagui.cpp:125
msgid "&Edit Toolbar"
msgstr "Панель инструментов для &правки"
#: zrcolagui.cpp:143
#: zrcolagui.cpp:125
msgid "Toggle edit toolbar"
msgstr "Переключить панель инструментов для правки"
#: zrcolagui.cpp:147
#: zrcolagui.cpp:129
msgid "&Compose Toolbar"
msgstr "Панель инструментов для &составления"
#: zrcolagui.cpp:147
#: zrcolagui.cpp:129
msgid "Toggle compose toolbar"
msgstr "Переключить панель инструментов для составления"
#: zrcolagui.cpp:153
#: zrcolagui.cpp:135
msgid "Character Catalo&g"
msgstr "Список &знаков"
#: zrcolagui.cpp:153
#: zrcolagui.cpp:135
msgid "Toggle character catalog panel"
msgstr "Переключить список знаков"
#: zrcolagui.cpp:156
#: zrcolagui.cpp:138
msgid "&View"
msgstr "&Вид"
#: zrcolagui.cpp:160
#: zrcolagui.cpp:142
msgid "&Instructions..."
msgstr "&Инструкции ..."
#: zrcolagui.cpp:160
#: zrcolagui.cpp:142
msgid "Open a web site with product instructions"
msgstr "Открыть сайт с инструкциями по продукту"
#: zrcolagui.cpp:164
#: zrcolagui.cpp:146
msgid "Keyboard &Shortcuts..."
msgstr "Сочетания &клавиш ..."
#: zrcolagui.cpp:164
#: zrcolagui.cpp:146
msgid "Open a list of keyboard shortcuts"
msgstr "Открыть список сочетаний клавиш"
#: zrcolagui.cpp:170
#: zrcolagui.cpp:152
msgid "&Request a new character..."
msgstr "&Запрос нового знака ..."
#: zrcolagui.cpp:170
#: zrcolagui.cpp:152
msgid "Submit a request to ZRC to add a new character"
msgstr "Отправить запрос нового знака"
#: zrcolagui.cpp:174
#: zrcolagui.cpp:156
msgid "Check for &Updates..."
msgstr "Проверить наличие &обновлений ..."
#: zrcolagui.cpp:174
#: zrcolagui.cpp:156
msgid "Check online for product update"
msgstr "Проверить наличие обновлений онлайн"
#: zrcolagui.cpp:180
#: zrcolagui.cpp:162
msgid "&About..."
msgstr "О прогр&амме ..."
#: zrcolagui.cpp:183
#: zrcolagui.cpp:165
msgid "&Help"
msgstr "&Справка"
#: zrcolagui.cpp:188
#: zrcolagui.cpp:170
msgid "Cut"
msgstr "Вырезать"
#: zrcolagui.cpp:188
#: zrcolagui.cpp:170
msgid "Cut selection"
msgstr "Вырезать выбор"
#: zrcolagui.cpp:190
#: zrcolagui.cpp:172
msgid "Copy"
msgstr "Копировать"
#: zrcolagui.cpp:190
#: zrcolagui.cpp:172
msgid "Copy selection"
msgstr "Копировать выбор"
#: zrcolagui.cpp:192
#: zrcolagui.cpp:174
msgid "Paste"
msgstr "Вставить"
#: zrcolagui.cpp:192
#: zrcolagui.cpp:174
msgid "Paste selection"
msgstr "Вставить выбор"
#: zrcolagui.cpp:195
#: zrcolagui.cpp:177
msgid "Edit"
msgstr "Правка"
#: zrcolagui.cpp:198
#: zrcolagui.cpp:180
msgid "Find Character"
msgstr "Поиск знака"
#: zrcolagui.cpp:200
#: zrcolagui.cpp:182
msgid "Send Composed"
msgstr "Послать составленное (F5)"
#: zrcolagui.cpp:202
#: zrcolagui.cpp:184
msgid "Send Decomposed"
msgstr "Послать разобранное (F6)"
#: zrcolagui.cpp:205
#: zrcolagui.cpp:187
msgid "Compose"
msgstr "Составить"
#: zrcolagui.cpp:209
#: zrcolagui.cpp:191
msgid "Character Catalog"
msgstr "Список знаков"
#: zrcolagui.cpp:213
#: zrcolagui.cpp:195
msgid "(De)Composer"
msgstr "(Де)Композитор"
#: zrcolagui.cpp:252
#: zrcolagui.cpp:234
msgid "Decomposed Text"
msgstr "Разобранний текст"
#: zrcolagui.cpp:272
#: zrcolagui.cpp:254
msgid "Decomposed Unicode Dump"
msgstr "Дамп разобранного Юнукода"
#: zrcolagui.cpp:299
#: zrcolagui.cpp:281
msgid "Composed Text"
msgstr "Составленный текст"
#: zrcolagui.cpp:319
#: zrcolagui.cpp:301
msgid "Composed Unicode Dump"
msgstr "Дамп составленного Юникода"
#: zrcolagui.cpp:373
#: zrcolagui.cpp:355
msgid "Select category to display"
msgstr "Выделить категории для отображения"
#: zrcolagui.cpp:407
#: zrcolagui.cpp:389
msgid "Show &All"
msgstr "Показать &все"
#: zrcolagui.cpp:408
#: zrcolagui.cpp:390
msgid "Toggle display of less frequent characters"
msgstr "Переключить отображение редко использованных знаков"
#: zrcolagui.cpp:448
#: zrcolagui.cpp:430
msgid "&Browse"
msgstr "&Обзор"
#: zrcolagui.cpp:455
msgid "Full or partial terms from Unicode character description (in English) to search for"
#: zrcolagui.cpp:437
msgid ""
"Full or partial terms from Unicode character description (in English) to "
"search for"
msgstr "Полное либо частичное описание знака Юникод (на английском) для поиска"
#: zrcolagui.cpp:459
#: zrcolagui.cpp:441
msgid "Search Options"
msgstr "Опции поиска"
#: zrcolagui.cpp:460
#: zrcolagui.cpp:442
msgid "Shows/hides additional search options"
msgstr "Показать/скрыть дополнительные опции поиска"
#: zrcolagui.cpp:472
#: zrcolagui.cpp:454
msgid "List of Unicode character categories to search in"
msgstr "Список категории Юникод для проведения поиска"
#: zrcolagui.cpp:479
#: zrcolagui.cpp:461
msgid "All"
msgstr "Все"
#: zrcolagui.cpp:480
#: zrcolagui.cpp:462
msgid "Select all categories"
msgstr "Выбрать все категории"
#: zrcolagui.cpp:484
#: zrcolagui.cpp:466
msgid "None"
msgstr "Ничего"
#: zrcolagui.cpp:485
#: zrcolagui.cpp:467
msgid "Clear category selection"
msgstr "Очистить выбор категории"
#: zrcolagui.cpp:489
#: zrcolagui.cpp:471
msgid "Invert"
msgstr "Обратить"
#: zrcolagui.cpp:490
#: zrcolagui.cpp:472
msgid "Invert category selection"
msgstr "Обратить выбор категории"
#: zrcolagui.cpp:529
#: zrcolagui.cpp:511
msgid "Character search results"
msgstr "Результаты поиска знаков"
#: zrcolagui.cpp:539
#: zrcolagui.cpp:521
msgid "Re&cently Used"
msgstr "&Недавно использованное"
#: zrcolagui.cpp:567
#: zrcolagui.cpp:549
msgid "List of recently inserted characters"
msgstr "Список недавно вставленных знаков"
#: zrcolagui.cpp:581
#: zrcolagui.cpp:563
msgid "Preview"
msgstr "Просмотр"
#: zrcolagui.cpp:586
#: zrcolagui.cpp:568
msgid "U+"
msgstr "U+"
#: zrcolagui.cpp:591
#: zrcolagui.cpp:573
msgid "Unicode hexadecimal code"
msgstr "Шестнадцатеричный код Юникод"
#: zrcolagui.cpp:596
#: zrcolagui.cpp:578
msgid "Keyboard shortcut in Composer window"
msgstr "Сочетание клавиш в окне композитора"
#: zrcolagui.cpp:631
#: zrcolagui.cpp:613
msgid "Character preview"
msgstr "Просмотр знака"
#: zrcolagui.cpp:636
#: zrcolagui.cpp:618
msgid "Unicode character description"
msgstr "Описание знака Юникод"
#: zrcolagui.cpp:641
#: zrcolagui.cpp:623
msgid "Character tags"
msgstr "Ключевые слова"
#: zrcolagui.cpp:646
#: zrcolagui.cpp:628
msgid "Unicode character category"
msgstr "Категория знака Юникод"
#: zrcolagui.cpp:653
#: zrcolagui.cpp:635
msgid "« Back"
msgstr "« Назад"
#: zrcolagui.cpp:655
#: zrcolagui.cpp:637
msgid "To previously viewed character"
msgstr "К предыдущему знаку"
#: zrcolagui.cpp:659
#: zrcolagui.cpp:641
msgid "Forward »"
msgstr "Далее »"
#: zrcolagui.cpp:661
#: zrcolagui.cpp:643
msgid "To following viewed character"
msgstr "К следующему знаку"
#: zrcolagui.cpp:672
#: zrcolagui.cpp:654
msgid "Re&lated"
msgstr "&Связанное"
#: zrcolagui.cpp:699
#: zrcolagui.cpp:681
msgid "List of related characters"
msgstr "Список связанных знаков"
#: zrcolagui.cpp:790
#: zrcolagui.cpp:770
msgid ""
"Some character native to specific language you are working with should not decompose to primitives.\n"
"Some character native to specific language you are working with should not "
"decompose to primitives.\n"
"For optimal decomposition you should set the language correctly."
msgstr ""
"Некоторые знаки использованного языка нельзя разбирать.\n"
"Для оптимальной разборки вы должны настроить правильный язык."
#: zrcolagui.cpp:794
#: zrcolagui.cpp:774
msgid "Select language &automatically according to selected keyboard"
msgstr "&Автоматически установить язык на основе выбранной клавиатуры"
#: zrcolagui.cpp:797
#: zrcolagui.cpp:777
msgid "&Manually select the language from the list below:"
msgstr "&Вручную выбрать язык со списка:"
#: zrcolagui.cpp:809
#: zrcolagui.cpp:789
msgid "Text Language"
msgstr "Язык текста"
#: zrcolagui.cpp:816
msgid ""
"ZRCola offers multiple text transformations that can be arranged in a sequence.\n"
"Please select desired transformations and the order they are applied."
msgstr ""
#: zrcolagui.cpp:831
msgid "A&vailable:"
msgstr ""
#: zrcolagui.cpp:844
msgid ">"
msgstr ">"
#: zrcolagui.cpp:847
msgid "<"
msgstr "<"
#: zrcolagui.cpp:856
msgid "&Active:"
msgstr ""
#: zrcolagui.cpp:872
msgid "Up"
msgstr "Up"
#: zrcolagui.cpp:875
msgid "Down"
msgstr "Down"
#: zrcolagui.cpp:885
msgid "Transformation"
msgstr ""
#: zrcolagui.cpp:892
#: zrcolagui.cpp:794
msgid ""
"ZRCola can be launched every time you log in to your computer.\n"
"It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6."
"It will be available on the system tray and via registered shortcuts Win+F5 "
"and Win+F6."
msgstr ""
"Запуск системы ZRCola возможен при каждом запуске компьютера.\n"
"После запуска система ZRCola доступна на панели задач либо через нажатие сочетания клавиш Win+F5 и Win+F6."
"После запуска система ZRCola доступна на панели задач либо через нажатие "
"сочетания клавиш Win+F5 и Win+F6."
#: zrcolagui.cpp:896
#: zrcolagui.cpp:798
msgid "Start ZRCola &automatically on logon"
msgstr "&Автоматически запустить систему ZRCola при запуске компьютера"
#: zrcolagui.cpp:903
#: zrcolagui.cpp:805
msgid "Startup"
msgstr "Запуск"
#: zrcolagui.cpp:991
#: zrcolagui.cpp:885
msgid ""
"Program and Website Editor: Janoš Ježovnik\n"
"Development: Amebis, d. o. o., Kamnik\n"
"Translation into English: Janoš Ježovnik\n"
"Translation into Russian language: Domen Krvina, Silvo Torkar, Anastasia Plotnikova\n"
"Translation into Russian language: Domen Krvina, Silvo Torkar, Anastasia "
"Plotnikova\n"
"Development and maintenance of the original program (20042015): Peter Weiss"
msgstr ""
"Администратор программы и сайта: Янош Ежовник (Janoš Ježovnik)\n"
"Разработка: Amebis, d. o. o., Kamnik\n"
"Перевод на английский яазык: Янош Ежовник (Janoš Ježovnik)\n"
"Перевод на русский язык: Домен Крвина (Domen Krvina), Силво Торкар (Silvo Torkar), Анастасия Плотникова\n"
"Разработка in техническая поддержка первоначальной программы (20042015): Петер Вейсс (Peter Weiss)"
"Перевод на русский язык: Домен Крвина (Domen Krvina), Силво Торкар (Silvo "
"Torkar), Анастасия Плотникова\n"
"Разработка in техническая поддержка первоначальной программы (20042015): "
"Петер Вейсс (Peter Weiss)"
#: zrcolagui.cpp:999
#: zrcolagui.cpp:893
msgid "zrcola.zrc-sazu.si"
msgstr "zrcola.zrc-sazu.si"
#: zrcolagui.cpp:1005
msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:"
msgstr "Текст, созданный с помощью системы ZRCola, должен в примечании или другом соответствующем месте в публикации сопровождаться следующей записью:"
#: zrcolagui.cpp:899
msgid ""
"Texts made using ZRCola have to include in a footnote or some other "
"appropriate part of the publication the note below:"
msgstr ""
"Текст, созданный с помощью системы ZRCola, должен в примечании или другом "
"соответствующем месте в публикации сопровождаться следующей записью:"
#: zrcolagui.cpp:1009
msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss."
msgstr "Текст подготовлен с помощью системы ввода ZRCola (http://zrcola.zrc-sazu.si), разработанной в Научно-исследовательском центре Словенской академии наук и искусств в Любляне (http://www.zrc-sazu.si) Петром Вейсс."
#: zrcolagui.cpp:903
msgid ""
"This text was written using the ZRCola input system (http://zrcola.zrc-sazu."
"si), developed at the Science and Research Centre of SAZU in Ljubljana "
"(http://www.zrc-sazu.si) by Peter Weiss."
msgstr ""
"Текст подготовлен с помощью системы ввода ZRCola (http://zrcola.zrc-sazu."
"si), разработанной в Научно-исследовательском центре Словенской академии "
"наук и искусств в Любляне (http://www.zrc-sazu.si) Петром Вейссoм."
#: zrcolagui.cpp:1050
#: zrcolagui.cpp:944
msgid "Log"
msgstr "Журнал"
#: zrcolagui.cpp:1066
#: zrcolagui.cpp:960
msgid "Quit and &Update..."
msgstr "Выйти и &обновить ..."
#: zrcolagui.cpp:1068
#: zrcolagui.cpp:962
msgid "Exit this program and launch product update"
msgstr "Выйти из программы и запустить обновление"
#: zrcolagui.cpp:1072
#: zrcolagui.cpp:966
msgid "&Close"
msgstr "&Закрыть"
#: zrcolagui.cpp:1073
#: zrcolagui.cpp:967
msgid "Close this window"
msgstr "Закрыть это окно"
#: zrcolagui.cpp:1112
#: zrcolagui.cpp:1006
msgid "Enter the &character you would like to request:"
msgstr "Ввести запрашиваемый &знак:"
#: zrcolagui.cpp:1119
#: zrcolagui.cpp:1013
msgid "Decomposed character to request"
msgstr "Запрашиваемый разобранный знак"
#: zrcolagui.cpp:1123
#: zrcolagui.cpp:1017
msgid ""
"Please, use the decomposed form.\n"
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window."
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste "
"it from the Decomposed window."
msgstr ""
"Пожалуйста, используйте разобранный формат.\n"
"Для ввода запрашиваемого знака можно использовать сочетания клавиш системы ZRCola либо копировать и вставить знаки из окна для разборки."
"Для ввода запрашиваемого знака можно использовать сочетания клавиш системы "
"ZRCola либо копировать и вставить знаки из окна для разборки."
#: zrcolagui.cpp:1133
msgid "The &context, examples or description why and where the character is required:"
msgstr "&Контекст, примеры либо описание запрашиваемого знака или объяснение, зачем он нужен:"
#: zrcolagui.cpp:1027
msgid ""
"The &context, examples or description why and where the character is "
"required:"
msgstr ""
"&Контекст, примеры либо описание запрашиваемого знака или объяснение, зачем "
"он нужен:"
#: zrcolagui.cpp:1139
#: zrcolagui.cpp:1033
msgid "Additional notes for character request"
msgstr "Дополнительные примечания"
#: zrcolagui.cpp:1146
#: zrcolagui.cpp:1040
msgid ""
"After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway."
"After clicking OK button, your e-mail application should open allowing you "
"to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but "
"the Editor will be able to read them correctly anyway."
msgstr ""
"После нажатия на кнопку «OK» ваша почтовая программа должна открытся для отправки запроса нового знака администратору системы ZRCola.\n"
"Возможно, не все знаки будут отображены правильно, но все информации будут закодированны таким образом, что администратор сможет их правильно прочитать."
"После нажатия на кнопку «OK» ваша почтовая программа должна открытся для "
"отправки запроса нового знака администратору системы ZRCola.\n"
"Возможно, не все знаки будут отображены правильно, но все информации будут "
"закодированны таким образом, что администратор сможет их правильно прочитать."
#: zrcolakeyhndlr.cpp:44
msgid "INS key is pressed. Type the Unicode code of desired character now (up to four hexadecimal digits: 0-9, A-F), then release INS."
msgstr "Нажата клавиша INS. Введите код Юникод желаемого знака (максимум четыре шестнадцатеричныe цифры: 0-9, A-F), затем отпустите клавишу INS."
#: zrcolasettings.cpp:90
#, c-format
msgid "Unknown transformation (%u)"
msgid ""
"INS key is pressed. Type the Unicode code of desired character now (up to "
"four hexadecimal digits: 0-9, A-F), then release INS."
msgstr ""
"Нажата клавиша INS. Введите код Юникод желаемого знака (максимум четыре "
естнадцатеричныe цифры: 0-9, A-F), затем отпустите клавишу INS."
#: zrcolasettings.cpp:181
#: zrcolasettings.cpp:93
msgid "Start ZRCola automatically on logon"
msgstr "Автоматически запустить систему ZRCola при запуске компьютера"
@@ -595,92 +576,151 @@ msgstr ""
"Программа будет закрыта и обновлена.\n"
"Вы уверены?"
#: zrcolaupdater.cpp:94 zrcolagui.h:350
#: zrcolaupdater.cpp:94 zrcolagui.h:334
msgid "Product Update"
msgstr "Обновление продукта"
#: zrcolagui.h:248
#: zrcolagui.h:246
msgid "Character Search"
msgstr "Поиск знака"
#: zrcolagui.h:299
#: zrcolagui.h:283
msgid "Settings"
msgstr "Настройки"
#: zrcolagui.h:325
#: zrcolagui.h:309
msgid "About ZRCola"
msgstr "О системе ZRCola"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:15
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.x64.Release.Control-2.idtx:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "binUIHeader.bmp"
msgstr "binUIHeader.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:5
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по запуску системы"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:6
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "bintutorial1.bmp"
msgstr "bintutorial1.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:7
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "When configured, ZRCola starts at system startup and runs in the background. If needed, it can be brought up by pressing the combination Win+F5."
msgstr "Если так настроено, система ZRCola запускается при запуске компьютера и работает в фоновом режиме. Если потребуется, пользователь может вывести программу на экран, нажав на сочетание клавиш Win+F5."
msgid ""
"When configured, ZRCola starts at system startup and runs in the background. "
"If needed, it can be brought up by pressing the combination Win+F5."
msgstr ""
"Если так настроено, система ZRCola запускается при запуске компьютера и "
"работает в фоновом режиме. Если потребуется, пользователь может вывести "
"программу на экран, нажав на сочетание клавиш Win+F5."
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:8
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the location of the cursor in the text. If ZRCola is brought to the foreground without using the aforementioned combination of keys, the program won't know where to insert the special characters!"
msgstr "Внимание: При нажатии сочетание клавиш Win+F5 программа запомнить местонахождение курсора в тексте. Если система ZRCola выведена на экран без использования упомянутого сочетания клавиш, программа не знает, куда ввести желаемые знаки!"
msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
"location of the cursor in the text. If ZRCola is brought to the foreground "
"without using the aforementioned combination of keys, the program won't know "
"where to insert the special characters!"
msgstr ""
"Внимание: При нажатии сочетание клавиш Win+F5 программа запомнить "
"местонахождение курсора в тексте. Если система ZRCola выведена на экран без "
"использования упомянутого сочетания клавиш, программа не знает, куда ввести "
"желаемые знаки!"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:19
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.x64.Release.Control-2.idtx:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19
msgid "&Continue"
msgstr "&Продолжить"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:11
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по составлению"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:12
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "bintutorial2.bmp"
msgstr "bintutorial2.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:13
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "The string of basic and substitute characters is entered into the upper input window of the program. In the window below the resulted special characters are displayed. To insert them in the text, the F5 key is used."
msgstr "Строка основных и замещающих знаков вводится в верхнее окно для ввода. После того, в нижнем окне появляются соответствующие специальные знаки. Для их ввода в текст нужно нажать клавишу F5."
msgid ""
"The string of basic and substitute characters is entered into the upper "
"input window of the program. In the window below the resulted special "
"characters are displayed. To insert them in the text, the F5 key is used."
msgstr ""
"Строка основных и замещающих знаков вводится в верхнее окно для ввода. После "
"того, в нижнем окне появляются соответствующие специальные знаки. Для их "
"ввода в текст нужно нажать клавишу F5."
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:16
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по вводу знаков"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:17
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "bintutorial3.bmp"
msgstr "bintutorial3.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:18
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "Characters can be entered using keyboard shortcuts, the character catalogue (F4) or the character finding tool (F8)."
msgstr "Знак можно ввести, употребляя сочетания клавиш на клавиатуре, список знаков (F4) или функцию \"Поиск знака\" (F8)."
msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue "
"(F4) or the character finding tool (F8)."
msgstr ""
"Знак можно ввести, употребляя сочетания клавиш на клавиатуре, список знаков "
"(F4) или функцию \"Поиск знака\" (F8)."
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use"
@@ -689,8 +729,12 @@ msgstr "Система ввода ZRCola для лингвистического
#~ msgid "http://zrcola-2.amebis.si/en/info/instructions/"
#~ msgstr "http://zrcola.zrc-sazu.si/ru/info/instructions/"
#~ msgid "http://zrcola-2.amebis.si/wp-content/uploads/2016/04/5_ZRCola-Tipkovnica_2009-06-21.pdf"
#~ msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/08/ZRCola_tipkovnica_20160801.pdf"
#~ msgid ""
#~ "http://zrcola-2.amebis.si/wp-content/uploads/2016/04/5_ZRCola-"
#~ "Tipkovnica_2009-06-21.pdf"
#~ msgstr ""
#~ "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/08/"
#~ "ZRCola_tipkovnica_20160801.pdf"
# Windows charset for this language (decimal)
#~ msgid "1252"
@@ -811,9 +855,15 @@ msgstr "Система ввода ZRCola для лингвистического
#~ msgid "Left"
#~ msgstr "Left"
#~ msgid "Up"
#~ msgstr "Up"
#~ msgid "Right"
#~ msgstr "Right"
#~ msgid "Down"
#~ msgstr "Down"
#~ msgid "Num Lock"
#~ msgstr "Num Lock"
@@ -882,8 +932,12 @@ msgstr "Система ввода ZRCola для лингвистического
#~ msgid "Send Composed (F5)"
#~ msgstr "Pošlji sestavljeno (F5)"
#~ msgid "ZRCola keyboard shortcut Win+Shift+Z could not be registered. Some functionality will not be available."
#~ msgstr "ZRColine bližnjice na tipkovnici Win+Shift+Z ni mogoče registrirati. Nekaj funkcionalnosti ne bo na voljo."
#~ msgid ""
#~ "ZRCola keyboard shortcut Win+Shift+Z could not be registered. Some "
#~ "functionality will not be available."
#~ msgstr ""
#~ "ZRColine bližnjice na tipkovnici Win+Shift+Z ni mogoče registrirati. "
#~ "Nekaj funkcionalnosti ne bo na voljo."
#, fuzzy
#~ msgid "Authentication progress real time monitor"

View File

@@ -1,17 +1,18 @@
msgid ""
msgstr ""
"Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2017-04-03 12:01+0200\n"
"PO-Revision-Date: 2017-04-03 12:03+0200\n"
"POT-Creation-Date: 2016-10-18 10:08+0200\n"
"PO-Revision-Date: 2016-10-18 10:09+0200\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
"Language: sl_SI\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"
"X-Generator: Poedit 1.8.10\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-KeywordsList: _\n"
@@ -20,71 +21,74 @@ msgstr ""
msgid "© 2004-%s ZRC SAZU"
msgstr "© 2004-%s ZRC SAZU"
#: zrcolaapp.cpp:72 zrcolafrm.cpp:92 zrcolagui.cpp:980 zrcolagui.h:106
#: zrcolaapp.cpp:71 zrcolafrm.cpp:90 zrcolagui.cpp:874 zrcolagui.h:104
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola"
msgstr "ZRCola"
#: zrcolachrreq.cpp:49 zrcolagui.cpp:1110
#: zrcolachrreq.cpp:49 zrcolagui.cpp:1004
msgid "Character"
msgstr "Znak"
#: zrcolachrreq.cpp:58 zrcolagui.cpp:1131
#: zrcolachrreq.cpp:58 zrcolagui.cpp:1025
msgid "Context"
msgstr "Kontekst"
#: zrcolachrreq.cpp:64 zrcolagui.h:379
#: zrcolachrreq.cpp:64 zrcolagui.h:363
msgid "Request a New Character"
msgstr "Zahtevaj nov znak"
#: zrcolachrslct.cpp:89
msgid "Too many digits in Unicode."
msgstr "Preveč števk v zapisu Unicode."
#: zrcolachrslct.cpp:89 zrcolachrslct.cpp:107
msgid "Validation conflict"
msgstr "Nesoglasje pri preverjanju"
#: zrcolachrslct.cpp:107
#, c-format
msgid "Invalid character in Unicode found: %c"
msgstr "Napačen znak v zapisu Unicode: %c"
#: zrcolachrslct.cpp:214 zrcolachrslct.cpp:390 zrcolachrslct.cpp:869
#: zrcolachrslct.cpp:46 zrcolachrslct.cpp:226 zrcolachrslct.cpp:677
msgid "▸ Search Options"
msgstr "▸ Možnosti iskanja"
# Recitation separator
#: zrcolachrslct.cpp:328
#: zrcolachrslct.cpp:164
msgid ", "
msgstr ", "
#: zrcolachrslct.cpp:393 zrcolachrslct.cpp:866
#: zrcolachrslct.cpp:229 zrcolachrslct.cpp:674
msgid "▾ Search Options"
msgstr "▾ Možnosti iskanja"
#: zrcolafrm.cpp:143
msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."
msgstr "ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:141
msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available."
msgstr ""
"ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:143 zrcolafrm.cpp:145
#: zrcolafrm.cpp:141 zrcolafrm.cpp:143
msgid "Warning"
msgstr "Opozorilo"
#: zrcolafrm.cpp:145
msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."
msgstr "ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:143
msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available."
msgstr ""
"ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:362
#: zrcolafrm.cpp:351
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/info/instructions/"
#: zrcolafrm.cpp:386
msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolafrm.cpp:375
msgid ""
"http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/"
"ZRCola_tipkovnica_Jun2016.pdf"
msgstr ""
"http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/"
"ZRCola_tipkovnica_Jun2016.pdf"
#: zrcolagui.cpp:36
msgid "E&xit"
@@ -110,7 +114,7 @@ msgstr "Izberi celotno besedilo"
msgid "Find C&haracter..."
msgstr "Poišči &znak ..."
#: zrcolagui.cpp:78 zrcolagui.cpp:198
#: zrcolagui.cpp:78 zrcolagui.cpp:180
msgid "Display character search to select character to insert into text"
msgstr "Prikaži iskalnik znakov za izbor znaka za vstavljanje v besedilo"
@@ -118,392 +122,348 @@ msgstr "Prikaži iskalnik znakov za izbor znaka za vstavljanje v besedilo"
msgid "&Send Composed"
msgstr "Pošlji &sestavljeno"
#: zrcolagui.cpp:89 zrcolagui.cpp:200
#: zrcolagui.cpp:89 zrcolagui.cpp:182
msgid "Send composed text to source window"
msgstr "Pošlji sestavljeno besedilo izvornemu oknu"
#: zrcolagui.cpp:98
msgid "Copy Composed and &Return"
msgstr "Kopi&raj sestavljeno in se vrni"
#: zrcolagui.cpp:98
msgid "Copy composed text to clipboard and return focus to source window"
msgstr "Kopiraj sestavljeno besedilo na odložišče in vrni fokus nazaj izvornemu oknu"
#: zrcolagui.cpp:107
msgid "Send &Decomposed"
msgstr "Pošlji &razstavljeno"
#: zrcolagui.cpp:107 zrcolagui.cpp:202
#: zrcolagui.cpp:98 zrcolagui.cpp:184
msgid "Send decomposed text to source window"
msgstr "Pošlji razstavljeno besedilo izvornemu oknu"
#: zrcolagui.cpp:116
msgid "Copy Decomposed and Re&turn"
msgstr "Kopi&raj razstavljeno in se vrni"
#: zrcolagui.cpp:116
msgid "Copy decomposed text to clipboard and return focus to source window"
msgstr "Kopiraj razstavljeno besedilo na odložišče in vrni fokus nazaj izvornemu oknu"
#: zrcolagui.cpp:125
#: zrcolagui.cpp:107
msgid "Abort (De)composition"
msgstr "Prekini raz/sestavljanje"
#: zrcolagui.cpp:125
#: zrcolagui.cpp:107
msgid "Abort composition and return focus to source window"
msgstr "Prekini sestavljanje in vrni fokus nazaj izvornemu oknu"
#: zrcolagui.cpp:136
#: zrcolagui.cpp:118
msgid "&Settings..."
msgstr "Na&stavitve ..."
#: zrcolagui.cpp:136
#: zrcolagui.cpp:118
msgid "Open program configuration dialog"
msgstr "Odpri nastavitveni dialog programa"
#: zrcolagui.cpp:139
#: zrcolagui.cpp:121
msgid "&Edit"
msgstr "Ur&edi"
#: zrcolagui.cpp:143
#: zrcolagui.cpp:125
msgid "&Edit Toolbar"
msgstr "Orodna vrstica za ur&ejanje"
#: zrcolagui.cpp:143
#: zrcolagui.cpp:125
msgid "Toggle edit toolbar"
msgstr "Prikaži/skrij orodno vrstico za urejanje"
#: zrcolagui.cpp:147
#: zrcolagui.cpp:129
msgid "&Compose Toolbar"
msgstr "Orodna vrsti&ca za sestavljanje"
#: zrcolagui.cpp:147
#: zrcolagui.cpp:129
msgid "Toggle compose toolbar"
msgstr "Prikaži/skrij orodno vrstico za sestavljanje"
#: zrcolagui.cpp:153
#: zrcolagui.cpp:135
msgid "Character Catalo&g"
msgstr "Katalo&g znakov"
#: zrcolagui.cpp:153
#: zrcolagui.cpp:135
msgid "Toggle character catalog panel"
msgstr "Prikaži/skrij katalog znakov"
#: zrcolagui.cpp:156
#: zrcolagui.cpp:138
msgid "&View"
msgstr "Po&gled"
#: zrcolagui.cpp:160
#: zrcolagui.cpp:142
msgid "&Instructions..."
msgstr "Navod&ila ..."
#: zrcolagui.cpp:160
#: zrcolagui.cpp:142
msgid "Open a web site with product instructions"
msgstr "Odpri spletno stran z navodili izdelka"
#: zrcolagui.cpp:164
#: zrcolagui.cpp:146
msgid "Keyboard &Shortcuts..."
msgstr "&Bližnjice na tipkovnici ..."
#: zrcolagui.cpp:164
#: zrcolagui.cpp:146
msgid "Open a list of keyboard shortcuts"
msgstr "Odpri seznam bližnjic na tipkovnici"
#: zrcolagui.cpp:170
#: zrcolagui.cpp:152
msgid "&Request a new character..."
msgstr "&Zahtevaj nov znak ..."
#: zrcolagui.cpp:170
#: zrcolagui.cpp:152
msgid "Submit a request to ZRC to add a new character"
msgstr "Oddaj prošnjo za dodajanje novega znaka"
#: zrcolagui.cpp:174
#: zrcolagui.cpp:156
msgid "Check for &Updates..."
msgstr "Preveri &posodobitve ..."
#: zrcolagui.cpp:174
#: zrcolagui.cpp:156
msgid "Check online for product update"
msgstr "Preveri na spletu za posodobitev izdelka"
#: zrcolagui.cpp:180
#: zrcolagui.cpp:162
msgid "&About..."
msgstr "O progr&amu ..."
#: zrcolagui.cpp:183
#: zrcolagui.cpp:165
msgid "&Help"
msgstr "Po&moč"
#: zrcolagui.cpp:188
#: zrcolagui.cpp:170
msgid "Cut"
msgstr "Izreži"
#: zrcolagui.cpp:188
#: zrcolagui.cpp:170
msgid "Cut selection"
msgstr "Izreži izbor"
#: zrcolagui.cpp:190
#: zrcolagui.cpp:172
msgid "Copy"
msgstr "Kopiraj"
#: zrcolagui.cpp:190
#: zrcolagui.cpp:172
msgid "Copy selection"
msgstr "Kopiraj izbor"
#: zrcolagui.cpp:192
#: zrcolagui.cpp:174
msgid "Paste"
msgstr "Prilepi"
#: zrcolagui.cpp:192
#: zrcolagui.cpp:174
msgid "Paste selection"
msgstr "Prilepi izbor"
#: zrcolagui.cpp:195
#: zrcolagui.cpp:177
msgid "Edit"
msgstr "Urejanje"
#: zrcolagui.cpp:198
#: zrcolagui.cpp:180
msgid "Find Character"
msgstr "Poišči znak"
#: zrcolagui.cpp:200
#: zrcolagui.cpp:182
msgid "Send Composed"
msgstr "Pošlji sestavljeno"
#: zrcolagui.cpp:202
#: zrcolagui.cpp:184
msgid "Send Decomposed"
msgstr "Pošlji razstavljeno"
#: zrcolagui.cpp:205
#: zrcolagui.cpp:187
msgid "Compose"
msgstr "Sestavljanje"
#: zrcolagui.cpp:209
#: zrcolagui.cpp:191
msgid "Character Catalog"
msgstr "Katalog znakov"
#: zrcolagui.cpp:213
#: zrcolagui.cpp:195
msgid "(De)Composer"
msgstr "Razstavljalnik/Sestavljalnik"
#: zrcolagui.cpp:252
#: zrcolagui.cpp:234
msgid "Decomposed Text"
msgstr "Razstavljeno besedilo"
#: zrcolagui.cpp:272
#: zrcolagui.cpp:254
msgid "Decomposed Unicode Dump"
msgstr "Unicode razstavljenega"
#: zrcolagui.cpp:299
#: zrcolagui.cpp:281
msgid "Composed Text"
msgstr "Sestavljeno besedilo"
#: zrcolagui.cpp:319
#: zrcolagui.cpp:301
msgid "Composed Unicode Dump"
msgstr "Unicode sestavljenega"
#: zrcolagui.cpp:373
#: zrcolagui.cpp:355
msgid "Select category to display"
msgstr "Izberi kategorijo za prikaz"
#: zrcolagui.cpp:407
#: zrcolagui.cpp:389
msgid "Show &All"
msgstr "Prik&aži vse"
#: zrcolagui.cpp:408
#: zrcolagui.cpp:390
msgid "Toggle display of less frequent characters"
msgstr "Prikaži/skrij manj pogoste znake"
#: zrcolagui.cpp:448
#: zrcolagui.cpp:430
msgid "&Browse"
msgstr "Pre&brskaj"
#: zrcolagui.cpp:455
msgid "Full or partial terms from Unicode character description (in English) to search for"
msgstr "Polne ali delne besede iz opisa znaka Unicode (v angleščini) za iskanje"
#: zrcolagui.cpp:437
msgid ""
"Full or partial terms from Unicode character description (in English) to "
"search for"
msgstr ""
"Polne ali delne besede iz opisa znaka Unicode (v angleščini) za iskanje"
#: zrcolagui.cpp:459
#: zrcolagui.cpp:441
msgid "Search Options"
msgstr "Možnosti iskanja"
#: zrcolagui.cpp:460
#: zrcolagui.cpp:442
msgid "Shows/hides additional search options"
msgstr "Prikaže/skrije dodatne možnosti iskanja"
#: zrcolagui.cpp:472
#: zrcolagui.cpp:454
msgid "List of Unicode character categories to search in"
msgstr "Seznam kategorij znaka Unicode za iskanje"
#: zrcolagui.cpp:479
#: zrcolagui.cpp:461
msgid "All"
msgstr "Vse"
#: zrcolagui.cpp:480
#: zrcolagui.cpp:462
msgid "Select all categories"
msgstr "Izberi vse kategorije"
#: zrcolagui.cpp:484
#: zrcolagui.cpp:466
msgid "None"
msgstr "Nič"
#: zrcolagui.cpp:485
#: zrcolagui.cpp:467
msgid "Clear category selection"
msgstr "Počisti izbor kategorij"
#: zrcolagui.cpp:489
#: zrcolagui.cpp:471
msgid "Invert"
msgstr "Obrni"
#: zrcolagui.cpp:490
#: zrcolagui.cpp:472
msgid "Invert category selection"
msgstr "Obrni izbor kategorij"
#: zrcolagui.cpp:529
#: zrcolagui.cpp:511
msgid "Character search results"
msgstr "Rezultati iskanja znakov"
#: zrcolagui.cpp:539
#: zrcolagui.cpp:521
msgid "Re&cently Used"
msgstr "Nedavno &uporabljeni"
#: zrcolagui.cpp:567
#: zrcolagui.cpp:549
msgid "List of recently inserted characters"
msgstr "Seznam nedavno vstavljenih znakov"
#: zrcolagui.cpp:581
#: zrcolagui.cpp:563
msgid "Preview"
msgstr "Predogled"
#: zrcolagui.cpp:586
#: zrcolagui.cpp:568
msgid "U+"
msgstr "U+"
#: zrcolagui.cpp:591
#: zrcolagui.cpp:573
msgid "Unicode hexadecimal code"
msgstr "Šestnajstiška koda Unicode"
#: zrcolagui.cpp:596
#: zrcolagui.cpp:578
msgid "Keyboard shortcut in Composer window"
msgstr "Bližnjica na tipkovnici v oknu sestavljalnika"
#: zrcolagui.cpp:631
#: zrcolagui.cpp:613
msgid "Character preview"
msgstr "Predogled znaka"
#: zrcolagui.cpp:636
#: zrcolagui.cpp:618
msgid "Unicode character description"
msgstr "Opis znaka Unicode"
#: zrcolagui.cpp:641
#: zrcolagui.cpp:623
msgid "Character tags"
msgstr "Oznake znaka"
#: zrcolagui.cpp:646
#: zrcolagui.cpp:628
msgid "Unicode character category"
msgstr "Kategorija znaka Unicode"
#: zrcolagui.cpp:653
#: zrcolagui.cpp:635
msgid "« Back"
msgstr "« Nazaj"
#: zrcolagui.cpp:655
#: zrcolagui.cpp:637
msgid "To previously viewed character"
msgstr "Na prejšnji prikazan znak"
#: zrcolagui.cpp:659
#: zrcolagui.cpp:641
msgid "Forward »"
msgstr "Naprej »"
#: zrcolagui.cpp:661
#: zrcolagui.cpp:643
msgid "To following viewed character"
msgstr "Na naslednji prikazan znak"
#: zrcolagui.cpp:672
#: zrcolagui.cpp:654
msgid "Re&lated"
msgstr "&Sorodni"
#: zrcolagui.cpp:699
#: zrcolagui.cpp:681
msgid "List of related characters"
msgstr "Seznam sorodnih znakov"
#: zrcolagui.cpp:790
#: zrcolagui.cpp:770
msgid ""
"Some character native to specific language you are working with should not decompose to primitives.\n"
"Some character native to specific language you are working with should not "
"decompose to primitives.\n"
"For optimal decomposition you should set the language correctly."
msgstr ""
"Nekateri znaki iz posameznih jezikov, s katerimi delate, se ne smejo razstavljati.\n"
"Nekateri znaki iz posameznih jezikov, s katerimi delate, se ne smejo "
"razstavljati.\n"
"Za optimalno razstavljanje izberite pravilni jezik."
#: zrcolagui.cpp:794
#: zrcolagui.cpp:774
msgid "Select language &automatically according to selected keyboard"
msgstr "S&amodejno izberi jezik glede na izbrano tipkovnico"
#: zrcolagui.cpp:797
#: zrcolagui.cpp:777
msgid "&Manually select the language from the list below:"
msgstr "&Ročno izberi jezik s seznama spodaj:"
#: zrcolagui.cpp:809
#: zrcolagui.cpp:789
msgid "Text Language"
msgstr "Jezik besedila"
#: zrcolagui.cpp:816
msgid ""
"ZRCola offers multiple text transformations that can be arranged in a sequence.\n"
"Please select desired transformations and the order they are applied."
msgstr ""
"ZRCola ponuja različne pretvorbe besedila, ki jih lahko uredimo v zaporedje.\n"
"Prosimo, izberite želene pretvorbe in vrstni red, v katerem naj jih uporabi."
#: zrcolagui.cpp:831
msgid "A&vailable:"
msgstr "Na &voljo:"
#: zrcolagui.cpp:844
msgid ">"
msgstr ">"
#: zrcolagui.cpp:847
msgid "<"
msgstr "<"
#: zrcolagui.cpp:856
msgid "&Active:"
msgstr "&Aktivni:"
#: zrcolagui.cpp:872
msgid "Up"
msgstr "Gor"
#: zrcolagui.cpp:875
msgid "Down"
msgstr "Dol"
#: zrcolagui.cpp:885
msgid "Transformation"
msgstr "Pretvorba"
#: zrcolagui.cpp:892
#: zrcolagui.cpp:794
msgid ""
"ZRCola can be launched every time you log in to your computer.\n"
"It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6."
"It will be available on the system tray and via registered shortcuts Win+F5 "
"and Win+F6."
msgstr ""
"ZRCola se lahko zažene ob vsaki prijavi v vaš računalnik.\n"
"Na voljo bo v vrstici za sistemska obvestila ter preko registriranih bližnjic Win+F5 in Win+F6."
"Na voljo bo v vrstici za sistemska obvestila ter preko registriranih "
"bližnjic Win+F5 in Win+F6."
#: zrcolagui.cpp:896
#: zrcolagui.cpp:798
msgid "Start ZRCola &automatically on logon"
msgstr "S&amodejno zaženi ZRColo ob prijavi"
#: zrcolagui.cpp:903
#: zrcolagui.cpp:805
msgid "Startup"
msgstr "Zagon"
#: zrcolagui.cpp:991
#: zrcolagui.cpp:885
msgid ""
"Program and Website Editor: Janoš Ježovnik\n"
"Development: Amebis, d. o. o., Kamnik\n"
"Translation into English: Janoš Ježovnik\n"
"Translation into Russian language: Domen Krvina, Silvo Torkar, Anastasia Plotnikova\n"
"Translation into Russian language: Domen Krvina, Silvo Torkar, Anastasia "
"Plotnikova\n"
"Development and maintenance of the original program (20042015): Peter Weiss"
msgstr ""
"Urednik programa in spletne strani: Janoš Ježovnik\n"
@@ -512,81 +472,98 @@ msgstr ""
"Prevod v ruski jezik: Domen Krvina, Silvo Torkar, Anastasija Plotnikova\n"
"Razvoj in vzdrževanje prvotnega programa (20042015): Peter Weiss"
#: zrcolagui.cpp:999
#: zrcolagui.cpp:893
msgid "zrcola.zrc-sazu.si"
msgstr "zrcola.zrc-sazu.si"
#: zrcolagui.cpp:1005
msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:"
msgstr "Besedilo, nastalo z uporabo ZRCole, mora biti v opombi ali na drugem ustreznem mestu v publikaciji opremljeno z naslednjim zapisom:"
#: zrcolagui.cpp:899
msgid ""
"Texts made using ZRCola have to include in a footnote or some other "
"appropriate part of the publication the note below:"
msgstr ""
"Besedilo, nastalo z uporabo ZRCole, mora biti v opombi ali na drugem "
"ustreznem mestu v publikaciji opremljeno z naslednjim zapisom:"
#: zrcolagui.cpp:1009
msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss."
msgstr "Besedilo je bilo pripravljeno z vnašalnim sistemom ZRCola (http://zrcola.zrc-sazu.si), ki ga je na Znanstvenoraziskovalnem centru SAZU v Ljubljani (http://www.zrc-sazu.si) razvil Peter Weiss."
#: zrcolagui.cpp:903
msgid ""
"This text was written using the ZRCola input system (http://zrcola.zrc-sazu."
"si), developed at the Science and Research Centre of SAZU in Ljubljana "
"(http://www.zrc-sazu.si) by Peter Weiss."
msgstr ""
"Besedilo je bilo pripravljeno z vnašalnim sistemom ZRCola (http://zrcola.zrc-"
"sazu.si), ki ga je na Znanstvenoraziskovalnem centru SAZU v Ljubljani "
"(http://www.zrc-sazu.si) razvil Peter Weiss."
#: zrcolagui.cpp:1050
#: zrcolagui.cpp:944
msgid "Log"
msgstr "Dnevnik"
#: zrcolagui.cpp:1066
#: zrcolagui.cpp:960
msgid "Quit and &Update..."
msgstr "Za&ustavi in posodobi ..."
#: zrcolagui.cpp:1068
#: zrcolagui.cpp:962
msgid "Exit this program and launch product update"
msgstr "Zaustavi program in zaženi posodobitev izdelka"
#: zrcolagui.cpp:1072
#: zrcolagui.cpp:966
msgid "&Close"
msgstr "&Zapri"
#: zrcolagui.cpp:1073
#: zrcolagui.cpp:967
msgid "Close this window"
msgstr "Zapri to okno"
#: zrcolagui.cpp:1112
#: zrcolagui.cpp:1006
msgid "Enter the &character you would like to request:"
msgstr "Vpišite &znak, ki ga želite zahtevati:"
#: zrcolagui.cpp:1119
#: zrcolagui.cpp:1013
msgid "Decomposed character to request"
msgstr "Zahtevani znak v razstavljeni obliki"
# Please use a double && for final "&" character
#: zrcolagui.cpp:1123
#: zrcolagui.cpp:1017
msgid ""
"Please, use the decomposed form.\n"
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window."
"You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste "
"it from the Decomposed window."
msgstr ""
"Uporabite razstavljeno obliko.\n"
"Za vnos znaka lahko uporabite ZRColine bližnjice na tipkovnici ali ga kopirate in prilepite iz okna z razstavljenim besedilom."
"Za vnos znaka lahko uporabite ZRColine bližnjice na tipkovnici ali ga "
"kopirate in prilepite iz okna z razstavljenim besedilom."
#: zrcolagui.cpp:1133
msgid "The &context, examples or description why and where the character is required:"
#: zrcolagui.cpp:1027
msgid ""
"The &context, examples or description why and where the character is "
"required:"
msgstr "&Kontekst, primeri oziroma opis, zakaj in kje potrebujete novi znak:"
#: zrcolagui.cpp:1139
#: zrcolagui.cpp:1033
msgid "Additional notes for character request"
msgstr "Dodatne opombe za zahtevo znaka"
#: zrcolagui.cpp:1146
#: zrcolagui.cpp:1040
msgid ""
"After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway."
"After clicking OK button, your e-mail application should open allowing you "
"to submit the new character request to ZRCola Editor.\n"
"Your e-mail application might not display all the characters correctly, but "
"the Editor will be able to read them correctly anyway."
msgstr ""
"Ko boste kliknili gumb V redu, se bo odprl vaš program za e-pošto, s katerim boste lahko oddali zahtevo za nov znak uredniku programa.\n"
"Vsi znaki v sporočilu morda ne bodo prikazani pravilno, vendar jih bo urednik lahko kljub temu razbral."
"Ko boste kliknili gumb V redu, se bo odprl vaš program za e-pošto, s katerim "
"boste lahko oddali zahtevo za nov znak uredniku programa.\n"
"Vsi znaki v sporočilu morda ne bodo prikazani pravilno, vendar jih bo "
"urednik lahko kljub temu razbral."
#: zrcolakeyhndlr.cpp:44
msgid "INS key is pressed. Type the Unicode code of desired character now (up to four hexadecimal digits: 0-9, A-F), then release INS."
msgstr "Pritisnili ste tipko INS. Vtipkajte kodo Unicode želenega znaka (do štiri šestnajstiške števke: 09, AF), nato izpustite INS."
msgid ""
"INS key is pressed. Type the Unicode code of desired character now (up to "
"four hexadecimal digits: 0-9, A-F), then release INS."
msgstr ""
"Pritisnili ste tipko INS. Vtipkajte kodo Unicode želenega znaka (do štiri "
"šestnajstiške števke: 09, AF), nato izpustite INS."
#: zrcolasettings.cpp:90
#, c-format
msgid "Unknown transformation (%u)"
msgstr "Neznana pretvorba (%u)"
#: zrcolasettings.cpp:181
#: zrcolasettings.cpp:93
msgid "Start ZRCola automatically on logon"
msgstr "Samodejno zaženi ZRColo ob prijavi"
@@ -598,92 +575,149 @@ msgstr ""
"Program se bo zdaj zaprl in zagnala se bo posodobitev.\n"
"Ali ste prepričani, da želite nadaljevati?"
#: zrcolaupdater.cpp:94 zrcolagui.h:350
#: zrcolaupdater.cpp:94 zrcolagui.h:334
msgid "Product Update"
msgstr "Posodabljanje izdelka"
#: zrcolagui.h:248
#: zrcolagui.h:246
msgid "Character Search"
msgstr "Poišči znak"
#: zrcolagui.h:299
#: zrcolagui.h:283
msgid "Settings"
msgstr "Nastavitve"
#: zrcolagui.h:325
#: zrcolagui.h:309
msgid "About ZRCola"
msgstr "O ZRColi"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:15
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.x64.Release.Control-2.idtx:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "binUIHeader.bmp"
msgstr "binUIHeader.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:5
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Zagon"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:6
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "bintutorial1.bmp"
msgstr "bintutorial1.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:7
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "When configured, ZRCola starts at system startup and runs in the background. If needed, it can be brought up by pressing the combination Win+F5."
msgstr "Če jo tako nastavimo, se ZRCola zažene samodejno in teče v ozadju. V ospredje jo prikličemo s pritiskom na bližnjico Win+F5."
msgid ""
"When configured, ZRCola starts at system startup and runs in the background. "
"If needed, it can be brought up by pressing the combination Win+F5."
msgstr ""
"Če jo tako nastavimo, se ZRCola zažene samodejno in teče v ozadju. V "
"ospredje jo prikličemo s pritiskom na bližnjico Win+F5."
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:8
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the location of the cursor in the text. If ZRCola is brought to the foreground without using the aforementioned combination of keys, the program won't know where to insert the special characters!"
msgstr "POMEMBNO: Ob pritisku na Win+F5 si program zapomni mesto kurzorja v besedilu. Če ZRColo povečamo brez pritiska na ti dve tipki, program ne bo vedel, kam vstaviti želene znake!"
msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
"location of the cursor in the text. If ZRCola is brought to the foreground "
"without using the aforementioned combination of keys, the program won't know "
"where to insert the special characters!"
msgstr ""
"POMEMBNO: Ob pritisku na Win+F5 si program zapomni mesto kurzorja v "
"besedilu. Če ZRColo povečamo brez pritiska na ti dve tipki, program ne bo "
"vedel, kam vstaviti želene znake!"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:19
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.x64.Release.Control-2.idtx:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19
msgid "&Continue"
msgstr "&Nadaljuj"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:11
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Sestavljanje"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:12
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "bintutorial2.bmp"
msgstr "bintutorial2.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:13
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "The string of basic and substitute characters is entered into the upper input window of the program. In the window below the resulted special characters are displayed. To insert them in the text, the F5 key is used."
msgstr "Želeni niz osnovnih in nadomestnih znakov vnesemo v zgornjo vrstico v programu. V spodnji vrstici se prikažejo sestavljeni znaki. V besedilo jih vnesemo s pritiskom na tipko F5."
msgid ""
"The string of basic and substitute characters is entered into the upper "
"input window of the program. In the window below the resulted special "
"characters are displayed. To insert them in the text, the F5 key is used."
msgstr ""
"Želeni niz osnovnih in nadomestnih znakov vnesemo v zgornjo vrstico v "
"programu. V spodnji vrstici se prikažejo sestavljeni znaki. V besedilo jih "
"vnesemo s pritiskom na tipko F5."
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:16
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Vnos znakov"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:17
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "bintutorial3.bmp"
msgstr "bintutorial3.bmp"
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:18
#: MSIBuild/en_US.x64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "Characters can be entered using keyboard shortcuts, the character catalogue (F4) or the character finding tool (F8)."
msgstr "Znake lahko v vnosno vrstico vstavljamo s pomočjo bližnjic na tipkovnici, iz kataloga znakov (F4) ali z iskalnikom znakov (F8)."
msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue "
"(F4) or the character finding tool (F8)."
msgstr ""
"Znake lahko v vnosno vrstico vstavljamo s pomočjo bližnjic na tipkovnici, iz "
"kataloga znakov (F4) ali z iskalnikom znakov (F8)."
#: MSIBuild/en_US.Win32.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.x64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -37,15 +37,13 @@
#include <wxex/url.h>
#include <wxex/persist/auimanager.h>
#include <wx/clipbrd.h>
#include <wx/ffile.h>
#include <wx/msgdlg.h>
#include <wx/persist.h>
#include <wx/persist/toplevel.h>
#include <wx/socket.h>
#include <wx/tokenzr.h>
#include <wx/utils.h>
#include <wx/valtext.h>
#include <wx/socket.h>
#include <WinStd/MSI.h>

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -102,12 +102,6 @@ bool ZRColaApp::OnInit()
wxFAIL_MSG(wxT("Error reading translation data from ZRCola.zrcdb."));
m_t_db.clear();
}
} else if (id == ZRCola::transet_rec::id) {
dat >> ZRCola::transet_rec(m_ts_db);
if (!dat.good()) {
wxFAIL_MSG(wxT("Error reading translation set data from ZRCola.zrcdb."));
m_ts_db.clear();
}
} else if (id == ZRCola::langchar_rec::id) {
dat >> ZRCola::langchar_rec(m_lc_db);
if (!dat.good()) {

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -73,7 +73,6 @@ public:
public:
ZRCola::translation_db m_t_db; ///< Translation database
ZRCola::transet_db m_ts_db; ///< Translation set database
ZRCola::langchar_db m_lc_db; ///< Language character database
ZRCola::language_db m_lang_db; ///< Language database
ZRCola::keyseq_db m_ks_db; ///< Key sequence database

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -25,7 +25,7 @@
//////////////////////////////////////////////////////////////////////////
BEGIN_EVENT_TABLE(wxZRColaCharacterCatalogPanel, wxZRColaCharacterCatalogPanelBase)
EVT_MENU(wxZRColaCharacterCatalogPanel::wxID_FOCUS_SOURCE, wxZRColaCharacterCatalogPanel::OnFocusSource)
EVT_MENU(wxZRColaCharacterCatalogPanel::wxID_FOCUS_DECOMPOSED, wxZRColaCharacterCatalogPanel::OnFocusDecomposed)
END_EVENT_TABLE()
@@ -42,8 +42,8 @@ wxZRColaCharacterCatalogPanel::wxZRColaCharacterCatalogPanel(wxWindow* parent) :
dat >> rec;
if (!dat.good()) {
wxFAIL_MSG(wxT("Error reading character group data from ZRCola.zrcdb."));
m_cg_db.idxRank.clear();
m_cg_db.data .clear();
m_cg_db.idxRnk.clear();
m_cg_db.data .clear();
}
} else
wxFAIL_MSG(wxT("ZRCola.zrcdb has no character group data."));
@@ -52,16 +52,16 @@ wxZRColaCharacterCatalogPanel::wxZRColaCharacterCatalogPanel(wxWindow* parent) :
wxFAIL_MSG(wxT("ZRCola.zrcdb is not a valid ZRCola database."));
}
if (!m_cg_db.idxRank.empty()) {
if (!m_cg_db.idxRnk.empty()) {
// Populate character group list.
for (size_t i = 0, n = m_cg_db.idxRank.size(); i < n; i++) {
const ZRCola::chrgrp_db::chrgrp &cg = m_cg_db.idxRank[i];
for (size_t i = 0, n = m_cg_db.idxRnk.size(); i < n; i++) {
const ZRCola::chrgrp_db::chrgrp &cg = m_cg_db.idxRnk[i];
wxString
label(cg.name(), cg.name_len()),
label(cg.data, cg.name_len),
label_tran2(wxGetTranslation(label, wxT("ZRCola-zrcdb")));
m_choice->Insert(label_tran2, i);
}
m_cg_id = m_cg_db.idxRank[0].grp;
m_cg_id = m_cg_db.idxRnk[0].id;
m_choice->Select(0);
Update();
@@ -70,7 +70,7 @@ wxZRColaCharacterCatalogPanel::wxZRColaCharacterCatalogPanel(wxWindow* parent) :
// Register frame specific hotkey(s).
{
wxAcceleratorEntry entries[1];
entries[0].Set(wxACCEL_NORMAL, WXK_ESCAPE, wxID_FOCUS_SOURCE);
entries[0].Set(wxACCEL_NORMAL, WXK_ESCAPE, wxID_FOCUS_DECOMPOSED);
SetAcceleratorTable(wxAcceleratorTable(_countof(entries), entries));
}
}
@@ -83,10 +83,10 @@ wxZRColaCharacterCatalogPanel::~wxZRColaCharacterCatalogPanel()
void wxZRColaCharacterCatalogPanel::OnChoice(wxCommandEvent& event)
{
const ZRCola::chrgrp_db::chrgrp &cg = m_cg_db.idxRank[event.GetSelection()];
const ZRCola::chrgrp_db::chrgrp &cg = m_cg_db.idxRnk[event.GetSelection()];
if (m_cg_id != cg.grp) {
m_cg_id = cg.grp;
if (m_cg_id != cg.id) {
m_cg_id = cg.id;
Update();
}
@@ -98,8 +98,8 @@ void wxZRColaCharacterCatalogPanel::OnGridClick(wxGridEvent& event)
{
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
if (app->m_mainWnd) {
app->m_mainWnd->m_panel->m_source->WriteText(m_grid->GetCellValue(event.GetRow(), event.GetCol()));
app->m_mainWnd->m_panel->m_source->SetFocus();
app->m_mainWnd->m_panel->m_decomposed->WriteText(m_grid->GetCellValue(event.GetRow(), event.GetCol()));
app->m_mainWnd->m_panel->m_decomposed->SetFocus();
}
event.Skip();
@@ -113,8 +113,8 @@ void wxZRColaCharacterCatalogPanel::OnGridKeyDown(wxKeyEvent& event)
case WXK_NUMPAD_ENTER:
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
if (app->m_mainWnd) {
app->m_mainWnd->m_panel->m_source->WriteText(m_grid->GetCellValue(m_grid->GetCursorRow(), m_grid->GetCursorColumn()));
app->m_mainWnd->m_panel->m_source->SetFocus();
app->m_mainWnd->m_panel->m_decomposed->WriteText(m_grid->GetCellValue(m_grid->GetCursorRow(), m_grid->GetCursorColumn()));
app->m_mainWnd->m_panel->m_decomposed->SetFocus();
event.StopPropagation();
return;
@@ -135,11 +135,11 @@ void wxZRColaCharacterCatalogPanel::OnShowAll(wxCommandEvent& event)
}
void wxZRColaCharacterCatalogPanel::OnFocusSource(wxCommandEvent& event)
void wxZRColaCharacterCatalogPanel::OnFocusDecomposed(wxCommandEvent& event)
{
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
if (app->m_mainWnd) {
app->m_mainWnd->m_panel->m_source->SetFocus();
app->m_mainWnd->m_panel->m_decomposed->SetFocus();
event.StopPropagation();
return;
@@ -151,23 +151,21 @@ void wxZRColaCharacterCatalogPanel::OnFocusSource(wxCommandEvent& event)
void wxZRColaCharacterCatalogPanel::Update()
{
const ZRCola::chrgrp_db::chrgrp &cg = m_cg_db.idxRank[m_choice->GetSelection()];
const ZRCola::chrgrp_db::chrgrp &cg = m_cg_db.idxRnk[m_choice->GetSelection()];
if (m_show_all->GetValue()) {
m_grid->SetCharacters(
wxString(cg.chrlst(), cg.chrlst_end()),
wxArrayShort(reinterpret_cast<const short*>(cg.chrshow()), reinterpret_cast<const short*>(cg.chrshow_end())));
wxString(cg.get_chars(), cg.char_len),
wxArrayShort((const short*)cg.get_char_shown(), (const short*)cg.get_char_shown() + (cg.char_len + 15)/16));
} else {
// Select frequently used characters only.
const wchar_t *src = cg.chrlst();
const unsigned __int16 *shown = cg.chrshow();
wxArrayString chars;
for (size_t i = 0, i_end = cg.chrlst_len(), j = 0; i < i_end; j++) {
for (unsigned __int16 k = 0, mask = shown[j]; k < 16 && i < i_end; k++, mask >>= 1) {
size_t len = wcsnlen(src + i, i_end - i);
const wchar_t *src = cg.get_chars();
const unsigned __int16 *shown = cg.get_char_shown();
wxString chars;
for (unsigned __int16 i = 0, j = 0; i < cg.char_len; j++) {
for (unsigned __int16 k = 0, mask = shown[j]; k < 16 && i < cg.char_len; k++, mask >>= 1, i++) {
if (mask & 1)
chars.Add(wxString(src + i, len));
i += len + 1;
chars += src[i];
}
}
m_grid->SetCharacters(chars);
@@ -210,11 +208,11 @@ bool wxPersistentZRColaCharacterCatalogPanel::Restore()
// Restore selected character group.
int cg_id;
if (RestoreValue(wxT("charGroup"), &cg_id)) {
for (size_t i = 0, n = wnd->m_cg_db.idxRank.size(); i < n; i++) {
const ZRCola::chrgrp_db::chrgrp &cg = wnd->m_cg_db.idxRank[i];
if (cg.grp == cg_id) {
if (wnd->m_cg_id != cg.grp) {
wnd->m_cg_id = cg.grp;
for (size_t i = 0, n = wnd->m_cg_db.idxRnk.size(); i < n; i++) {
const ZRCola::chrgrp_db::chrgrp &cg = wnd->m_cg_db.idxRnk[i];
if (cg.id == cg_id) {
if (wnd->m_cg_id != cg.id) {
wnd->m_cg_id = cg.id;
wnd->m_choice->Select(i);
update = true;
}

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -38,7 +38,7 @@ class wxZRColaCharacterCatalogPanel : public wxZRColaCharacterCatalogPanelBase
public:
enum
{
wxID_FOCUS_SOURCE = 6000,
wxID_FOCUS_DECOMPOSED = 6000,
};
wxZRColaCharacterCatalogPanel(wxWindow* parent);
@@ -51,7 +51,7 @@ protected:
virtual void OnGridClick(wxGridEvent& event);
virtual void OnGridKeyDown(wxKeyEvent& event);
virtual void OnShowAll(wxCommandEvent& event);
void OnFocusSource(wxCommandEvent& event);
void OnFocusDecomposed(wxCommandEvent& event);
DECLARE_EVENT_TABLE()
void Update();

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -68,24 +68,6 @@ void wxZRColaCharGrid::Init()
void wxZRColaCharGrid::SetCharacters(const wxString &chars)
{
m_chars.Clear();
const wxCStrData chr = chars.GetData();
for (size_t i = 0, i_end = chars.Length(), i_next; i < i_end; i = i_next + 1) {
i_next = i + _tcsnlen(chr + i, i_end - i);
m_chars.Add(wxString(chr + i, chr + i_next));
};
m_relevance.Clear();
m_regenerate = true;
// Invoke OnSize(), which will populate the grid.
wxSizeEvent e(GetSize(), m_windowId);
e.SetEventObject(this);
HandleWindowEvent(e);
}
void wxZRColaCharGrid::SetCharacters(const wxArrayString &chars)
{
m_chars = chars;
m_relevance.Clear();
@@ -100,12 +82,7 @@ void wxZRColaCharGrid::SetCharacters(const wxArrayString &chars)
void wxZRColaCharGrid::SetCharacters(const wxString &chars, const wxArrayShort &relevance)
{
m_chars.Clear();
const wxCStrData chr = chars.GetData();
for (size_t i = 0, i_end = chars.Length(), i_next; i < i_end; i = i_next + 1) {
i_next = i + _tcsnlen(chr + i, i_end - i);
m_chars.Add(wxString(chr + i, chr + i_next));
};
m_chars = chars;
m_relevance = relevance;
m_regenerate = true;
@@ -118,23 +95,22 @@ void wxZRColaCharGrid::SetCharacters(const wxString &chars, const wxArrayShort &
wxString wxZRColaCharGrid::GetToolTipText(int idx)
{
wxASSERT_MSG(idx < (int)m_chars.GetCount(), wxT("index out of bounds"));
wxASSERT_MSG(idx < (int)m_chars.Length(), wxT("index out of bounds"));
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
const auto &chr = m_chars[idx];
// See if this character has a key sequence registered.
std::unique_ptr<ZRCola::keyseq_db::keyseq> ks((ZRCola::keyseq_db::keyseq*)new char[sizeof(ZRCola::keyseq_db::keyseq) + sizeof(wchar_t)*chr.length()]);
ks->ZRCola::keyseq_db::keyseq::keyseq(NULL, 0, chr.data(), chr.length());
char ks[sizeof(ZRCola::keyseq_db::keyseq)] = {};
((ZRCola::keyseq_db::keyseq*)ks)->chr = m_chars[idx];
ZRCola::keyseq_db::indexKey::size_type start;
if (app->m_ks_db.idxChr.find(*ks, start)) {
if (app->m_ks_db.idxChr.find(*(ZRCola::keyseq_db::keyseq*)ks, start)) {
ZRCola::keyseq_db::keyseq &seq = app->m_ks_db.idxChr[start];
wxString ks_str;
if (ZRCola::keyseq_db::GetSequenceAsText(seq.seq(), seq.seq_len(), ks_str))
return wxString::Format(wxT("U+%s (%s)"), ZRCola::GetUnicodeDump(chr.data(), chr.length(), _T("+")).c_str(), ks_str.c_str());
if (ZRCola::keyseq_db::GetSequenceAsText(seq.seq, seq.seq_len, ks_str))
return wxString::Format(wxT("U+%04X (%s)"), (int)m_chars[idx], ks_str.c_str());
}
return wxString::Format(wxT("U+%s"), ZRCola::GetUnicodeDump(chr.data(), chr.length(), _T("+")).c_str());
return wxString::Format(wxT("U+%04X"), (int)m_chars[idx]);
}
@@ -150,17 +126,17 @@ void wxZRColaCharGrid::OnSize(wxSizeEvent& event)
// Calculate initial estimate of columns and rows.
wxSize size(event.GetSize());
size_t
char_count = m_chars.GetCount();
char_len = m_chars.Length();
int
width = size.GetWidth() - m_rowLabelWidth - m_extraWidth,
cols = std::max<int>(width / wxZRColaCharacterGridColumnWidth, 1),
rows = std::max<int>((char_count + cols - 1) / cols, 1);
width = size.GetWidth() - m_rowLabelWidth - m_extraWidth,
cols = std::max<int>(width / wxZRColaCharacterGridColumnWidth, 1),
rows = std::max<int>((char_len + cols - 1) / cols, 1);
if (m_colLabelHeight + rows*wxZRColaCharacterGridRowHeight + m_extraHeight > size.GetHeight()) {
// Vertical scrollbar will be shown. Adjust the width and recalculate layout to avoid horizontal scrollbar.
width = std::max<int>(width - wxSystemSettings::GetMetric(wxSYS_VSCROLL_X, this), 0);
cols = std::max<int>(width / wxZRColaCharacterGridColumnWidth, 1);
rows = std::max<int>((char_count + cols - 1) / cols, 1);
rows = std::max<int>((char_len + cols - 1) / cols, 1);
}
BeginBatch();
@@ -170,14 +146,14 @@ void wxZRColaCharGrid::OnSize(wxSizeEvent& event)
wxGridStringTable *table = new wxGridStringTable(rows, cols);
for (int r = 0, i = 0; r < rows; r++)
for (int c = 0; c < cols; c++, i++)
table->SetValue(r, c, i < (int)char_count ? m_chars[i] : wxEmptyString);
table->SetValue(r, c, i < (int)char_len ? wxString(1, m_chars[i]) : wxEmptyString);
SetTable(table, true);
if (!m_relevance.IsEmpty()) {
const wxColour colour_def;
const wxColour colour_irr = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNHIGHLIGHT);
for (int r = 0, i = 0; r < rows; r++)
for (int c = 0; c < cols; c++, i++)
SetCellBackgroundColour(r, c, i >= (int)char_count || ((unsigned short)(m_relevance[i/16]) & (1<<(i%16))) ? colour_def : colour_irr);
SetCellBackgroundColour(r, c, i >= (int)char_len || ((unsigned short)(m_relevance[i/16]) & (1<<(i%16))) ? colour_def : colour_irr);
} else {
for (int r = 0, i = 0; r < rows; r++)
for (int c = 0; c < cols; c++, i++)
@@ -241,7 +217,7 @@ void wxZRColaCharGrid::OnMotion(wxMouseEvent& event)
return;
size_t toolTipIdx = row*m_numCols + col;
if (toolTipIdx >= m_chars.GetCount()) {
if (toolTipIdx >= m_chars.Length()) {
// Index out of range.
m_toolTipIdx = (size_t)-1;
m_timerToolTip.Stop();
@@ -265,7 +241,7 @@ void wxZRColaCharGrid::OnTooltipTimer(wxTimerEvent& event)
{
event.Skip();
if (m_toolTipIdx >= m_chars.GetCount())
if (m_toolTipIdx >= m_chars.Length())
return;
GetGridWindow()->SetToolTip(GetToolTipText(m_toolTipIdx));

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -54,21 +54,14 @@ public:
///
/// Sets new array of characters to display
///
/// \param[in] chars The string containing characters to display (zero delimited)
/// \param[in] chars The string containing characters to display
///
void SetCharacters(const wxString &chars);
///
/// Sets new array of characters to display
///
/// \param[in] chars The array of characters to display
///
void SetCharacters(const wxArrayString &chars);
///
/// Sets new array of characters to display
///
/// \param[in] chars The string containing characters to display (zero delimited)
/// \param[in] chars The string containing characters to display
/// \param[in] relevance Bit-array of \p chars relevance (1=more relevant, 0=less relevant)
///
void SetCharacters(const wxString &chars, const wxArrayShort &relevance);
@@ -78,7 +71,7 @@ public:
///
/// \returns The string containing displayed characters
///
inline const wxArrayString& GetCharacters() const
inline wxString GetCharacters() const
{
return m_chars;
}
@@ -90,14 +83,10 @@ public:
///
/// \returns Grid coordinates of selected character or (-1, -1) if character not found.
///
inline wxGridCellCoords GetCharacterCoords(const wxString &c) const
inline wxGridCellCoords GetCharacterCoords(wchar_t c) const
{
for (size_t i = 0, n = m_chars.GetCount(); ; i++) {
if (i >= n)
return wxGridCellCoords(-1, -1);
else if (m_chars[i] == c)
return wxGridCellCoords(i / m_numCols, i % m_numCols);
}
int i = m_chars.Find(c);
return i != wxNOT_FOUND ? wxGridCellCoords(i / m_numCols, i % m_numCols) : wxGridCellCoords(-1, -1);
}
protected:
@@ -113,7 +102,7 @@ private:
void Init(); // common part of all ctors
protected:
wxArrayString m_chars; ///< Array of Unicode characters to display in the grid
wxString m_chars; ///< Array of Unicode characters to display in the grid
wxArrayShort m_relevance; ///< Bit-array of `m_chars` relevance
private:

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -20,174 +20,6 @@
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////
// wxZRColaUTF16CharValidator
//////////////////////////////////////////////////////////////////////
wxIMPLEMENT_DYNAMIC_CLASS(wxZRColaUTF16CharValidator, wxValidator);
wxZRColaUTF16CharValidator::wxZRColaUTF16CharValidator(wchar_t *val) :
m_val(val),
wxValidator()
{
}
wxObject* wxZRColaUTF16CharValidator::Clone() const
{
return new wxZRColaUTF16CharValidator(*this);
}
bool wxZRColaUTF16CharValidator::Validate(wxWindow *parent)
{
wxASSERT(GetWindow()->IsKindOf(CLASSINFO(wxTextCtrl)));
wxTextCtrl *ctrl = (wxTextCtrl*)GetWindow();
if (!ctrl->IsEnabled()) return true;
wxString val(ctrl->GetValue());
return Parse(val, 0, val.Length(), ctrl, parent);
}
bool wxZRColaUTF16CharValidator::TransferToWindow()
{
wxASSERT(GetWindow()->IsKindOf(CLASSINFO(wxTextCtrl)));
if (m_val)
((wxTextCtrl*)GetWindow())->SetValue(wxString::Format(wxT("%04X"), *m_val));
return true;
}
bool wxZRColaUTF16CharValidator::TransferFromWindow()
{
wxASSERT(GetWindow()->IsKindOf(CLASSINFO(wxTextCtrl)));
wxTextCtrl *ctrl = (wxTextCtrl*)GetWindow();
wxString val(ctrl->GetValue());
return Parse(val, 0, val.Length(), ctrl, NULL, m_val);
}
bool wxZRColaUTF16CharValidator::Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wchar_t *val_out)
{
const wxStringCharType *buf = val_in;
wchar_t chr = 0;
for (size_t i = i_start;;) {
if (i >= i_end) {
// End of Unicode found.
if (val_out) *val_out = chr;
return true;
} else if (i >= i_start + 4) {
// Maximum characters exceeded.
ctrl->SetFocus();
ctrl->SetSelection(i, i_end);
wxMessageBox(_("Too many digits in Unicode."), _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent);
return false;
} else if (_T('0') <= buf[i] && buf[i] <= _T('9')) {
// Digit found.
chr = (chr << 4) | (buf[i] - _T('0'));
i++;
} else if (_T('A') <= buf[i] && buf[i] <= _T('F')) {
// Capital letter found.
chr = (chr << 4) | (buf[i] - _T('A') + 10);
i++;
} else if (_T('a') <= buf[i] && buf[i] <= _T('f')) {
// Lower letter found.
chr = (chr << 4) | (buf[i] - _T('a') + 10);
i++;
} else {
// Invalid character found.
ctrl->SetFocus();
ctrl->SetSelection(i, i + 1);
wxMessageBox(wxString::Format(_("Invalid character in Unicode found: %c"), buf[i]), _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent);
return false;
}
}
}
//////////////////////////////////////////////////////////////////////
// wxZRColaUnicodeDumpValidator
//////////////////////////////////////////////////////////////////////
wxIMPLEMENT_DYNAMIC_CLASS(wxZRColaUnicodeDumpValidator, wxValidator);
wxZRColaUnicodeDumpValidator::wxZRColaUnicodeDumpValidator(wxString *val) :
m_val(val),
wxValidator()
{
}
wxObject* wxZRColaUnicodeDumpValidator::Clone() const
{
return new wxZRColaUnicodeDumpValidator(*this);
}
bool wxZRColaUnicodeDumpValidator::Validate(wxWindow *parent)
{
wxASSERT(GetWindow()->IsKindOf(CLASSINFO(wxTextCtrl)));
wxTextCtrl *ctrl = (wxTextCtrl*)GetWindow();
if (!ctrl->IsEnabled()) return true;
wxString val(ctrl->GetValue());
return Parse(val, 0, val.Length(), ctrl, parent);
}
bool wxZRColaUnicodeDumpValidator::TransferToWindow()
{
wxASSERT(GetWindow()->IsKindOf(CLASSINFO(wxTextCtrl)));
if (m_val)
((wxTextCtrl*)GetWindow())->SetValue(ZRCola::GetUnicodeDumpW(m_val->c_str(), m_val->length(), L"+"));
return true;
}
bool wxZRColaUnicodeDumpValidator::TransferFromWindow()
{
wxASSERT(GetWindow()->IsKindOf(CLASSINFO(wxTextCtrl)));
wxTextCtrl *ctrl = (wxTextCtrl*)GetWindow();
wxString val(ctrl->GetValue());
return Parse(val, 0, val.Length(), ctrl, NULL, m_val);
}
bool wxZRColaUnicodeDumpValidator::Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxString *val_out)
{
const wxStringCharType *buf = val_in;
wxString str;
for (size_t i = i_start;;) {
const wxStringCharType *buf_next;
wchar_t chr;
if ((buf_next = wmemchr(buf + i, L'+', i_end - i)) != NULL) {
// Unicode dump separator found.
if (!wxZRColaUTF16CharValidator::Parse(val_in, i, buf_next - buf, ctrl, parent, &chr))
return false;
str += chr;
i = buf_next - buf + 1;
} else if (wxZRColaUTF16CharValidator::Parse(val_in, i, i_end, ctrl, parent, &chr)) {
// The rest of the FQDN parsed succesfully.
if (chr) str += chr;
if (val_out) *val_out = str;
return true;
} else
return false;
}
}
//////////////////////////////////////////////////////////////////////////
// wxZRColaCharSelect
//////////////////////////////////////////////////////////////////////////
@@ -198,6 +30,7 @@ wxDEFINE_EVENT(wxEVT_SEARCH_COMPLETE, wxThreadEvent);
wxZRColaCharSelect::wxZRColaCharSelect(wxWindow* parent) :
m_searchChanged(false),
m_unicodeChanged(false),
m_char(0),
m_searchThread(NULL),
wxZRColaCharSelectBase(parent)
{
@@ -213,15 +46,15 @@ wxZRColaCharSelect::wxZRColaCharSelect(wxWindow* parent) :
m_search_more->SetLabel(_(L"▸ Search Options"));
m_unicode->SetValidator(wxZRColaUnicodeDumpValidator(&m_char));
m_unicode->SetValidator(wxHexValidator<wchar_t>(&m_char, wxNUM_VAL_DEFAULT, 4));
// Fill categories.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
int idx = m_categories->Insert(wxGetTranslation(wxString(cc.name(), cc.name_len()), wxT("ZRCola-zrcdb")), i);
for (size_t i = 0, n = app->m_cc_db.idxRnk.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRnk[i];
int idx = m_categories->Insert(wxGetTranslation(wxString(cc.name, cc.name_len), wxT("ZRCola-zrcdb")), i);
m_categories->Check(idx);
m_ccOrder.insert(std::make_pair(cc.cat, idx));
m_ccOrder.insert(std::make_pair(cc.id, idx));
}
ResetResults();
@@ -251,24 +84,24 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
if (m_unicode->GetValidator()->TransferFromWindow()) {
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
m_gridPreview->SetCellValue(m_char, 0, 0);
m_gridPreview->SetCellValue(wxString(1, m_char), 0, 0);
std::unique_ptr<ZRCola::character_db::character> chr((ZRCola::character_db::character*)new char[sizeof(ZRCola::character_db::character) + sizeof(wchar_t)*m_char.length()]);
chr->ZRCola::character_db::character::character(m_char.data(), m_char.length());
char chr[sizeof(ZRCola::character_db::character)] = {};
((ZRCola::character_db::character*)chr)->chr = m_char;
size_t start;
if (app->m_chr_db.idxChr.find(*chr, start)) {
if (app->m_chr_db.idxChr.find(*(ZRCola::character_db::character*)chr, start)) {
const auto &chr = app->m_chr_db.idxChr[start];
// Update character description.
m_description->SetValue(wxString(chr.desc(), chr.desc_len()));
m_description->SetValue(wxString(chr.data, chr.desc_len));
{
// See if this character has a key sequence registered.
std::unique_ptr<ZRCola::keyseq_db::keyseq> ks((ZRCola::keyseq_db::keyseq*)new char[sizeof(ZRCola::keyseq_db::keyseq) + sizeof(wchar_t)*m_char.length()]);
ks->ZRCola::keyseq_db::keyseq::keyseq(NULL, 0, m_char.data(), m_char.length());
char ks[sizeof(ZRCola::keyseq_db::keyseq)] = {};
((ZRCola::keyseq_db::keyseq*)ks)->chr = m_char;
ZRCola::keyseq_db::indexKey::size_type start;
if (app->m_ks_db.idxChr.find(*ks, start)) {
if (app->m_ks_db.idxChr.find(*(ZRCola::keyseq_db::keyseq*)ks, start)) {
ZRCola::keyseq_db::keyseq &seq = app->m_ks_db.idxChr[start];
wxString ks_str;
if (ZRCola::keyseq_db::GetSequenceAsText(seq.seq(), seq.seq_len(), ks_str))
if (ZRCola::keyseq_db::GetSequenceAsText(seq.seq, seq.seq_len, ks_str))
m_shortcut->SetValue(ks_str);
else
m_shortcut->SetValue(wxEmptyString);
@@ -276,16 +109,18 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
m_shortcut->SetValue(wxEmptyString);
}
{
char cc[sizeof(ZRCola::chrcat_db::chrcat)] = {};
((ZRCola::chrcat_db::chrcat*)cc)->id = chr.cat;
size_t start;
// Update character category.
if (app->m_cc_db.idxChrCat.find(ZRCola::chrcat_db::chrcat(chr.cat), start)) {
if (app->m_cc_db.idxChrCat.find(*((ZRCola::chrcat_db::chrcat*)cc), start)) {
const auto &cat = app->m_cc_db.idxChrCat[start];
m_category->SetValue(wxGetTranslation(wxString(cat.name(), cat.name_len()), wxT("ZRCola-zrcdb")));
m_category->SetValue(wxGetTranslation(wxString(cat.name, cat.name_len), wxT("ZRCola-zrcdb")));
} else
m_category->SetValue(wxEmptyString);
}
// Update related characters.
m_gridRelated->SetCharacters(wxString(chr.rel(), chr.rel_end()));
m_gridRelated->SetCharacters(wxString(chr.data + chr.desc_len, chr.rel_len));
} else {
m_description->SetValue(wxEmptyString);
m_shortcut->SetValue(wxEmptyString);
@@ -295,16 +130,18 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
// Find character tags.
std::list<std::wstring> tag_names;
std::unique_ptr<ZRCola::chrtag_db::chrtag> ct((ZRCola::chrtag_db::chrtag*)new char[sizeof(ZRCola::chrtag_db::chrtag) + sizeof(wchar_t)*m_char.length()]);
ct->ZRCola::chrtag_db::chrtag::chrtag(m_char.data(), m_char.length());
ZRCola::chrtag_db::chrtag ct = { m_char };
size_t end;
if (app->m_ct_db.idxChr.find(*ct, start, end)) {
if (app->m_ct_db.idxChr.find(ct, start, end)) {
for (size_t i = start; i < end; i++) {
const ZRCola::chrtag_db::chrtag &ct = app->m_ct_db.idxChr[i];
// Find tag names.
char tn[sizeof(ZRCola::tagname_db::tagname)] = {};
((ZRCola::tagname_db::tagname*)tn)->locale = m_locale;
((ZRCola::tagname_db::tagname*)tn)->tag = ct.tag;
size_t start, end;
if (app->m_tn_db.idxTag.find(ZRCola::tagname_db::tagname(ct.tag, m_locale), start, end)) {
if (app->m_tn_db.idxTag.find(*((ZRCola::tagname_db::tagname*)tn), start, end)) {
for (size_t i = start; i < end; i++) {
const ZRCola::tagname_db::tagname &tn = app->m_tn_db.idxTag[i];
@@ -312,9 +149,9 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
for (auto name = tag_names.cbegin(), name_end = tag_names.cend();; ++name) {
if (name == name_end) {
// Add name to the list.
tag_names.push_back(std::wstring(tn.name(), tn.name_end()));
tag_names.push_back(std::wstring(tn.name, tn.name + tn.name_len));
break;
} else if (ZRCola::tagname_db::tagname::CompareName(m_locale, name->data(), (unsigned __int16)name->length(), tn.name(), tn.name_len()) == 0)
} else if (ZRCola::tagname_db::tagname::CompareName(m_locale, name->data(), (unsigned __int16)name->length(), tn.name, tn.name_len) == 0)
// Name is already on the list.
break;
}
@@ -354,10 +191,10 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
m_searchThread->m_search.assign(val.c_str(), val.Length());
// Select categories.
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
for (size_t i = 0, n = app->m_cc_db.idxRnk.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRnk[i];
if (m_categories->IsChecked(i))
m_searchThread->m_cats.insert(cc.cat);
m_searchThread->m_cats.insert(cc.id);
}
if (m_searchThread->Run() != wxTHREAD_NO_ERROR) {
@@ -402,7 +239,7 @@ void wxZRColaCharSelect::OnCategoriesAll(wxHyperlinkEvent& event)
event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
for (size_t i = 0, n = app->m_cc_db.idxRnk.size(); i < n; i++)
m_categories->Check(i, true);
m_searchChanged = true;
@@ -414,7 +251,7 @@ void wxZRColaCharSelect::OnCategoriesNone(wxHyperlinkEvent& event)
event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
for (size_t i = 0, n = app->m_cc_db.idxRnk.size(); i < n; i++)
m_categories->Check(i, false);
m_searchChanged = true;
@@ -426,7 +263,7 @@ void wxZRColaCharSelect::OnCategoriesInvert(wxHyperlinkEvent& event)
event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
for (size_t i = 0, n = app->m_cc_db.idxRnk.size(); i < n; i++)
m_categories->Check(i, !m_categories->IsChecked(i));
m_searchChanged = true;
@@ -447,10 +284,10 @@ void wxZRColaCharSelect::OnSearchComplete(wxThreadEvent& event)
if (m_searchThread) {
// Display results.
wxArrayString chars;
wxString chars;
chars.reserve(m_searchThread->m_hits.size());
for (auto i = m_searchThread->m_hits.cbegin(), i_end = m_searchThread->m_hits.cend(); i != i_end; ++i)
chars.Add(i->second);
chars += i->second;
m_gridResults->SetCharacters(chars);
m_searchThread->Delete();
@@ -467,7 +304,7 @@ void wxZRColaCharSelect::OnResultSelectCell(wxGridEvent& event)
wxString val(m_gridResults->GetCellValue(event.GetRow(), event.GetCol()));
if (!val.IsEmpty())
NavigateTo(val);
NavigateTo(val[0]);
}
@@ -477,7 +314,7 @@ void wxZRColaCharSelect::OnResultCellDClick(wxGridEvent& event)
wxString val(m_gridResults->GetCellValue(event.GetRow(), event.GetCol()));
if (!val.IsEmpty()) {
NavigateTo(val);
NavigateTo(val[0]);
wxCommandEvent e(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
m_sdbSizerButtonsOK->GetEventHandler()->ProcessEvent(e);
}
@@ -491,7 +328,7 @@ void wxZRColaCharSelect::OnResultsKeyDown(wxKeyEvent& event)
case WXK_NUMPAD_ENTER:
wxString val(m_gridResults->GetCellValue(m_gridResults->GetCursorRow(), m_gridResults->GetCursorColumn()));
if (!val.IsEmpty()) {
NavigateTo(val);
NavigateTo(val[0]);
wxCommandEvent e(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
m_sdbSizerButtonsOK->GetEventHandler()->ProcessEvent(e);
@@ -510,7 +347,7 @@ void wxZRColaCharSelect::OnRecentSelectCell(wxGridEvent& event)
wxString val(m_gridRecent->GetCellValue(event.GetRow(), event.GetCol()));
if (!val.IsEmpty())
NavigateTo(val);
NavigateTo(val[0]);
}
@@ -520,7 +357,7 @@ void wxZRColaCharSelect::OnRecentCellDClick(wxGridEvent& event)
wxString val(m_gridRecent->GetCellValue(event.GetRow(), event.GetCol()));
if (!val.IsEmpty()) {
NavigateTo(val);
NavigateTo(val[0]);
wxCommandEvent e(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
m_sdbSizerButtonsOK->GetEventHandler()->ProcessEvent(e);
}
@@ -534,7 +371,7 @@ void wxZRColaCharSelect::OnRecentKeyDown(wxKeyEvent& event)
case WXK_NUMPAD_ENTER:
wxString val(m_gridRecent->GetCellValue(m_gridRecent->GetCursorRow(), m_gridRecent->GetCursorColumn()));
if (!val.IsEmpty()) {
NavigateTo(val);
NavigateTo(val[0]);
wxCommandEvent e(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
m_sdbSizerButtonsOK->GetEventHandler()->ProcessEvent(e);
@@ -594,7 +431,7 @@ void wxZRColaCharSelect::OnRelatedSelectCell(wxGridEvent& event)
wxString val(m_gridRelated->GetCellValue(event.GetRow(), event.GetCol()));
if (!val.IsEmpty())
NavigateTo(val);
NavigateTo(val[0]);
}
@@ -602,15 +439,15 @@ void wxZRColaCharSelect::OnOKButtonClick(wxCommandEvent& event)
{
event.Skip();
const wxArrayString &recent = m_gridRecent->GetCharacters();
wxArrayString val;
val.reserve(recent.GetCount() + 1);
val.Add(m_char);
for (size_t i = 0, n = recent.GetCount(); i < n; i++) {
const wxString &c = recent[i];
wxString
recent(m_gridRecent->GetCharacters()),
val(1, m_char);
for (size_t i = 0, n = recent.Length(); i < n; i++) {
const wxStringCharType c = recent[i];
if (c != m_char)
val.Add(c);
val += c;
}
m_gridRecent->SetCharacters(val);
}
@@ -620,13 +457,13 @@ void wxZRColaCharSelect::ResetResults()
// Fill the results.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
size_t i, n = app->m_chr_db.idxChr.size();
wxArrayString val;
wxString val;
val.reserve(n);
for (i = 0; i < n; i++) {
const auto &chr = app->m_chr_db.idxChr[i];
auto idx = m_ccOrder.find(chr.cat);
if (idx == m_ccOrder.end() || m_categories->IsChecked(idx->second))
val.Add(wxString(chr.chr(), chr.chr_len()));
val += chr.chr;
}
m_gridResults->SetCharacters(val);
}
@@ -670,7 +507,7 @@ void wxZRColaCharSelect::NavigateBy(int offset)
}
void wxZRColaCharSelect::NavigateTo(const wxString &c)
void wxZRColaCharSelect::NavigateTo(wchar_t c)
{
if (m_char != c) {
// Update history state
@@ -711,7 +548,7 @@ wxZRColaCharSelect::SearchThread::SearchThread(wxZRColaCharSelect *parent) :
wxThread::ExitCode wxZRColaCharSelect::SearchThread::Entry()
{
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
std::map<std::wstring, ZRCola::charrank_t> hits;
std::map<wchar_t, ZRCola::charrank_t> hits;
if (TestDestroy()) return (wxThread::ExitCode)1;
@@ -724,7 +561,7 @@ wxThread::ExitCode wxZRColaCharSelect::SearchThread::Entry()
{
// Search by description and merge results.
std::map<std::wstring, ZRCola::charrank_t> hits_sub;
std::map<wchar_t, ZRCola::charrank_t> hits_sub;
if (!app->m_chr_db.Search(m_search.c_str(), m_cats, hits, hits_sub, TestDestroyS, this)) return (wxThread::ExitCode)1;
for (auto i = hits_sub.cbegin(), i_end = hits_sub.cend(); i != i_end; ++i) {
if (TestDestroy()) return (wxThread::ExitCode)1;
@@ -752,7 +589,7 @@ wxThread::ExitCode wxZRColaCharSelect::SearchThread::Entry()
if (i->second > rank_threshold)
m_hits.push_back(std::make_pair(i->second, i->first));
}
std::qsort(m_hits.data(), m_hits.size(), sizeof(std::pair<ZRCola::charrank_t, std::wstring>), CompareHits);
std::qsort(m_hits.data(), m_hits.size(), sizeof(std::pair<ZRCola::charrank_t, wchar_t>), CompareHits);
// Signal the event handler that this thread is going to be destroyed.
// NOTE: here we assume that using the m_parent pointer is safe,
@@ -800,25 +637,12 @@ void wxPersistentZRColaCharSelect::Save() const
auto wnd = static_cast<const wxZRColaCharSelect*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
wxString str, str2;
auto &recent = wnd->m_gridRecent->GetCharacters();
for (size_t i = 0, n = recent.GetCount(); i < n; i++) {
if (i) str2 += wxT('|');
auto &chr = recent[i];
for (size_t j = 0, m = chr.Length(); j < m; j++) {
if (j) str2 += wxT('+');
str2 += wxString::Format(wxT("%04X"), chr[j]);
}
if (chr.Length() == 1)
str += chr[0];
}
SaveValue(wxT("recentChars" ), str ); // Save in legacy format for backward compatibility.
SaveValue(wxT("recentChars2"), str2); // Save in native format
SaveValue(wxT("recentChars"), wnd->m_gridRecent->GetCharacters());
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
for (size_t i = 0, n = app->m_cc_db.idxRnk.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRnk[i];
wxString name(wxT("category"));
name.Append(cc.cat.data, _countof(cc.cat.data));
name.Append(cc.id.data, _countof(cc.id.data));
SaveValue(name, wnd->m_categories->IsChecked(i));
}
@@ -831,29 +655,14 @@ bool wxPersistentZRColaCharSelect::Restore()
auto wnd = dynamic_cast<wxZRColaCharSelect*>(GetWindow());
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
wxString str;
if (RestoreValue(wxT("recentChars2"), &str)) {
// Native format found.
wxArrayString val;
for (wxStringTokenizer tok(str, wxT("|")); tok.HasMoreTokens(); ) {
wxString chr;
for (wxStringTokenizer tok_chr(tok.GetNextToken(), wxT("+")); tok_chr.HasMoreTokens(); )
chr += (wchar_t)_tcstoul(tok_chr.GetNextToken().c_str(), NULL, 16);
val.Add(chr);
}
wnd->m_gridRecent->SetCharacters(val);
} else if (RestoreValue(wxT("recentChars"), &str)) {
// Legacy value found.
wxArrayString val;
for (size_t i = 0, n = str.Length(); i < n; i++)
val.Add(wxString(1, str[i]));
wnd->m_gridRecent->SetCharacters(val);
}
wxString recent;
if (RestoreValue(wxT("recentChars"), &recent))
wnd->m_gridRecent->SetCharacters(recent);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
for (size_t i = 0, n = app->m_cc_db.idxRnk.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRnk[i];
wxString name(wxT("category"));
name.Append(cc.cat.data, _countof(cc.cat.data));
name.Append(cc.id.data, _countof(cc.id.data));
bool val;
if (RestoreValue(name, &val))
wnd->m_categories->Check(i, val);

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -28,106 +28,15 @@ class wxPersistentZRColaCharSelect;
#include "zrcolagui.h"
#include <zrcola/character.h>
#include <wx/validate.h>
#include <wxex/valhex.h>
#include <wxex/persist/dialog.h>
#include <wx/event.h>
#include <wx/thread.h>
#include <list>
#include <map>
#include <string>
#include <vector>
///
/// Validator for Unicode character
///
class WXEXTEND_API wxZRColaUTF16CharValidator : public wxValidator
{
public:
///
/// Construct the validator with a value to store data
///
wxZRColaUTF16CharValidator(wchar_t *val = NULL);
///
/// Copies this validator
///
virtual wxObject* Clone() const;
///
/// Validates the value
///
virtual bool Validate(wxWindow *parent);
///
/// Transfers the value to the window
///
virtual bool TransferToWindow();
///
/// Transfers the value from the window
///
virtual bool TransferFromWindow();
///
/// Parses FQDN value
///
static bool Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wchar_t *val_out = NULL);
protected:
wchar_t *m_val; ///< Pointer to variable to receive control's parsed value
private:
wxDECLARE_DYNAMIC_CLASS(wxZRColaUTF16CharValidator);
wxDECLARE_NO_ASSIGN_CLASS(wxZRColaUTF16CharValidator);
};
///
/// Validator for Unicode dump
///
class wxZRColaUnicodeDumpValidator : public wxValidator
{
public:
///
/// Construct the validator with a value to store data
///
wxZRColaUnicodeDumpValidator(wxString *val = NULL);
///
/// Copies this validator
///
virtual wxObject* Clone() const;
///
/// Validates the value
///
virtual bool Validate(wxWindow *parent);
///
/// Transfers the value to the window
///
virtual bool TransferToWindow();
///
/// Transfers the value from the window
///
virtual bool TransferFromWindow();
///
/// Parses Unicode dump value
///
static bool Parse(const wxString &val_in, size_t i_start, size_t i_end, wxTextCtrl *ctrl, wxWindow *parent, wxString *val_out = NULL);
protected:
wxString *m_val; ///< Pointer to variable to receive control's parsed value
private:
wxDECLARE_DYNAMIC_CLASS(wxZRColaUnicodeDumpValidator);
wxDECLARE_NO_ASSIGN_CLASS(wxZRColaUnicodeDumpValidator);
};
wxDECLARE_EVENT(wxEVT_SEARCH_COMPLETE, wxThreadEvent);
@@ -167,10 +76,10 @@ protected:
void ResetResults();
void NavigateBy(int offset);
void NavigateTo(const wxString &c);
void NavigateTo(wchar_t c);
public:
wxString m_char; ///< Currently selected character (empty when none)
wchar_t m_char; ///< Currently selected character (0 when none)
protected:
LCID m_locale; ///< Locale for tag lookup
@@ -195,7 +104,7 @@ protected:
public:
std::wstring m_search; ///< Search phrase
std::set<ZRCola::chrcatid_t> m_cats; ///< Search categories
std::vector<std::pair<ZRCola::charrank_t, std::wstring> > m_hits; ///< Search results
std::vector<std::pair<ZRCola::charrank_t, wchar_t> > m_hits; ///< Search results
protected:
wxZRColaCharSelect *m_parent; ///< Thread owner
@@ -207,7 +116,7 @@ protected:
///
struct NavigationState
{
std::wstring m_char;
wchar_t m_char;
struct {
wxGridCellCoords m_selected;
} m_related;

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -25,42 +25,42 @@
//////////////////////////////////////////////////////////////////////////
wxZRColaComposerPanel::wxZRColaComposerPanel(wxWindow* parent) :
m_sourceChanged(false),
m_destinationChanged(false),
m_selSource(0, 0),
m_selDestination(0, 0),
m_decomposedChanged(false),
m_composedChanged(false),
m_selDecomposed(0, 0),
m_selComposed(0, 0),
wxZRColaComposerPanelBase(parent)
{
m_source->PushEventHandler(&m_keyhandler);
m_decomposed->PushEventHandler(&m_keyhandler);
// Restore the previously saved state (if exists).
wxString fileName(GetStateFileName());
if (wxFileExists(fileName)) {
wxFFile file(fileName, wxT("rb"));
if (file.IsOpened()) {
// Load source text.
// Load decomposed text.
unsigned __int64 n;
file.Read(&n, sizeof(n));
if (!file.Error()) {
wxString source;
file.Read(wxStringBuffer(source, n), sizeof(wchar_t)*n);
wxString decomposed;
file.Read(wxStringBuffer(decomposed, n), sizeof(wchar_t)*n);
if (!file.Error()) {
// Load destination text.
// Load composed text.
file.Read(&n, sizeof(n));
if (!file.Error()) {
wxString destination;
file.Read(wxStringBuffer(destination, n), sizeof(wchar_t)*n);
wxString composed;
file.Read(wxStringBuffer(composed, n), sizeof(wchar_t)*n);
if (!file.Error()) {
// Restore state.
m_source->SetValue(source);
m_source->GetSelection(&m_selSource.first, &m_selSource.second);
SetHexValue(m_sourceHex, m_selSourceHex, m_mappingSourceHex, source.GetData(), source.Length(), m_selSource.first, m_selSource.second);
m_sourceChanged = false;
m_decomposed->SetValue(decomposed);
m_decomposed->GetSelection(&m_selDecomposed.first, &m_selDecomposed.second);
SetHexValue(m_decomposedHex, m_selDecomposedHex, m_mappingDecomposedHex, decomposed.GetData(), decomposed.Length(), m_selDecomposed.first, m_selDecomposed.second);
m_decomposedChanged = false;
m_destination->SetValue(destination);
m_destination->GetSelection(&m_selDestination.first, &m_selDestination.second);
SetHexValue(m_destinationHex, m_selDestinationHex, m_mappingDestinationHex, destination.GetData(), destination.Length(), m_selDestination.first, m_selDestination.second);
m_destinationChanged = false;
m_composed->SetValue(composed);
m_composed->GetSelection(&m_selComposed.first, &m_selComposed.second);
SetHexValue(m_composedHex, m_selComposedHex, m_mappingComposedHex, composed.GetData(), composed.Length(), m_selComposed.first, m_selComposed.second);
m_composedChanged = false;
}
}
}
@@ -72,7 +72,7 @@ wxZRColaComposerPanel::wxZRColaComposerPanel(wxWindow* parent) :
wxZRColaComposerPanel::~wxZRColaComposerPanel()
{
m_source->PopEventHandler();
m_decomposed->PopEventHandler();
// This is a controlled exit. Purge saved state.
wxString fileName(GetStateFileName());
@@ -83,221 +83,195 @@ wxZRColaComposerPanel::~wxZRColaComposerPanel()
void wxZRColaComposerPanel::SynchronizePanels()
{
if (m_sourceChanged) {
if (m_decomposedChanged) {
m_timerSave.Stop();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
wxZRColaFrame *mainWnd = dynamic_cast<wxZRColaFrame*>(wxGetActiveWindow());
wxASSERT_MSG(mainWnd, "main window missing");
wxString src;
size_t len = GetValue(m_source, src);
std::wstring dst(src.data(), len), dst2;
ZRCola::mapping_vector map;
size_t len = GetValue(m_decomposed, src);
m_mapping.clear();
for (auto s = mainWnd->m_settings->m_transeq.cbegin(), s_end = mainWnd->m_settings->m_transeq.cend(); s != s_end; ++s) {
if (*s == 0) {
// ZRCola Decomposed => ZRCola Composed should decompose first.
app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), dst2, &map);
m_mapping.push_back(std::move(map));
std::wstring norm;
app->m_t_db.Decompose(src.data(), len, norm, &m_mapping1);
app->m_t_db.Translate(*s, dst2.data(), dst2.size(), dst, &map);
m_mapping.push_back(std::move(map));
} else {
// Other transforms
app->m_t_db.Translate(*s, dst.data(), dst.size(), dst2, &map);
m_mapping.push_back(std::move(map));
dst = std::move(dst2);
}
}
std::wstring dst;
app->m_t_db.Compose(norm.data(), norm.size(), dst, &m_mapping2);
m_source->GetSelection(&m_selSource.first, &m_selSource.second);
m_decomposed->GetSelection(&m_selDecomposed.first, &m_selDecomposed.second);
// Update source HEX dump.
SetHexValue(m_sourceHex, m_selSourceHex, m_mappingSourceHex, src.data(), len, m_selSource.first, m_selSource.second);
// Update decomposed HEX dump.
SetHexValue(m_decomposedHex, m_selDecomposedHex, m_mappingDecomposedHex, src.data(), len, m_selDecomposed.first, m_selDecomposed.second);
// Update destination text, and its HEX dump.
m_destination->SetValue(dst);
m_destination->SetSelection(
m_selDestination.first = MapToDestination(m_selSource.first ),
m_selDestination.second = MapToDestination(m_selSource.second));
SetHexValue(m_destinationHex, m_selDestinationHex, m_mappingDestinationHex, dst.data(), dst.length(), m_selDestination.first, m_selDestination.second);
// Update composed text, and its HEX dump.
m_composed->SetValue(dst);
m_composed->SetSelection(
m_selComposed.first = m_mapping2.to_dst(m_mapping1.to_dst(m_selDecomposed.first )),
m_selComposed.second = m_mapping2.to_dst(m_mapping1.to_dst(m_selDecomposed.second)));
SetHexValue(m_composedHex, m_selComposedHex, m_mappingComposedHex, dst.data(), dst.length(), m_selComposed.first, m_selComposed.second);
// Schedule state save after 3s.
m_timerSave.Start(3000, true);
} else if (m_destinationChanged) {
} else if (m_composedChanged) {
m_timerSave.Stop();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
wxZRColaFrame *mainWnd = dynamic_cast<wxZRColaFrame*>(wxGetActiveWindow());
wxASSERT_MSG(mainWnd, "main window missing");
wxString src;
size_t len = GetValue(m_destination, src);
std::wstring dst(src.data(), len), dst2;
ZRCola::mapping_vector map;
size_t len = GetValue(m_composed, src);
m_mapping.clear();
for (auto s = mainWnd->m_settings->m_transeq.crbegin(), s_end = mainWnd->m_settings->m_transeq.crend(); s != s_end; ++s) {
if (*s) {
// ZRCola Decomposed => ZRCola Composed
app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), &app->m_lc_db, mainWnd->m_settings->m_lang, dst2, &map);
} else {
// Other transforms
app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), dst2, &map);
}
dst = std::move(dst2);
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
std::wstring dst;
wxZRColaFrame *mainWnd = dynamic_cast<wxZRColaFrame*>(wxGetActiveWindow());
if (mainWnd)
app->m_t_db.Decompose(src.data(), len, &app->m_lc_db, mainWnd->m_settings->m_lang, dst, &m_mapping2);
else
app->m_t_db.Decompose(src.data(), len, dst, &m_mapping2);
map.invert();
m_mapping.push_back(std::move(map));
}
m_mapping1.clear();
m_mapping2.invert();
m_destination->GetSelection(&m_selDestination.first, &m_selDestination.second);
m_composed->GetSelection(&m_selComposed.first, &m_selComposed.second);
// Update destination HEX dump.
SetHexValue(m_destinationHex, m_selDestinationHex, m_mappingDestinationHex, src.data(), len, m_selDestination.first, m_selDestination.second);
// Update composed HEX dump.
SetHexValue(m_composedHex, m_selComposedHex, m_mappingComposedHex, src.data(), len, m_selComposed.first, m_selComposed.second);
// Update source text, and its HEX dump.
m_source->SetValue(dst);
m_source->SetSelection(
m_selSource.first = MapToSource(m_selDestination.first ),
m_selSource.second = MapToSource(m_selDestination.second));
SetHexValue(m_sourceHex, m_selSourceHex, m_mappingSourceHex, dst.data(), dst.length(), m_selSource.first, m_selSource.second);
// Update decomposed text, and its HEX dump.
m_decomposed->SetValue(dst);
m_decomposed->SetSelection(
m_selDecomposed.first = m_mapping1.to_src(m_mapping2.to_src(m_selComposed.first )),
m_selDecomposed.second = m_mapping1.to_src(m_mapping2.to_src(m_selComposed.second)));
SetHexValue(m_decomposedHex, m_selDecomposedHex, m_mappingDecomposedHex, dst.data(), dst.length(), m_selDecomposed.first, m_selDecomposed.second);
// Schedule state save after 3s.
m_timerSave.Start(3000, true);
}
m_sourceChanged = false;
m_destinationChanged = false;
m_decomposedChanged = false;
m_composedChanged = false;
}
void wxZRColaComposerPanel::OnSourcePaint(wxPaintEvent& event)
void wxZRColaComposerPanel::OnDecomposedPaint(wxPaintEvent& event)
{
event.Skip();
long from, to;
m_source->GetSelection(&from, &to);
m_decomposed->GetSelection(&from, &to);
if (m_selSource.first != from || m_selSource.second != to) {
if (m_selDecomposed.first != from || m_selDecomposed.second != to) {
// Save new selection first, to avoid loop.
m_selSource.first = from;
m_selSource.second = to;
m_selDecomposed.first = from;
m_selDecomposed.second = to;
m_sourceHex->SetSelection(
m_selSourceHex.first = m_mappingSourceHex.to_dst(from),
m_selSourceHex.second = m_mappingSourceHex.to_dst(to ));
m_decomposedHex->SetSelection(
m_selDecomposedHex.first = m_mappingDecomposedHex.to_dst(from),
m_selDecomposedHex.second = m_mappingDecomposedHex.to_dst(to ));
m_destination->SetSelection(
m_selDestination.first = MapToDestination(from),
m_selDestination.second = MapToDestination(to ));
m_composed->SetSelection(
m_selComposed.first = m_mapping2.to_dst(m_mapping1.to_dst(from)),
m_selComposed.second = m_mapping2.to_dst(m_mapping1.to_dst(to )));
m_destinationHex->SetSelection(
m_selDestinationHex.first = m_mappingDestinationHex.to_dst(m_selDestination.first ),
m_selDestinationHex.second = m_mappingDestinationHex.to_dst(m_selDestination.second));
m_composedHex->SetSelection(
m_selComposedHex.first = m_mappingComposedHex.to_dst(m_selComposed.first ),
m_selComposedHex.second = m_mappingComposedHex.to_dst(m_selComposed.second));
}
}
void wxZRColaComposerPanel::OnSourceHexPaint(wxPaintEvent& event)
void wxZRColaComposerPanel::OnDecomposedHexPaint(wxPaintEvent& event)
{
event.Skip();
long from, to;
m_sourceHex->GetSelection(&from, &to);
m_decomposedHex->GetSelection(&from, &to);
if (m_selSourceHex.first != from || m_selSourceHex.second != to) {
if (m_selDecomposedHex.first != from || m_selDecomposedHex.second != to) {
// Save new selection first, to avoid loop.
m_selSourceHex.first = from;
m_selSourceHex.second = to;
m_selDecomposedHex.first = from;
m_selDecomposedHex.second = to;
m_source->SetSelection(
m_selSource.first = m_mappingSourceHex.to_src(from),
m_selSource.second = m_mappingSourceHex.to_src(to ));
m_decomposed->SetSelection(
m_selDecomposed.first = m_mappingDecomposedHex.to_src(from),
m_selDecomposed.second = m_mappingDecomposedHex.to_src(to ));
m_destination->SetSelection(
m_selDestination.first = MapToDestination(m_selSource.first ),
m_selDestination.second = MapToDestination(m_selSource.second));
m_composed->SetSelection(
m_selComposed.first = m_mapping2.to_dst(m_mapping1.to_dst(m_selDecomposed.first )),
m_selComposed.second = m_mapping2.to_dst(m_mapping1.to_dst(m_selDecomposed.second)));
m_destinationHex->SetSelection(
m_selDestinationHex.first = m_mappingDestinationHex.to_dst(m_selDestination.first ),
m_selDestinationHex.second = m_mappingDestinationHex.to_dst(m_selDestination.second));
m_composedHex->SetSelection(
m_selComposedHex.first = m_mappingComposedHex.to_dst(m_selComposed.first ),
m_selComposedHex.second = m_mappingComposedHex.to_dst(m_selComposed.second));
}
}
void wxZRColaComposerPanel::OnSourceText(wxCommandEvent& event)
void wxZRColaComposerPanel::OnDecomposedText(wxCommandEvent& event)
{
event.Skip();
// Set the flag the source text changed to trigger idle-time transformation.
m_sourceChanged = true;
// Set the flag the decomposed text changed to trigger idle-time composition.
m_decomposedChanged = true;
}
void wxZRColaComposerPanel::OnDestinationPaint(wxPaintEvent& event)
void wxZRColaComposerPanel::OnComposedPaint(wxPaintEvent& event)
{
event.Skip();
long from, to;
m_destination->GetSelection(&from, &to);
m_composed->GetSelection(&from, &to);
if (m_selDestination.first != from || m_selDestination.second != to) {
if (m_selComposed.first != from || m_selComposed.second != to) {
// Save new selection first, to avoid loop.
m_selDestination.first = from;
m_selDestination.second = to;
m_selComposed.first = from;
m_selComposed.second = to;
m_destinationHex->SetSelection(
m_selDestinationHex.first = m_mappingDestinationHex.to_dst(from),
m_selDestinationHex.second = m_mappingDestinationHex.to_dst(to ));
m_composedHex->SetSelection(
m_selComposedHex.first = m_mappingComposedHex.to_dst(from),
m_selComposedHex.second = m_mappingComposedHex.to_dst(to ));
m_source->SetSelection(
m_selSource.first = MapToSource(from),
m_selSource.second = MapToSource(to ));
m_decomposed->SetSelection(
m_selDecomposed.first = m_mapping1.to_src(m_mapping2.to_src(from)),
m_selDecomposed.second = m_mapping1.to_src(m_mapping2.to_src(to )));
m_sourceHex->SetSelection(
m_selSourceHex.first = m_mappingSourceHex.to_dst(m_selSource.first ),
m_selSourceHex.second = m_mappingSourceHex.to_dst(m_selSource.second));
m_decomposedHex->SetSelection(
m_selDecomposedHex.first = m_mappingDecomposedHex.to_dst(m_selDecomposed.first ),
m_selDecomposedHex.second = m_mappingDecomposedHex.to_dst(m_selDecomposed.second));
}
}
void wxZRColaComposerPanel::OnDestinationHexPaint(wxPaintEvent& event)
void wxZRColaComposerPanel::OnComposedHexPaint(wxPaintEvent& event)
{
event.Skip();
long from, to;
m_destinationHex->GetSelection(&from, &to);
m_composedHex->GetSelection(&from, &to);
if (m_selDestinationHex.first != from || m_selDestinationHex.second != to) {
if (m_selComposedHex.first != from || m_selComposedHex.second != to) {
// Save new selection first, to avoid loop.
m_selDestinationHex.first = from;
m_selDestinationHex.second = to;
m_selComposedHex.first = from;
m_selComposedHex.second = to;
m_destination->SetSelection(
m_selDestination.first = m_mappingDestinationHex.to_src(from),
m_selDestination.second = m_mappingDestinationHex.to_src(to ));
m_composed->SetSelection(
m_selComposed.first = m_mappingComposedHex.to_src(from),
m_selComposed.second = m_mappingComposedHex.to_src(to ));
m_source->SetSelection(
m_selSource.first = MapToSource(m_selDestination.first ),
m_selSource.second = MapToSource(m_selDestination.second));
m_decomposed->SetSelection(
m_selDecomposed.first = m_mapping1.to_src(m_mapping2.to_src(m_selComposed.first )),
m_selDecomposed.second = m_mapping1.to_src(m_mapping2.to_src(m_selComposed.second)));
m_sourceHex->SetSelection(
m_selSourceHex.first = m_mappingSourceHex.to_dst(m_selSource.first ),
m_selSourceHex.second = m_mappingSourceHex.to_dst(m_selSource.second));
m_decomposedHex->SetSelection(
m_selDecomposedHex.first = m_mappingDecomposedHex.to_dst(m_selDecomposed.first ),
m_selDecomposedHex.second = m_mappingDecomposedHex.to_dst(m_selDecomposed.second));
}
}
void wxZRColaComposerPanel::OnDestinationText(wxCommandEvent& event)
void wxZRColaComposerPanel::OnComposedText(wxCommandEvent& event)
{
event.Skip();
// Set the flag the destination text changed to trigger idle-time inverse transformation.
m_destinationChanged = true;
// Set the flag the composed text changed to trigger idle-time decomposition.
m_composedChanged = true;
}
@@ -309,13 +283,13 @@ void wxZRColaComposerPanel::OnSaveTimer(wxTimerEvent& event)
wxString text;
size_t len;
// Save source text.
len = GetValue(m_source, text);
// Save decomposed text.
len = GetValue(m_decomposed, text);
file.Write(&len, sizeof(len));
file.Write((const wchar_t*)text, sizeof(wchar_t)*len);
// Save destination text.
len = GetValue(m_destination, text);
// Save composed text.
len = GetValue(m_composed, text);
file.Write(&len, sizeof(len));
file.Write((const wchar_t*)text, sizeof(wchar_t)*len);
}
@@ -411,8 +385,8 @@ void wxPersistentZRColaComposerPanel::Save() const
{
auto const wnd = static_cast<const wxZRColaComposerPanel*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
SaveValue(wxT("splitDecomposed"), wnd->m_splitterSource->GetSashPosition());
SaveValue(wxT("splitComposed" ), wnd->m_splitterDestination ->GetSashPosition());
SaveValue(wxT("splitDecomposed"), wnd->m_splitterDecomposed->GetSashPosition());
SaveValue(wxT("splitComposed" ), wnd->m_splitterComposed ->GetSashPosition());
}
@@ -424,14 +398,14 @@ bool wxPersistentZRColaComposerPanel::Restore()
if (RestoreValue(wxT("splitDecomposed"), &sashVal)) {
// wxFormBuilder sets initial splitter stash in idle event handler after GUI settles. Overriding our loaded value. Disconnect it's idle event handler.
wnd->m_splitterSource->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterSourceOnIdle ), NULL, wnd );
wnd->m_splitterSource->SetSashPosition(sashVal);
wnd->m_splitterDecomposed->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterDecomposedOnIdle ), NULL, wnd );
wnd->m_splitterDecomposed->SetSashPosition(sashVal);
}
if (RestoreValue(wxT("splitComposed"), &sashVal)) {
// wxFormBuilder sets initial splitter stash in idle event handler after GUI settles. Overriding our loaded value. Disconnect it's idle event handler.
wnd->m_splitterDestination->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterDestinationOnIdle ), NULL, wnd );
wnd->m_splitterDestination->SetSashPosition(sashVal);
wnd->m_splitterComposed->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterComposedOnIdle ), NULL, wnd );
wnd->m_splitterComposed->SetSashPosition(sashVal);
}
return true;

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -30,7 +30,6 @@ class wxZRColaComposerPanel;
#include <wx/persist/window.h>
#include <wx/timer.h>
#include <utility>
#include <vector>
///
@@ -47,32 +46,31 @@ public:
friend class wxPersistentZRColaComposerPanel; // Allow saving/restoring window state.
protected:
virtual void OnSourcePaint(wxPaintEvent& event);
virtual void OnSourceHexPaint(wxPaintEvent& event);
virtual void OnSourceText(wxCommandEvent& event);
virtual void OnDestinationPaint(wxPaintEvent& event);
virtual void OnDestinationHexPaint(wxPaintEvent& event);
virtual void OnDestinationText(wxCommandEvent& event);
virtual void OnDecomposedPaint(wxPaintEvent& event);
virtual void OnDecomposedHexPaint(wxPaintEvent& event);
virtual void OnDecomposedText(wxCommandEvent& event);
virtual void OnComposedPaint(wxPaintEvent& event);
virtual void OnComposedHexPaint(wxPaintEvent& event);
virtual void OnComposedText(wxCommandEvent& event);
virtual void OnSaveTimer(wxTimerEvent& event);
inline size_t MapToDestination(_In_ size_t src) const;
inline size_t MapToSource(_In_ size_t dst) const;
static wxString GetStateFileName();
static size_t GetValue(wxTextCtrl *wnd, wxString &text);
static void SetHexValue(wxTextCtrl *wnd, std::pair<long, long> &range, ZRCola::mapping_vector &mapping, const wchar_t *src, size_t len, long from, long to);
protected:
bool m_sourceChanged; ///< Boolean flag to mark source text "dirty" to trigger transformation
bool m_destinationChanged; ///< Boolean flag to mark destination text "dirty" to trigger inverse transformation
std::vector<ZRCola::mapping_vector> m_mapping; ///< Character index mapping vector between source and normalized text
bool m_decomposedChanged; ///< Boolean flag to mark decomposed text "dirty" to trigger composition
bool m_composedChanged; ///< Boolean flag to mark composed text "dirty" to trigger decomposition
ZRCola::mapping_vector m_mapping1; ///< Character index mapping vector between decomposed and normalized text
ZRCola::mapping_vector m_mapping2; ///< Character index mapping vector between normalized and composed text
std::pair<long, long>
m_selSource, ///< Character index of selected text in source text control
m_selSourceHex, ///< Character index of selected text in source HEX dump text control
m_selDestination, ///< Character index of selected text in destination text control
m_selDestinationHex; ///< Character index of selected text in destination HEX dump text control
wxZRColaKeyHandler m_keyhandler; ///< Key handler for source window
ZRCola::mapping_vector m_mappingSourceHex; ///< Character index mapping vector between source text and its HEX dump
ZRCola::mapping_vector m_mappingDestinationHex; ///< Character index mapping vector between destination text and its HEX dump
m_selDecomposed, ///< Character index of selected text in decomposed text control
m_selDecomposedHex, ///< Character index of selected text in decomposed HEX dump text control
m_selComposed, ///< Character index of selected text in composed text control
m_selComposedHex; ///< Character index of selected text in composed HEX dump text control
wxZRColaKeyHandler m_keyhandler; ///< Key handler for decomposed window
ZRCola::mapping_vector m_mappingDecomposedHex; ///< Character index mapping vector between decomposed text and its HEX dump
ZRCola::mapping_vector m_mappingComposedHex; ///< Character index mapping vector between composed text and its HEX dump
};
@@ -90,24 +88,6 @@ public:
};
inline size_t wxZRColaComposerPanel::MapToDestination(_In_ size_t src) const
{
for (auto m = m_mapping.cbegin(), m_end = m_mapping.cend(); m != m_end; ++m)
src = m->to_dst(src);
return src;
}
inline size_t wxZRColaComposerPanel::MapToSource(_In_ size_t dst) const
{
for (auto m = m_mapping.crbegin(), m_end = m_mapping.crend(); m != m_end; ++m)
dst = m->to_src(dst);
return dst;
}
inline wxPersistentObject *wxCreatePersistentObject(wxZRColaComposerPanel *wnd)
{
return new wxPersistentZRColaComposerPanel(wnd);

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -34,19 +34,17 @@ wxBEGIN_EVENT_TABLE(wxZRColaFrame, wxZRColaFrameBase)
EVT_MENU (wxID_CHARACTER_SELECTOR , wxZRColaFrame::OnInsertCharacter )
EVT_UPDATE_UI_RANGE(wxID_SEND_DESTINATION , wxID_SEND_ABORT, wxZRColaFrame::OnSendUpdate )
EVT_MENU (wxID_COPY_DESTINATION_AND_RETURN , wxZRColaFrame::OnCopyDestinationAndReturn )
EVT_MENU (wxID_SEND_DESTINATION , wxZRColaFrame::OnSendDestination )
EVT_MENU (wxID_COPY_SOURCE_AND_RETURN , wxZRColaFrame::OnCopySourceAndReturn )
EVT_MENU (wxID_SEND_SOURCE , wxZRColaFrame::OnSendSource )
EVT_UPDATE_UI_RANGE(wxID_SEND_COMPOSED , wxID_SEND_ABORT, wxZRColaFrame::OnSendUpdate )
EVT_MENU (wxID_SEND_COMPOSED , wxZRColaFrame::OnSendComposed )
EVT_MENU (wxID_SEND_DECOMPOSED , wxZRColaFrame::OnSendDecomposed )
EVT_MENU (wxID_SEND_ABORT , wxZRColaFrame::OnSendAbort )
EVT_MENU (wxID_SETTINGS , wxZRColaFrame::OnSettings )
EVT_UPDATE_UI (wxID_TOOLBAR_EDIT , wxZRColaFrame::OnToolbarEditUpdate )
EVT_MENU (wxID_TOOLBAR_EDIT , wxZRColaFrame::OnToolbarEdit )
EVT_UPDATE_UI (wxID_TOOLBAR_TRANSFORM , wxZRColaFrame::OnToolbarTransformUpdate )
EVT_MENU (wxID_TOOLBAR_TRANSFORM , wxZRColaFrame::OnToolbarTransform )
EVT_UPDATE_UI (wxID_TOOLBAR_COMPOSE , wxZRColaFrame::OnToolbarComposeUpdate )
EVT_MENU (wxID_TOOLBAR_COMPOSE , wxZRColaFrame::OnToolbarCompose )
EVT_UPDATE_UI (wxID_PANEL_CHRGRPS , wxZRColaFrame::OnPanelCharacterCatalogUpdate)
EVT_MENU (wxID_PANEL_CHRGRPS , wxZRColaFrame::OnPanelCharacterCatalog )
EVT_MENU (wxID_FOCUS_CHARACTER_CATALOG , wxZRColaFrame::OnPanelCharacterCatalogFocus )
@@ -69,10 +67,10 @@ wxZRColaFrame::wxZRColaFrame() :
{
{
// wxFrameBuilder 3.5 does not support wxAUI_TB_HORIZONTAL flag. Add it manually.
wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarTransform);
wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarCompose);
paneInfo.LeftDockable(false);
paneInfo.RightDockable(false);
m_toolbarTransform->SetWindowStyleFlag(m_toolbarTransform->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL);
m_toolbarCompose->SetWindowStyleFlag(m_toolbarCompose->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL);
}
// Load main window icons.
@@ -106,7 +104,7 @@ wxZRColaFrame::wxZRColaFrame() :
wxPersistentRegisterAndRestore<wxZRColaCharRequest>(m_chrReq);
// Set focus.
m_panel->m_source->SetFocus();
m_panel->m_decomposed->SetFocus();
#if defined(__WXMSW__)
// Register notification sink for language detection.
@@ -139,9 +137,9 @@ wxZRColaFrame::wxZRColaFrame() :
wxPersistentAuiManager(&m_mgr).Restore();
// Register global hotkey(s).
if (!RegisterHotKey(wxZRColaHKID_INVOKE_TRANSFORM, wxMOD_WIN, VK_F5))
if (!RegisterHotKey(wxZRColaHKID_INVOKE_COMPOSE, wxMOD_WIN, VK_F5))
wxMessageBox(_("ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING);
if (!RegisterHotKey(wxZRColaHKID_INVOKE_TRANSFORM_INV, wxMOD_WIN, VK_F6))
if (!RegisterHotKey(wxZRColaHKID_INVOKE_DECOMPOSE, wxMOD_WIN, VK_F6))
wxMessageBox(_("ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING);
}
@@ -149,8 +147,8 @@ wxZRColaFrame::wxZRColaFrame() :
wxZRColaFrame::~wxZRColaFrame()
{
// Unregister global hotkey(s).
UnregisterHotKey(wxZRColaHKID_INVOKE_TRANSFORM_INV);
UnregisterHotKey(wxZRColaHKID_INVOKE_TRANSFORM );
UnregisterHotKey(wxZRColaHKID_INVOKE_DECOMPOSE);
UnregisterHotKey(wxZRColaHKID_INVOKE_COMPOSE);
#if defined(__WXMSW__)
if (m_tfSource) {
@@ -204,9 +202,9 @@ void wxZRColaFrame::OnForwardEvent(wxCommandEvent& event)
void wxZRColaFrame::OnInsertCharacter(wxCommandEvent& event)
{
if (m_chrSelect->ShowModal() == wxID_OK && !m_chrSelect->m_char.empty()) {
m_panel->m_source->WriteText(m_chrSelect->m_char);
m_panel->m_source->SetFocus();
if (m_chrSelect->ShowModal() == wxID_OK && m_chrSelect->m_char) {
m_panel->m_decomposed->WriteText(m_chrSelect->m_char);
m_panel->m_decomposed->SetFocus();
}
}
@@ -217,37 +215,19 @@ void wxZRColaFrame::OnSendUpdate(wxUpdateUIEvent& event)
}
void wxZRColaFrame::OnSendDestination(wxCommandEvent& event)
void wxZRColaFrame::OnSendComposed(wxCommandEvent& event)
{
if (m_hWndSource)
DoSend(m_panel->m_destination->GetValue());
DoSend(m_panel->m_composed->GetValue());
event.Skip();
}
void wxZRColaFrame::OnCopyDestinationAndReturn(wxCommandEvent& event)
void wxZRColaFrame::OnSendDecomposed(wxCommandEvent& event)
{
if (m_hWndSource)
DoCopyAndReturn(m_panel->m_destination->GetValue());
event.Skip();
}
void wxZRColaFrame::OnSendSource(wxCommandEvent& event)
{
if (m_hWndSource)
DoSend(m_panel->m_source->GetValue());
event.Skip();
}
void wxZRColaFrame::OnCopySourceAndReturn(wxCommandEvent& event)
{
if (m_hWndSource)
DoCopyAndReturn(m_panel->m_source->GetValue());
DoSend(m_panel->m_decomposed->GetValue());
event.Skip();
}
@@ -263,8 +243,8 @@ void wxZRColaFrame::OnSendAbort(wxCommandEvent& event)
}
// Select all input in composer to prepare for the overwrite next time.
m_panel->m_source ->SelectAll();
m_panel->m_destination->SelectAll();
m_panel->m_decomposed->SelectAll();
m_panel->m_composed->SelectAll();
event.Skip();
}
@@ -317,15 +297,15 @@ void wxZRColaFrame::OnToolbarEdit(wxCommandEvent& event)
}
void wxZRColaFrame::OnToolbarTransformUpdate(wxUpdateUIEvent& event)
void wxZRColaFrame::OnToolbarComposeUpdate(wxUpdateUIEvent& event)
{
event.Check(m_mgr.GetPane(m_toolbarTransform).IsShown());
event.Check(m_mgr.GetPane(m_toolbarCompose).IsShown());
}
void wxZRColaFrame::OnToolbarTransform(wxCommandEvent& event)
void wxZRColaFrame::OnToolbarCompose(wxCommandEvent& event)
{
wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarTransform);
wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarCompose);
paneInfo.Show(!paneInfo.IsShown());
m_mgr.Update();
}
@@ -494,27 +474,9 @@ void wxZRColaFrame::DoSend(const wxString& str)
::SendInput(input.size(), input.data(), sizeof(INPUT));
m_hWndSource = NULL;
// Select all input in source and destination to prepare for the overwrite next time.
m_panel->m_source ->SelectAll();
m_panel->m_destination->SelectAll();
}
void wxZRColaFrame::DoCopyAndReturn(const wxString& str)
{
if (wxTheClipboard->Open()) {
wxTheClipboard->SetData(new wxTextDataObject(str));
wxTheClipboard->Close();
}
// Return focus to the source window.
::SetActiveWindow(m_hWndSource);
::SetForegroundWindow(m_hWndSource);
m_hWndSource = NULL;
// Select all input in composer and source to prepare for the overwrite next time.
m_panel->m_source ->SelectAll();
m_panel->m_destination->SelectAll();
// Select all input in composer and decomposed to prepare for the overwrite next time.
m_panel->m_decomposed->SelectAll();
m_panel->m_composed->SelectAll();
}
@@ -527,8 +489,8 @@ WXLRESULT wxZRColaFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM
WXHWND hWndSource = ::GetForegroundWindow();
switch (wParam) {
case wxZRColaHKID_INVOKE_TRANSFORM : m_panel->m_source ->SetFocus(); break;
case wxZRColaHKID_INVOKE_TRANSFORM_INV: m_panel->m_destination->SetFocus(); break;
case wxZRColaHKID_INVOKE_COMPOSE : m_panel->m_decomposed->SetFocus(); break;
case wxZRColaHKID_INVOKE_DECOMPOSE: m_panel->m_composed ->SetFocus(); break;
default:
wxFAIL_MSG(wxT("not our registered shortcut"));
return wxZRColaFrameBase::MSWWindowProc(message, wParam, lParam);

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -40,8 +40,8 @@ class wxZRColaFrame;
///
/// Global hotkey message identifiers
///
#define wxZRColaHKID_INVOKE_TRANSFORM 0
#define wxZRColaHKID_INVOKE_TRANSFORM_INV 1
#define wxZRColaHKID_INVOKE_COMPOSE 0
#define wxZRColaHKID_INVOKE_DECOMPOSE 1
///
@@ -72,10 +72,8 @@ protected:
void OnForwardEvent(wxCommandEvent& event);
void OnInsertCharacter(wxCommandEvent& event);
void OnSendUpdate(wxUpdateUIEvent& event);
void OnSendDestination(wxCommandEvent& event);
void OnCopyDestinationAndReturn(wxCommandEvent& event);
void OnSendSource(wxCommandEvent& event);
void OnCopySourceAndReturn(wxCommandEvent& event);
void OnSendComposed(wxCommandEvent& event);
void OnSendDecomposed(wxCommandEvent& event);
void OnSendAbort(wxCommandEvent& event);
void OnSettings(wxCommandEvent& event);
virtual void OnIdle(wxIdleEvent& event);
@@ -83,8 +81,8 @@ protected:
virtual void OnIconize(wxIconizeEvent& event);
void OnToolbarEditUpdate(wxUpdateUIEvent& event);
void OnToolbarEdit(wxCommandEvent& event);
void OnToolbarTransformUpdate(wxUpdateUIEvent& event);
void OnToolbarTransform(wxCommandEvent& event);
void OnToolbarComposeUpdate(wxUpdateUIEvent& event);
void OnToolbarCompose(wxCommandEvent& event);
void OnPanelCharacterCatalogUpdate(wxUpdateUIEvent& event);
void OnPanelCharacterCatalog(wxCommandEvent& event);
void OnPanelCharacterCatalogFocus(wxCommandEvent& event);
@@ -113,7 +111,6 @@ protected:
private:
void DoSend(const wxString& str);
void DoCopyAndReturn(const wxString& str);
protected:
#ifdef __WXMSW__

View File

@@ -85,41 +85,23 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_menuEdit->AppendSeparator();
wxMenuItem* m_menuItemSendDestination;
m_menuItemSendDestination = new wxMenuItem( m_menuEdit, wxID_SEND_DESTINATION, wxString( _("&Send Composed") ) + wxT('\t') + wxT("F5"), _("Send composed text to source window"), wxITEM_NORMAL );
wxMenuItem* m_menuItemSendComposed;
m_menuItemSendComposed = new wxMenuItem( m_menuEdit, wxID_SEND_COMPOSED, wxString( _("&Send Composed") ) + wxT('\t') + wxT("F5"), _("Send composed text to source window"), wxITEM_NORMAL );
#ifdef __WXMSW__
m_menuItemSendDestination->SetBitmaps( wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
m_menuItemSendComposed->SetBitmaps( wxIcon( wxT("send_composed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemSendDestination->SetBitmap( wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
m_menuItemSendComposed->SetBitmap( wxIcon( wxT("send_composed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif
m_menuEdit->Append( m_menuItemSendDestination );
m_menuEdit->Append( m_menuItemSendComposed );
wxMenuItem* m_menuItemCopyDestinationAndReturn;
m_menuItemCopyDestinationAndReturn = new wxMenuItem( m_menuEdit, wxID_COPY_DESTINATION_AND_RETURN, wxString( _("Copy Composed and &Return") ) + wxT('\t') + wxT("Ctrl+F5"), _("Copy composed text to clipboard and return focus to source window"), wxITEM_NORMAL );
wxMenuItem* m_menuItemSendDecomposed;
m_menuItemSendDecomposed = new wxMenuItem( m_menuEdit, wxID_SEND_DECOMPOSED, wxString( _("Send &Decomposed") ) + wxT('\t') + wxT("F6"), _("Send decomposed text to source window"), wxITEM_NORMAL );
#ifdef __WXMSW__
m_menuItemCopyDestinationAndReturn->SetBitmaps( wxIcon( wxT("copy_destination_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
m_menuItemSendDecomposed->SetBitmaps( wxIcon( wxT("send_decomposed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemCopyDestinationAndReturn->SetBitmap( wxIcon( wxT("copy_destination_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
m_menuItemSendDecomposed->SetBitmap( wxIcon( wxT("send_decomposed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif
m_menuEdit->Append( m_menuItemCopyDestinationAndReturn );
wxMenuItem* m_menuItemSendSource;
m_menuItemSendSource = new wxMenuItem( m_menuEdit, wxID_SEND_SOURCE, wxString( _("Send &Decomposed") ) + wxT('\t') + wxT("F6"), _("Send decomposed text to source window"), wxITEM_NORMAL );
#ifdef __WXMSW__
m_menuItemSendSource->SetBitmaps( wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemSendSource->SetBitmap( wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif
m_menuEdit->Append( m_menuItemSendSource );
wxMenuItem* m_menuItemCopySourceAndReturn;
m_menuItemCopySourceAndReturn = new wxMenuItem( m_menuEdit, wxID_COPY_SOURCE_AND_RETURN, wxString( _("Copy Decomposed and Re&turn") ) + wxT('\t') + wxT("Ctrl+F6"), _("Copy decomposed text to clipboard and return focus to source window"), wxITEM_NORMAL );
#ifdef __WXMSW__
m_menuItemCopySourceAndReturn->SetBitmaps( wxIcon( wxT("copy_source_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemCopySourceAndReturn->SetBitmap( wxIcon( wxT("copy_source_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif
m_menuEdit->Append( m_menuItemCopySourceAndReturn );
m_menuEdit->Append( m_menuItemSendDecomposed );
wxMenuItem* m_menuItemSendAbort;
m_menuItemSendAbort = new wxMenuItem( m_menuEdit, wxID_SEND_ABORT, wxString( _("Abort (De)composition") ) + wxT('\t') + wxT("Esc"), _("Abort composition and return focus to source window"), wxITEM_NORMAL );
@@ -144,7 +126,7 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_menuView->Append( m_menuItemToolbarEdit );
wxMenuItem* m_menuItemToolbarCompose;
m_menuItemToolbarCompose = new wxMenuItem( m_menuView, wxID_TOOLBAR_TRANSFORM, wxString( _("&Compose Toolbar") ) , _("Toggle compose toolbar"), wxITEM_CHECK );
m_menuItemToolbarCompose = new wxMenuItem( m_menuView, wxID_TOOLBAR_COMPOSE, wxString( _("&Compose Toolbar") ) , _("Toggle compose toolbar"), wxITEM_CHECK );
m_menuView->Append( m_menuItemToolbarCompose );
m_menuView->AppendSeparator();
@@ -194,15 +176,15 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_toolbarEdit->Realize();
m_mgr.AddPane( m_toolbarEdit, wxAuiPaneInfo().Name( wxT("toolbarEdit") ).Top().Caption( _("Edit") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Row( 0 ).Layer( 1 ).ToolbarPane() );
m_toolbarTransform = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT );
m_toolCharSelect = m_toolbarTransform->AddTool( wxID_CHARACTER_SELECTOR, _("Find Character"), wxIcon( wxT("char_select.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Find Character"), _("Display character search to select character to insert into text"), NULL );
m_toolbarCompose = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT );
m_toolCharSelect = m_toolbarCompose->AddTool( wxID_CHARACTER_SELECTOR, _("Find Character"), wxIcon( wxT("char_select.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Find Character"), _("Display character search to select character to insert into text"), NULL );
m_toolSendDestination = m_toolbarTransform->AddTool( wxID_SEND_DESTINATION, _("Send Composed"), wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Composed"), _("Send composed text to source window"), NULL );
m_toolSendComposed = m_toolbarCompose->AddTool( wxID_SEND_COMPOSED, _("Send Composed"), wxIcon( wxT("send_composed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Composed"), _("Send composed text to source window"), NULL );
m_toolSendSource = m_toolbarTransform->AddTool( wxID_SEND_SOURCE, _("Send Decomposed"), wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Decomposed"), _("Send decomposed text to source window"), NULL );
m_toolSendDecomposed = m_toolbarCompose->AddTool( wxID_SEND_DECOMPOSED, _("Send Decomposed"), wxIcon( wxT("send_decomposed.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Decomposed"), _("Send decomposed text to source window"), NULL );
m_toolbarTransform->Realize();
m_mgr.AddPane( m_toolbarTransform, wxAuiPaneInfo().Name( wxT("toolbarCompose") ).Top().Caption( _("Compose") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Row( 0 ).Layer( 1 ).ToolbarPane() );
m_toolbarCompose->Realize();
m_mgr.AddPane( m_toolbarCompose, wxAuiPaneInfo().Name( wxT("toolbarCompose") ).Top().Caption( _("Compose") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Row( 0 ).Layer( 1 ).ToolbarPane() );
m_panelChrCat = new wxZRColaCharacterCatalogPanel( this );
@@ -239,99 +221,99 @@ wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindow
wxBoxSizer* bSizerMain;
bSizerMain = new wxBoxSizer( wxVERTICAL );
m_splitterSource = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D|wxSP_LIVE_UPDATE );
m_splitterSource->SetSashGravity( 1 );
m_splitterSource->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterSourceOnIdle ), NULL, this );
m_splitterSource->SetMinimumPaneSize( 5 );
m_splitterDecomposed = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D|wxSP_LIVE_UPDATE );
m_splitterDecomposed->SetSashGravity( 1 );
m_splitterDecomposed->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterDecomposedOnIdle ), NULL, this );
m_splitterDecomposed->SetMinimumPaneSize( 5 );
m_panelSourceEdit = new wxPanel( m_splitterSource, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerSourceEdit;
bSizerSourceEdit = new wxBoxSizer( wxVERTICAL );
m_panelDecomposedEdit = new wxPanel( m_splitterDecomposed, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerDecomposedEdit;
bSizerDecomposedEdit = new wxBoxSizer( wxVERTICAL );
wxStaticBoxSizer* bSizerSourceEdit2;
bSizerSourceEdit2 = new wxStaticBoxSizer( new wxStaticBox( m_panelSourceEdit, wxID_ANY, _("Decomposed Text") ), wxVERTICAL );
wxStaticBoxSizer* bSizerDecomposedEdit2;
bSizerDecomposedEdit2 = new wxStaticBoxSizer( new wxStaticBox( m_panelDecomposedEdit, wxID_ANY, _("Decomposed Text") ), wxVERTICAL );
m_source = new wxTextCtrl( bSizerSourceEdit2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
m_source->SetFont( wxFont( 20, 70, 90, 90, false, wxT("ZRCola") ) );
m_source->SetMinSize( wxSize( 100,25 ) );
m_decomposed = new wxTextCtrl( bSizerDecomposedEdit2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
m_decomposed->SetFont( wxFont( 20, 70, 90, 90, false, wxT("ZRCola") ) );
m_decomposed->SetMinSize( wxSize( 100,25 ) );
bSizerSourceEdit2->Add( m_source, 1, wxEXPAND, 5 );
bSizerDecomposedEdit2->Add( m_decomposed, 1, wxEXPAND, 5 );
bSizerSourceEdit->Add( bSizerSourceEdit2, 1, wxEXPAND, 5 );
bSizerDecomposedEdit->Add( bSizerDecomposedEdit2, 1, wxEXPAND, 5 );
m_panelSourceEdit->SetSizer( bSizerSourceEdit );
m_panelSourceEdit->Layout();
bSizerSourceEdit->Fit( m_panelSourceEdit );
m_panelSourceHex = new wxPanel( m_splitterSource, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerSourceHex;
bSizerSourceHex = new wxBoxSizer( wxVERTICAL );
m_panelDecomposedEdit->SetSizer( bSizerDecomposedEdit );
m_panelDecomposedEdit->Layout();
bSizerDecomposedEdit->Fit( m_panelDecomposedEdit );
m_panelDecomposedHex = new wxPanel( m_splitterDecomposed, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerDecomposedHex;
bSizerDecomposedHex = new wxBoxSizer( wxVERTICAL );
wxStaticBoxSizer* bSizerSourceHex2;
bSizerSourceHex2 = new wxStaticBoxSizer( new wxStaticBox( m_panelSourceHex, wxID_ANY, _("Decomposed Unicode Dump") ), wxVERTICAL );
wxStaticBoxSizer* bSizerDecomposedHex2;
bSizerDecomposedHex2 = new wxStaticBoxSizer( new wxStaticBox( m_panelDecomposedHex, wxID_ANY, _("Decomposed Unicode Dump") ), wxVERTICAL );
m_sourceHex = new wxTextCtrl( bSizerSourceHex2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
m_sourceHex->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 76, 90, 90, false, wxEmptyString ) );
m_decomposedHex = new wxTextCtrl( bSizerDecomposedHex2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
m_decomposedHex->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 76, 90, 90, false, wxEmptyString ) );
bSizerSourceHex2->Add( m_sourceHex, 1, wxEXPAND, 5 );
bSizerDecomposedHex2->Add( m_decomposedHex, 1, wxEXPAND, 5 );
bSizerSourceHex->Add( bSizerSourceHex2, 1, wxEXPAND, 5 );
bSizerDecomposedHex->Add( bSizerDecomposedHex2, 1, wxEXPAND, 5 );
m_panelSourceHex->SetSizer( bSizerSourceHex );
m_panelSourceHex->Layout();
bSizerSourceHex->Fit( m_panelSourceHex );
m_splitterSource->SplitVertically( m_panelSourceEdit, m_panelSourceHex, -5 );
bSizerMain->Add( m_splitterSource, 50, wxALL|wxEXPAND, 5 );
m_panelDecomposedHex->SetSizer( bSizerDecomposedHex );
m_panelDecomposedHex->Layout();
bSizerDecomposedHex->Fit( m_panelDecomposedHex );
m_splitterDecomposed->SplitVertically( m_panelDecomposedEdit, m_panelDecomposedHex, -5 );
bSizerMain->Add( m_splitterDecomposed, 50, wxALL|wxEXPAND, 5 );
m_splitterDestination = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D|wxSP_LIVE_UPDATE );
m_splitterDestination->SetSashGravity( 1 );
m_splitterDestination->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterDestinationOnIdle ), NULL, this );
m_splitterDestination->SetMinimumPaneSize( 5 );
m_splitterComposed = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D|wxSP_LIVE_UPDATE );
m_splitterComposed->SetSashGravity( 1 );
m_splitterComposed->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterComposedOnIdle ), NULL, this );
m_splitterComposed->SetMinimumPaneSize( 5 );
m_panelDestinationEdit = new wxPanel( m_splitterDestination, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerDestinationEdit;
bSizerDestinationEdit = new wxBoxSizer( wxVERTICAL );
m_panelComposedEdit = new wxPanel( m_splitterComposed, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerComposedEdit;
bSizerComposedEdit = new wxBoxSizer( wxVERTICAL );
wxStaticBoxSizer* bSizerDestinationEdit2;
bSizerDestinationEdit2 = new wxStaticBoxSizer( new wxStaticBox( m_panelDestinationEdit, wxID_ANY, _("Composed Text") ), wxVERTICAL );
wxStaticBoxSizer* bSizerComposedEdit2;
bSizerComposedEdit2 = new wxStaticBoxSizer( new wxStaticBox( m_panelComposedEdit, wxID_ANY, _("Composed Text") ), wxVERTICAL );
m_destination = new wxTextCtrl( bSizerDestinationEdit2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
m_destination->SetFont( wxFont( 20, 70, 90, 90, false, wxT("ZRCola") ) );
m_destination->SetMinSize( wxSize( 100,25 ) );
m_composed = new wxTextCtrl( bSizerComposedEdit2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
m_composed->SetFont( wxFont( 20, 70, 90, 90, false, wxT("ZRCola") ) );
m_composed->SetMinSize( wxSize( 100,25 ) );
bSizerDestinationEdit2->Add( m_destination, 1, wxEXPAND, 5 );
bSizerComposedEdit2->Add( m_composed, 1, wxEXPAND, 5 );
bSizerDestinationEdit->Add( bSizerDestinationEdit2, 1, wxEXPAND, 5 );
bSizerComposedEdit->Add( bSizerComposedEdit2, 1, wxEXPAND, 5 );
m_panelDestinationEdit->SetSizer( bSizerDestinationEdit );
m_panelDestinationEdit->Layout();
bSizerDestinationEdit->Fit( m_panelDestinationEdit );
m_panelDestinationHex = new wxPanel( m_splitterDestination, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerDestinationHex;
bSizerDestinationHex = new wxBoxSizer( wxVERTICAL );
m_panelComposedEdit->SetSizer( bSizerComposedEdit );
m_panelComposedEdit->Layout();
bSizerComposedEdit->Fit( m_panelComposedEdit );
m_panelComposedHex = new wxPanel( m_splitterComposed, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerComposedHex;
bSizerComposedHex = new wxBoxSizer( wxVERTICAL );
wxStaticBoxSizer* bSizerDestinationHex2;
bSizerDestinationHex2 = new wxStaticBoxSizer( new wxStaticBox( m_panelDestinationHex, wxID_ANY, _("Composed Unicode Dump") ), wxVERTICAL );
wxStaticBoxSizer* bSizerComposedHex2;
bSizerComposedHex2 = new wxStaticBoxSizer( new wxStaticBox( m_panelComposedHex, wxID_ANY, _("Composed Unicode Dump") ), wxVERTICAL );
m_destinationHex = new wxTextCtrl( bSizerDestinationHex2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
m_destinationHex->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 76, 90, 90, false, wxEmptyString ) );
m_composedHex = new wxTextCtrl( bSizerComposedHex2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
m_composedHex->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 76, 90, 90, false, wxEmptyString ) );
bSizerDestinationHex2->Add( m_destinationHex, 1, wxEXPAND, 5 );
bSizerComposedHex2->Add( m_composedHex, 1, wxEXPAND, 5 );
bSizerDestinationHex->Add( bSizerDestinationHex2, 1, wxEXPAND, 5 );
bSizerComposedHex->Add( bSizerComposedHex2, 1, wxEXPAND, 5 );
m_panelDestinationHex->SetSizer( bSizerDestinationHex );
m_panelDestinationHex->Layout();
bSizerDestinationHex->Fit( m_panelDestinationHex );
m_splitterDestination->SplitVertically( m_panelDestinationEdit, m_panelDestinationHex, -5 );
bSizerMain->Add( m_splitterDestination, 50, wxALL|wxEXPAND, 5 );
m_panelComposedHex->SetSizer( bSizerComposedHex );
m_panelComposedHex->Layout();
bSizerComposedHex->Fit( m_panelComposedHex );
m_splitterComposed->SplitVertically( m_panelComposedEdit, m_panelComposedHex, -5 );
bSizerMain->Add( m_splitterComposed, 50, wxALL|wxEXPAND, 5 );
this->SetSizer( bSizerMain );
@@ -340,24 +322,24 @@ wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindow
m_timerSave.SetOwner( this, wxID_TIMER_SAVE );
// Connect Events
m_source->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnSourcePaint ), NULL, this );
m_source->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnSourceText ), NULL, this );
m_sourceHex->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnSourceHexPaint ), NULL, this );
m_destination->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationPaint ), NULL, this );
m_destination->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), NULL, this );
m_destinationHex->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this );
m_decomposed->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDecomposedPaint ), NULL, this );
m_decomposed->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDecomposedText ), NULL, this );
m_decomposedHex->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDecomposedHexPaint ), NULL, this );
m_composed->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnComposedPaint ), NULL, this );
m_composed->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnComposedText ), NULL, this );
m_composedHex->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnComposedHexPaint ), NULL, this );
this->Connect( wxID_TIMER_SAVE, wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) );
}
wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase()
{
// Disconnect Events
m_source->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnSourcePaint ), NULL, this );
m_source->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnSourceText ), NULL, this );
m_sourceHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnSourceHexPaint ), NULL, this );
m_destination->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationPaint ), NULL, this );
m_destination->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), NULL, this );
m_destinationHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this );
m_decomposed->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDecomposedPaint ), NULL, this );
m_decomposed->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDecomposedText ), NULL, this );
m_decomposedHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDecomposedHexPaint ), NULL, this );
m_composed->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnComposedPaint ), NULL, this );
m_composed->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnComposedText ), NULL, this );
m_composedHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnComposedHexPaint ), NULL, this );
this->Disconnect( wxID_TIMER_SAVE, wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) );
}
@@ -781,12 +763,12 @@ wxZRColaSettingsBase::wxZRColaSettingsBase( wxWindow* parent, wxWindowID id, con
bSizerContent = new wxBoxSizer( wxVERTICAL );
m_listbook = new wxListbook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLB_DEFAULT );
m_panelLanguage = new wxPanel( m_listbook, wxID_ANY, wxDefaultPosition, wxSize( 500,-1 ), wxTAB_TRAVERSAL );
m_panelLanguage = new wxPanel( m_listbook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerLanguage;
bSizerLanguage = new wxBoxSizer( wxVERTICAL );
m_langLabel = new wxStaticText( m_panelLanguage, wxID_ANY, _("Some character native to specific language you are working with should not decompose to primitives.\nFor optimal decomposition you should set the language correctly."), wxDefaultPosition, wxDefaultSize, 0 );
m_langLabel->Wrap( 490 );
m_langLabel->Wrap( -1 );
bSizerLanguage->Add( m_langLabel, 0, wxALL|wxEXPAND, 5 );
m_langAuto = new wxRadioButton( m_panelLanguage, wxID_ANY, _("Select language &automatically according to selected keyboard"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
@@ -803,86 +785,14 @@ wxZRColaSettingsBase::wxZRColaSettingsBase( wxWindow* parent, wxWindowID id, con
m_panelLanguage->SetSizer( bSizerLanguage );
m_panelLanguage->Layout();
bSizerLanguage->Fit( m_panelLanguage );
m_listbook->AddPage( m_panelLanguage, _("Text Language"), true );
m_panelTransformation = new wxPanel( m_listbook, wxID_ANY, wxDefaultPosition, wxSize( 500,-1 ), wxTAB_TRAVERSAL );
wxBoxSizer* bSizerTransformation;
bSizerTransformation = new wxBoxSizer( wxVERTICAL );
m_transLabel = new wxStaticText( m_panelTransformation, wxID_ANY, _("ZRCola offers multiple text transformations that can be arranged in a sequence.\nPlease select desired transformations and the order they are applied."), wxDefaultPosition, wxDefaultSize, 0 );
m_transLabel->Wrap( 490 );
bSizerTransformation->Add( m_transLabel, 0, wxALL|wxEXPAND, 5 );
wxFlexGridSizer* fgSizerTransformation;
fgSizerTransformation = new wxFlexGridSizer( 2, 3, 0, 0 );
fgSizerTransformation->AddGrowableCol( 0 );
fgSizerTransformation->AddGrowableCol( 2 );
fgSizerTransformation->AddGrowableRow( 0 );
fgSizerTransformation->SetFlexibleDirection( wxBOTH );
fgSizerTransformation->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
wxBoxSizer* bSizerTransAvailable;
bSizerTransAvailable = new wxBoxSizer( wxVERTICAL );
m_transAvailableLabel = new wxStaticText( m_panelTransformation, wxID_ANY, _("A&vailable:"), wxDefaultPosition, wxDefaultSize, 0 );
m_transAvailableLabel->Wrap( -1 );
bSizerTransAvailable->Add( m_transAvailableLabel, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_transAvailable = new wxListBox( m_panelTransformation, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE|wxLB_SORT );
bSizerTransAvailable->Add( m_transAvailable, 1, wxALL|wxEXPAND, 5 );
fgSizerTransformation->Add( bSizerTransAvailable, 1, wxEXPAND, 5 );
wxBoxSizer* bSizerTransActivate;
bSizerTransActivate = new wxBoxSizer( wxVERTICAL );
m_transActivate = new wxButton( m_panelTransformation, wxID_ANY, _(">"), wxDefaultPosition, wxSize( 32,32 ), 0 );
bSizerTransActivate->Add( m_transActivate, 0, wxALL, 5 );
m_transDeactivate = new wxButton( m_panelTransformation, wxID_ANY, _("<"), wxDefaultPosition, wxSize( 32,32 ), 0 );
bSizerTransActivate->Add( m_transDeactivate, 0, wxALL, 5 );
fgSizerTransformation->Add( bSizerTransActivate, 0, wxALIGN_CENTER_VERTICAL, 5 );
wxBoxSizer* bSizerTransActive;
bSizerTransActive = new wxBoxSizer( wxVERTICAL );
m_transActiveLabel = new wxStaticText( m_panelTransformation, wxID_ANY, _("&Active:"), wxDefaultPosition, wxDefaultSize, 0 );
m_transActiveLabel->Wrap( -1 );
bSizerTransActive->Add( m_transActiveLabel, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
m_transActive = new wxListBox( m_panelTransformation, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE );
bSizerTransActive->Add( m_transActive, 1, wxALL|wxEXPAND, 5 );
fgSizerTransformation->Add( bSizerTransActive, 1, wxEXPAND, 5 );
bSizerTransformation->Add( fgSizerTransformation, 1, wxEXPAND, 5 );
wxBoxSizer* bSizerTransActiveReorder;
bSizerTransActiveReorder = new wxBoxSizer( wxHORIZONTAL );
m_transActiveUp = new wxButton( m_panelTransformation, wxID_ANY, _("Up"), wxDefaultPosition, wxSize( 70,-1 ), 0 );
bSizerTransActiveReorder->Add( m_transActiveUp, 0, wxALL, 5 );
m_transActiveDown = new wxButton( m_panelTransformation, wxID_ANY, _("Down"), wxDefaultPosition, wxSize( 70,-1 ), 0 );
bSizerTransActiveReorder->Add( m_transActiveDown, 0, wxALL, 5 );
bSizerTransformation->Add( bSizerTransActiveReorder, 0, wxALIGN_RIGHT, 5 );
m_panelTransformation->SetSizer( bSizerTransformation );
m_panelTransformation->Layout();
m_listbook->AddPage( m_panelTransformation, _("Transformation"), false );
m_panelAutoStart = new wxPanel( m_listbook, wxID_ANY, wxDefaultPosition, wxSize( 500,-1 ), wxTAB_TRAVERSAL );
m_panelAutoStart = new wxPanel( m_listbook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerAutoStart;
bSizerAutoStart = new wxBoxSizer( wxVERTICAL );
m_autoStartLabel = new wxStaticText( m_panelAutoStart, wxID_ANY, _("ZRCola can be launched every time you log in to your computer.\nIt will be available on the system tray and via registered shortcuts Win+F5 and Win+F6."), wxDefaultPosition, wxDefaultSize, 0 );
m_autoStartLabel->Wrap( 490 );
m_autoStartLabel->Wrap( -1 );
bSizerAutoStart->Add( m_autoStartLabel, 0, wxALL|wxEXPAND, 5 );
m_autoStart = new wxCheckBox( m_panelAutoStart, wxID_ANY, _("Start ZRCola &automatically on logon"), wxDefaultPosition, wxDefaultSize, 0 );
@@ -891,6 +801,7 @@ wxZRColaSettingsBase::wxZRColaSettingsBase( wxWindow* parent, wxWindowID id, con
m_panelAutoStart->SetSizer( bSizerAutoStart );
m_panelAutoStart->Layout();
bSizerAutoStart->Fit( m_panelAutoStart );
m_listbook->AddPage( m_panelAutoStart, _("Startup"), false );
#ifdef __WXGTK__ // Small icon style not supported in GTK
wxListView* m_listbookListView = m_listbook->GetListView();
@@ -902,7 +813,7 @@ wxZRColaSettingsBase::wxZRColaSettingsBase( wxWindow* parent, wxWindowID id, con
m_listbookListView->SetWindowStyleFlag( m_listbookFlags );
#endif
bSizerContent->Add( m_listbook, 1, wxALL|wxEXPAND, 5 );
bSizerContent->Add( m_listbook, 1, wxEXPAND | wxALL, 5 );
bSizerContent->Add( 0, 0, 0, wxALL|wxEXPAND, 5 );
@@ -927,12 +838,8 @@ wxZRColaSettingsBase::wxZRColaSettingsBase( wxWindow* parent, wxWindowID id, con
// Connect Events
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxZRColaSettingsBase::OnInitDialog ) );
m_panelLanguage->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaSettingsBase::OnLanguageUpdate ), NULL, this );
m_panelTransformation->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaSettingsBase::OnTransformationUpdate ), NULL, this );
m_transActivate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActivate ), NULL, this );
m_transDeactivate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransDeactivate ), NULL, this );
m_transActiveUp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActiveUp ), NULL, this );
m_transActiveDown->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActiveDown ), NULL, this );
m_langAuto->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( wxZRColaSettingsBase::OnLangAuto ), NULL, this );
m_langManual->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( wxZRColaSettingsBase::OnLangManual ), NULL, this );
m_sdbSizerButtonsApply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnApplyButtonClick ), NULL, this );
m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnOKButtonClick ), NULL, this );
}
@@ -941,12 +848,8 @@ wxZRColaSettingsBase::~wxZRColaSettingsBase()
{
// Disconnect Events
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxZRColaSettingsBase::OnInitDialog ) );
m_panelLanguage->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaSettingsBase::OnLanguageUpdate ), NULL, this );
m_panelTransformation->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaSettingsBase::OnTransformationUpdate ), NULL, this );
m_transActivate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActivate ), NULL, this );
m_transDeactivate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransDeactivate ), NULL, this );
m_transActiveUp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActiveUp ), NULL, this );
m_transActiveDown->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActiveDown ), NULL, this );
m_langAuto->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( wxZRColaSettingsBase::OnLangAuto ), NULL, this );
m_langManual->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( wxZRColaSettingsBase::OnLangManual ), NULL, this );
m_sdbSizerButtonsApply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnApplyButtonClick ), NULL, this );
m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnOKButtonClick ), NULL, this );

View File

@@ -63,14 +63,12 @@ class wxZRColaFrameBase : public wxFrame
enum
{
wxID_CHARACTER_SELECTOR = 1000,
wxID_SEND_DESTINATION,
wxID_COPY_DESTINATION_AND_RETURN,
wxID_SEND_SOURCE,
wxID_COPY_SOURCE_AND_RETURN,
wxID_SEND_COMPOSED,
wxID_SEND_DECOMPOSED,
wxID_SEND_ABORT,
wxID_SETTINGS,
wxID_TOOLBAR_EDIT,
wxID_TOOLBAR_TRANSFORM,
wxID_TOOLBAR_COMPOSE,
wxID_PANEL_CHRGRPS,
wxID_HELP_INSTRUCTIONS,
wxID_HELP_SHORTCUTS,
@@ -87,10 +85,10 @@ class wxZRColaFrameBase : public wxFrame
wxAuiToolBarItem* m_toolEditCut;
wxAuiToolBarItem* m_toolEditCopy;
wxAuiToolBarItem* m_toolEditPaste;
wxAuiToolBar* m_toolbarTransform;
wxAuiToolBar* m_toolbarCompose;
wxAuiToolBarItem* m_toolCharSelect;
wxAuiToolBarItem* m_toolSendDestination;
wxAuiToolBarItem* m_toolSendSource;
wxAuiToolBarItem* m_toolSendComposed;
wxAuiToolBarItem* m_toolSendDecomposed;
wxZRColaCharacterCatalogPanel* m_panelChrCat;
wxStatusBar* m_statusBar;
@@ -123,43 +121,43 @@ class wxZRColaComposerPanelBase : public wxPanel
wxID_TIMER_SAVE = 1000
};
wxSplitterWindow* m_splitterSource;
wxPanel* m_panelSourceEdit;
wxPanel* m_panelSourceHex;
wxTextCtrl* m_sourceHex;
wxSplitterWindow* m_splitterDestination;
wxPanel* m_panelDestinationEdit;
wxPanel* m_panelDestinationHex;
wxTextCtrl* m_destinationHex;
wxSplitterWindow* m_splitterDecomposed;
wxPanel* m_panelDecomposedEdit;
wxPanel* m_panelDecomposedHex;
wxTextCtrl* m_decomposedHex;
wxSplitterWindow* m_splitterComposed;
wxPanel* m_panelComposedEdit;
wxPanel* m_panelComposedHex;
wxTextCtrl* m_composedHex;
wxTimer m_timerSave;
// Virtual event handlers, overide them in your derived class
virtual void OnSourcePaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnSourceText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSourceHexPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnDestinationPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnDestinationText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDestinationHexPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnDecomposedPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnDecomposedText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDecomposedHexPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnComposedPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnComposedText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnComposedHexPaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnSaveTimer( wxTimerEvent& event ) { event.Skip(); }
public:
wxTextCtrl* m_source;
wxTextCtrl* m_destination;
wxTextCtrl* m_decomposed;
wxTextCtrl* m_composed;
wxZRColaComposerPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaComposerPanel") );
~wxZRColaComposerPanelBase();
void m_splitterSourceOnIdle( wxIdleEvent& )
void m_splitterDecomposedOnIdle( wxIdleEvent& )
{
m_splitterSource->SetSashPosition( -5 );
m_splitterSource->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterSourceOnIdle ), NULL, this );
m_splitterDecomposed->SetSashPosition( -5 );
m_splitterDecomposed->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterDecomposedOnIdle ), NULL, this );
}
void m_splitterDestinationOnIdle( wxIdleEvent& )
void m_splitterComposedOnIdle( wxIdleEvent& )
{
m_splitterDestination->SetSashPosition( -5 );
m_splitterDestination->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterDestinationOnIdle ), NULL, this );
m_splitterComposed->SetSashPosition( -5 );
m_splitterComposed->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaComposerPanelBase::m_splitterComposedOnIdle ), NULL, this );
}
};
@@ -264,16 +262,6 @@ class wxZRColaSettingsBase : public wxDialog
wxRadioButton* m_langAuto;
wxRadioButton* m_langManual;
wxListBox* m_languages;
wxPanel* m_panelTransformation;
wxStaticText* m_transLabel;
wxStaticText* m_transAvailableLabel;
wxListBox* m_transAvailable;
wxButton* m_transActivate;
wxButton* m_transDeactivate;
wxStaticText* m_transActiveLabel;
wxListBox* m_transActive;
wxButton* m_transActiveUp;
wxButton* m_transActiveDown;
wxPanel* m_panelAutoStart;
wxStaticText* m_autoStartLabel;
wxCheckBox* m_autoStart;
@@ -284,12 +272,8 @@ class wxZRColaSettingsBase : public wxDialog
// Virtual event handlers, overide them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnTransformationUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnTransActivate( wxCommandEvent& event ) { event.Skip(); }
virtual void OnTransDeactivate( wxCommandEvent& event ) { event.Skip(); }
virtual void OnTransActiveUp( wxCommandEvent& event ) { event.Skip(); }
virtual void OnTransActiveDown( wxCommandEvent& event ) { event.Skip(); }
virtual void OnLangAuto( wxCommandEvent& event ) { event.Skip(); }
virtual void OnLangManual( wxCommandEvent& event ) { event.Skip(); }
virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }

View File

@@ -1,5 +1,5 @@
/*
Copyright 2015-2016 Amebis
Copyright 2015-2017 Amebis
This file is part of ZRCola.
@@ -96,9 +96,13 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event)
(e.AltDown() ? ZRCola::keyseq_db::keyseq::ALT : 0);
m_seq.push_back(key);
std::unique_ptr<ZRCola::keyseq_db::keyseq> ks((ZRCola::keyseq_db::keyseq*)new char[sizeof(ZRCola::keyseq_db::keyseq) + sizeof(ZRCola::keyseq_db::keyseq::key_t)*m_seq.size()]);
ks->ZRCola::keyseq_db::keyseq::keyseq(m_seq.data(), m_seq.size());
auto n = m_seq.size();
ZRCola::keyseq_db::keyseq *ks = (ZRCola::keyseq_db::keyseq*)new char[sizeof(ZRCola::keyseq_db::keyseq) + sizeof(ZRCola::keyseq_db::keyseq::key_t)*n];
ks->chr = 0;
ks->seq_len = n;
memcpy(ks->seq, m_seq.data(), sizeof(ZRCola::keyseq_db::keyseq::key_t)*n);
found = app->m_ks_db.idxKey.find(*ks, start);
delete ks;
}
if (found) {
@@ -112,14 +116,14 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event)
wxObject *obj = event.GetEventObject();
if (obj && obj->IsKindOf(wxCLASSINFO(wxTextCtrl))) {
// Push text to source control.
((wxTextCtrl*)obj)->WriteText(wxString(ks.chr(), ks.chr_len()));
((wxTextCtrl*)obj)->WriteText(ks.chr);
// Event is fully processed now.
event.StopPropagation();
return true;
}
} else if (start < app->m_ks_db.idxKey.size() &&
ZRCola::keyseq_db::keyseq::CompareSequence(m_seq.data(), m_seq.size(), app->m_ks_db.idxKey[start].seq(), std::min<size_t>(app->m_ks_db.idxKey[start].seq_len(), m_seq.size())) == 0)
ZRCola::keyseq_db::keyseq::CompareSequence(m_seq.data(), m_seq.size(), app->m_ks_db.idxKey[start].seq, std::min<unsigned __int16>(app->m_ks_db.idxKey[start].seq_len, m_seq.size())) == 0)
{
// The sequence is a partial match. Continue watching.
if (pFrame && pFrame->GetStatusBar())

Some files were not shown because too many files have changed in this diff Show More