Compare commits

...

41 Commits
2.7 ... 2.7.2

Author SHA1 Message Date
e6ea4a2742 Order blocks by Unicode location
Signed-off-by: Simon Rozman <simon.rozman@amebis.si>
2025-12-03 12:49:19 +01:00
83e2022ef6 Pull translations from Transifex
Signed-off-by: Simon Rozman <simon.rozman@amebis.si>
2025-12-02 11:31:03 +01:00
45b1b0eb58 Fork my mailbox to business and personal
Signed-off-by: Simon Rozman <simon.rozman@amebis.si>
2025-11-21 03:33:12 +01:00
Simon Rozman
8119bb9271 Preset version to 2.7.2
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-21 03:27:21 +01:00
Simon Rozman
664bdce10f Pull translations from Transifex
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-17 09:52:36 +01:00
Simon Rozman
9457d74047 Fix typo
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-17 09:17:04 +01:00
Simon Rozman
26663ed888 WinStd: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-14 16:25:53 +01:00
Simon Rozman
9f9e19e3b0 Set checksum in binaries
Otherwise, MSI treats binaries as broken.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-14 16:25:53 +01:00
Simon Rozman
df902e9122 Remove Debug signing and add Azure cloud signing
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-14 16:25:53 +01:00
Simon Rozman
8337a2822f Updater: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-14 16:25:53 +01:00
Simon Rozman
e8f39da602 Replace Unicode character categories with blocks
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-14 16:25:49 +01:00
Simon Rozman
1ba71443f5 Add support for Unicode character blocks
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-14 11:59:43 +01:00
Simon Rozman
9c4caf506b Update Git repo URL
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-14 07:53:58 +01:00
Simon Rozman
668396803a Simplify C++ 2025-11-12 10:13:40 +01:00
Simon Rozman
a11c4bc79a Make character category data reusable
This shall assist adding/replacing it with Unicode character blocks.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-12 08:43:24 +01:00
Simon Rozman
ec957caf3c Enlarge default window size slightly
The toolbars didn't fit completely.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-04 15:59:03 +01:00
Simon Rozman
ad80612ac2 wxWidgets: Update to 3.3.1
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-04 15:55:08 +01:00
Simon Rozman
3eb6d98b95 wxWidgets: Update to 3.1.7
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-04 13:34:10 +01:00
Simon Rozman
c722094df9 wxFormBuilder: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-04 13:33:48 +01:00
Simon Rozman
c199ce80c7 stdex: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-04 10:33:03 +01:00
Simon Rozman
ead50105e3 Bump build year
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-11-04 10:24:22 +01:00
Simon Rozman
81db4c0055 Update submodules
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-08-11 17:21:42 +02:00
Simon Rozman
9f64d060fb Discontinue using platform toolset in intermediate/output folder names
In recent Visual Studio releases the Toolset variable is no longer set
in the Command Line environment, making it difficult to locate
artifacts in the NMake command line builds.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-08-11 17:16:26 +02:00
Simon Rozman
0cf4a755fd Fix C++ undefined behavior
It broke in recent VS. Must not dereference std::string::end() iterator,
as this is undefined.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-08-11 17:10:28 +02:00
Simon Rozman
37196ab4f5 Update submodule URLs 2025-07-04 12:13:05 +02:00
Simon Rozman
e96a627c55 MSICA: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-13 14:16:27 +01:00
Simon Rozman
7f2c209a06 MSI: Squash INSTALLLEVEL 1,2,3 → 1
Our default used to be INSTALLLEVEL 3, but Microsoft default is 1. By
overriding Microsoft default in Property table, we override the
INSTALLLEVEL user might have specified on the command line.

Since our installations no longer use "Minimal/Typical/Full", we may
squash "Minimal" and "Typical" into Minimal.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-13 14:15:36 +01:00
Simon Rozman
b1a3eb23c7 Updater: Move Git remote 2024-11-29 16:20:43 +01:00
Simon Rozman
35b8b389ff MSICA: Move Git remote 2024-11-29 16:10:15 +01:00
Simon Rozman
d8493554cd stdex: Move Git remote 2024-11-29 16:01:59 +01:00
Simon Rozman
a40e730bf0 wxExtend: Move Git remote 2024-11-29 15:57:45 +01:00
Simon Rozman
056b1c3087 MSIBuild: Move Git remote 2024-11-29 15:55:12 +01:00
Simon Rozman
7127b8ea31 WinStd: Move Git remote 2024-11-29 15:50:21 +01:00
Simon Rozman
82906899de Make mapping reusable
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-04-25 15:16:15 +02:00
Simon Rozman
566d40bd05 Update submodules
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-04-25 14:52:03 +02:00
Simon Rozman
6a8cd1ec80 Preset version to 2.7.1
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-04-25 14:51:30 +02:00
Simon Rozman
b0db806f5e Update submodules
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-03-11 15:56:28 +01:00
Simon Rozman
439dcb35d1 stdex: Update
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-08 18:49:35 +01:00
Simon Rozman
ad07539cb6 Fix to compile for Linux
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-08 13:50:01 +01:00
Simon Rozman
a7c1481f87 Merge branch 'master' of https://github.com/Amebis/ZRCola
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-08 12:22:11 +01:00
Simon Rozman
c7bc2d0aa6 Update submodules
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-11-08 12:03:15 +01:00
69 changed files with 13412 additions and 13048 deletions

12
.gitmodules vendored
View File

@@ -1,21 +1,21 @@
[submodule "lib/stdex"] [submodule "lib/stdex"]
path = lib/stdex path = lib/stdex
url = https://github.com/Amebis/stdex.git url = https://git.amebis.si/Amebis/stdex.git
[submodule "lib/WinStd"] [submodule "lib/WinStd"]
path = lib/WinStd path = lib/WinStd
url = https://github.com/Amebis/WinStd.git url = https://git.amebis.si/Amebis/WinStd.git
[submodule "lib/wxExtend"] [submodule "lib/wxExtend"]
path = lib/wxExtend path = lib/wxExtend
url = https://github.com/Amebis/wxExtend.git url = https://git.amebis.si/Amebis/wxExtend.git
[submodule "MSI/MSIBuild"] [submodule "MSI/MSIBuild"]
path = MSI/MSIBuild path = MSI/MSIBuild
url = https://github.com/Amebis/MSIBuild.git url = https://git.amebis.si/Amebis/MSIBuild.git
[submodule "MSI/MSICA"] [submodule "MSI/MSICA"]
path = MSI/MSICA path = MSI/MSICA
url = https://github.com/Amebis/MSICA.git url = https://git.amebis.si/Amebis/MSICA.git
[submodule "Updater"] [submodule "Updater"]
path = Updater path = Updater
url = https://github.com/Amebis/Updater.git url = https://git.amebis.si/Amebis/Updater.git
[submodule "lib/oatpp"] [submodule "lib/oatpp"]
path = lib/oatpp path = lib/oatpp
url = https://github.com/oatpp/oatpp.git url = https://github.com/oatpp/oatpp.git

Binary file not shown.

View File

@@ -1,27 +1,28 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2022 # Simon Rozman <simon.rozman@amebis.si>, 2022
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola MSI\n" "Project-Id-Version: ZRCola MSI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-19 08:59+0200\n" "POT-Creation-Date: 2022-02-17 13:32+0100\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n" "PO-Revision-Date: 2018-09-19 07:19+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2022\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2022\n"
"Language-Team: German (Germany) (https://www.transifex.com/amebis/teams/91592/de_DE/)\n" "Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: de_DE\n" "Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.1.1\n" "X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ../Main\n" "X-Poedit-Basepath: ../Main\n"
"X-Poedit-KeywordsList: __\n" "X-Poedit-KeywordsList: __\n"
"X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPath-0: .\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: en_US.ARM64.Debug.Control-2.idtx:4 en_US.ARM64.Release.Control-2.idtx:4
#: en_US.Win32.Debug.Control-2.idtx:4 en_US.Win32.Release.Control-2.idtx:4 #: en_US.Win32.Debug.Control-2.idtx:4 en_US.Win32.Release.Control-2.idtx:4
#: en_US.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4 #: en_US.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4
msgid "" msgid ""
@@ -3465,6 +3466,8 @@ msgstr ""
"Heading;}}{\\*\\datastore " "Heading;}}{\\*\\datastore "
"0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000c0ef044c8850cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}" "0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000c0ef044c8850cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}"
#: en_US.ARM64.Debug.Control-2.idtx:5 en_US.ARM64.Debug.Control-2.idtx:12
#: en_US.ARM64.Release.Control-2.idtx:5 en_US.ARM64.Release.Control-2.idtx:12
#: en_US.Win32.Debug.Control-2.idtx:5 en_US.Win32.Debug.Control-2.idtx:12 #: en_US.Win32.Debug.Control-2.idtx:5 en_US.Win32.Debug.Control-2.idtx:12
#: en_US.Win32.Release.Control-2.idtx:5 en_US.Win32.Release.Control-2.idtx:12 #: en_US.Win32.Release.Control-2.idtx:5 en_US.Win32.Release.Control-2.idtx:12
#: en_US.x64.Debug.Control-2.idtx:5 en_US.x64.Debug.Control-2.idtx:12 #: en_US.x64.Debug.Control-2.idtx:5 en_US.x64.Debug.Control-2.idtx:12
@@ -3472,11 +3475,13 @@ msgstr ""
msgid "UIHeader.bmp" msgid "UIHeader.bmp"
msgstr "UIHeader.bmp" msgstr "UIHeader.bmp"
#: en_US.ARM64.Debug.Control-2.idtx:6 en_US.ARM64.Release.Control-2.idtx:6
#: en_US.Win32.Debug.Control-2.idtx:6 en_US.Win32.Release.Control-2.idtx:6 #: en_US.Win32.Debug.Control-2.idtx:6 en_US.Win32.Release.Control-2.idtx:6
#: en_US.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6 #: en_US.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6
msgid "[DlgTitleFont][SimpleProductName] Declaration" msgid "[DlgTitleFont][SimpleProductName] Declaration"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Control-2.idtx:7 en_US.ARM64.Release.Control-2.idtx:7
#: en_US.Win32.Debug.Control-2.idtx:7 en_US.Win32.Release.Control-2.idtx:7 #: en_US.Win32.Debug.Control-2.idtx:7 en_US.Win32.Release.Control-2.idtx:7
#: en_US.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7 #: en_US.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7
msgid "" msgid ""
@@ -3484,6 +3489,7 @@ msgid ""
"or some other appropriate part of the publication the note below:" "or some other appropriate part of the publication the note below:"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Control-2.idtx:8 en_US.ARM64.Release.Control-2.idtx:8
#: en_US.Win32.Debug.Control-2.idtx:8 en_US.Win32.Release.Control-2.idtx:8 #: en_US.Win32.Debug.Control-2.idtx:8 en_US.Win32.Release.Control-2.idtx:8
#: en_US.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8 #: en_US.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8
msgid "" msgid ""
@@ -3497,6 +3503,7 @@ msgid ""
"(http://www.zrc-sazu.si) by Peter Weiss.\\f1\\par}" "(http://www.zrc-sazu.si) by Peter Weiss.\\f1\\par}"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Control-2.idtx:9 en_US.ARM64.Release.Control-2.idtx:9
#: en_US.Win32.Debug.Control-2.idtx:9 en_US.Win32.Release.Control-2.idtx:9 #: en_US.Win32.Debug.Control-2.idtx:9 en_US.Win32.Release.Control-2.idtx:9
#: en_US.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9 #: en_US.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9
msgid "" msgid ""
@@ -3504,11 +3511,14 @@ msgid ""
"dialog or on its website." "dialog or on its website."
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Control-2.idtx:10 en_US.ARM64.Release.Control-2.idtx:10
#: en_US.Win32.Debug.Control-2.idtx:10 en_US.Win32.Release.Control-2.idtx:10 #: en_US.Win32.Debug.Control-2.idtx:10 en_US.Win32.Release.Control-2.idtx:10
#: en_US.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10 #: en_US.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10
msgid "I &agree." msgid "I &agree."
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Control-2.idtx:11 en_US.ARM64.Debug.Control-2.idtx:16
#: en_US.ARM64.Release.Control-2.idtx:11 en_US.ARM64.Release.Control-2.idtx:16
#: en_US.Win32.Debug.Control-2.idtx:11 en_US.Win32.Debug.Control-2.idtx:16 #: en_US.Win32.Debug.Control-2.idtx:11 en_US.Win32.Debug.Control-2.idtx:16
#: en_US.Win32.Release.Control-2.idtx:11 en_US.Win32.Release.Control-2.idtx:16 #: en_US.Win32.Release.Control-2.idtx:11 en_US.Win32.Release.Control-2.idtx:16
#: en_US.x64.Debug.Control-2.idtx:11 en_US.x64.Debug.Control-2.idtx:16 #: en_US.x64.Debug.Control-2.idtx:11 en_US.x64.Debug.Control-2.idtx:16
@@ -3516,16 +3526,19 @@ msgstr ""
msgid "&Continue" msgid "&Continue"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Control-2.idtx:13 en_US.ARM64.Release.Control-2.idtx:13
#: en_US.Win32.Debug.Control-2.idtx:13 en_US.Win32.Release.Control-2.idtx:13 #: en_US.Win32.Debug.Control-2.idtx:13 en_US.Win32.Release.Control-2.idtx:13
#: en_US.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13 #: en_US.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13
msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font" msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Control-2.idtx:14 en_US.ARM64.Release.Control-2.idtx:14
#: en_US.Win32.Debug.Control-2.idtx:14 en_US.Win32.Release.Control-2.idtx:14 #: en_US.Win32.Debug.Control-2.idtx:14 en_US.Win32.Release.Control-2.idtx:14
#: en_US.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14 #: en_US.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14
msgid "fontsubst.bmp" msgid "fontsubst.bmp"
msgstr "fontsubst.bmp" msgstr "fontsubst.bmp"
#: en_US.ARM64.Debug.Control-2.idtx:15 en_US.ARM64.Release.Control-2.idtx:15
#: en_US.Win32.Debug.Control-2.idtx:15 en_US.Win32.Release.Control-2.idtx:15 #: en_US.Win32.Debug.Control-2.idtx:15 en_US.Win32.Release.Control-2.idtx:15
#: en_US.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15 #: en_US.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15
msgid "" msgid ""
@@ -3534,86 +3547,103 @@ msgid ""
"computer that will take effect after the next restart." "computer that will take effect after the next restart."
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Directory-2.idtx:4 en_US.ARM64.Release.Directory-2.idtx:4
#: en_US.Win32.Debug.Directory-2.idtx:4 en_US.Win32.Release.Directory-2.idtx:4 #: en_US.Win32.Debug.Directory-2.idtx:4 en_US.Win32.Release.Directory-2.idtx:4
#: en_US.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4 #: en_US.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4
msgid "ZRCola:." msgid "ZRCola:."
msgstr "ZRCola:." msgstr "ZRCola:."
#: en_US.ARM64.Debug.Feature-2.idtx:4 en_US.ARM64.Release.Feature-2.idtx:4
#: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4 #: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4
#: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4 #: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts" msgid "Fonts"
msgstr "Schriftarten" msgstr "Schriftarten"
#: en_US.ARM64.Debug.Feature-2.idtx:4 en_US.ARM64.Release.Feature-2.idtx:4
#: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4 #: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4
#: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4 #: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts used by ZRCola" msgid "Fonts used by ZRCola"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Feature-2.idtx:5 en_US.ARM64.Release.Feature-2.idtx:5
#: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5 #: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5
#: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5 #: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "ZRCola" msgid "ZRCola"
msgstr "ZRCola" msgstr "ZRCola"
#: en_US.ARM64.Debug.Feature-2.idtx:5 en_US.ARM64.Release.Feature-2.idtx:5
#: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5 #: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5
#: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5 #: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "Times New Roman based font" msgid "Times New Roman based font"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Feature-2.idtx:6 en_US.ARM64.Release.Feature-2.idtx:6
#: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6 #: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6
#: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6 #: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentation" msgstr "Dokumentation"
#: en_US.ARM64.Debug.Feature-2.idtx:6 en_US.ARM64.Release.Feature-2.idtx:6
#: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6 #: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6
#: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6 #: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "ZRCola Documentation" msgid "ZRCola Documentation"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Feature-2.idtx:7 en_US.ARM64.Release.Feature-2.idtx:7
#: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7 #: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7
#: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7 #: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Feature-2.idtx:7 en_US.ARM64.Release.Feature-2.idtx:7
#: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7 #: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7
#: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7 #: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "PDF document with a list of ZRCola keyboard shortcuts" msgid "PDF document with a list of ZRCola keyboard shortcuts"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Property-2.idtx:4 en_US.ARM64.Release.Property-2.idtx:4
#: en_US.Win32.Debug.Property-2.idtx:4 en_US.Win32.Release.Property-2.idtx:4 #: en_US.Win32.Debug.Property-2.idtx:4 en_US.Win32.Release.Property-2.idtx:4
#: en_US.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4 #: en_US.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4
msgid "Amebis, Slovenia, E.U." msgid "Amebis, Slovenia, E.U."
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Property-2.idtx:5 en_US.ARM64.Release.Property-2.idtx:5
#: en_US.Win32.Debug.Property-2.idtx:5 en_US.Win32.Release.Property-2.idtx:5 #: en_US.Win32.Debug.Property-2.idtx:5 en_US.Win32.Release.Property-2.idtx:5
#: en_US.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5 #: en_US.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5
msgid "Fran Ramovš Institute of Slovenian Language ZRC SAZU" msgid "Fran Ramovš Institute of Slovenian Language ZRC SAZU"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Property-2.idtx:6 en_US.ARM64.Release.Property-2.idtx:6
#: en_US.Win32.Debug.Property-2.idtx:6 en_US.Win32.Release.Property-2.idtx:6 #: en_US.Win32.Debug.Property-2.idtx:6 en_US.Win32.Release.Property-2.idtx:6
#: en_US.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6 #: en_US.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6
msgid "+386 1 470 6170" msgid "+386 1 470 6170"
msgstr "+386 1 470 6170" msgstr "+386 1 470 6170"
#: en_US.ARM64.Debug.Property-2.idtx:7 en_US.ARM64.Release.Property-2.idtx:7
#: en_US.Win32.Debug.Property-2.idtx:7 en_US.Win32.Release.Property-2.idtx:7 #: en_US.Win32.Debug.Property-2.idtx:7 en_US.Win32.Release.Property-2.idtx:7
#: en_US.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7 #: en_US.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7
msgid "http://zrcola.zrc-sazu.si/en/contact/" msgid "http://zrcola.zrc-sazu.si/en/contact/"
msgstr "http://zrcola.zrc-sazu.si/de/contact/" msgstr "http://zrcola.zrc-sazu.si/de/contact/"
#: en_US.ARM64.Debug.Property-2.idtx:8 en_US.ARM64.Release.Property-2.idtx:8
#: en_US.Win32.Debug.Property-2.idtx:8 en_US.Win32.Release.Property-2.idtx:8 #: en_US.Win32.Debug.Property-2.idtx:8 en_US.Win32.Release.Property-2.idtx:8
#: en_US.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8 #: en_US.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/de/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/de/info/instructions/"
#: en_US.ARM64.Debug.Property-2.idtx:9 en_US.ARM64.Release.Property-2.idtx:9
#: en_US.Win32.Debug.Property-2.idtx:9 en_US.Win32.Release.Property-2.idtx:9 #: en_US.Win32.Debug.Property-2.idtx:9 en_US.Win32.Release.Property-2.idtx:9
#: en_US.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9 #: en_US.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9
msgid "http://zrcola.zrc-sazu.si/en/install/" msgid "http://zrcola.zrc-sazu.si/en/install/"
msgstr "http://zrcola.zrc-sazu.si/de/install/" msgstr "http://zrcola.zrc-sazu.si/de/install/"
#: en_US.ARM64.Debug.Shortcut-2.idtx:4 en_US.ARM64.Release.Shortcut-2.idtx:4
#: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4 #: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4
#: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4 #: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts" msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts"
msgstr "" msgstr ""
#: en_US.ARM64.Debug.Shortcut-2.idtx:4 en_US.ARM64.Release.Shortcut-2.idtx:4
#: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4 #: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4
#: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4 #: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola Keyboard Shortcuts" msgid "ZRCola Keyboard Shortcuts"

View File

@@ -1,27 +1,28 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2022 # Simon Rozman <simon.rozman@amebis.si>, 2022
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola MSI\n" "Project-Id-Version: ZRCola MSI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-19 08:59+0200\n" "POT-Creation-Date: 2022-02-17 13:32+0100\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n" "PO-Revision-Date: 2018-09-19 07:19+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2022\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2022\n"
"Language-Team: Russian (Russia) (https://www.transifex.com/amebis/teams/91592/ru_RU/)\n" "Language-Team: Russian (Russia) (https://app.transifex.com/amebis/teams/91592/ru_RU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: ru_RU\n" "Language: ru_RU\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Poedit 2.1.1\n" "X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ../Main\n" "X-Poedit-Basepath: ../Main\n"
"X-Poedit-KeywordsList: __\n" "X-Poedit-KeywordsList: __\n"
"X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPath-0: .\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: en_US.ARM64.Debug.Control-2.idtx:4 en_US.ARM64.Release.Control-2.idtx:4
#: en_US.Win32.Debug.Control-2.idtx:4 en_US.Win32.Release.Control-2.idtx:4 #: en_US.Win32.Debug.Control-2.idtx:4 en_US.Win32.Release.Control-2.idtx:4
#: en_US.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4 #: en_US.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4
msgid "" msgid ""
@@ -3465,6 +3466,8 @@ msgstr ""
"Heading;}}{\\*\\datastore " "Heading;}}{\\*\\datastore "
"0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000c0ef044c8850cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}" "0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000c0ef044c8850cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}"
#: en_US.ARM64.Debug.Control-2.idtx:5 en_US.ARM64.Debug.Control-2.idtx:12
#: en_US.ARM64.Release.Control-2.idtx:5 en_US.ARM64.Release.Control-2.idtx:12
#: en_US.Win32.Debug.Control-2.idtx:5 en_US.Win32.Debug.Control-2.idtx:12 #: en_US.Win32.Debug.Control-2.idtx:5 en_US.Win32.Debug.Control-2.idtx:12
#: en_US.Win32.Release.Control-2.idtx:5 en_US.Win32.Release.Control-2.idtx:12 #: en_US.Win32.Release.Control-2.idtx:5 en_US.Win32.Release.Control-2.idtx:12
#: en_US.x64.Debug.Control-2.idtx:5 en_US.x64.Debug.Control-2.idtx:12 #: en_US.x64.Debug.Control-2.idtx:5 en_US.x64.Debug.Control-2.idtx:12
@@ -3472,11 +3475,13 @@ msgstr ""
msgid "UIHeader.bmp" msgid "UIHeader.bmp"
msgstr "UIHeader.bmp" msgstr "UIHeader.bmp"
#: en_US.ARM64.Debug.Control-2.idtx:6 en_US.ARM64.Release.Control-2.idtx:6
#: en_US.Win32.Debug.Control-2.idtx:6 en_US.Win32.Release.Control-2.idtx:6 #: en_US.Win32.Debug.Control-2.idtx:6 en_US.Win32.Release.Control-2.idtx:6
#: en_US.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6 #: en_US.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6
msgid "[DlgTitleFont][SimpleProductName] Declaration" msgid "[DlgTitleFont][SimpleProductName] Declaration"
msgstr "[DlgTitleFont][SimpleProductName] Декларация" msgstr "[DlgTitleFont][SimpleProductName] Декларация"
#: en_US.ARM64.Debug.Control-2.idtx:7 en_US.ARM64.Release.Control-2.idtx:7
#: en_US.Win32.Debug.Control-2.idtx:7 en_US.Win32.Release.Control-2.idtx:7 #: en_US.Win32.Debug.Control-2.idtx:7 en_US.Win32.Release.Control-2.idtx:7
#: en_US.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7 #: en_US.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7
msgid "" msgid ""
@@ -3486,6 +3491,7 @@ msgstr ""
"Текст, созданный с помощью системы ZRCola, должен в примечании или другом " "Текст, созданный с помощью системы ZRCola, должен в примечании или другом "
"соответствующем месте в публикации сопровождаться следующей записью" "соответствующем месте в публикации сопровождаться следующей записью"
#: en_US.ARM64.Debug.Control-2.idtx:8 en_US.ARM64.Release.Control-2.idtx:8
#: en_US.Win32.Debug.Control-2.idtx:8 en_US.Win32.Release.Control-2.idtx:8 #: en_US.Win32.Debug.Control-2.idtx:8 en_US.Win32.Release.Control-2.idtx:8
#: en_US.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8 #: en_US.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8
msgid "" msgid ""
@@ -3515,6 +3521,7 @@ msgstr ""
"\\'cb\\'fe\\'e1\\'eb\\'ff\\'ed\\'e5 (http://www.zrc-sazu.si) " "\\'cb\\'fe\\'e1\\'eb\\'ff\\'ed\\'e5 (http://www.zrc-sazu.si) "
"\\'cf\\'e5\\'f2\\'f0\\'ee\\'ec \\'c2\\'e5\\'e9\\'f1\\'f1o\\'ec.\\f1\\par}" "\\'cf\\'e5\\'f2\\'f0\\'ee\\'ec \\'c2\\'e5\\'e9\\'f1\\'f1o\\'ec.\\f1\\par}"
#: en_US.ARM64.Debug.Control-2.idtx:9 en_US.ARM64.Release.Control-2.idtx:9
#: en_US.Win32.Debug.Control-2.idtx:9 en_US.Win32.Release.Control-2.idtx:9 #: en_US.Win32.Debug.Control-2.idtx:9 en_US.Win32.Release.Control-2.idtx:9
#: en_US.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9 #: en_US.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9
msgid "" msgid ""
@@ -3524,11 +3531,14 @@ msgstr ""
"Примечание: Ета декларация доступна также в диалоговом окне «О программе» " "Примечание: Ета декларация доступна также в диалоговом окне «О программе» "
"либо на вебсайте системы ZRCola." "либо на вебсайте системы ZRCola."
#: en_US.ARM64.Debug.Control-2.idtx:10 en_US.ARM64.Release.Control-2.idtx:10
#: en_US.Win32.Debug.Control-2.idtx:10 en_US.Win32.Release.Control-2.idtx:10 #: en_US.Win32.Debug.Control-2.idtx:10 en_US.Win32.Release.Control-2.idtx:10
#: en_US.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10 #: en_US.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10
msgid "I &agree." msgid "I &agree."
msgstr "Согласен." msgstr "Согласен."
#: en_US.ARM64.Debug.Control-2.idtx:11 en_US.ARM64.Debug.Control-2.idtx:16
#: en_US.ARM64.Release.Control-2.idtx:11 en_US.ARM64.Release.Control-2.idtx:16
#: en_US.Win32.Debug.Control-2.idtx:11 en_US.Win32.Debug.Control-2.idtx:16 #: en_US.Win32.Debug.Control-2.idtx:11 en_US.Win32.Debug.Control-2.idtx:16
#: en_US.Win32.Release.Control-2.idtx:11 en_US.Win32.Release.Control-2.idtx:16 #: en_US.Win32.Release.Control-2.idtx:11 en_US.Win32.Release.Control-2.idtx:16
#: en_US.x64.Debug.Control-2.idtx:11 en_US.x64.Debug.Control-2.idtx:16 #: en_US.x64.Debug.Control-2.idtx:11 en_US.x64.Debug.Control-2.idtx:16
@@ -3536,16 +3546,19 @@ msgstr "Согласен."
msgid "&Continue" msgid "&Continue"
msgstr "Продолжить" msgstr "Продолжить"
#: en_US.ARM64.Debug.Control-2.idtx:13 en_US.ARM64.Release.Control-2.idtx:13
#: en_US.Win32.Debug.Control-2.idtx:13 en_US.Win32.Release.Control-2.idtx:13 #: en_US.Win32.Debug.Control-2.idtx:13 en_US.Win32.Release.Control-2.idtx:13
#: en_US.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13 #: en_US.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13
msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font" msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font"
msgstr "[DlgTitleFont]Шрифт «00 ZRCola» в «ZRCola»" msgstr "[DlgTitleFont]Шрифт «00 ZRCola» в «ZRCola»"
#: en_US.ARM64.Debug.Control-2.idtx:14 en_US.ARM64.Release.Control-2.idtx:14
#: en_US.Win32.Debug.Control-2.idtx:14 en_US.Win32.Release.Control-2.idtx:14 #: en_US.Win32.Debug.Control-2.idtx:14 en_US.Win32.Release.Control-2.idtx:14
#: en_US.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14 #: en_US.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14
msgid "fontsubst.bmp" msgid "fontsubst.bmp"
msgstr "fontsubst.bmp" msgstr "fontsubst.bmp"
#: en_US.ARM64.Debug.Control-2.idtx:15 en_US.ARM64.Release.Control-2.idtx:15
#: en_US.Win32.Debug.Control-2.idtx:15 en_US.Win32.Release.Control-2.idtx:15 #: en_US.Win32.Debug.Control-2.idtx:15 en_US.Win32.Release.Control-2.idtx:15
#: en_US.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15 #: en_US.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15
msgid "" msgid ""
@@ -3557,86 +3570,103 @@ msgstr ""
"предыдущих документов в вашем компьютере проведена субституция шрифтов, " "предыдущих документов в вашем компьютере проведена субституция шрифтов, "
"которая вступит в силу после следующего запуска компьютера." "которая вступит в силу после следующего запуска компьютера."
#: en_US.ARM64.Debug.Directory-2.idtx:4 en_US.ARM64.Release.Directory-2.idtx:4
#: en_US.Win32.Debug.Directory-2.idtx:4 en_US.Win32.Release.Directory-2.idtx:4 #: en_US.Win32.Debug.Directory-2.idtx:4 en_US.Win32.Release.Directory-2.idtx:4
#: en_US.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4 #: en_US.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4
msgid "ZRCola:." msgid "ZRCola:."
msgstr "ZRCola:." msgstr "ZRCola:."
#: en_US.ARM64.Debug.Feature-2.idtx:4 en_US.ARM64.Release.Feature-2.idtx:4
#: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4 #: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4
#: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4 #: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts" msgid "Fonts"
msgstr "Шрифты" msgstr "Шрифты"
#: en_US.ARM64.Debug.Feature-2.idtx:4 en_US.ARM64.Release.Feature-2.idtx:4
#: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4 #: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4
#: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4 #: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts used by ZRCola" msgid "Fonts used by ZRCola"
msgstr "Шрифты, использованные системой ZRCola" msgstr "Шрифты, использованные системой ZRCola"
#: en_US.ARM64.Debug.Feature-2.idtx:5 en_US.ARM64.Release.Feature-2.idtx:5
#: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5 #: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5
#: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5 #: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "ZRCola" msgid "ZRCola"
msgstr "ZRCola" msgstr "ZRCola"
#: en_US.ARM64.Debug.Feature-2.idtx:5 en_US.ARM64.Release.Feature-2.idtx:5
#: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5 #: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5
#: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5 #: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "Times New Roman based font" msgid "Times New Roman based font"
msgstr "Шрифт на основе Times New Roman" msgstr "Шрифт на основе Times New Roman"
#: en_US.ARM64.Debug.Feature-2.idtx:6 en_US.ARM64.Release.Feature-2.idtx:6
#: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6 #: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6
#: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6 #: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "Documentation" msgid "Documentation"
msgstr "Документация" msgstr "Документация"
#: en_US.ARM64.Debug.Feature-2.idtx:6 en_US.ARM64.Release.Feature-2.idtx:6
#: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6 #: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6
#: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6 #: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "ZRCola Documentation" msgid "ZRCola Documentation"
msgstr "Документация системы ZRCola" msgstr "Документация системы ZRCola"
#: en_US.ARM64.Debug.Feature-2.idtx:7 en_US.ARM64.Release.Feature-2.idtx:7
#: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7 #: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7
#: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7 #: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Сочетание клавиш" msgstr "Сочетание клавиш"
#: en_US.ARM64.Debug.Feature-2.idtx:7 en_US.ARM64.Release.Feature-2.idtx:7
#: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7 #: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7
#: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7 #: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "PDF document with a list of ZRCola keyboard shortcuts" msgid "PDF document with a list of ZRCola keyboard shortcuts"
msgstr "Документ PDF со списком сочетаний клавиш системы ZRCola " msgstr "Документ PDF со списком сочетаний клавиш системы ZRCola "
#: en_US.ARM64.Debug.Property-2.idtx:4 en_US.ARM64.Release.Property-2.idtx:4
#: en_US.Win32.Debug.Property-2.idtx:4 en_US.Win32.Release.Property-2.idtx:4 #: en_US.Win32.Debug.Property-2.idtx:4 en_US.Win32.Release.Property-2.idtx:4
#: en_US.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4 #: en_US.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4
msgid "Amebis, Slovenia, E.U." msgid "Amebis, Slovenia, E.U."
msgstr "Amebis, Словения, ЕС" msgstr "Amebis, Словения, ЕС"
#: en_US.ARM64.Debug.Property-2.idtx:5 en_US.ARM64.Release.Property-2.idtx:5
#: en_US.Win32.Debug.Property-2.idtx:5 en_US.Win32.Release.Property-2.idtx:5 #: en_US.Win32.Debug.Property-2.idtx:5 en_US.Win32.Release.Property-2.idtx:5
#: en_US.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5 #: en_US.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5
msgid "Fran Ramovš Institute of Slovenian Language ZRC SAZU" msgid "Fran Ramovš Institute of Slovenian Language ZRC SAZU"
msgstr "Институт словенского языка им. Франа Рамовша ZRC SAZU" msgstr "Институт словенского языка им. Франа Рамовша ZRC SAZU"
#: en_US.ARM64.Debug.Property-2.idtx:6 en_US.ARM64.Release.Property-2.idtx:6
#: en_US.Win32.Debug.Property-2.idtx:6 en_US.Win32.Release.Property-2.idtx:6 #: en_US.Win32.Debug.Property-2.idtx:6 en_US.Win32.Release.Property-2.idtx:6
#: en_US.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6 #: en_US.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6
msgid "+386 1 470 6170" msgid "+386 1 470 6170"
msgstr "+386 1 470 6170" msgstr "+386 1 470 6170"
#: en_US.ARM64.Debug.Property-2.idtx:7 en_US.ARM64.Release.Property-2.idtx:7
#: en_US.Win32.Debug.Property-2.idtx:7 en_US.Win32.Release.Property-2.idtx:7 #: en_US.Win32.Debug.Property-2.idtx:7 en_US.Win32.Release.Property-2.idtx:7
#: en_US.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7 #: en_US.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7
msgid "http://zrcola.zrc-sazu.si/en/contact/" msgid "http://zrcola.zrc-sazu.si/en/contact/"
msgstr "http://zrcola.zrc-sazu.si/ru/contact/" msgstr "http://zrcola.zrc-sazu.si/ru/contact/"
#: en_US.ARM64.Debug.Property-2.idtx:8 en_US.ARM64.Release.Property-2.idtx:8
#: en_US.Win32.Debug.Property-2.idtx:8 en_US.Win32.Release.Property-2.idtx:8 #: en_US.Win32.Debug.Property-2.idtx:8 en_US.Win32.Release.Property-2.idtx:8
#: en_US.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8 #: en_US.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/ru/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/ru/info/instructions/"
#: en_US.ARM64.Debug.Property-2.idtx:9 en_US.ARM64.Release.Property-2.idtx:9
#: en_US.Win32.Debug.Property-2.idtx:9 en_US.Win32.Release.Property-2.idtx:9 #: en_US.Win32.Debug.Property-2.idtx:9 en_US.Win32.Release.Property-2.idtx:9
#: en_US.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9 #: en_US.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9
msgid "http://zrcola.zrc-sazu.si/en/install/" msgid "http://zrcola.zrc-sazu.si/en/install/"
msgstr "http://zrcola.zrc-sazu.si/ru/install/" msgstr "http://zrcola.zrc-sazu.si/ru/install/"
#: en_US.ARM64.Debug.Shortcut-2.idtx:4 en_US.ARM64.Release.Shortcut-2.idtx:4
#: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4 #: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4
#: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4 #: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts" msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts"
msgstr "ZRCOLA~1|Сочетание клавиш системы ZRCola" msgstr "ZRCOLA~1|Сочетание клавиш системы ZRCola"
#: en_US.ARM64.Debug.Shortcut-2.idtx:4 en_US.ARM64.Release.Shortcut-2.idtx:4
#: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4 #: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4
#: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4 #: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola Keyboard Shortcuts" msgid "ZRCola Keyboard Shortcuts"

View File

@@ -1,27 +1,28 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2022 # Simon Rozman <simon.rozman@amebis.si>, 2022
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola MSI\n" "Project-Id-Version: ZRCola MSI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-19 08:59+0200\n" "POT-Creation-Date: 2022-02-17 13:32+0100\n"
"PO-Revision-Date: 2018-09-19 07:19+0000\n" "PO-Revision-Date: 2018-09-19 07:19+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2022\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2022\n"
"Language-Team: Slovenian (Slovenia) (https://www.transifex.com/amebis/teams/91592/sl_SI/)\n" "Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: sl_SI\n" "Language: sl_SI\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-Generator: Poedit 2.1.1\n" "X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ../Main\n" "X-Poedit-Basepath: ../Main\n"
"X-Poedit-KeywordsList: __\n" "X-Poedit-KeywordsList: __\n"
"X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPath-0: .\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: en_US.ARM64.Debug.Control-2.idtx:4 en_US.ARM64.Release.Control-2.idtx:4
#: en_US.Win32.Debug.Control-2.idtx:4 en_US.Win32.Release.Control-2.idtx:4 #: en_US.Win32.Debug.Control-2.idtx:4 en_US.Win32.Release.Control-2.idtx:4
#: en_US.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4 #: en_US.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4
msgid "" msgid ""
@@ -3465,6 +3466,8 @@ msgstr ""
"Heading;}}{\\*\\datastore " "Heading;}}{\\*\\datastore "
"0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000c0ef044c8850cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}" "0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000c0ef044c8850cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}"
#: en_US.ARM64.Debug.Control-2.idtx:5 en_US.ARM64.Debug.Control-2.idtx:12
#: en_US.ARM64.Release.Control-2.idtx:5 en_US.ARM64.Release.Control-2.idtx:12
#: en_US.Win32.Debug.Control-2.idtx:5 en_US.Win32.Debug.Control-2.idtx:12 #: en_US.Win32.Debug.Control-2.idtx:5 en_US.Win32.Debug.Control-2.idtx:12
#: en_US.Win32.Release.Control-2.idtx:5 en_US.Win32.Release.Control-2.idtx:12 #: en_US.Win32.Release.Control-2.idtx:5 en_US.Win32.Release.Control-2.idtx:12
#: en_US.x64.Debug.Control-2.idtx:5 en_US.x64.Debug.Control-2.idtx:12 #: en_US.x64.Debug.Control-2.idtx:5 en_US.x64.Debug.Control-2.idtx:12
@@ -3472,11 +3475,13 @@ msgstr ""
msgid "UIHeader.bmp" msgid "UIHeader.bmp"
msgstr "UIHeader.bmp" msgstr "UIHeader.bmp"
#: en_US.ARM64.Debug.Control-2.idtx:6 en_US.ARM64.Release.Control-2.idtx:6
#: en_US.Win32.Debug.Control-2.idtx:6 en_US.Win32.Release.Control-2.idtx:6 #: en_US.Win32.Debug.Control-2.idtx:6 en_US.Win32.Release.Control-2.idtx:6
#: en_US.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6 #: en_US.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6
msgid "[DlgTitleFont][SimpleProductName] Declaration" msgid "[DlgTitleFont][SimpleProductName] Declaration"
msgstr "[DlgTitleFont]Deklaracija [SimpleProductName]" msgstr "[DlgTitleFont]Deklaracija [SimpleProductName]"
#: en_US.ARM64.Debug.Control-2.idtx:7 en_US.ARM64.Release.Control-2.idtx:7
#: en_US.Win32.Debug.Control-2.idtx:7 en_US.Win32.Release.Control-2.idtx:7 #: en_US.Win32.Debug.Control-2.idtx:7 en_US.Win32.Release.Control-2.idtx:7
#: en_US.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7 #: en_US.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7
msgid "" msgid ""
@@ -3487,6 +3492,7 @@ msgstr ""
"opombi ali na drugem ustreznem mestu v publikaciji opremljeno z naslednjim " "opombi ali na drugem ustreznem mestu v publikaciji opremljeno z naslednjim "
"zapisom:" "zapisom:"
#: en_US.ARM64.Debug.Control-2.idtx:8 en_US.ARM64.Release.Control-2.idtx:8
#: en_US.Win32.Debug.Control-2.idtx:8 en_US.Win32.Release.Control-2.idtx:8 #: en_US.Win32.Debug.Control-2.idtx:8 en_US.Win32.Release.Control-2.idtx:8
#: en_US.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8 #: en_US.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8
msgid "" msgid ""
@@ -3508,6 +3514,7 @@ msgstr ""
"(http://zrcola.zrc-sazu.si), ki ga je na Znanstvenoraziskovalnem centru SAZU" "(http://zrcola.zrc-sazu.si), ki ga je na Znanstvenoraziskovalnem centru SAZU"
" v Ljubljani (http://www.zrc-sazu.si) razvil Peter Weiss.\\i0\\f1\\par}" " v Ljubljani (http://www.zrc-sazu.si) razvil Peter Weiss.\\i0\\f1\\par}"
#: en_US.ARM64.Debug.Control-2.idtx:9 en_US.ARM64.Release.Control-2.idtx:9
#: en_US.Win32.Debug.Control-2.idtx:9 en_US.Win32.Release.Control-2.idtx:9 #: en_US.Win32.Debug.Control-2.idtx:9 en_US.Win32.Release.Control-2.idtx:9
#: en_US.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9 #: en_US.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9
msgid "" msgid ""
@@ -3517,11 +3524,14 @@ msgstr ""
"Opomba: Ta deklaracija je na voljo tudi v dialogu vizitke " "Opomba: Ta deklaracija je na voljo tudi v dialogu vizitke "
"[SimpleProductName] ali na spletni strani." "[SimpleProductName] ali na spletni strani."
#: en_US.ARM64.Debug.Control-2.idtx:10 en_US.ARM64.Release.Control-2.idtx:10
#: en_US.Win32.Debug.Control-2.idtx:10 en_US.Win32.Release.Control-2.idtx:10 #: en_US.Win32.Debug.Control-2.idtx:10 en_US.Win32.Release.Control-2.idtx:10
#: en_US.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10 #: en_US.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10
msgid "I &agree." msgid "I &agree."
msgstr "&Strinjam se." msgstr "&Strinjam se."
#: en_US.ARM64.Debug.Control-2.idtx:11 en_US.ARM64.Debug.Control-2.idtx:16
#: en_US.ARM64.Release.Control-2.idtx:11 en_US.ARM64.Release.Control-2.idtx:16
#: en_US.Win32.Debug.Control-2.idtx:11 en_US.Win32.Debug.Control-2.idtx:16 #: en_US.Win32.Debug.Control-2.idtx:11 en_US.Win32.Debug.Control-2.idtx:16
#: en_US.Win32.Release.Control-2.idtx:11 en_US.Win32.Release.Control-2.idtx:16 #: en_US.Win32.Release.Control-2.idtx:11 en_US.Win32.Release.Control-2.idtx:16
#: en_US.x64.Debug.Control-2.idtx:11 en_US.x64.Debug.Control-2.idtx:16 #: en_US.x64.Debug.Control-2.idtx:11 en_US.x64.Debug.Control-2.idtx:16
@@ -3529,16 +3539,19 @@ msgstr "&Strinjam se."
msgid "&Continue" msgid "&Continue"
msgstr "&Nadaljuj" msgstr "&Nadaljuj"
#: en_US.ARM64.Debug.Control-2.idtx:13 en_US.ARM64.Release.Control-2.idtx:13
#: en_US.Win32.Debug.Control-2.idtx:13 en_US.Win32.Release.Control-2.idtx:13 #: en_US.Win32.Debug.Control-2.idtx:13 en_US.Win32.Release.Control-2.idtx:13
#: en_US.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13 #: en_US.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13
msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font" msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font"
msgstr "[DlgTitleFont]\"00 ZRCola\" v pisavo \"ZRCola\"" msgstr "[DlgTitleFont]\"00 ZRCola\" v pisavo \"ZRCola\""
#: en_US.ARM64.Debug.Control-2.idtx:14 en_US.ARM64.Release.Control-2.idtx:14
#: en_US.Win32.Debug.Control-2.idtx:14 en_US.Win32.Release.Control-2.idtx:14 #: en_US.Win32.Debug.Control-2.idtx:14 en_US.Win32.Release.Control-2.idtx:14
#: en_US.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14 #: en_US.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14
msgid "fontsubst.bmp" msgid "fontsubst.bmp"
msgstr "fontsubst.bmp" msgstr "fontsubst.bmp"
#: en_US.ARM64.Debug.Control-2.idtx:15 en_US.ARM64.Release.Control-2.idtx:15
#: en_US.Win32.Debug.Control-2.idtx:15 en_US.Win32.Release.Control-2.idtx:15 #: en_US.Win32.Debug.Control-2.idtx:15 en_US.Win32.Release.Control-2.idtx:15
#: en_US.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15 #: en_US.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15
msgid "" msgid ""
@@ -3550,86 +3563,103 @@ msgstr ""
" dokumenti prikazani pravilno, smo na vašem računalniku uredili nadomeščanje" " dokumenti prikazani pravilno, smo na vašem računalniku uredili nadomeščanje"
" pisave, ki bo stopilo v veljavo po naslednjem zagonu." " pisave, ki bo stopilo v veljavo po naslednjem zagonu."
#: en_US.ARM64.Debug.Directory-2.idtx:4 en_US.ARM64.Release.Directory-2.idtx:4
#: en_US.Win32.Debug.Directory-2.idtx:4 en_US.Win32.Release.Directory-2.idtx:4 #: en_US.Win32.Debug.Directory-2.idtx:4 en_US.Win32.Release.Directory-2.idtx:4
#: en_US.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4 #: en_US.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4
msgid "ZRCola:." msgid "ZRCola:."
msgstr "ZRCola:." msgstr "ZRCola:."
#: en_US.ARM64.Debug.Feature-2.idtx:4 en_US.ARM64.Release.Feature-2.idtx:4
#: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4 #: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4
#: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4 #: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts" msgid "Fonts"
msgstr "Pisave" msgstr "Pisave"
#: en_US.ARM64.Debug.Feature-2.idtx:4 en_US.ARM64.Release.Feature-2.idtx:4
#: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4 #: en_US.Win32.Debug.Feature-2.idtx:4 en_US.Win32.Release.Feature-2.idtx:4
#: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4 #: en_US.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts used by ZRCola" msgid "Fonts used by ZRCola"
msgstr "Pisave, ki jih uporablja ZRCola" msgstr "Pisave, ki jih uporablja ZRCola"
#: en_US.ARM64.Debug.Feature-2.idtx:5 en_US.ARM64.Release.Feature-2.idtx:5
#: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5 #: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5
#: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5 #: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "ZRCola" msgid "ZRCola"
msgstr "ZRCola" msgstr "ZRCola"
#: en_US.ARM64.Debug.Feature-2.idtx:5 en_US.ARM64.Release.Feature-2.idtx:5
#: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5 #: en_US.Win32.Debug.Feature-2.idtx:5 en_US.Win32.Release.Feature-2.idtx:5
#: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5 #: en_US.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "Times New Roman based font" msgid "Times New Roman based font"
msgstr "Pisava na osnovi Times New Roman" msgstr "Pisava na osnovi Times New Roman"
#: en_US.ARM64.Debug.Feature-2.idtx:6 en_US.ARM64.Release.Feature-2.idtx:6
#: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6 #: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6
#: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6 #: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentacija" msgstr "Dokumentacija"
#: en_US.ARM64.Debug.Feature-2.idtx:6 en_US.ARM64.Release.Feature-2.idtx:6
#: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6 #: en_US.Win32.Debug.Feature-2.idtx:6 en_US.Win32.Release.Feature-2.idtx:6
#: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6 #: en_US.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "ZRCola Documentation" msgid "ZRCola Documentation"
msgstr "Dokumentacija ZRCola" msgstr "Dokumentacija ZRCola"
#: en_US.ARM64.Debug.Feature-2.idtx:7 en_US.ARM64.Release.Feature-2.idtx:7
#: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7 #: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7
#: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7 #: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Bližnjice na tipkovnici" msgstr "Bližnjice na tipkovnici"
#: en_US.ARM64.Debug.Feature-2.idtx:7 en_US.ARM64.Release.Feature-2.idtx:7
#: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7 #: en_US.Win32.Debug.Feature-2.idtx:7 en_US.Win32.Release.Feature-2.idtx:7
#: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7 #: en_US.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "PDF document with a list of ZRCola keyboard shortcuts" msgid "PDF document with a list of ZRCola keyboard shortcuts"
msgstr "Dokument PDF s seznamom ZRColinih bližnjic na tipkovnici" msgstr "Dokument PDF s seznamom ZRColinih bližnjic na tipkovnici"
#: en_US.ARM64.Debug.Property-2.idtx:4 en_US.ARM64.Release.Property-2.idtx:4
#: en_US.Win32.Debug.Property-2.idtx:4 en_US.Win32.Release.Property-2.idtx:4 #: en_US.Win32.Debug.Property-2.idtx:4 en_US.Win32.Release.Property-2.idtx:4
#: en_US.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4 #: en_US.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4
msgid "Amebis, Slovenia, E.U." msgid "Amebis, Slovenia, E.U."
msgstr "Amebis, d. o. o., Kamnik" msgstr "Amebis, d. o. o., Kamnik"
#: en_US.ARM64.Debug.Property-2.idtx:5 en_US.ARM64.Release.Property-2.idtx:5
#: en_US.Win32.Debug.Property-2.idtx:5 en_US.Win32.Release.Property-2.idtx:5 #: en_US.Win32.Debug.Property-2.idtx:5 en_US.Win32.Release.Property-2.idtx:5
#: en_US.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5 #: en_US.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5
msgid "Fran Ramovš Institute of Slovenian Language ZRC SAZU" msgid "Fran Ramovš Institute of Slovenian Language ZRC SAZU"
msgstr "Inštitut za slovenski jezik Frana Ramovša ZRC SAZU" msgstr "Inštitut za slovenski jezik Frana Ramovša ZRC SAZU"
#: en_US.ARM64.Debug.Property-2.idtx:6 en_US.ARM64.Release.Property-2.idtx:6
#: en_US.Win32.Debug.Property-2.idtx:6 en_US.Win32.Release.Property-2.idtx:6 #: en_US.Win32.Debug.Property-2.idtx:6 en_US.Win32.Release.Property-2.idtx:6
#: en_US.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6 #: en_US.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6
msgid "+386 1 470 6170" msgid "+386 1 470 6170"
msgstr "01 470 6170" msgstr "01 470 6170"
#: en_US.ARM64.Debug.Property-2.idtx:7 en_US.ARM64.Release.Property-2.idtx:7
#: en_US.Win32.Debug.Property-2.idtx:7 en_US.Win32.Release.Property-2.idtx:7 #: en_US.Win32.Debug.Property-2.idtx:7 en_US.Win32.Release.Property-2.idtx:7
#: en_US.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7 #: en_US.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7
msgid "http://zrcola.zrc-sazu.si/en/contact/" msgid "http://zrcola.zrc-sazu.si/en/contact/"
msgstr "http://zrcola.zrc-sazu.si/contact/" msgstr "http://zrcola.zrc-sazu.si/contact/"
#: en_US.ARM64.Debug.Property-2.idtx:8 en_US.ARM64.Release.Property-2.idtx:8
#: en_US.Win32.Debug.Property-2.idtx:8 en_US.Win32.Release.Property-2.idtx:8 #: en_US.Win32.Debug.Property-2.idtx:8 en_US.Win32.Release.Property-2.idtx:8
#: en_US.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8 #: en_US.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/info/instructions/"
#: en_US.ARM64.Debug.Property-2.idtx:9 en_US.ARM64.Release.Property-2.idtx:9
#: en_US.Win32.Debug.Property-2.idtx:9 en_US.Win32.Release.Property-2.idtx:9 #: en_US.Win32.Debug.Property-2.idtx:9 en_US.Win32.Release.Property-2.idtx:9
#: en_US.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9 #: en_US.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9
msgid "http://zrcola.zrc-sazu.si/en/install/" msgid "http://zrcola.zrc-sazu.si/en/install/"
msgstr "http://zrcola.zrc-sazu.si/install/" msgstr "http://zrcola.zrc-sazu.si/install/"
#: en_US.ARM64.Debug.Shortcut-2.idtx:4 en_US.ARM64.Release.Shortcut-2.idtx:4
#: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4 #: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4
#: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4 #: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts" msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts"
msgstr "ZRCOLA~1|ZRColine bližnjice na tipkovnici" msgstr "ZRCOLA~1|ZRColine bližnjice na tipkovnici"
#: en_US.ARM64.Debug.Shortcut-2.idtx:4 en_US.ARM64.Release.Shortcut-2.idtx:4
#: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4 #: en_US.Win32.Debug.Shortcut-2.idtx:4 en_US.Win32.Release.Shortcut-2.idtx:4
#: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4 #: en_US.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola Keyboard Shortcuts" msgid "ZRCola Keyboard Shortcuts"

Binary file not shown.

View File

@@ -36,14 +36,25 @@ ZRCola is using wxWidgets static libraries. You have to compile static libraries
ZRCola compilation references wxWidgets libraries using `WXWIN` environment variable. Please set it to wxWidgets folder (e.g. `C:\SDK\wxWidgets`). ZRCola compilation references wxWidgets libraries using `WXWIN` environment variable. Please set it to wxWidgets folder (e.g. `C:\SDK\wxWidgets`).
### Digital Signing of Build Outputs ### Digital Signing of Build Outputs
In order to have the build process digitally sign output files, one should provide the following: In order to have the build process digitally sign output files, one should setup either:
1. A signing certificate installed in the current user's certificate store. - Local signing:
2. The following variables in the environment: 1. A signing certificate installed in the current user's certificate store.
- `ManifestCertificateThumbprint` - set the value to certificate's SHA1 thumbprint (hexadecimal, without spaces, e.g. `f61b973226c502a732d24f41aa85e192b009e7c0`). 2. The following variables in the environment:
- `ManifestTimestampRFC3161Url` - set the value to URL used to perform RFC3161 timestamp signature (e.g. `http://time.certum.pl`). In order to perform timestamp signing successfully, the computer running the build should be online and able to access this URL. - `ManifestCertificateThumbprint` - set the value to certificate's SHA1 thumbprint (hexadecimal, without spaces, e.g. `f61b973226c502a732d24f41aa85e192b009e7c0`).
- `ManifestTimestampRFC3161Url` - set the value to URL used to perform RFC3161 timestamp signature (e.g. `http://time.certum.pl`). In order to perform timestamp signing successfully, the computer running the build should be online and able to access this URL.
Please note that only Release builds are configured for timestamp signing. Debug configurations do not attempt to timestamp sign the resulting DLL and EXE files in order to speed up the building process and enable offline building. - Microsoft Trusted Signing:
1. Install [Trusted Signing dlib package](https://www.nuget.org/packages/Microsoft.Trusted.Signing.Client):
```cmd
nuget install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x
```
2. Provide a [`manifest.json`](https://learn.microsoft.com/en-us/azure/trusted-signing/how-to-signing-integrations#create-a-json-file) file and place it at `%APPDATA%\Microsoft.Trusted.Signing.Client.json`:
```cmd
notepad "%APPDATA%\Microsoft.Trusted.Signing.Client.json"
```
Please note that only Release builds are configured for signing. Debug configurations do not sign the resulting DLL and EXE files in order to speed up the building process and reduce signing volume.
### Building ### Building
Use Microsoft NMAKE to build the project. The resulting files can be found in output subfolder. Open _x64 Native Tools Command Prompt for VS 2017_ for building. Use Microsoft NMAKE to build the project. The resulting files can be found in output subfolder. Open _x64 Native Tools Command Prompt for VS 2017_ for building.

Submodule Updater updated: 46495773c2...f8c5385216

View File

@@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola\n" "Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2022-02-17 13:32+0100\n" "POT-Creation-Date: 2025-11-14 16:23+0100\n"
"PO-Revision-Date: 2019-04-01 19:38+0200\n" "PO-Revision-Date: 2019-04-01 19:38+0200\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n" "Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
@@ -21,7 +21,7 @@ msgstr ""
msgid "© 2004-%s ZRC SAZU" msgid "© 2004-%s ZRC SAZU"
msgstr "" msgstr ""
#: zrcolaapp.cpp:60 zrcolafrm.cpp:118 zrcolagui.cpp:232 zrcolagui.cpp:943 #: zrcolaapp.cpp:60 zrcolafrm.cpp:110 zrcolagui.cpp:232 zrcolagui.cpp:943
#: zrcolagui.h:119 MSIBuild/en_US.ARM64.Debug.Feature-2.idtx:4 #: zrcolagui.h:119 MSIBuild/en_US.ARM64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Shortcut-2.idtx:4 #: MSIBuild/en_US.ARM64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
@@ -45,7 +45,7 @@ msgstr ""
msgid "Context" msgid "Context"
msgstr "" msgstr ""
#: zrcolachrreq.cpp:50 zrcolagui.h:376 #: zrcolachrreq.cpp:50 zrcolagui.h:382
msgid "Request a New Character" msgid "Request a New Character"
msgstr "" msgstr ""
@@ -62,7 +62,7 @@ msgstr ""
msgid "Invalid character in Unicode found: %c" msgid "Invalid character in Unicode found: %c"
msgstr "" msgstr ""
#: zrcolachrslct.cpp:201 zrcolachrslct.cpp:377 zrcolachrslct.cpp:874 #: zrcolachrslct.cpp:201 zrcolachrslct.cpp:377 zrcolachrslct.cpp:870
msgid "▸ Search Options" msgid "▸ Search Options"
msgstr "" msgstr ""
@@ -70,35 +70,35 @@ msgstr ""
msgid ", " msgid ", "
msgstr "" msgstr ""
#: zrcolachrslct.cpp:380 zrcolachrslct.cpp:871 #: zrcolachrslct.cpp:380 zrcolachrslct.cpp:867
msgid "▾ Search Options" msgid "▾ Search Options"
msgstr "" msgstr ""
#: zrcolafrm.cpp:84 #: zrcolafrm.cpp:76
msgid "No Translation" msgid "No Translation"
msgstr "" msgstr ""
#: zrcolafrm.cpp:97 #: zrcolafrm.cpp:89
msgid "Custom Translation..." msgid "Custom Translation..."
msgstr "" msgstr ""
#: zrcolafrm.cpp:217 #: zrcolafrm.cpp:209
msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available." msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."
msgstr "" msgstr ""
#: zrcolafrm.cpp:217 zrcolafrm.cpp:219 #: zrcolafrm.cpp:209 zrcolafrm.cpp:211
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: zrcolafrm.cpp:219 #: zrcolafrm.cpp:211
msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available." msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."
msgstr "" msgstr ""
#: zrcolafrm.cpp:513 #: zrcolafrm.cpp:505
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "" msgstr ""
#: zrcolafrm.cpp:538 #: zrcolafrm.cpp:530
msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
msgstr "" msgstr ""
@@ -399,7 +399,7 @@ msgid "Shows/hides additional search options"
msgstr "" msgstr ""
#: zrcolagui.cpp:517 #: zrcolagui.cpp:517
msgid "List of Unicode character categories to search in" msgid "List of Unicode character blocks to search in"
msgstr "" msgstr ""
#: zrcolagui.cpp:524 #: zrcolagui.cpp:524
@@ -415,7 +415,7 @@ msgid "None"
msgstr "" msgstr ""
#: zrcolagui.cpp:530 #: zrcolagui.cpp:530
msgid "Clear category selection" msgid "Clear block selection"
msgstr "" msgstr ""
#: zrcolagui.cpp:534 #: zrcolagui.cpp:534
@@ -423,7 +423,7 @@ msgid "Invert"
msgstr "" msgstr ""
#: zrcolagui.cpp:535 #: zrcolagui.cpp:535
msgid "Invert category selection" msgid "Invert block selection"
msgstr "" msgstr ""
#: zrcolagui.cpp:574 #: zrcolagui.cpp:574
@@ -467,7 +467,7 @@ msgid "Character tags"
msgstr "" msgstr ""
#: zrcolagui.cpp:691 #: zrcolagui.cpp:691
msgid "Unicode character category" msgid "Unicode character block"
msgstr "" msgstr ""
#: zrcolagui.cpp:698 #: zrcolagui.cpp:698
@@ -637,23 +637,23 @@ msgstr ""
msgid "↓" msgid "↓"
msgstr "" msgstr ""
#: zrcolagui.h:260 #: zrcolagui.h:262
msgid "Character Search" msgid "Character Search"
msgstr "" msgstr ""
#: zrcolagui.h:296 #: zrcolagui.h:299
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: zrcolagui.h:322 #: zrcolagui.h:326
msgid "About ZRCola" msgid "About ZRCola"
msgstr "" msgstr ""
#: zrcolagui.h:347 zrcolaupdater.cpp:81 #: zrcolagui.h:352 zrcolaupdater.cpp:81
msgid "Product Update" msgid "Product Update"
msgstr "" msgstr ""
#: zrcolagui.h:418 #: zrcolagui.h:425
msgid "Custom Translation Sequence" msgid "Custom Translation Sequence"
msgstr "" msgstr ""
@@ -661,7 +661,7 @@ msgstr ""
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 "" msgstr ""
#: zrcolasettings.cpp:73 #: zrcolasettings.cpp:72
msgid "Start ZRCola automatically on logon" msgid "Start ZRCola automatically on logon"
msgstr "" msgstr ""

View File

@@ -1,15 +1,15 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2021 # Simon Rozman <simon.rozman@amebis.si>, 2021
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola\n" "Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2021-12-21 14:45+0100\n" "POT-Creation-Date: 2025-11-14 16:23+0100\n"
"PO-Revision-Date: 2018-09-19 07:18+0000\n" "PO-Revision-Date: 2018-09-19 07:18+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2021\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2021\n"
"Language-Team: German (Germany) (https://www.transifex.com/amebis/teams/91592/de_DE/)\n" "Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -27,11 +27,17 @@ msgstr ""
msgid "© 2004-%s ZRC SAZU" msgid "© 2004-%s ZRC SAZU"
msgstr "" msgstr ""
#: zrcolaapp.cpp:60 zrcolafrm.cpp:118 zrcolagui.cpp:232 zrcolagui.cpp:943 #: zrcolaapp.cpp:60 zrcolafrm.cpp:110 zrcolagui.cpp:232 zrcolagui.cpp:943
#: zrcolagui.h:119 MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4 #: zrcolagui.h:119 MSIBuild/en_US.ARM64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: 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.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-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.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola" msgid "ZRCola"
@@ -45,7 +51,7 @@ msgstr ""
msgid "Context" msgid "Context"
msgstr "" msgstr ""
#: zrcolachrreq.cpp:50 zrcolagui.h:376 #: zrcolachrreq.cpp:50 zrcolagui.h:382
msgid "Request a New Character" msgid "Request a New Character"
msgstr "" msgstr ""
@@ -62,7 +68,7 @@ msgstr "Fehler bei der Validierung"
msgid "Invalid character in Unicode found: %c" msgid "Invalid character in Unicode found: %c"
msgstr "" msgstr ""
#: zrcolachrslct.cpp:201 zrcolachrslct.cpp:377 zrcolachrslct.cpp:874 #: zrcolachrslct.cpp:201 zrcolachrslct.cpp:377 zrcolachrslct.cpp:870
msgid "▸ Search Options" msgid "▸ Search Options"
msgstr "" msgstr ""
@@ -70,39 +76,39 @@ msgstr ""
msgid ", " msgid ", "
msgstr ", " msgstr ", "
#: zrcolachrslct.cpp:380 zrcolachrslct.cpp:871 #: zrcolachrslct.cpp:380 zrcolachrslct.cpp:867
msgid "▾ Search Options" msgid "▾ Search Options"
msgstr "" msgstr ""
#: zrcolafrm.cpp:84 #: zrcolafrm.cpp:76
msgid "No Translation" msgid "No Translation"
msgstr "" msgstr ""
#: zrcolafrm.cpp:97 #: zrcolafrm.cpp:89
msgid "Custom Translation..." msgid "Custom Translation..."
msgstr "" msgstr ""
#: zrcolafrm.cpp:217 #: zrcolafrm.cpp:209
msgid "" msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality " "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available." "will not be available."
msgstr "" msgstr ""
#: zrcolafrm.cpp:217 zrcolafrm.cpp:219 #: zrcolafrm.cpp:209 zrcolafrm.cpp:211
msgid "Warning" msgid "Warning"
msgstr "" msgstr ""
#: zrcolafrm.cpp:219 #: zrcolafrm.cpp:211
msgid "" msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality " "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available." "will not be available."
msgstr "" msgstr ""
#: zrcolafrm.cpp:513 #: zrcolafrm.cpp:505
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/de/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/de/info/instructions/"
#: zrcolafrm.cpp:538 #: zrcolafrm.cpp:530
msgid "" msgid ""
"http://zrcola.zrc-sazu.si/wp-" "http://zrcola.zrc-sazu.si/wp-"
"content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" "content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
@@ -409,7 +415,7 @@ msgid "Shows/hides additional search options"
msgstr "" msgstr ""
#: zrcolagui.cpp:517 #: zrcolagui.cpp:517
msgid "List of Unicode character categories to search in" msgid "List of Unicode character blocks to search in"
msgstr "" msgstr ""
#: zrcolagui.cpp:524 #: zrcolagui.cpp:524
@@ -425,7 +431,7 @@ msgid "None"
msgstr "" msgstr ""
#: zrcolagui.cpp:530 #: zrcolagui.cpp:530
msgid "Clear category selection" msgid "Clear block selection"
msgstr "" msgstr ""
#: zrcolagui.cpp:534 #: zrcolagui.cpp:534
@@ -433,7 +439,7 @@ msgid "Invert"
msgstr "" msgstr ""
#: zrcolagui.cpp:535 #: zrcolagui.cpp:535
msgid "Invert category selection" msgid "Invert block selection"
msgstr "" msgstr ""
#: zrcolagui.cpp:574 #: zrcolagui.cpp:574
@@ -477,7 +483,7 @@ msgid "Character tags"
msgstr "" msgstr ""
#: zrcolagui.cpp:691 #: zrcolagui.cpp:691
msgid "Unicode character category" msgid "Unicode character block"
msgstr "" msgstr ""
#: zrcolagui.cpp:698 #: zrcolagui.cpp:698
@@ -654,23 +660,23 @@ msgstr "↑"
msgid "↓" msgid "↓"
msgstr "↓" msgstr "↓"
#: zrcolagui.h:260 #: zrcolagui.h:262
msgid "Character Search" msgid "Character Search"
msgstr "" msgstr ""
#: zrcolagui.h:296 #: zrcolagui.h:299
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: zrcolagui.h:322 #: zrcolagui.h:326
msgid "About ZRCola" msgid "About ZRCola"
msgstr "" msgstr ""
#: zrcolagui.h:347 zrcolaupdater.cpp:81 #: zrcolagui.h:352 zrcolaupdater.cpp:81
msgid "Product Update" msgid "Product Update"
msgstr "" msgstr ""
#: zrcolagui.h:418 #: zrcolagui.h:425
msgid "Custom Translation Sequence" msgid "Custom Translation Sequence"
msgstr "" msgstr ""
@@ -680,7 +686,7 @@ msgid ""
"four hexadecimal digits: 0-9, A-F), then release INS." "four hexadecimal digits: 0-9, A-F), then release INS."
msgstr "" msgstr ""
#: zrcolasettings.cpp:73 #: zrcolasettings.cpp:72
msgid "Start ZRCola automatically on logon" msgid "Start ZRCola automatically on logon"
msgstr "" msgstr ""
@@ -695,40 +701,61 @@ msgid ""
"Are you sure?" "Are you sure?"
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:10 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:10
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:15 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:15
#: 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:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15 #: 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:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10 #: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15 #: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "UIHeader.bmp" msgid "UIHeader.bmp"
msgstr "UIHeader.bmp" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:5 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:6 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "tutorial1.bmp" msgid "tutorial1.bmp"
msgstr "tutorial1.bmp" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:7 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "" msgid ""
"When configured, ZRCola starts at system startup and runs in the background." "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." " If needed, it can be brought up by pressing the combination Win+F5."
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:8 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "" msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the " "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
@@ -737,32 +764,50 @@ msgid ""
" where to insert the special characters!" " where to insert the special characters!"
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:9 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:9
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:14 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:14
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:19 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:19
#: 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:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19 #: 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:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14 #: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19 #: MSIBuild/en_US.x64.Release.Control-2.idtx:19
msgid "&Continue" msgid "&Continue"
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:11 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:12 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "tutorial2.bmp" msgid "tutorial2.bmp"
msgstr "tutorial2.bmp" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:13 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "" msgid ""
"The string of basic and substitute characters is entered into the upper " "The string of basic and substitute characters is entered into the upper "
@@ -770,30 +815,45 @@ msgid ""
"characters are displayed. To insert them in the text, the F5 key is used." "characters are displayed. To insert them in the text, the F5 key is used."
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:16 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:17 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "tutorial3.bmp" msgid "tutorial3.bmp"
msgstr "tutorial3.bmp" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:18 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "" msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue " "Characters can be entered using keyboard shortcuts, the character catalogue "
"(F4) or the character finding tool (F8)." "(F4) or the character finding tool (F8)."
msgstr "" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: 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.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-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.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use" msgid "Input system for linguistic use"

View File

@@ -1,16 +1,16 @@
# #
# Translators: # Translators:
# Janoš Ježovnik, 2019 # Janoš Ježovnik, 2019
# Simon Rozman <simon@rozman.si>, 2021 # Simon Rozman <simon.rozman@amebis.si>, 2021
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola\n" "Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2021-12-21 14:45+0100\n" "POT-Creation-Date: 2025-11-14 16:23+0100\n"
"PO-Revision-Date: 2018-09-19 07:18+0000\n" "PO-Revision-Date: 2018-09-19 07:18+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2021\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2021\n"
"Language-Team: Russian (Russia) (https://www.transifex.com/amebis/teams/91592/ru_RU/)\n" "Language-Team: Russian (Russia) (https://app.transifex.com/amebis/teams/91592/ru_RU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -28,11 +28,17 @@ msgstr ""
msgid "© 2004-%s ZRC SAZU" msgid "© 2004-%s ZRC SAZU"
msgstr "© 2004%s ZRC SAZU" msgstr "© 2004%s ZRC SAZU"
#: zrcolaapp.cpp:60 zrcolafrm.cpp:118 zrcolagui.cpp:232 zrcolagui.cpp:943 #: zrcolaapp.cpp:60 zrcolafrm.cpp:110 zrcolagui.cpp:232 zrcolagui.cpp:943
#: zrcolagui.h:119 MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4 #: zrcolagui.h:119 MSIBuild/en_US.ARM64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: 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.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-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.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola" msgid "ZRCola"
@@ -46,7 +52,7 @@ msgstr "Знак"
msgid "Context" msgid "Context"
msgstr "Контекст" msgstr "Контекст"
#: zrcolachrreq.cpp:50 zrcolagui.h:376 #: zrcolachrreq.cpp:50 zrcolagui.h:382
msgid "Request a New Character" msgid "Request a New Character"
msgstr "Запрос нового знака" msgstr "Запрос нового знака"
@@ -63,7 +69,7 @@ msgstr "Конфликт проверки"
msgid "Invalid character in Unicode found: %c" msgid "Invalid character in Unicode found: %c"
msgstr "Недействительный знак в записи Unicode: %c" msgstr "Недействительный знак в записи Unicode: %c"
#: zrcolachrslct.cpp:201 zrcolachrslct.cpp:377 zrcolachrslct.cpp:874 #: zrcolachrslct.cpp:201 zrcolachrslct.cpp:377 zrcolachrslct.cpp:870
msgid "▸ Search Options" msgid "▸ Search Options"
msgstr "▸ Опции поиска" msgstr "▸ Опции поиска"
@@ -71,19 +77,19 @@ msgstr "▸ Опции поиска"
msgid ", " msgid ", "
msgstr ", " msgstr ", "
#: zrcolachrslct.cpp:380 zrcolachrslct.cpp:871 #: zrcolachrslct.cpp:380 zrcolachrslct.cpp:867
msgid "▾ Search Options" msgid "▾ Search Options"
msgstr "▾ Опции поиска" msgstr "▾ Опции поиска"
#: zrcolafrm.cpp:84 #: zrcolafrm.cpp:76
msgid "No Translation" msgid "No Translation"
msgstr "Без транслитерации" msgstr "Без транслитерации"
#: zrcolafrm.cpp:97 #: zrcolafrm.cpp:89
msgid "Custom Translation..." msgid "Custom Translation..."
msgstr "Настраиваемое преобразование ..." msgstr "Настраиваемое преобразование ..."
#: zrcolafrm.cpp:217 #: zrcolafrm.cpp:209
msgid "" msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality " "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available." "will not be available."
@@ -91,11 +97,11 @@ msgstr ""
"Сочетание клавиш Win+F5 регистрировать. Некоторые функциональности не будут " "Сочетание клавиш Win+F5 регистрировать. Некоторые функциональности не будут "
"доступны." "доступны."
#: zrcolafrm.cpp:217 zrcolafrm.cpp:219 #: zrcolafrm.cpp:209 zrcolafrm.cpp:211
msgid "Warning" msgid "Warning"
msgstr "Предупреждение" msgstr "Предупреждение"
#: zrcolafrm.cpp:219 #: zrcolafrm.cpp:211
msgid "" msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality " "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available." "will not be available."
@@ -103,11 +109,11 @@ msgstr ""
"Сочетание клавиш Win+F6 невозможно регистрировать. Некоторые " "Сочетание клавиш Win+F6 невозможно регистрировать. Некоторые "
"функциональности не будут доступны." "функциональности не будут доступны."
#: zrcolafrm.cpp:513 #: zrcolafrm.cpp:505
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/ru/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/ru/info/instructions/"
#: zrcolafrm.cpp:538 #: zrcolafrm.cpp:530
msgid "" msgid ""
"http://zrcola.zrc-sazu.si/wp-" "http://zrcola.zrc-sazu.si/wp-"
"content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" "content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
@@ -419,8 +425,8 @@ msgid "Shows/hides additional search options"
msgstr "Показать/скрыть дополнительные опции поиска" msgstr "Показать/скрыть дополнительные опции поиска"
#: zrcolagui.cpp:517 #: zrcolagui.cpp:517
msgid "List of Unicode character categories to search in" msgid "List of Unicode character blocks to search in"
msgstr "Список категории Юникод для проведения поиска" msgstr ""
#: zrcolagui.cpp:524 #: zrcolagui.cpp:524
msgid "All" msgid "All"
@@ -435,16 +441,16 @@ msgid "None"
msgstr "Ничего" msgstr "Ничего"
#: zrcolagui.cpp:530 #: zrcolagui.cpp:530
msgid "Clear category selection" msgid "Clear block selection"
msgstr "Очистить выбор категории" msgstr ""
#: zrcolagui.cpp:534 #: zrcolagui.cpp:534
msgid "Invert" msgid "Invert"
msgstr "Обратить" msgstr "Обратить"
#: zrcolagui.cpp:535 #: zrcolagui.cpp:535
msgid "Invert category selection" msgid "Invert block selection"
msgstr "Обратить выбор категории" msgstr ""
#: zrcolagui.cpp:574 #: zrcolagui.cpp:574
msgid "Character search results" msgid "Character search results"
@@ -487,8 +493,8 @@ msgid "Character tags"
msgstr "Ключевые слова" msgstr "Ключевые слова"
#: zrcolagui.cpp:691 #: zrcolagui.cpp:691
msgid "Unicode character category" msgid "Unicode character block"
msgstr "Категория знака Юникод" msgstr ""
#: zrcolagui.cpp:698 #: zrcolagui.cpp:698
msgid "« Back" msgid "« Back"
@@ -686,23 +692,23 @@ msgstr "↑"
msgid "↓" msgid "↓"
msgstr "↓" msgstr "↓"
#: zrcolagui.h:260 #: zrcolagui.h:262
msgid "Character Search" msgid "Character Search"
msgstr "Поиск знака" msgstr "Поиск знака"
#: zrcolagui.h:296 #: zrcolagui.h:299
msgid "Settings" msgid "Settings"
msgstr "Настройки" msgstr "Настройки"
#: zrcolagui.h:322 #: zrcolagui.h:326
msgid "About ZRCola" msgid "About ZRCola"
msgstr "О системе ZRCola" msgstr "О системе ZRCola"
#: zrcolagui.h:347 zrcolaupdater.cpp:81 #: zrcolagui.h:352 zrcolaupdater.cpp:81
msgid "Product Update" msgid "Product Update"
msgstr "Обновление продукта" msgstr "Обновление продукта"
#: zrcolagui.h:418 #: zrcolagui.h:425
msgid "Custom Translation Sequence" msgid "Custom Translation Sequence"
msgstr "Настраиваемая последовательность преобразований" msgstr "Настраиваемая последовательность преобразований"
@@ -714,7 +720,7 @@ msgstr ""
"Нажата клавиша INS. Введите код Юникод желаемого знака (максимум четыре " "Нажата клавиша INS. Введите код Юникод желаемого знака (максимум четыре "
естнадцатеричныe цифры: 0-9, A-F), затем отпустите клавишу INS." естнадцатеричныe цифры: 0-9, A-F), затем отпустите клавишу INS."
#: zrcolasettings.cpp:73 #: zrcolasettings.cpp:72
msgid "Start ZRCola automatically on logon" msgid "Start ZRCola automatically on logon"
msgstr "Автоматически запустить систему ZRCola при запуске компьютера" msgstr "Автоматически запустить систему ZRCola при запуске компьютера"
@@ -731,32 +737,50 @@ msgstr ""
"Программа будет закрыта и обновлена.\n" "Программа будет закрыта и обновлена.\n"
"Вы уверены?" "Вы уверены?"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:10 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:10
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:15 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:15
#: 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:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15 #: 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:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10 #: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15 #: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "UIHeader.bmp" msgid "UIHeader.bmp"
msgstr "UIHeader.bmp" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:5 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по запуску системы" msgstr "[DlgTitleFont][SimpleProductName] Руководство по запуску системы"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:6 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "tutorial1.bmp" msgid "tutorial1.bmp"
msgstr "tutorial1.bmp" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:7 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "" msgid ""
"When configured, ZRCola starts at system startup and runs in the background." "When configured, ZRCola starts at system startup and runs in the background."
@@ -766,8 +790,11 @@ msgstr ""
"работает в фоновом режиме. Если потребуется, пользователь может вывести " "работает в фоновом режиме. Если потребуется, пользователь может вывести "
"программу на экран, нажав на сочетание клавиш Win+F5." "программу на экран, нажав на сочетание клавиш Win+F5."
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:8 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "" msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the " "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
@@ -780,32 +807,50 @@ msgstr ""
"использования упомянутого сочетания клавиш, программа не знает, куда ввести " "использования упомянутого сочетания клавиш, программа не знает, куда ввести "
"желаемые знаки!" "желаемые знаки!"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:9 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:9
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:14 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:14
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:19 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:19
#: 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:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19 #: 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:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14 #: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19 #: MSIBuild/en_US.x64.Release.Control-2.idtx:19
msgid "&Continue" msgid "&Continue"
msgstr "&Продолжить" msgstr "&Продолжить"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:11 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по составлению" msgstr "[DlgTitleFont][SimpleProductName] Руководство по составлению"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:12 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "tutorial2.bmp" msgid "tutorial2.bmp"
msgstr "tutorial2.bmp" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:13 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "" msgid ""
"The string of basic and substitute characters is entered into the upper " "The string of basic and substitute characters is entered into the upper "
@@ -816,20 +861,29 @@ msgstr ""
" того, в нижнем окне появляются соответствующие специальные знаки. Для их " " того, в нижнем окне появляются соответствующие специальные знаки. Для их "
"ввода в текст нужно нажать клавишу F5." "ввода в текст нужно нажать клавишу F5."
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:16 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr "[DlgTitleFont][SimpleProductName] Руководство по вводу знаков" msgstr "[DlgTitleFont][SimpleProductName] Руководство по вводу знаков"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:17 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "tutorial3.bmp" msgid "tutorial3.bmp"
msgstr "tutorial3.bmp" msgstr ""
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:18 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "" msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue " "Characters can be entered using keyboard shortcuts, the character catalogue "
@@ -838,10 +892,16 @@ msgstr ""
"Знак можно ввести, употребляя сочетания клавиш на клавиатуре, список знаков " "Знак можно ввести, употребляя сочетания клавиш на клавиатуре, список знаков "
"(F4) или функцию \"Поиск знака\" (F8)." "(F4) или функцию \"Поиск знака\" (F8)."
#: MSIBuild/en_US.ARM64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: 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.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-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.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use" msgid "Input system for linguistic use"

View File

@@ -1,15 +1,16 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2021 # Simon Rozman <simon.rozman@amebis.si>, 2025
# Janoš Ježovnik, 2025
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola\n" "Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2021-12-21 14:45+0100\n" "POT-Creation-Date: 2025-11-14 16:23+0100\n"
"PO-Revision-Date: 2018-09-19 07:18+0000\n" "PO-Revision-Date: 2018-09-19 07:18+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2021\n" "Last-Translator: Janoš Ježovnik, 2025\n"
"Language-Team: Slovenian (Slovenia) (https://www.transifex.com/amebis/teams/91592/sl_SI/)\n" "Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -27,11 +28,17 @@ msgstr ""
msgid "© 2004-%s ZRC SAZU" msgid "© 2004-%s ZRC SAZU"
msgstr "© 2004-%s ZRC SAZU" msgstr "© 2004-%s ZRC SAZU"
#: zrcolaapp.cpp:60 zrcolafrm.cpp:118 zrcolagui.cpp:232 zrcolagui.cpp:943 #: zrcolaapp.cpp:60 zrcolafrm.cpp:110 zrcolagui.cpp:232 zrcolagui.cpp:943
#: zrcolagui.h:119 MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4 #: zrcolagui.h:119 MSIBuild/en_US.ARM64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: 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.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-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.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola" msgid "ZRCola"
@@ -45,7 +52,7 @@ msgstr "Znak"
msgid "Context" msgid "Context"
msgstr "Kontekst" msgstr "Kontekst"
#: zrcolachrreq.cpp:50 zrcolagui.h:376 #: zrcolachrreq.cpp:50 zrcolagui.h:382
msgid "Request a New Character" msgid "Request a New Character"
msgstr "Zahtevaj nov znak" msgstr "Zahtevaj nov znak"
@@ -62,7 +69,7 @@ msgstr "Nesoglasje pri preverjanju"
msgid "Invalid character in Unicode found: %c" msgid "Invalid character in Unicode found: %c"
msgstr "Napačen znak v zapisu Unicode: %c" msgstr "Napačen znak v zapisu Unicode: %c"
#: zrcolachrslct.cpp:201 zrcolachrslct.cpp:377 zrcolachrslct.cpp:874 #: zrcolachrslct.cpp:201 zrcolachrslct.cpp:377 zrcolachrslct.cpp:870
msgid "▸ Search Options" msgid "▸ Search Options"
msgstr "▸ Možnosti iskanja" msgstr "▸ Možnosti iskanja"
@@ -70,19 +77,19 @@ msgstr "▸ Možnosti iskanja"
msgid ", " msgid ", "
msgstr ", " msgstr ", "
#: zrcolachrslct.cpp:380 zrcolachrslct.cpp:871 #: zrcolachrslct.cpp:380 zrcolachrslct.cpp:867
msgid "▾ Search Options" msgid "▾ Search Options"
msgstr "▾ Možnosti iskanja" msgstr "▾ Možnosti iskanja"
#: zrcolafrm.cpp:84 #: zrcolafrm.cpp:76
msgid "No Translation" msgid "No Translation"
msgstr "Brez transliteracije" msgstr "Brez prečrkovanja"
#: zrcolafrm.cpp:97 #: zrcolafrm.cpp:89
msgid "Custom Translation..." msgid "Custom Translation..."
msgstr "Pretvorba po meri ..." msgstr "Prečrkovanje po meri ..."
#: zrcolafrm.cpp:217 #: zrcolafrm.cpp:209
msgid "" msgid ""
"ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality " "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality "
"will not be available." "will not be available."
@@ -90,11 +97,11 @@ msgstr ""
"ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj " "ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo." "funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:217 zrcolafrm.cpp:219 #: zrcolafrm.cpp:209 zrcolafrm.cpp:211
msgid "Warning" msgid "Warning"
msgstr "Opozorilo" msgstr "Opozorilo"
#: zrcolafrm.cpp:219 #: zrcolafrm.cpp:211
msgid "" msgid ""
"ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality " "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality "
"will not be available." "will not be available."
@@ -102,11 +109,11 @@ msgstr ""
"ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj " "ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj "
"funkcionalnosti ne bo na voljo." "funkcionalnosti ne bo na voljo."
#: zrcolafrm.cpp:513 #: zrcolafrm.cpp:505
msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgid "http://zrcola.zrc-sazu.si/en/info/instructions/"
msgstr "http://zrcola.zrc-sazu.si/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/info/instructions/"
#: zrcolafrm.cpp:538 #: zrcolafrm.cpp:530
msgid "" msgid ""
"http://zrcola.zrc-sazu.si/wp-" "http://zrcola.zrc-sazu.si/wp-"
"content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" "content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf"
@@ -180,7 +187,7 @@ msgstr ""
#: zrcolagui.cpp:126 #: zrcolagui.cpp:126
msgid "Abort (De)composition" msgid "Abort (De)composition"
msgstr "Prekini raz/sestavljanje" msgstr "Prekini raz-/sestavljanje"
#: zrcolagui.cpp:126 #: zrcolagui.cpp:126
msgid "Abort composition and return focus to source window" msgid "Abort composition and return focus to source window"
@@ -216,7 +223,7 @@ msgstr "(Raz-)sestavljanje znakov Unicode"
#: zrcolagui.cpp:151 #: zrcolagui.cpp:151
msgid "Tra&nslation" msgid "Tra&nslation"
msgstr "Tra&nsliteracija" msgstr "Prečrkova&nje"
#: zrcolagui.cpp:156 #: zrcolagui.cpp:156
msgid "&PUA Warning" msgid "&PUA Warning"
@@ -418,8 +425,8 @@ msgid "Shows/hides additional search options"
msgstr "Prikaže/skrije dodatne možnosti iskanja" msgstr "Prikaže/skrije dodatne možnosti iskanja"
#: zrcolagui.cpp:517 #: zrcolagui.cpp:517
msgid "List of Unicode character categories to search in" msgid "List of Unicode character blocks to search in"
msgstr "Seznam kategorij znaka Unicode za iskanje" msgstr "Seznam znakovnih blokov Unicode za iskanje"
#: zrcolagui.cpp:524 #: zrcolagui.cpp:524
msgid "All" msgid "All"
@@ -434,16 +441,16 @@ msgid "None"
msgstr "Nič" msgstr "Nič"
#: zrcolagui.cpp:530 #: zrcolagui.cpp:530
msgid "Clear category selection" msgid "Clear block selection"
msgstr "Počisti izbor kategorij" msgstr "Počisti izbor blokov"
#: zrcolagui.cpp:534 #: zrcolagui.cpp:534
msgid "Invert" msgid "Invert"
msgstr "Obrni" msgstr "Obrni"
#: zrcolagui.cpp:535 #: zrcolagui.cpp:535
msgid "Invert category selection" msgid "Invert block selection"
msgstr "Obrni izbor kategorij" msgstr "Obrni izbor blokov"
#: zrcolagui.cpp:574 #: zrcolagui.cpp:574
msgid "Character search results" msgid "Character search results"
@@ -486,8 +493,8 @@ msgid "Character tags"
msgstr "Oznake znaka" msgstr "Oznake znaka"
#: zrcolagui.cpp:691 #: zrcolagui.cpp:691
msgid "Unicode character category" msgid "Unicode character block"
msgstr "Kategorija znaka Unicode" msgstr "Znakovni blok Unicode"
#: zrcolagui.cpp:698 #: zrcolagui.cpp:698
msgid "« Back" msgid "« Back"
@@ -683,23 +690,23 @@ msgstr "↑"
msgid "↓" msgid "↓"
msgstr "↓" msgstr "↓"
#: zrcolagui.h:260 #: zrcolagui.h:262
msgid "Character Search" msgid "Character Search"
msgstr "Poišči znak" msgstr "Poišči znak"
#: zrcolagui.h:296 #: zrcolagui.h:299
msgid "Settings" msgid "Settings"
msgstr "Nastavitve" msgstr "Nastavitve"
#: zrcolagui.h:322 #: zrcolagui.h:326
msgid "About ZRCola" msgid "About ZRCola"
msgstr "O ZRColi" msgstr "O ZRColi"
#: zrcolagui.h:347 zrcolaupdater.cpp:81 #: zrcolagui.h:352 zrcolaupdater.cpp:81
msgid "Product Update" msgid "Product Update"
msgstr "Posodabljanje izdelka" msgstr "Posodabljanje izdelka"
#: zrcolagui.h:418 #: zrcolagui.h:425
msgid "Custom Translation Sequence" msgid "Custom Translation Sequence"
msgstr "Zaporedje pretvorb po meri" msgstr "Zaporedje pretvorb po meri"
@@ -711,7 +718,7 @@ msgstr ""
"Pritisnili ste tipko INS. Vtipkajte kodo Unicode želenega znaka (do štiri " "Pritisnili ste tipko INS. Vtipkajte kodo Unicode želenega znaka (do štiri "
"šestnajstiške števke: 09, AF), nato izpustite INS." "šestnajstiške števke: 09, AF), nato izpustite INS."
#: zrcolasettings.cpp:73 #: zrcolasettings.cpp:72
msgid "Start ZRCola automatically on logon" msgid "Start ZRCola automatically on logon"
msgstr "Samodejno zaženi ZRColo ob prijavi" msgstr "Samodejno zaženi ZRColo ob prijavi"
@@ -728,32 +735,50 @@ msgstr ""
"Program se bo zdaj zaprl in zagnala se bo posodobitev.\n" "Program se bo zdaj zaprl in zagnala se bo posodobitev.\n"
"Ali ste prepričani, da želite nadaljevati?" "Ali ste prepričani, da želite nadaljevati?"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:10
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:15
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:10 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:10
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:15 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:15
#: 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:4
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:10 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:10
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:15 #: 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:4
#: MSIBuild/en_US.x64.Release.Control-2.idtx:10 #: MSIBuild/en_US.x64.Release.Control-2.idtx:10
#: MSIBuild/en_US.x64.Release.Control-2.idtx:15 #: MSIBuild/en_US.x64.Release.Control-2.idtx:15
msgid "UIHeader.bmp" msgid "UIHeader.bmp"
msgstr "UIHeader.bmp" msgstr "UIHeader.bmp"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:5
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:5 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:5
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:5
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting"
msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Zagon" msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Zagon"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:6
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:6 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:6
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:6
msgid "tutorial1.bmp" msgid "tutorial1.bmp"
msgstr "tutorial1.bmp" msgstr "tutorial1.bmp"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:7
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:7 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:7
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:7
msgid "" msgid ""
"When configured, ZRCola starts at system startup and runs in the background." "When configured, ZRCola starts at system startup and runs in the background."
@@ -762,8 +787,11 @@ msgstr ""
"Če jo tako nastavimo, se ZRCola zažene samodejno in teče v ozadju. V " "Č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." "ospredje jo prikličemo s pritiskom na bližnjico Win+F5."
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:8
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:8 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:8
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:8
msgid "" msgid ""
"IMPORTANT: Upon pressing the combination Win+F5 the program memorises the " "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the "
@@ -775,32 +803,50 @@ msgstr ""
"besedilu. Če ZRColo povečamo brez pritiska na ti dve tipki, program ne bo " "besedilu. Če ZRColo povečamo brez pritiska na ti dve tipki, program ne bo "
"vedel, kam vstaviti želene znake!" "vedel, kam vstaviti želene znake!"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:9
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:14
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:19
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:9 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:9
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:14 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:14
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:19 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:19
#: 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:9
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:14 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:14
#: MSIBuild/en_US.Win32.Release.Control-2.idtx:19 #: 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:9
#: MSIBuild/en_US.x64.Release.Control-2.idtx:14 #: MSIBuild/en_US.x64.Release.Control-2.idtx:14
#: MSIBuild/en_US.x64.Release.Control-2.idtx:19 #: MSIBuild/en_US.x64.Release.Control-2.idtx:19
msgid "&Continue" msgid "&Continue"
msgstr "&Nadaljuj" msgstr "&Nadaljuj"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:11
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:11 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:11
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:11
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition"
msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Sestavljanje" msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Sestavljanje"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:12
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:12 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:12
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:12
msgid "tutorial2.bmp" msgid "tutorial2.bmp"
msgstr "tutorial2.bmp" msgstr "tutorial2.bmp"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:13
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:13 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:13
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:13
msgid "" msgid ""
"The string of basic and substitute characters is entered into the upper " "The string of basic and substitute characters is entered into the upper "
@@ -811,20 +857,29 @@ msgstr ""
"programu. V spodnji vrstici se prikažejo sestavljeni znaki. V besedilo jih " "programu. V spodnji vrstici se prikažejo sestavljeni znaki. V besedilo jih "
"vnesemo s pritiskom na tipko F5." "vnesemo s pritiskom na tipko F5."
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:16
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:16 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:16
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:16
msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters" msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters"
msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Vnos znakov" msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Vnos znakov"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:17
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:17 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:17
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:17
msgid "tutorial3.bmp" msgid "tutorial3.bmp"
msgstr "tutorial3.bmp" msgstr "tutorial3.bmp"
#: MSIBuild/en_US.ARM64.Debug.Control-2.idtx:18
#: MSIBuild/en_US.ARM64.Release.Control-2.idtx:18 #: MSIBuild/en_US.ARM64.Release.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Debug.Control-2.idtx:18
#: MSIBuild/en_US.Win32.Release.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 #: MSIBuild/en_US.x64.Release.Control-2.idtx:18
msgid "" msgid ""
"Characters can be entered using keyboard shortcuts, the character catalogue " "Characters can be entered using keyboard shortcuts, the character catalogue "
@@ -833,10 +888,16 @@ msgstr ""
"Znake lahko v vnosno vrstico vstavljamo s pomočjo bližnjic na tipkovnici, iz" "Znake lahko v vnosno vrstico vstavljamo s pomočjo bližnjic na tipkovnici, iz"
" kataloga znakov (F4) ali z iskalnikom znakov (F8)." " kataloga znakov (F4) ali z iskalnikom znakov (F8)."
#: MSIBuild/en_US.ARM64.Debug.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Debug.Shortcut-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Feature-2.idtx:4
#: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.ARM64.Release.Shortcut-2.idtx:4
#: 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.Feature-2.idtx:4
#: MSIBuild/en_US.Win32.Release.Shortcut-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.Feature-2.idtx:4
#: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4
msgid "Input system for linguistic use" msgid "Input system for linguistic use"

View File

@@ -21,6 +21,7 @@
#include <Updater/chkthread.h> #include <Updater/chkthread.h>
#include <wxex/common.h> #include <wxex/common.h>
#include <wxex/icon.h>
#include <wxex/url.h> #include <wxex/url.h>
#include <wxex/persist/auimanager.h> #include <wxex/persist/auimanager.h>
#include <wxex/persist/toplevel.h> #include <wxex/persist/toplevel.h>

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 26 2018) // C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@@ -218,9 +218,9 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_toolEditPaste = m_toolbarEdit->AddTool( wxID_PASTE, _("Paste"), wxIcon( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Paste"), _("Paste selection"), NULL ); m_toolEditPaste = m_toolbarEdit->AddTool( wxID_PASTE, _("Paste"), wxIcon( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Paste"), _("Paste selection"), NULL );
m_toolbarEdit->Realize(); 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_mgr.AddPane( m_toolbarEdit, wxAuiPaneInfo() .Name( wxT("toolbarEdit") ).Top() .Caption( _("Edit") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Layer( 1 ).ToolbarPane() );
m_toolbarTranslate = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT ); m_toolbarTranslate = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORIZONTAL|wxAUI_TB_HORZ_LAYOUT );
m_toolCharSelect = m_toolbarTranslate->AddTool( wxID_CHARACTER_SELECTOR, _("Find Character"), wxIcon( wxT("char_select.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_CHECK, _("Find Character"), _("Toggle character search to select character to insert into text"), NULL ); m_toolCharSelect = m_toolbarTranslate->AddTool( wxID_CHARACTER_SELECTOR, _("Find Character"), wxIcon( wxT("char_select.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_CHECK, _("Find Character"), _("Toggle character search to select character to insert into text"), NULL );
m_toolSendDestination = m_toolbarTranslate->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_toolSendDestination = m_toolbarTranslate->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 );
@@ -235,7 +235,7 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_toolComposition->SetSelection( 0 ); m_toolComposition->SetSelection( 0 );
m_toolbarTranslate->AddControl( m_toolComposition ); m_toolbarTranslate->AddControl( m_toolComposition );
wxArrayString m_toolTranslationSeqChoices; wxArrayString m_toolTranslationSeqChoices;
m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, wxSize( 180,-1 ), m_toolTranslationSeqChoices, 0 ); m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, wxSize( 200,-1 ), m_toolTranslationSeqChoices, 0 );
m_toolTranslationSeq->SetSelection( 0 ); m_toolTranslationSeq->SetSelection( 0 );
m_toolbarTranslate->AddControl( m_toolTranslationSeq ); m_toolbarTranslate->AddControl( m_toolTranslationSeq );
m_toolbarTranslate->AddSeparator(); m_toolbarTranslate->AddSeparator();
@@ -243,7 +243,7 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_toolWarnPUA = m_toolbarTranslate->AddTool( wxID_WARN_PUA, _("PUA Warning"), wxIcon( wxT("warn_pua.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_CHECK, _("Highlight Private Use Area Characters"), _("Highlight Private Use Area Characters"), NULL ); m_toolWarnPUA = m_toolbarTranslate->AddTool( wxID_WARN_PUA, _("PUA Warning"), wxIcon( wxT("warn_pua.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_CHECK, _("Highlight Private Use Area Characters"), _("Highlight Private Use Area Characters"), NULL );
m_toolbarTranslate->Realize(); m_toolbarTranslate->Realize();
m_mgr.AddPane( m_toolbarTranslate, 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_mgr.AddPane( m_toolbarTranslate, wxAuiPaneInfo() .Name( wxT("toolbarCompose") ).Top() .Caption( _("Compose") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Layer( 1 ).ToolbarPane() );
m_panelChrCat = new wxZRColaCharacterCatalogPanel( this ); m_panelChrCat = new wxZRColaCharacterCatalogPanel( this );
@@ -382,7 +382,7 @@ wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindow
this->SetSizer( bSizerMain ); this->SetSizer( bSizerMain );
this->Layout(); this->Layout();
bSizerMain->Fit( this ); bSizerMain->Fit( this );
m_timerSave.SetOwner( this, wxID_TIMER_SAVE ); m_timerSave.SetOwner( this, m_timerSave.GetId() );
// Connect Events // Connect Events
m_source->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnSourcePaint ), NULL, this ); m_source->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnSourcePaint ), NULL, this );
@@ -391,7 +391,7 @@ wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindow
m_destination->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationPaint ), 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_destination->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), NULL, this );
m_destinationHex->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this ); m_destinationHex->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this );
this->Connect( wxID_TIMER_SAVE, wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) ); this->Connect( m_timerSave.GetId(), wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) );
} }
wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase() wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase()
@@ -403,7 +403,7 @@ wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase()
m_destination->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationPaint ), 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_destination->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), NULL, this );
m_destinationHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this ); m_destinationHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this );
this->Disconnect( wxID_TIMER_SAVE, wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) ); this->Disconnect( m_timerSave.GetId(), wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) );
} }
@@ -512,32 +512,32 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
wxBoxSizer* sbSizerSearch; wxBoxSizer* sbSizerSearch;
sbSizerSearch = new wxBoxSizer( wxVERTICAL ); sbSizerSearch = new wxBoxSizer( wxVERTICAL );
wxArrayString m_categoriesChoices; wxArrayString m_blocksChoices;
m_categories = new wxCheckListBox( m_search_panel, wxID_ANY, wxDefaultPosition, wxSize( -1,60 ), m_categoriesChoices, 0 ); m_blocks = new wxCheckListBox( m_search_panel, wxID_ANY, wxDefaultPosition, wxSize( -1,60 ), m_blocksChoices, 0 );
m_categories->SetToolTip( _("List of Unicode character categories to search in") ); m_blocks->SetToolTip( _("List of Unicode character blocks to search in") );
sbSizerSearch->Add( m_categories, 0, wxALL|wxEXPAND, 5 ); sbSizerSearch->Add( m_blocks, 0, wxALL|wxEXPAND, 5 );
wxBoxSizer* bSizerCategoriesCtrl; wxBoxSizer* bSizerBlocksCtrl;
bSizerCategoriesCtrl = new wxBoxSizer( wxHORIZONTAL ); bSizerBlocksCtrl = new wxBoxSizer( wxHORIZONTAL );
m_categoriesAll = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("All"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE ); m_blocksAll = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("All"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
m_categoriesAll->SetToolTip( _("Select all categories") ); m_blocksAll->SetToolTip( _("Select all categories") );
bSizerCategoriesCtrl->Add( m_categoriesAll, 0, wxALL, 5 ); bSizerBlocksCtrl->Add( m_blocksAll, 0, wxALL, 5 );
m_categoriesNone = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("None"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE ); m_blocksNone = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("None"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
m_categoriesNone->SetToolTip( _("Clear category selection") ); m_blocksNone->SetToolTip( _("Clear block selection") );
bSizerCategoriesCtrl->Add( m_categoriesNone, 0, wxALL, 5 ); bSizerBlocksCtrl->Add( m_blocksNone, 0, wxALL, 5 );
m_categoriesInvert = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("Invert"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE ); m_blocksInvert = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("Invert"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
m_categoriesInvert->SetToolTip( _("Invert category selection") ); m_blocksInvert->SetToolTip( _("Invert block selection") );
bSizerCategoriesCtrl->Add( m_categoriesInvert, 0, wxALL, 5 ); bSizerBlocksCtrl->Add( m_blocksInvert, 0, wxALL, 5 );
sbSizerSearch->Add( bSizerCategoriesCtrl, 0, wxALIGN_RIGHT, 5 ); sbSizerSearch->Add( bSizerBlocksCtrl, 0, wxALIGN_RIGHT, 5 );
m_search_panel->SetSizer( sbSizerSearch ); m_search_panel->SetSizer( sbSizerSearch );
@@ -687,10 +687,10 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
sbSizerPreview->Add( m_tags, 1, wxALL|wxEXPAND, 5 ); sbSizerPreview->Add( m_tags, 1, wxALL|wxEXPAND, 5 );
m_category = new wxTextCtrl( sbSizerPreview->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTER ); m_block = new wxTextCtrl( sbSizerPreview->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTER );
m_category->SetToolTip( _("Unicode character category") ); m_block->SetToolTip( _("Unicode character block") );
sbSizerPreview->Add( m_category, 0, wxALL|wxEXPAND, 5 ); sbSizerPreview->Add( m_block, 0, wxALL|wxEXPAND, 5 );
wxBoxSizer* bSizerNavigateButtons; wxBoxSizer* bSizerNavigateButtons;
bSizerNavigateButtons = new wxBoxSizer( wxHORIZONTAL ); bSizerNavigateButtons = new wxBoxSizer( wxHORIZONTAL );
@@ -780,10 +780,10 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) ); this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) );
m_search->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaCharSelectBase::OnSearchText ), NULL, this ); m_search->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaCharSelectBase::OnSearchText ), NULL, this );
m_search_more->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnSearchMore ), NULL, this ); m_search_more->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnSearchMore ), NULL, this );
m_categories->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnCategoriesToggle ), NULL, this ); m_blocks->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnBlocksToggle ), NULL, this );
m_categoriesAll->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesAll ), NULL, this ); m_blocksAll->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksAll ), NULL, this );
m_categoriesNone->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesNone ), NULL, this ); m_blocksNone->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksNone ), NULL, this );
m_categoriesInvert->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesInvert ), NULL, this ); m_blocksInvert->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksInvert ), NULL, this );
m_gridResults->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( wxZRColaCharSelectBase::OnResultCellDClick ), NULL, this ); m_gridResults->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( wxZRColaCharSelectBase::OnResultCellDClick ), NULL, this );
m_gridResults->Connect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), NULL, this ); m_gridResults->Connect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), NULL, this );
m_gridResults->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( wxZRColaCharSelectBase::OnResultsKeyDown ), NULL, this ); m_gridResults->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( wxZRColaCharSelectBase::OnResultsKeyDown ), NULL, this );
@@ -805,10 +805,10 @@ wxZRColaCharSelectBase::~wxZRColaCharSelectBase()
this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) ); this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) );
m_search->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaCharSelectBase::OnSearchText ), NULL, this ); m_search->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaCharSelectBase::OnSearchText ), NULL, this );
m_search_more->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnSearchMore ), NULL, this ); m_search_more->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnSearchMore ), NULL, this );
m_categories->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnCategoriesToggle ), NULL, this ); m_blocks->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnBlocksToggle ), NULL, this );
m_categoriesAll->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesAll ), NULL, this ); m_blocksAll->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksAll ), NULL, this );
m_categoriesNone->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesNone ), NULL, this ); m_blocksNone->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksNone ), NULL, this );
m_categoriesInvert->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesInvert ), NULL, this ); m_blocksInvert->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksInvert ), NULL, this );
m_gridResults->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( wxZRColaCharSelectBase::OnResultCellDClick ), NULL, this ); m_gridResults->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( wxZRColaCharSelectBase::OnResultCellDClick ), NULL, this );
m_gridResults->Disconnect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), NULL, this ); m_gridResults->Disconnect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), NULL, this );
m_gridResults->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( wxZRColaCharSelectBase::OnResultsKeyDown ), NULL, this ); m_gridResults->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( wxZRColaCharSelectBase::OnResultsKeyDown ), NULL, this );

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 26 2018) // C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@@ -61,7 +61,7 @@ class wxZRColaFrameBase : public wxFrame
protected: protected:
enum enum
{ {
wxID_CHARACTER_SELECTOR = 1000, wxID_CHARACTER_SELECTOR = 6000,
wxID_SEND_DESTINATION, wxID_SEND_DESTINATION,
wxID_COPY_DESTINATION_AND_RETURN, wxID_COPY_DESTINATION_AND_RETURN,
wxID_SEND_SOURCE, wxID_SEND_SOURCE,
@@ -78,7 +78,7 @@ class wxZRColaFrameBase : public wxFrame
wxID_HELP_INSTRUCTIONS, wxID_HELP_INSTRUCTIONS,
wxID_HELP_SHORTCUTS, wxID_HELP_SHORTCUTS,
wxID_HELP_REQCHAR, wxID_HELP_REQCHAR,
wxID_HELP_UPDATE wxID_HELP_UPDATE,
}; };
wxMenuBar* m_menubar; wxMenuBar* m_menubar;
@@ -105,7 +105,7 @@ class wxZRColaFrameBase : public wxFrame
wxZRColaCharacterCatalogPanel* m_panelChrCat; wxZRColaCharacterCatalogPanel* m_panelChrCat;
wxStatusBar* m_statusBar; wxStatusBar* m_statusBar;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); } virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); } virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
@@ -116,7 +116,7 @@ class wxZRColaFrameBase : public wxFrame
public: public:
wxZRColaComposerPanel* m_panel; wxZRColaComposerPanel* m_panel;
wxZRColaFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 600,400 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("ZRCola") ); wxZRColaFrameBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 640,480 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("ZRCola") );
wxAuiManager m_mgr; wxAuiManager m_mgr;
~wxZRColaFrameBase(); ~wxZRColaFrameBase();
@@ -133,7 +133,7 @@ class wxZRColaComposerPanelBase : public wxPanel
protected: protected:
enum enum
{ {
wxID_TIMER_SAVE = 1000 wxID_TIMER_SAVE = 6000,
}; };
wxSplitterWindow* m_splitterSource; wxSplitterWindow* m_splitterSource;
@@ -146,7 +146,7 @@ class wxZRColaComposerPanelBase : public wxPanel
wxTextCtrl* m_destinationHex; wxTextCtrl* m_destinationHex;
wxTimer m_timerSave; wxTimer m_timerSave;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnSourcePaint( wxPaintEvent& event ) { event.Skip(); } virtual void OnSourcePaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnSourceText( wxCommandEvent& event ) { event.Skip(); } virtual void OnSourceText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSourceHexPaint( wxPaintEvent& event ) { event.Skip(); } virtual void OnSourceHexPaint( wxPaintEvent& event ) { event.Skip(); }
@@ -161,6 +161,7 @@ class wxZRColaComposerPanelBase : public wxPanel
wxTextCtrl* m_destination; wxTextCtrl* m_destination;
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( 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(); ~wxZRColaComposerPanelBase();
void m_splitterSourceOnIdle( wxIdleEvent& ) void m_splitterSourceOnIdle( wxIdleEvent& )
@@ -189,7 +190,7 @@ class wxZRColaCharacterCatalogPanelBase : public wxPanel
wxZRColaCharGrid* m_grid; wxZRColaCharGrid* m_grid;
wxCheckBox* m_show_all; wxCheckBox* m_show_all;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnChoice( wxCommandEvent& event ) { event.Skip(); } virtual void OnChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnGridClick( wxGridEvent& event ) { event.Skip(); } virtual void OnGridClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnGridKeyDown( wxKeyEvent& event ) { event.Skip(); } virtual void OnGridKeyDown( wxKeyEvent& event ) { event.Skip(); }
@@ -199,6 +200,7 @@ class wxZRColaCharacterCatalogPanelBase : public wxPanel
public: public:
wxZRColaCharacterCatalogPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaCharacterCatalog") ); wxZRColaCharacterCatalogPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaCharacterCatalog") );
~wxZRColaCharacterCatalogPanelBase(); ~wxZRColaCharacterCatalogPanelBase();
}; };
@@ -214,10 +216,10 @@ class wxZRColaCharSelectBase : public wxDialog
wxSearchCtrl* m_search; wxSearchCtrl* m_search;
wxHyperlinkCtrl* m_search_more; wxHyperlinkCtrl* m_search_more;
wxPanel* m_search_panel; wxPanel* m_search_panel;
wxCheckListBox* m_categories; wxCheckListBox* m_blocks;
wxHyperlinkCtrl* m_categoriesAll; wxHyperlinkCtrl* m_blocksAll;
wxHyperlinkCtrl* m_categoriesNone; wxHyperlinkCtrl* m_blocksNone;
wxHyperlinkCtrl* m_categoriesInvert; wxHyperlinkCtrl* m_blocksInvert;
wxZRColaCharGrid* m_gridResults; wxZRColaCharGrid* m_gridResults;
wxZRColaCharGrid* m_gridRecent; wxZRColaCharGrid* m_gridRecent;
wxStaticText* m_labelUnicode; wxStaticText* m_labelUnicode;
@@ -226,20 +228,20 @@ class wxZRColaCharSelectBase : public wxDialog
wxGrid* m_gridPreview; wxGrid* m_gridPreview;
wxTextCtrl* m_description; wxTextCtrl* m_description;
wxTextCtrl* m_tags; wxTextCtrl* m_tags;
wxTextCtrl* m_category; wxTextCtrl* m_block;
wxHyperlinkCtrl* m_navigateBack; wxHyperlinkCtrl* m_navigateBack;
wxHyperlinkCtrl* m_navigateForward; wxHyperlinkCtrl* m_navigateForward;
wxZRColaCharGrid* m_gridRelated; wxZRColaCharGrid* m_gridRelated;
wxButton* m_buttonInsert; wxButton* m_buttonInsert;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); } virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnSearchText( wxCommandEvent& event ) { event.Skip(); } virtual void OnSearchText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSearchMore( wxHyperlinkEvent& event ) { event.Skip(); } virtual void OnSearchMore( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesToggle( wxCommandEvent& event ) { event.Skip(); } virtual void OnBlocksToggle( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCategoriesAll( wxHyperlinkEvent& event ) { event.Skip(); } virtual void OnBlocksAll( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesNone( wxHyperlinkEvent& event ) { event.Skip(); } virtual void OnBlocksNone( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesInvert( wxHyperlinkEvent& event ) { event.Skip(); } virtual void OnBlocksInvert( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnResultCellDClick( wxGridEvent& event ) { event.Skip(); } virtual void OnResultCellDClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnResultSelectCell( wxGridEvent& event ) { event.Skip(); } virtual void OnResultSelectCell( wxGridEvent& event ) { event.Skip(); }
virtual void OnResultsKeyDown( wxKeyEvent& event ) { event.Skip(); } virtual void OnResultsKeyDown( wxKeyEvent& event ) { event.Skip(); }
@@ -258,6 +260,7 @@ class wxZRColaCharSelectBase : public wxDialog
public: public:
wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Character Search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharSelect") ); wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Character Search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharSelect") );
~wxZRColaCharSelectBase(); ~wxZRColaCharSelectBase();
}; };
@@ -284,7 +287,7 @@ class wxZRColaSettingsBase : public wxDialog
wxButton* m_sdbSizerButtonsApply; wxButton* m_sdbSizerButtonsApply;
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); } virtual void OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); }
@@ -294,6 +297,7 @@ class wxZRColaSettingsBase : public wxDialog
public: public:
wxZRColaSettingsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaSettings") ); wxZRColaSettingsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaSettings") );
~wxZRColaSettingsBase(); ~wxZRColaSettingsBase();
}; };
@@ -320,6 +324,7 @@ class wxZRColaAboutBase : public wxDialog
public: public:
wxZRColaAboutBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaAbout") ); wxZRColaAboutBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaAbout") );
~wxZRColaAboutBase(); ~wxZRColaAboutBase();
}; };
@@ -336,7 +341,7 @@ class wxZRColaUpdaterBase : public wxDialog
wxButton* m_buttonUpdate; wxButton* m_buttonUpdate;
wxButton* m_buttonClose; wxButton* m_buttonClose;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); } virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnUpdate( wxCommandEvent& event ) { event.Skip(); } virtual void OnUpdate( wxCommandEvent& event ) { event.Skip(); }
virtual void OnClose( wxCommandEvent& event ) { event.Skip(); } virtual void OnClose( wxCommandEvent& event ) { event.Skip(); }
@@ -345,6 +350,7 @@ class wxZRColaUpdaterBase : public wxDialog
public: public:
wxZRColaUpdaterBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Product Update"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaUpdater") ); wxZRColaUpdaterBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Product Update"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaUpdater") );
~wxZRColaUpdaterBase(); ~wxZRColaUpdaterBase();
}; };
@@ -367,13 +373,14 @@ class wxZRColaCharRequestBase : public wxDialog
wxButton* m_sdbSizerButtonsOK; wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public: public:
wxZRColaCharRequestBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Request a New Character"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharRequest") ); wxZRColaCharRequestBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Request a New Character"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharRequest") );
~wxZRColaCharRequestBase(); ~wxZRColaCharRequestBase();
}; };
@@ -399,7 +406,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
wxButton* m_sdbSizerButtonsOK; wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); } virtual void OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnAvailableChar( wxKeyEvent& event ) { event.Skip(); } virtual void OnAvailableChar( wxKeyEvent& event ) { event.Skip(); }
@@ -416,6 +423,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
public: public:
wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaTranslationSeq") ); wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaTranslationSeq") );
~wxZRColaTranslationSeqBase(); ~wxZRColaTranslationSeqBase();
}; };

View File

@@ -126,11 +126,11 @@ bool ZRColaApp::OnInit()
wxFAIL_MSG(wxT("Error reading character data from ZRCola.zrcdb.")); wxFAIL_MSG(wxT("Error reading character data from ZRCola.zrcdb."));
m_chr_db.clear(); m_chr_db.clear();
} }
} else if (id == ZRCola::chrcat_rec::id()) { } else if (id == ZRCola::chrblk_rec::id()) {
dat >> ZRCola::chrcat_rec(m_cc_db); dat >> ZRCola::chrblk_rec(m_cb_db);
if (!dat.good()) { if (!dat.good()) {
wxFAIL_MSG(wxT("Error reading character category data from ZRCola.zrcdb.")); wxFAIL_MSG(wxT("Error reading character block data from ZRCola.zrcdb."));
m_cc_db.clear(); m_cb_db.clear();
} }
} else if (id == ZRCola::chrtag_rec::id()) { } else if (id == ZRCola::chrtag_rec::id()) {
dat >> ZRCola::chrtag_rec(m_ct_db); dat >> ZRCola::chrtag_rec(m_ct_db);

View File

@@ -70,7 +70,7 @@ public:
ZRCola::language_db m_lang_db; ///< Language database ZRCola::language_db m_lang_db; ///< Language database
ZRCola::keyseq_db m_ks_db; ///< Key sequence database ZRCola::keyseq_db m_ks_db; ///< Key sequence database
ZRCola::character_db m_chr_db; ///< Character database ZRCola::character_db m_chr_db; ///< Character database
ZRCola::chrcat_db m_cc_db; ///< Characted category database ZRCola::chrblk_db m_cb_db; ///< Character block database
ZRCola::chrtag_db m_ct_db; ///< Character tag database ZRCola::chrtag_db m_ct_db; ///< Character tag database
ZRCola::tagname_db m_tn_db; ///< Tag name database ZRCola::tagname_db m_tn_db; ///< Tag name database
ZRCola::highlight_db m_h_db; ///< Highlight database ZRCola::highlight_db m_h_db; ///< Highlight database

View File

@@ -202,13 +202,13 @@ wxZRColaCharSelect::wxZRColaCharSelect(wxWindow* parent) :
m_unicode->SetValidator(wxZRColaUnicodeDumpValidator(&m_char)); m_unicode->SetValidator(wxZRColaUnicodeDumpValidator(&m_char));
// Fill categories. // Fill blocks.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); 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_cb_db.idxFirst.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i]; const auto &cb = app->m_cb_db.idxFirst[i];
int idx = m_categories->Insert(wxGetTranslation(wxString(cc.name(), cc.name_len()), wxT("ZRCola-zrcdb")), (unsigned int)i); int idx = m_blocks->Insert(wxGetTranslation(wxString(cb.name(), cb.name_len()), wxT("ZRCola-zrcdb")), (unsigned int)i);
m_categories->Check(idx); m_blocks->Check(idx);
m_ccOrder.insert(std::make_pair(cc.cat, idx)); m_cbOrder.insert(std::make_pair(cb.id, idx));
} }
ResetResults(); ResetResults();
@@ -265,20 +265,20 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
m_shortcut->SetValue(wxEmptyString); m_shortcut->SetValue(wxEmptyString);
} }
{ {
// Update character category. // Update character block.
ZRCola::chrcat_db::indexChrCat::size_type cc_start; ZRCola::chrblk_db::indexChrId::size_type cb_start;
if (app->m_cc_db.idxChrCat.find(ZRCola::chrcat_db::chrcat(chr.cat), cc_start)) { if (app->m_cb_db.idxChrId.find(ZRCola::chrblk_db::chrblk(chr.blk), cb_start)) {
const auto &cat = app->m_cc_db.idxChrCat[cc_start]; const auto &blk = app->m_cb_db.idxChrId[cb_start];
m_category->SetValue(wxGetTranslation(wxString(cat.name(), cat.name_len()), wxT("ZRCola-zrcdb"))); m_block->SetValue(wxGetTranslation(wxString(blk.name(), blk.name_len()), wxT("ZRCola-zrcdb")));
} else } else
m_category->SetValue(wxEmptyString); m_block->SetValue(wxEmptyString);
} }
// Update related characters. // Update related characters.
m_gridRelated->SetCharacters(wxString(chr.rel(), chr.rel_end())); m_gridRelated->SetCharacters(wxString(chr.rel(), chr.rel_end()));
} else { } else {
m_description->SetValue(wxEmptyString); m_description->SetValue(wxEmptyString);
m_shortcut->SetValue(wxEmptyString); m_shortcut->SetValue(wxEmptyString);
m_category->SetValue(wxEmptyString); m_block->SetValue(wxEmptyString);
m_gridRelated->ClearGrid(); m_gridRelated->ClearGrid();
} }
@@ -340,11 +340,11 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
m_searchThread->m_search.assign(val.c_str(), val.Length()); m_searchThread->m_search.assign(val.c_str(), val.Length());
// Select categories. // Select blocks.
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) { for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i]; const auto &cb = app->m_cb_db.idxFirst[i];
if (m_categories->IsChecked((unsigned int)i)) if (m_blocks->IsChecked((unsigned int)i))
m_searchThread->m_cats.insert(cc.cat); m_searchThread->m_blks.insert(cb.id);
} }
if (m_searchThread->Run() != wxTHREAD_NO_ERROR) { if (m_searchThread->Run() != wxTHREAD_NO_ERROR) {
@@ -384,43 +384,43 @@ void wxZRColaCharSelect::OnSearchMore(wxHyperlinkEvent& event)
} }
void wxZRColaCharSelect::OnCategoriesAll(wxHyperlinkEvent& event) void wxZRColaCharSelect::OnBlocksAll(wxHyperlinkEvent& event)
{ {
event.StopPropagation(); event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); 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_cb_db.idxFirst.size(); i < n; i++)
m_categories->Check((unsigned int)i, true); m_blocks->Check((unsigned int)i, true);
m_searchChanged = true; m_searchChanged = true;
} }
void wxZRColaCharSelect::OnCategoriesNone(wxHyperlinkEvent& event) void wxZRColaCharSelect::OnBlocksNone(wxHyperlinkEvent& event)
{ {
event.StopPropagation(); event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); 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_cb_db.idxFirst.size(); i < n; i++)
m_categories->Check((unsigned int)i, false); m_blocks->Check((unsigned int)i, false);
m_searchChanged = true; m_searchChanged = true;
} }
void wxZRColaCharSelect::OnCategoriesInvert(wxHyperlinkEvent& event) void wxZRColaCharSelect::OnBlocksInvert(wxHyperlinkEvent& event)
{ {
event.StopPropagation(); event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); 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_cb_db.idxFirst.size(); i < n; i++)
m_categories->Check((unsigned int)i, !m_categories->IsChecked((unsigned int)i)); m_blocks->Check((unsigned int)i, !m_blocks->IsChecked((unsigned int)i));
m_searchChanged = true; m_searchChanged = true;
} }
void wxZRColaCharSelect::OnCategoriesToggle(wxCommandEvent& event) void wxZRColaCharSelect::OnBlocksToggle(wxCommandEvent& event)
{ {
event.Skip(); event.Skip();
@@ -625,8 +625,8 @@ void wxZRColaCharSelect::ResetResults()
val.reserve(n); val.reserve(n);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
const auto &chr = app->m_chr_db.idxChr[i]; const auto &chr = app->m_chr_db.idxChr[i];
auto idx = m_ccOrder.find(chr.cat); auto idx = m_cbOrder.find(chr.blk);
if (idx == m_ccOrder.end() || m_categories->IsChecked(idx->second)) if (idx == m_cbOrder.end() || m_blocks->IsChecked(idx->second))
val.Add(wxString(chr.chr(), chr.chr_len())); val.Add(wxString(chr.chr(), chr.chr_len()));
} }
m_gridResults->SetCharacters(val); m_gridResults->SetCharacters(val);
@@ -720,13 +720,13 @@ wxThread::ExitCode wxZRColaCharSelect::SearchThread::Entry()
// Search by tags: Get tags with given names. Then, get characters of found tags. // Search by tags: Get tags with given names. Then, get characters of found tags.
std::map<ZRCola::tagid_t, uint16_t> hits_tag; std::map<ZRCola::tagid_t, uint16_t> hits_tag;
if (!app->m_tn_db.Search(m_search.c_str(), m_parent->m_locale, hits_tag, TestDestroyS, this)) return (wxThread::ExitCode)1; if (!app->m_tn_db.Search(m_search.c_str(), m_parent->m_locale, hits_tag, TestDestroyS, this)) return (wxThread::ExitCode)1;
if (!app->m_ct_db.Search(hits_tag, app->m_chr_db, m_cats, hits, TestDestroyS, this)) return (wxThread::ExitCode)1; if (!app->m_ct_db.Search(hits_tag, app->m_chr_db, m_blks, hits, TestDestroyS, this)) return (wxThread::ExitCode)1;
} }
{ {
// Search by description and merge results. // Search by description and merge results.
std::map<std::wstring, ZRCola::charrank_t> hits_sub; std::map<std::wstring, 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; if (!app->m_chr_db.Search(m_search.c_str(), m_blks, hits, hits_sub, TestDestroyS, this)) return (wxThread::ExitCode)1;
for (auto i = hits_sub.cbegin(), i_end = hits_sub.cend(); i != i_end; ++i) { for (auto i = hits_sub.cbegin(), i_end = hits_sub.cend(); i != i_end; ++i) {
if (TestDestroy()) return (wxThread::ExitCode)1; if (TestDestroy()) return (wxThread::ExitCode)1;
auto idx = hits.find(i->first); auto idx = hits.find(i->first);
@@ -820,11 +820,9 @@ void wxPersistentZRColaCharSelect::Save() const
SaveValue(wxT("recentChars" ), str ); // Save in legacy format for backward compatibility. SaveValue(wxT("recentChars" ), str ); // Save in legacy format for backward compatibility.
SaveValue(wxT("recentChars2"), str2); // Save in native format SaveValue(wxT("recentChars2"), str2); // Save in native format
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) { for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i]; const auto &cb = app->m_cb_db.idxFirst[i];
wxString name(wxT("category")); SaveValue(wxString::Format(wxT("block%u"), cb.id), wnd->m_blocks->IsChecked((unsigned int)i));
name.Append(cc.cat.data, _countof(cc.cat.data));
SaveValue(name, wnd->m_categories->IsChecked((unsigned int)i));
} }
SaveValue(wxT("searchPanel"), wnd->m_search_panel->IsShown()); SaveValue(wxT("searchPanel"), wnd->m_search_panel->IsShown());
@@ -855,13 +853,11 @@ bool wxPersistentZRColaCharSelect::Restore()
wnd->m_gridRecent->SetCharacters(val); wnd->m_gridRecent->SetCharacters(val);
} }
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) { for (size_t i = 0, n = app->m_cb_db.idxFirst.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i]; const auto &cb = app->m_cb_db.idxFirst[i];
wxString name(wxT("category"));
name.Append(cc.cat.data, _countof(cc.cat.data));
bool val; bool val;
if (RestoreValue(name, &val)) if (RestoreValue(wxString::Format(wxT("block%u"), cb.id), &val))
wnd->m_categories->Check((unsigned int)i, val); wnd->m_blocks->Check((unsigned int)i, val);
} }
bool search_panel; bool search_panel;

View File

@@ -140,10 +140,10 @@ protected:
virtual void OnIdle(wxIdleEvent& event); virtual void OnIdle(wxIdleEvent& event);
virtual void OnSearchText(wxCommandEvent& event); virtual void OnSearchText(wxCommandEvent& event);
virtual void OnSearchMore(wxHyperlinkEvent& event); virtual void OnSearchMore(wxHyperlinkEvent& event);
virtual void OnCategoriesAll(wxHyperlinkEvent& event); virtual void OnBlocksAll(wxHyperlinkEvent& event);
virtual void OnCategoriesNone(wxHyperlinkEvent& event); virtual void OnBlocksNone(wxHyperlinkEvent& event);
virtual void OnCategoriesInvert(wxHyperlinkEvent& event); virtual void OnBlocksInvert(wxHyperlinkEvent& event);
virtual void OnCategoriesToggle(wxCommandEvent& event); virtual void OnBlocksToggle(wxCommandEvent& event);
void OnSearchComplete(wxThreadEvent& event); void OnSearchComplete(wxThreadEvent& event);
virtual void OnResultSelectCell(wxGridEvent& event); virtual void OnResultSelectCell(wxGridEvent& event);
virtual void OnResultCellDClick(wxGridEvent& event); virtual void OnResultCellDClick(wxGridEvent& event);
@@ -168,8 +168,8 @@ public:
protected: protected:
LCID m_locale; ///< Locale for tag lookup LCID m_locale; ///< Locale for tag lookup
bool m_searchChanged; ///< Did Search field or category selection change? bool m_searchChanged; ///< Did Search field or block selection change?
std::map<ZRCola::chrcatid_t, int> m_ccOrder; ///< Character category order std::map<ZRCola::chrblkid_t, int> m_cbOrder; ///< Character block order
bool m_unicodeChanged; ///< Did Unicode field change? bool m_unicodeChanged; ///< Did Unicode field change?
@@ -188,7 +188,7 @@ protected:
public: public:
std::wstring m_search; ///< Search phrase std::wstring m_search; ///< Search phrase
std::set<ZRCola::chrcatid_t> m_cats; ///< Search categories std::set<ZRCola::chrblkid_t> m_blks; ///< Search blocks
std::vector<std::pair<ZRCola::charrank_t, std::wstring> > m_hits; ///< Search results std::vector<std::pair<ZRCola::charrank_t, std::wstring> > m_hits; ///< Search results
protected: protected:

View File

@@ -150,7 +150,8 @@ void wxZRColaComposerPanel::SynchronizePanels()
dst = std::move(dst2); dst = std::move(dst2);
dst2.clear(); dst2.clear();
map.invert(); for (auto& m : map)
m.invert();
m_mapping.push_back(std::move(map)); m_mapping.push_back(std::move(map));
map.clear(); map.clear();
} }
@@ -161,7 +162,8 @@ void wxZRColaComposerPanel::SynchronizePanels()
dst = std::move(dst2); dst = std::move(dst2);
dst2.clear(); dst2.clear();
map.invert(); for (auto& m : map)
m.invert();
m_mapping.push_back(std::move(map)); m_mapping.push_back(std::move(map));
map.clear(); map.clear();
} }
@@ -203,16 +205,16 @@ void wxZRColaComposerPanel::OnSourcePaint(wxPaintEvent& event)
m_selSource.second = to; m_selSource.second = to;
m_sourceHex->SetSelection( m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(from), m_selSourceHex.first = (long)stdex::src2dst<size_t>(m_mappingSourceHex, from),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(to )); m_selSourceHex.second = (long)stdex::src2dst<size_t>(m_mappingSourceHex, to ));
m_destination->SetSelection( m_destination->SetSelection(
m_selDestination.first = (long)MapToDestination(from), m_selDestination.first = (long)MapToDestination(from),
m_selDestination.second = (long)MapToDestination(to )); m_selDestination.second = (long)MapToDestination(to ));
m_destinationHex->SetSelection( m_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(m_selDestination.first ), m_selDestinationHex.first = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, m_selDestination.first ),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(m_selDestination.second)); m_selDestinationHex.second = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, m_selDestination.second));
} }
} }
@@ -230,16 +232,16 @@ void wxZRColaComposerPanel::OnSourceHexPaint(wxPaintEvent& event)
m_selSourceHex.second = to; m_selSourceHex.second = to;
m_source->SetSelection( m_source->SetSelection(
m_selSource.first = (long)m_mappingSourceHex.to_src(from), m_selSource.first = (long)stdex::dst2src<size_t>(m_mappingSourceHex, from),
m_selSource.second = (long)m_mappingSourceHex.to_src(to )); m_selSource.second = (long)stdex::dst2src<size_t>(m_mappingSourceHex, to ));
m_destination->SetSelection( m_destination->SetSelection(
m_selDestination.first = (long)MapToDestination(m_selSource.first ), m_selDestination.first = (long)MapToDestination(m_selSource.first ),
m_selDestination.second = (long)MapToDestination(m_selSource.second)); m_selDestination.second = (long)MapToDestination(m_selSource.second));
m_destinationHex->SetSelection( m_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(m_selDestination.first ), m_selDestinationHex.first = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, m_selDestination.first ),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(m_selDestination.second)); m_selDestinationHex.second = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, m_selDestination.second));
} }
} }
@@ -276,16 +278,16 @@ void wxZRColaComposerPanel::OnDestinationPaint(wxPaintEvent& event)
m_selDestination.second = to; m_selDestination.second = to;
m_destinationHex->SetSelection( m_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(from), m_selDestinationHex.first = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, from),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(to )); m_selDestinationHex.second = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, to ));
m_source->SetSelection( m_source->SetSelection(
m_selSource.first = (long)MapToSource(from), m_selSource.first = (long)MapToSource(from),
m_selSource.second = (long)MapToSource(to )); m_selSource.second = (long)MapToSource(to ));
m_sourceHex->SetSelection( m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(m_selSource.first ), m_selSourceHex.first = (long)stdex::src2dst<size_t>(m_mappingSourceHex, m_selSource.first ),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(m_selSource.second)); m_selSourceHex.second = (long)stdex::src2dst<size_t>(m_mappingSourceHex, m_selSource.second));
} }
} }
@@ -303,16 +305,16 @@ void wxZRColaComposerPanel::OnDestinationHexPaint(wxPaintEvent& event)
m_selDestinationHex.second = to; m_selDestinationHex.second = to;
m_destination->SetSelection( m_destination->SetSelection(
m_selDestination.first = (long)m_mappingDestinationHex.to_src(from), m_selDestination.first = (long)stdex::dst2src<size_t>(m_mappingDestinationHex, from),
m_selDestination.second = (long)m_mappingDestinationHex.to_src(to )); m_selDestination.second = (long)stdex::dst2src<size_t>(m_mappingDestinationHex, to ));
m_source->SetSelection( m_source->SetSelection(
m_selSource.first = (long)MapToSource(m_selDestination.first ), m_selSource.first = (long)MapToSource(m_selDestination.first ),
m_selSource.second = (long)MapToSource(m_selDestination.second)); m_selSource.second = (long)MapToSource(m_selDestination.second));
m_sourceHex->SetSelection( m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(m_selSource.first ), m_selSourceHex.first = (long)stdex::src2dst<size_t>(m_mappingSourceHex, m_selSource.first ),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(m_selSource.second)); m_selSourceHex.second = (long)stdex::src2dst<size_t>(m_mappingSourceHex, m_selSource.second));
} }
} }
@@ -416,8 +418,8 @@ void wxZRColaComposerPanel::SetHexValue(wxTextCtrl *wnd, std::pair<long, long> &
wnd->SetValue(hex); wnd->SetValue(hex);
wnd->SetSelection( wnd->SetSelection(
range.first = (long)mapping.to_dst(from), range.first = (long)stdex::src2dst<size_t>(mapping, from),
range.second = (long)mapping.to_dst(to )); range.second = (long)stdex::src2dst<size_t>(mapping, to ));
} }

View File

@@ -97,7 +97,7 @@ protected:
inline size_t wxZRColaComposerPanel::MapToDestination(_In_ size_t src) const 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) for (auto m = m_mapping.cbegin(), m_end = m_mapping.cend(); m != m_end; ++m)
src = m->to_dst(src); src = stdex::src2dst(*m, src);
return src; return src;
} }
@@ -106,7 +106,7 @@ inline size_t wxZRColaComposerPanel::MapToDestination(_In_ size_t src) const
inline size_t wxZRColaComposerPanel::MapToSource(_In_ size_t dst) const 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) for (auto m = m_mapping.crbegin(), m_end = m_mapping.crend(); m != m_end; ++m)
dst = m->to_src(dst); dst = stdex::dst2src(*m, dst);
return dst; return dst;
} }

View File

@@ -69,14 +69,6 @@ wxZRColaFrame::wxZRColaFrame() :
m_transeq(NULL), m_transeq(NULL),
wxZRColaFrameBase(NULL) wxZRColaFrameBase(NULL)
{ {
{
// wxFrameBuilder 3.5 does not support wxAUI_TB_HORIZONTAL flag. Add it manually.
wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarTranslate);
paneInfo.LeftDockable(false);
paneInfo.RightDockable(false);
m_toolbarTranslate->SetWindowStyleFlag(m_toolbarTranslate->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL);
}
// Populate list of translation sequences. // Populate list of translation sequences.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
m_toolTranslationSeq->Clear(); m_toolTranslationSeq->Clear();

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 26 2018) // C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@@ -30,7 +30,7 @@ delete old;
static wxFBContextSensitiveHelpSetter s_wxFBSetTheHelpProvider; static wxFBContextSensitiveHelpSetter s_wxFBSetTheHelpProvider;
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, long style, const wxString& name ) : wxFrame( parent, id, title, pos, parent->FromDIP(wxSize(600, 400)), style, name ) wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, long style, const wxString& name ) : wxFrame( parent, id, title, pos, parent->FromDIP(wxSize(640, 480)), style, name )
{ {
this->SetSizeHints( FromDIP(wxSize( 150,150 )), wxDefaultSize ); this->SetSizeHints( FromDIP(wxSize( 150,150 )), wxDefaultSize );
m_mgr.SetManagedWindow(this); m_mgr.SetManagedWindow(this);
@@ -48,27 +48,27 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
wxMenuItem* m_menuItemEditCut; wxMenuItem* m_menuItemEditCut;
m_menuItemEditCut = new wxMenuItem( m_menuEdit, wxID_CUT, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL ); m_menuItemEditCut = new wxMenuItem( m_menuEdit, wxID_CUT, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL );
#ifdef __WXMSW__ #ifdef __WXMSW__
m_menuItemEditCut->SetBitmaps( wxIcon( wxT("edit_cut.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemEditCut->SetBitmaps( wxIconEx( wxT("edit_cut.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ )) #elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemEditCut->SetBitmap( wxIcon( wxT("edit_cut.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemEditCut->SetBitmap( wxIcon( wxT("edit_cut.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif #endif
m_menuEdit->Append( m_menuItemEditCut ); m_menuEdit->Append( m_menuItemEditCut );
wxMenuItem* m_menuItemEditCopy; wxMenuItem* m_menuItemEditCopy;
m_menuItemEditCopy = new wxMenuItem( m_menuEdit, wxID_COPY, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL ); m_menuItemEditCopy = new wxMenuItem( m_menuEdit, wxID_COPY, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL );
#ifdef __WXMSW__ #ifdef __WXMSW__
m_menuItemEditCopy->SetBitmaps( wxIcon( wxT("edit_copy.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemEditCopy->SetBitmaps( wxIconEx( wxT("edit_copy.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ )) #elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemEditCopy->SetBitmap( wxIcon( wxT("edit_copy.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemEditCopy->SetBitmap( wxIcon( wxT("edit_copy.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif #endif
m_menuEdit->Append( m_menuItemEditCopy ); m_menuEdit->Append( m_menuItemEditCopy );
wxMenuItem* m_menuItemEditPaste; wxMenuItem* m_menuItemEditPaste;
m_menuItemEditPaste = new wxMenuItem( m_menuEdit, wxID_PASTE, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL ); m_menuItemEditPaste = new wxMenuItem( m_menuEdit, wxID_PASTE, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL );
#ifdef __WXMSW__ #ifdef __WXMSW__
m_menuItemEditPaste->SetBitmaps( wxIcon( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemEditPaste->SetBitmaps( wxIconEx( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ )) #elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemEditPaste->SetBitmap( wxIcon( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemEditPaste->SetBitmap( wxIcon( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif #endif
m_menuEdit->Append( m_menuItemEditPaste ); m_menuEdit->Append( m_menuItemEditPaste );
@@ -89,45 +89,45 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
wxMenuItem* m_menuItemSendDestination; 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 ); m_menuItemSendDestination = new wxMenuItem( m_menuEdit, wxID_SEND_DESTINATION, wxString( _("&Send Composed") ) + wxT('\t') + wxT("F5"), _("Send composed text to source window"), wxITEM_NORMAL );
#ifdef __WXMSW__ #ifdef __WXMSW__
m_menuItemSendDestination->SetBitmaps( wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemSendDestination->SetBitmaps( wxIconEx( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ )) #elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemSendDestination->SetBitmap( wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemSendDestination->SetBitmap( wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif #endif
m_menuEdit->Append( m_menuItemSendDestination ); m_menuEdit->Append( m_menuItemSendDestination );
wxMenuItem* m_menuItemCopyDestinationAndReturn; 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 ); 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 );
#ifdef __WXMSW__ #ifdef __WXMSW__
m_menuItemCopyDestinationAndReturn->SetBitmaps( wxIcon( wxT("copy_destination_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemCopyDestinationAndReturn->SetBitmaps( wxIconEx( wxT("copy_destination_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ )) #elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemCopyDestinationAndReturn->SetBitmap( wxIcon( wxT("copy_destination_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemCopyDestinationAndReturn->SetBitmap( wxIcon( wxT("copy_destination_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif #endif
m_menuEdit->Append( m_menuItemCopyDestinationAndReturn ); m_menuEdit->Append( m_menuItemCopyDestinationAndReturn );
wxMenuItem* m_menuItemSendSource; 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 ); 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__ #ifdef __WXMSW__
m_menuItemSendSource->SetBitmaps( wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemSendSource->SetBitmaps( wxIconEx( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ )) #elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemSendSource->SetBitmap( wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemSendSource->SetBitmap( wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif #endif
m_menuEdit->Append( m_menuItemSendSource ); m_menuEdit->Append( m_menuItemSendSource );
wxMenuItem* m_menuItemCopySourceAndReturn; 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 ); 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__ #ifdef __WXMSW__
m_menuItemCopySourceAndReturn->SetBitmaps( wxIcon( wxT("copy_source_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemCopySourceAndReturn->SetBitmaps( wxIconEx( wxT("copy_source_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ )) #elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemCopySourceAndReturn->SetBitmap( wxIcon( wxT("copy_source_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemCopySourceAndReturn->SetBitmap( wxIcon( wxT("copy_source_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16 ) );
#endif #endif
m_menuEdit->Append( m_menuItemCopySourceAndReturn ); m_menuEdit->Append( m_menuItemCopySourceAndReturn );
wxMenuItem* m_menuItemSendAbort; 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 ); 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 );
#ifdef __WXMSW__ #ifdef __WXMSW__
m_menuItemSendAbort->SetBitmaps( wxIcon( wxT("send_abort.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemSendAbort->SetBitmaps( wxIconEx( wxT("send_abort.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#elif (defined( __WXGTK__ ) || defined( __WXOSX__ )) #elif (defined( __WXGTK__ ) || defined( __WXOSX__ ))
m_menuItemSendAbort->SetBitmap( wxIcon( wxT("send_abort.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) ); m_menuItemSendAbort->SetBitmap( wxIconEx( wxT("send_abort.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#endif #endif
m_menuEdit->Append( m_menuItemSendAbort ); m_menuEdit->Append( m_menuItemSendAbort );
@@ -211,21 +211,21 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
this->SetMenuBar( m_menubar ); this->SetMenuBar( m_menubar );
m_toolbarEdit = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT ); m_toolbarEdit = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT );
m_toolEditCut = m_toolbarEdit->AddTool( wxID_CUT, _("Cut"), wxIcon( wxT("edit_cut.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_NORMAL, _("Cut"), _("Cut selection"), NULL ); m_toolEditCut = m_toolbarEdit->AddTool( wxID_CUT, _("Cut"), wxIconEx( wxT("edit_cut.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24, this ), wxNullBitmap, wxITEM_NORMAL, _("Cut"), _("Cut selection"), NULL );
m_toolEditCopy = m_toolbarEdit->AddTool( wxID_COPY, _("Copy"), wxIcon( wxT("edit_copy.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_NORMAL, _("Copy"), _("Copy selection"), NULL ); m_toolEditCopy = m_toolbarEdit->AddTool( wxID_COPY, _("Copy"), wxIconEx( wxT("edit_copy.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24, this ), wxNullBitmap, wxITEM_NORMAL, _("Copy"), _("Copy selection"), NULL );
m_toolEditPaste = m_toolbarEdit->AddTool( wxID_PASTE, _("Paste"), wxIcon( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_NORMAL, _("Paste"), _("Paste selection"), NULL ); m_toolEditPaste = m_toolbarEdit->AddTool( wxID_PASTE, _("Paste"), wxIconEx( wxT("edit_paste.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24, this ), wxNullBitmap, wxITEM_NORMAL, _("Paste"), _("Paste selection"), NULL );
m_toolbarEdit->Realize(); 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_mgr.AddPane( m_toolbarEdit, wxAuiPaneInfo() .Name( wxT("toolbarEdit") ).Top() .Caption( _("Edit") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Layer( 1 ).ToolbarPane() );
m_toolbarTranslate = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT ); m_toolbarTranslate = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORIZONTAL|wxAUI_TB_HORZ_LAYOUT );
m_toolCharSelect = m_toolbarTranslate->AddTool( wxID_CHARACTER_SELECTOR, _("Find Character"), wxIcon( wxT("char_select.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_CHECK, _("Find Character"), _("Toggle character search to select character to insert into text"), NULL ); m_toolCharSelect = m_toolbarTranslate->AddTool( wxID_CHARACTER_SELECTOR, _("Find Character"), wxIconEx( wxT("char_select.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24, this ), wxNullBitmap, wxITEM_CHECK, _("Find Character"), _("Toggle character search to select character to insert into text"), NULL );
m_toolSendDestination = m_toolbarTranslate->AddTool( wxID_SEND_DESTINATION, _("Send Composed"), wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_NORMAL, _("Send Composed"), _("Send composed text to source window"), NULL ); m_toolSendDestination = m_toolbarTranslate->AddTool( wxID_SEND_DESTINATION, _("Send Composed"), wxIconEx( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24, this ), wxNullBitmap, wxITEM_NORMAL, _("Send Composed"), _("Send composed text to source window"), NULL );
m_toolSendSource = m_toolbarTranslate->AddTool( wxID_SEND_SOURCE, _("Send Decomposed"), wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_NORMAL, _("Send Decomposed"), _("Send decomposed text to source window"), NULL ); m_toolSendSource = m_toolbarTranslate->AddTool( wxID_SEND_SOURCE, _("Send Decomposed"), wxIconEx( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24, this ), wxNullBitmap, wxITEM_NORMAL, _("Send Decomposed"), _("Send decomposed text to source window"), NULL );
m_toolbarTranslate->AddSeparator(); m_toolbarTranslate->AddSeparator();
@@ -235,15 +235,15 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_toolComposition->SetSelection( 0 ); m_toolComposition->SetSelection( 0 );
m_toolbarTranslate->AddControl( m_toolComposition ); m_toolbarTranslate->AddControl( m_toolComposition );
wxArrayString m_toolTranslationSeqChoices; wxArrayString m_toolTranslationSeqChoices;
m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( 180,-1 )), m_toolTranslationSeqChoices, 0 ); m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( 200,-1 )), m_toolTranslationSeqChoices, 0 );
m_toolTranslationSeq->SetSelection( 0 ); m_toolTranslationSeq->SetSelection( 0 );
m_toolbarTranslate->AddControl( m_toolTranslationSeq ); m_toolbarTranslate->AddControl( m_toolTranslationSeq );
m_toolbarTranslate->AddSeparator(); m_toolbarTranslate->AddSeparator();
m_toolWarnPUA = m_toolbarTranslate->AddTool( wxID_WARN_PUA, _("PUA Warning"), wxIcon( wxT("warn_pua.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_CHECK, _("Highlight Private Use Area Characters"), _("Highlight Private Use Area Characters"), NULL ); m_toolWarnPUA = m_toolbarTranslate->AddTool( wxID_WARN_PUA, _("PUA Warning"), wxIconEx( wxT("warn_pua.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24, this ), wxNullBitmap, wxITEM_CHECK, _("Highlight Private Use Area Characters"), _("Highlight Private Use Area Characters"), NULL );
m_toolbarTranslate->Realize(); m_toolbarTranslate->Realize();
m_mgr.AddPane( m_toolbarTranslate, 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_mgr.AddPane( m_toolbarTranslate, wxAuiPaneInfo() .Name( wxT("toolbarCompose") ).Top() .Caption( _("Compose") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Layer( 1 ).ToolbarPane() );
m_panelChrCat = new wxZRColaCharacterCatalogPanel( this ); m_panelChrCat = new wxZRColaCharacterCatalogPanel( this );
@@ -382,7 +382,7 @@ wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindow
this->SetSizer( bSizerMain ); this->SetSizer( bSizerMain );
this->Layout(); this->Layout();
bSizerMain->Fit( this ); bSizerMain->Fit( this );
m_timerSave.SetOwner( this, wxID_TIMER_SAVE ); m_timerSave.SetOwner( this, m_timerSave.GetId() );
// Connect Events // Connect Events
m_source->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnSourcePaint ), NULL, this ); m_source->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnSourcePaint ), NULL, this );
@@ -391,7 +391,7 @@ wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindow
m_destination->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationPaint ), 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_destination->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), NULL, this );
m_destinationHex->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this ); m_destinationHex->Connect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this );
this->Connect( wxID_TIMER_SAVE, wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) ); this->Connect( m_timerSave.GetId(), wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) );
} }
wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase() wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase()
@@ -403,7 +403,7 @@ wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase()
m_destination->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationPaint ), 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_destination->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), NULL, this );
m_destinationHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this ); m_destinationHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this );
this->Disconnect( wxID_TIMER_SAVE, wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) ); this->Disconnect( m_timerSave.GetId(), wxEVT_TIMER, wxTimerEventHandler( wxZRColaComposerPanelBase::OnSaveTimer ) );
} }
@@ -512,32 +512,32 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
wxBoxSizer* sbSizerSearch; wxBoxSizer* sbSizerSearch;
sbSizerSearch = new wxBoxSizer( wxVERTICAL ); sbSizerSearch = new wxBoxSizer( wxVERTICAL );
wxArrayString m_categoriesChoices; wxArrayString m_blocksChoices;
m_categories = new wxCheckListBox( m_search_panel, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( -1,60 )), m_categoriesChoices, 0 ); m_blocks = new wxCheckListBox( m_search_panel, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( -1,60 )), m_blocksChoices, 0 );
m_categories->SetToolTip( _("List of Unicode character categories to search in") ); m_blocks->SetToolTip( _("List of Unicode character blocks to search in") );
sbSizerSearch->Add( m_categories, 0, wxALL|wxEXPAND, FromDIP(5) ); sbSizerSearch->Add( m_blocks, 0, wxALL|wxEXPAND, FromDIP(5) );
wxBoxSizer* bSizerCategoriesCtrl; wxBoxSizer* bSizerBlocksCtrl;
bSizerCategoriesCtrl = new wxBoxSizer( wxHORIZONTAL ); bSizerBlocksCtrl = new wxBoxSizer( wxHORIZONTAL );
m_categoriesAll = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("All"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE ); m_blocksAll = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("All"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
m_categoriesAll->SetToolTip( _("Select all categories") ); m_blocksAll->SetToolTip( _("Select all categories") );
bSizerCategoriesCtrl->Add( m_categoriesAll, 0, wxALL, FromDIP(5) ); bSizerBlocksCtrl->Add( m_blocksAll, 0, wxALL, FromDIP(5) );
m_categoriesNone = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("None"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE ); m_blocksNone = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("None"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
m_categoriesNone->SetToolTip( _("Clear category selection") ); m_blocksNone->SetToolTip( _("Clear block selection") );
bSizerCategoriesCtrl->Add( m_categoriesNone, 0, wxALL, FromDIP(5) ); bSizerBlocksCtrl->Add( m_blocksNone, 0, wxALL, FromDIP(5) );
m_categoriesInvert = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("Invert"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE ); m_blocksInvert = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("Invert"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
m_categoriesInvert->SetToolTip( _("Invert category selection") ); m_blocksInvert->SetToolTip( _("Invert block selection") );
bSizerCategoriesCtrl->Add( m_categoriesInvert, 0, wxALL, FromDIP(5) ); bSizerBlocksCtrl->Add( m_blocksInvert, 0, wxALL, FromDIP(5) );
sbSizerSearch->Add( bSizerCategoriesCtrl, 0, wxALIGN_RIGHT, FromDIP(5) ); sbSizerSearch->Add( bSizerBlocksCtrl, 0, wxALIGN_RIGHT, FromDIP(5) );
m_search_panel->SetSizer( sbSizerSearch ); m_search_panel->SetSizer( sbSizerSearch );
@@ -687,10 +687,10 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
sbSizerPreview->Add( m_tags, 1, wxALL|wxEXPAND, FromDIP(5) ); sbSizerPreview->Add( m_tags, 1, wxALL|wxEXPAND, FromDIP(5) );
m_category = new wxTextCtrl( sbSizerPreview->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTER ); m_block = new wxTextCtrl( sbSizerPreview->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTER );
m_category->SetToolTip( _("Unicode character category") ); m_block->SetToolTip( _("Unicode character block") );
sbSizerPreview->Add( m_category, 0, wxALL|wxEXPAND, FromDIP(5) ); sbSizerPreview->Add( m_block, 0, wxALL|wxEXPAND, FromDIP(5) );
wxBoxSizer* bSizerNavigateButtons; wxBoxSizer* bSizerNavigateButtons;
bSizerNavigateButtons = new wxBoxSizer( wxHORIZONTAL ); bSizerNavigateButtons = new wxBoxSizer( wxHORIZONTAL );
@@ -780,10 +780,10 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) ); this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) );
m_search->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaCharSelectBase::OnSearchText ), NULL, this ); m_search->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaCharSelectBase::OnSearchText ), NULL, this );
m_search_more->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnSearchMore ), NULL, this ); m_search_more->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnSearchMore ), NULL, this );
m_categories->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnCategoriesToggle ), NULL, this ); m_blocks->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnBlocksToggle ), NULL, this );
m_categoriesAll->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesAll ), NULL, this ); m_blocksAll->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksAll ), NULL, this );
m_categoriesNone->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesNone ), NULL, this ); m_blocksNone->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksNone ), NULL, this );
m_categoriesInvert->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesInvert ), NULL, this ); m_blocksInvert->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksInvert ), NULL, this );
m_gridResults->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( wxZRColaCharSelectBase::OnResultCellDClick ), NULL, this ); m_gridResults->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( wxZRColaCharSelectBase::OnResultCellDClick ), NULL, this );
m_gridResults->Connect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), NULL, this ); m_gridResults->Connect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), NULL, this );
m_gridResults->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( wxZRColaCharSelectBase::OnResultsKeyDown ), NULL, this ); m_gridResults->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( wxZRColaCharSelectBase::OnResultsKeyDown ), NULL, this );
@@ -805,10 +805,10 @@ wxZRColaCharSelectBase::~wxZRColaCharSelectBase()
this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) ); this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) );
m_search->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaCharSelectBase::OnSearchText ), NULL, this ); m_search->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaCharSelectBase::OnSearchText ), NULL, this );
m_search_more->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnSearchMore ), NULL, this ); m_search_more->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnSearchMore ), NULL, this );
m_categories->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnCategoriesToggle ), NULL, this ); m_blocks->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnBlocksToggle ), NULL, this );
m_categoriesAll->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesAll ), NULL, this ); m_blocksAll->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksAll ), NULL, this );
m_categoriesNone->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesNone ), NULL, this ); m_blocksNone->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksNone ), NULL, this );
m_categoriesInvert->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesInvert ), NULL, this ); m_blocksInvert->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksInvert ), NULL, this );
m_gridResults->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( wxZRColaCharSelectBase::OnResultCellDClick ), NULL, this ); m_gridResults->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( wxZRColaCharSelectBase::OnResultCellDClick ), NULL, this );
m_gridResults->Disconnect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), NULL, this ); m_gridResults->Disconnect( wxEVT_GRID_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), NULL, this );
m_gridResults->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( wxZRColaCharSelectBase::OnResultsKeyDown ), NULL, this ); m_gridResults->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( wxZRColaCharSelectBase::OnResultsKeyDown ), NULL, this );
@@ -934,7 +934,7 @@ wxZRColaAboutBase::wxZRColaAboutBase( wxWindow* parent, wxWindowID id, const wxS
wxBoxSizer* bSizerColumns; wxBoxSizer* bSizerColumns;
bSizerColumns = new wxBoxSizer( wxHORIZONTAL ); bSizerColumns = new wxBoxSizer( wxHORIZONTAL );
m_bitmapIcon = new wxStaticBitmap( this, wxID_ANY, wxIcon( wxT("00_zrcola.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(32), FromDIP(32) ), wxDefaultPosition, wxDefaultSize, 0 ); m_bitmapIcon = new wxStaticBitmap( this, wxID_ANY, wxIconEx( wxT("00_zrcola.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 32, 32, this ), wxDefaultPosition, wxDefaultSize, 0 );
bSizerColumns->Add( m_bitmapIcon, 0, wxALL, FromDIP(5) ); bSizerColumns->Add( m_bitmapIcon, 0, wxALL, FromDIP(5) );
wxBoxSizer* bSizerText; wxBoxSizer* bSizerText;

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct 26 2018) // C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@@ -61,7 +61,7 @@ class wxZRColaFrameBase : public wxFrame
protected: protected:
enum enum
{ {
wxID_CHARACTER_SELECTOR = 1000, wxID_CHARACTER_SELECTOR = 6000,
wxID_SEND_DESTINATION, wxID_SEND_DESTINATION,
wxID_COPY_DESTINATION_AND_RETURN, wxID_COPY_DESTINATION_AND_RETURN,
wxID_SEND_SOURCE, wxID_SEND_SOURCE,
@@ -78,7 +78,7 @@ class wxZRColaFrameBase : public wxFrame
wxID_HELP_INSTRUCTIONS, wxID_HELP_INSTRUCTIONS,
wxID_HELP_SHORTCUTS, wxID_HELP_SHORTCUTS,
wxID_HELP_REQCHAR, wxID_HELP_REQCHAR,
wxID_HELP_UPDATE wxID_HELP_UPDATE,
}; };
wxMenuBar* m_menubar; wxMenuBar* m_menubar;
@@ -105,7 +105,7 @@ class wxZRColaFrameBase : public wxFrame
wxZRColaCharacterCatalogPanel* m_panelChrCat; wxZRColaCharacterCatalogPanel* m_panelChrCat;
wxStatusBar* m_statusBar; wxStatusBar* m_statusBar;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); } virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); } virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
@@ -133,7 +133,7 @@ class wxZRColaComposerPanelBase : public wxPanel
protected: protected:
enum enum
{ {
wxID_TIMER_SAVE = 1000 wxID_TIMER_SAVE = 6000,
}; };
wxSplitterWindow* m_splitterSource; wxSplitterWindow* m_splitterSource;
@@ -146,7 +146,7 @@ class wxZRColaComposerPanelBase : public wxPanel
wxTextCtrl* m_destinationHex; wxTextCtrl* m_destinationHex;
wxTimer m_timerSave; wxTimer m_timerSave;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnSourcePaint( wxPaintEvent& event ) { event.Skip(); } virtual void OnSourcePaint( wxPaintEvent& event ) { event.Skip(); }
virtual void OnSourceText( wxCommandEvent& event ) { event.Skip(); } virtual void OnSourceText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSourceHexPaint( wxPaintEvent& event ) { event.Skip(); } virtual void OnSourceHexPaint( wxPaintEvent& event ) { event.Skip(); }
@@ -161,6 +161,7 @@ class wxZRColaComposerPanelBase : public wxPanel
wxTextCtrl* m_destination; wxTextCtrl* m_destination;
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( 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(); ~wxZRColaComposerPanelBase();
void m_splitterSourceOnIdle( wxIdleEvent& ) void m_splitterSourceOnIdle( wxIdleEvent& )
@@ -189,7 +190,7 @@ class wxZRColaCharacterCatalogPanelBase : public wxPanel
wxZRColaCharGrid* m_grid; wxZRColaCharGrid* m_grid;
wxCheckBox* m_show_all; wxCheckBox* m_show_all;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnChoice( wxCommandEvent& event ) { event.Skip(); } virtual void OnChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnGridClick( wxGridEvent& event ) { event.Skip(); } virtual void OnGridClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnGridKeyDown( wxKeyEvent& event ) { event.Skip(); } virtual void OnGridKeyDown( wxKeyEvent& event ) { event.Skip(); }
@@ -199,6 +200,7 @@ class wxZRColaCharacterCatalogPanelBase : public wxPanel
public: public:
wxZRColaCharacterCatalogPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaCharacterCatalog") ); wxZRColaCharacterCatalogPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("ZRColaCharacterCatalog") );
~wxZRColaCharacterCatalogPanelBase(); ~wxZRColaCharacterCatalogPanelBase();
}; };
@@ -214,10 +216,10 @@ class wxZRColaCharSelectBase : public wxDialog
wxSearchCtrl* m_search; wxSearchCtrl* m_search;
wxHyperlinkCtrl* m_search_more; wxHyperlinkCtrl* m_search_more;
wxPanel* m_search_panel; wxPanel* m_search_panel;
wxCheckListBox* m_categories; wxCheckListBox* m_blocks;
wxHyperlinkCtrl* m_categoriesAll; wxHyperlinkCtrl* m_blocksAll;
wxHyperlinkCtrl* m_categoriesNone; wxHyperlinkCtrl* m_blocksNone;
wxHyperlinkCtrl* m_categoriesInvert; wxHyperlinkCtrl* m_blocksInvert;
wxZRColaCharGrid* m_gridResults; wxZRColaCharGrid* m_gridResults;
wxZRColaCharGrid* m_gridRecent; wxZRColaCharGrid* m_gridRecent;
wxStaticText* m_labelUnicode; wxStaticText* m_labelUnicode;
@@ -226,20 +228,20 @@ class wxZRColaCharSelectBase : public wxDialog
wxGrid* m_gridPreview; wxGrid* m_gridPreview;
wxTextCtrl* m_description; wxTextCtrl* m_description;
wxTextCtrl* m_tags; wxTextCtrl* m_tags;
wxTextCtrl* m_category; wxTextCtrl* m_block;
wxHyperlinkCtrl* m_navigateBack; wxHyperlinkCtrl* m_navigateBack;
wxHyperlinkCtrl* m_navigateForward; wxHyperlinkCtrl* m_navigateForward;
wxZRColaCharGrid* m_gridRelated; wxZRColaCharGrid* m_gridRelated;
wxButton* m_buttonInsert; wxButton* m_buttonInsert;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); } virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnSearchText( wxCommandEvent& event ) { event.Skip(); } virtual void OnSearchText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSearchMore( wxHyperlinkEvent& event ) { event.Skip(); } virtual void OnSearchMore( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesToggle( wxCommandEvent& event ) { event.Skip(); } virtual void OnBlocksToggle( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCategoriesAll( wxHyperlinkEvent& event ) { event.Skip(); } virtual void OnBlocksAll( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesNone( wxHyperlinkEvent& event ) { event.Skip(); } virtual void OnBlocksNone( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesInvert( wxHyperlinkEvent& event ) { event.Skip(); } virtual void OnBlocksInvert( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnResultCellDClick( wxGridEvent& event ) { event.Skip(); } virtual void OnResultCellDClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnResultSelectCell( wxGridEvent& event ) { event.Skip(); } virtual void OnResultSelectCell( wxGridEvent& event ) { event.Skip(); }
virtual void OnResultsKeyDown( wxKeyEvent& event ) { event.Skip(); } virtual void OnResultsKeyDown( wxKeyEvent& event ) { event.Skip(); }
@@ -258,6 +260,7 @@ class wxZRColaCharSelectBase : public wxDialog
public: public:
wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Character Search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharSelect") ); wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Character Search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharSelect") );
~wxZRColaCharSelectBase(); ~wxZRColaCharSelectBase();
}; };
@@ -284,7 +287,7 @@ class wxZRColaSettingsBase : public wxDialog
wxButton* m_sdbSizerButtonsApply; wxButton* m_sdbSizerButtonsApply;
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); } virtual void OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); }
@@ -294,6 +297,7 @@ class wxZRColaSettingsBase : public wxDialog
public: public:
wxZRColaSettingsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaSettings") ); wxZRColaSettingsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaSettings") );
~wxZRColaSettingsBase(); ~wxZRColaSettingsBase();
}; };
@@ -320,6 +324,7 @@ class wxZRColaAboutBase : public wxDialog
public: public:
wxZRColaAboutBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaAbout") ); wxZRColaAboutBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About ZRCola"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaAbout") );
~wxZRColaAboutBase(); ~wxZRColaAboutBase();
}; };
@@ -336,7 +341,7 @@ class wxZRColaUpdaterBase : public wxDialog
wxButton* m_buttonUpdate; wxButton* m_buttonUpdate;
wxButton* m_buttonClose; wxButton* m_buttonClose;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); } virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
virtual void OnUpdate( wxCommandEvent& event ) { event.Skip(); } virtual void OnUpdate( wxCommandEvent& event ) { event.Skip(); }
virtual void OnClose( wxCommandEvent& event ) { event.Skip(); } virtual void OnClose( wxCommandEvent& event ) { event.Skip(); }
@@ -345,6 +350,7 @@ class wxZRColaUpdaterBase : public wxDialog
public: public:
wxZRColaUpdaterBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Product Update"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaUpdater") ); wxZRColaUpdaterBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Product Update"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaUpdater") );
~wxZRColaUpdaterBase(); ~wxZRColaUpdaterBase();
}; };
@@ -367,13 +373,14 @@ class wxZRColaCharRequestBase : public wxDialog
wxButton* m_sdbSizerButtonsOK; wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); }
public: public:
wxZRColaCharRequestBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Request a New Character"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharRequest") ); wxZRColaCharRequestBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Request a New Character"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaCharRequest") );
~wxZRColaCharRequestBase(); ~wxZRColaCharRequestBase();
}; };
@@ -399,7 +406,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
wxButton* m_sdbSizerButtonsOK; wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel; wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); } virtual void OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnAvailableChar( wxKeyEvent& event ) { event.Skip(); } virtual void OnAvailableChar( wxKeyEvent& event ) { event.Skip(); }
@@ -416,6 +423,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
public: public:
wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaTranslationSeq") ); wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("ZRColaTranslationSeq") );
~wxZRColaTranslationSeqBase(); ~wxZRColaTranslationSeqBase();
}; };

View File

@@ -12,7 +12,6 @@
wxZRColaSettings::wxZRColaSettings(wxWindow* parent) : wxZRColaSettings::wxZRColaSettings(wxWindow* parent) :
m_lang_auto(true), m_lang_auto(true),
m_lang(ZRCola::langid_t::blank),
wxZRColaSettingsBase(parent) wxZRColaSettingsBase(parent)
{ {
auto app = dynamic_cast<ZRColaApp*>(wxTheApp); auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
@@ -165,7 +164,7 @@ bool wxPersistentZRColaSettings::Restore()
} else if (!app->m_lang_db.idxLang.empty()) { } else if (!app->m_lang_db.idxLang.empty()) {
wnd->m_lang = app->m_lang_db.idxLang[0].lang; wnd->m_lang = app->m_lang_db.idxLang[0].lang;
} else } else
wnd->m_lang = ZRCola::langid_t::blank; wnd->m_lang = ZRCola::langid_t();
int guiLevel; int guiLevel;
return RestoreValue(wxT("guiLevel"), &guiLevel) && guiLevel == s_guiLevel ? wxPersistentTLWEx::Restore() : true; return RestoreValue(wxT("guiLevel"), &guiLevel) && guiLevel == s_guiLevel ? wxPersistentTLWEx::Restore() : true;

View File

@@ -26,7 +26,7 @@ void ZRCola::DBSource::character_bank::build_related()
for (DWORD i = 0; i < si.dwNumberOfProcessors; i++, chr_from = chr_to) { for (DWORD i = 0; i < si.dwNumberOfProcessors; i++, chr_from = chr_to) {
size_type to = MulDiv(i + 1, total, si.dwNumberOfProcessors); size_type to = MulDiv(i + 1, total, si.dwNumberOfProcessors);
for (chr_to = chr_from; from < to; from++, ++chr_to); for (chr_to = chr_from; from < to; from++, ++chr_to);
workers[i] = new build_related_worker(this, chr_from, chr_to); workers[i] = new build_related_worker(*this, chr_from, chr_to);
} }
// Wait for workers. // Wait for workers.
@@ -41,7 +41,8 @@ void ZRCola::DBSource::character_bank::build_related()
} }
ZRCola::DBSource::character_bank::build_related_worker::build_related_worker(_In_ const character_bank *cb, _In_ iterator from, _In_ iterator to) : _Use_decl_annotations_
ZRCola::DBSource::character_bank::build_related_worker::build_related_worker(const character_bank &cb, iterator from, iterator to) :
winstd::thread((HANDLE)_beginthreadex(NULL, 0, process, this, CREATE_SUSPENDED, NULL)), winstd::thread((HANDLE)_beginthreadex(NULL, 0, process, this, CREATE_SUSPENDED, NULL)),
m_heap(HeapCreate(0, 0, 0)), m_heap(HeapCreate(0, 0, 0)),
m_cb(cb), m_cb(cb),
@@ -59,24 +60,24 @@ unsigned int ZRCola::DBSource::character_bank::build_related_worker::process()
vector<wchar_t, heap_allocator<wchar_t> > rel(al); vector<wchar_t, heap_allocator<wchar_t> > rel(al);
set<wstring, less<wstring>, heap_allocator<wstring> > matching(less<wstring>(), al); set<wstring, less<wstring>, heap_allocator<wstring> > matching(less<wstring>(), al);
for (auto c = m_from; c != m_to; c++) { for (auto c = m_from; c != m_to; ++c) {
rel.clear(); rel.clear();
// Skip all unexisting, or self related characters. // Skip all inexistent, or self related characters.
auto m_cb_end = m_cb->cend(); auto m_cb_end = m_cb.cend();
for (std::vector<wchar_t>::const_pointer c_rel = c->second.rel.data(), c_rel_end = c_rel + c->second.rel.size(), c_rel_next = c_rel_end; c_rel < c_rel_end; c_rel = c_rel_next) { for (std::vector<wchar_t>::const_pointer c_rel = c->second.rel.data(), c_rel_end = c_rel + c->second.rel.size(), c_rel_next = c_rel_end; c_rel < c_rel_end; c_rel = c_rel_next) {
c_rel_next = c_rel + wcsnlen(c_rel, c_rel_end - c_rel) + 1; c_rel_next = c_rel + stdex::strnlen(c_rel, c_rel_end - c_rel) + 1;
if (m_cb->find(c_rel) != m_cb_end && c->first.compare(c_rel) != 0) if (m_cb.find(c_rel) != m_cb_end && c->first.compare(c_rel) != 0)
rel.insert(rel.end(), c_rel, c_rel_next); rel.insert(rel.end(), c_rel, c_rel_next);
} }
// Add all characters that share enough keywords. // Add all characters that share enough keywords.
for (auto c2 = m_cb->cbegin(), c2_end = m_cb->cend(); c2 != c2_end; ++c2) { for (auto c2 = m_cb.cbegin(), c2_end = m_cb.cend(); c2 != c2_end; ++c2) {
if (c == c2) if (c == c2)
continue; continue;
bool already_present = false; bool already_present = false;
for (std::vector<wchar_t>::const_pointer c_rel = rel.data(), c_rel_end = c_rel + rel.size(), c_rel_next = c_rel_end; c_rel < c_rel_end; c_rel = c_rel_next) { for (std::vector<wchar_t>::const_pointer c_rel = rel.data(), c_rel_end = c_rel + rel.size(), c_rel_next = c_rel_end; c_rel < c_rel_end; c_rel = c_rel_next) {
c_rel_next = c_rel + wcsnlen(c_rel, c_rel_end - c_rel) + 1; c_rel_next = c_rel + stdex::strnlen(c_rel, c_rel_end - c_rel) + 1;
if (c2->first.compare(c_rel) == 0) { if (c2->first.compare(c_rel) == 0) {
already_present = true; already_present = true;
break; break;
@@ -104,6 +105,19 @@ unsigned int ZRCola::DBSource::character_bank::build_related_worker::process()
} }
c->second.rel.assign(rel.cbegin(), rel.cend()); c->second.rel.assign(rel.cbegin(), rel.cend());
if (!c->first.empty()) {
// Find the block this character belongs to.
char32_t ch = c->first.size() == 1 ? c->first[0] : stdex::surrogate_pair_to_ucs4(c->first.c_str());
if (auto it = m_cb.idxChrBlk.upper_bound(ch); it != m_cb.idxChrBlk.begin()) {
--it;
if (ch >= it->first && ch <= it->second.chr_end) {
c->second.blk = it->second.id;
// May un-const, as `used` field does not change the map sort order.
const_cast<chrblk_data&>(it->second).used = true;
}
}
}
} }
return 0; return 0;
@@ -245,7 +259,7 @@ ZRCola::DBSource::~DBSource()
m_pHighlight1.free(); m_pHighlight1.free();
m_comHighlight.free(); m_comHighlight.free();
if (m_db) if (m_db.valid())
m_db->Close(); m_db->Close();
if (m_locale) if (m_locale)
@@ -255,7 +269,7 @@ ZRCola::DBSource::~DBSource()
bool ZRCola::DBSource::Open(LPCTSTR filename) bool ZRCola::DBSource::Open(LPCTSTR filename)
{ {
wxASSERT_MSG(!m_db, wxT("database already open")); wxASSERT_MSG(!m_db.valid(), wxT("database already open"));
// Create COM object. // Create COM object.
HRESULT hr = ::CoCreateInstance(CLSID_CADOConnection, NULL, CLSCTX_ALL, IID_IADOConnection, (LPVOID*)&m_db); HRESULT hr = ::CoCreateInstance(CLSID_CADOConnection, NULL, CLSCTX_ALL, IID_IADOConnection, (LPVOID*)&m_db);
@@ -276,9 +290,9 @@ bool ZRCola::DBSource::Open(LPCTSTR filename)
m_locale = _create_locale(LC_ALL, "Slovenian_Slovenia.1250"); m_locale = _create_locale(LC_ALL, "Slovenian_Slovenia.1250");
// Create ADO command(s). // Create ADO command(s).
wxASSERT_MSG(!m_comCharacterGroup, wxT("ADO command already created")); wxASSERT_MSG(!m_comCharacterGroup.valid(), wxT("ADO command already created"));
wxVERIFY(SUCCEEDED(::CoCreateInstance(CLSID_CADOCommand, NULL, CLSCTX_ALL, IID_IADOCommand, (LPVOID*)&m_comCharacterGroup))); wxVERIFY(SUCCEEDED(::CoCreateInstance(CLSID_CADOCommand, NULL, CLSCTX_ALL, IID_IADOCommand, (LPVOID*)&m_comCharacterGroup)));
wxVERIFY(SUCCEEDED(m_comCharacterGroup->put_ActiveConnection(variant(m_db)))); wxVERIFY(SUCCEEDED(m_comCharacterGroup->put_ActiveConnection(variant((IDispatch*)m_db))));
wxVERIFY(SUCCEEDED(m_comCharacterGroup->put_CommandType(adCmdText))); wxVERIFY(SUCCEEDED(m_comCharacterGroup->put_CommandType(adCmdText)));
wxVERIFY(SUCCEEDED(m_comCharacterGroup->put_CommandText(bstr(L"SELECT [VRS_SkupineZnakov].[Znak], [VRS_SkupineZnakov].[pogost] " wxVERIFY(SUCCEEDED(m_comCharacterGroup->put_CommandText(bstr(L"SELECT [VRS_SkupineZnakov].[Znak], [VRS_SkupineZnakov].[pogost] "
L"FROM [VRS_SkupineZnakov] " L"FROM [VRS_SkupineZnakov] "
@@ -289,14 +303,14 @@ bool ZRCola::DBSource::Open(LPCTSTR filename)
// Create and add command parameters. // Create and add command parameters.
com_obj<ADOParameters> params; com_obj<ADOParameters> params;
wxVERIFY(SUCCEEDED(m_comCharacterGroup->get_Parameters(&params))); wxVERIFY(SUCCEEDED(m_comCharacterGroup->get_Parameters(&params)));
wxASSERT_MSG(!m_pCharacterGroup1, wxT("ADO command parameter already created")); wxASSERT_MSG(!m_pCharacterGroup1.valid(), wxT("ADO command parameter already created"));
wxVERIFY(SUCCEEDED(m_comCharacterGroup->CreateParameter(bstr(L"@Skupina"), adVarWChar, adParamInput, 50, variant(DISP_E_PARAMNOTFOUND, VT_ERROR), &m_pCharacterGroup1))); wxVERIFY(SUCCEEDED(m_comCharacterGroup->CreateParameter(bstr(L"@Skupina"), adVarWChar, adParamInput, 50, variant(DISP_E_PARAMNOTFOUND, VT_ERROR), &m_pCharacterGroup1)));
wxVERIFY(SUCCEEDED(params->Append(m_pCharacterGroup1))); wxVERIFY(SUCCEEDED(params->Append(m_pCharacterGroup1)));
} }
wxASSERT_MSG(!m_comTranslation, wxT("ADO command already created")); wxASSERT_MSG(!m_comTranslation.valid(), wxT("ADO command already created"));
wxVERIFY(SUCCEEDED(::CoCreateInstance(CLSID_CADOCommand, NULL, CLSCTX_ALL, IID_IADOCommand, (LPVOID*)&m_comTranslation))); wxVERIFY(SUCCEEDED(::CoCreateInstance(CLSID_CADOCommand, NULL, CLSCTX_ALL, IID_IADOCommand, (LPVOID*)&m_comTranslation)));
wxVERIFY(SUCCEEDED(m_comTranslation->put_ActiveConnection(variant(m_db)))); wxVERIFY(SUCCEEDED(m_comTranslation->put_ActiveConnection(variant((IDispatch*)m_db))));
wxVERIFY(SUCCEEDED(m_comTranslation->put_CommandType(adCmdText))); wxVERIFY(SUCCEEDED(m_comTranslation->put_CommandType(adCmdText)));
wxVERIFY(SUCCEEDED(m_comTranslation->put_CommandText(bstr(L"SELECT [Komb1] AS [komb], [rang_komb1] AS [rang_komb], '' AS [Kano], 0 AS [Kanoniziraj], [Komb2] AS [znak], [rang_komb2] AS [rang_znak] " wxVERIFY(SUCCEEDED(m_comTranslation->put_CommandText(bstr(L"SELECT [Komb1] AS [komb], [rang_komb1] AS [rang_komb], '' AS [Kano], 0 AS [Kanoniziraj], [Komb2] AS [znak], [rang_komb2] AS [rang_znak] "
L"FROM [VRS_ScriptRepl2] " L"FROM [VRS_ScriptRepl2] "
@@ -306,14 +320,14 @@ bool ZRCola::DBSource::Open(LPCTSTR filename)
// Create and add command parameters. // Create and add command parameters.
com_obj<ADOParameters> params; com_obj<ADOParameters> params;
wxVERIFY(SUCCEEDED(m_comTranslation->get_Parameters(&params))); wxVERIFY(SUCCEEDED(m_comTranslation->get_Parameters(&params)));
wxASSERT_MSG(!m_pTranslation1, wxT("ADO command parameter already created")); wxASSERT_MSG(!m_pTranslation1.valid(), wxT("ADO command parameter already created"));
wxVERIFY(SUCCEEDED(m_comTranslation->CreateParameter(bstr(L"@Script"), adSmallInt, adParamInput, 0, variant(DISP_E_PARAMNOTFOUND, VT_ERROR), &m_pTranslation1))); wxVERIFY(SUCCEEDED(m_comTranslation->CreateParameter(bstr(L"@Script"), adSmallInt, adParamInput, 0, variant(DISP_E_PARAMNOTFOUND, VT_ERROR), &m_pTranslation1)));
wxVERIFY(SUCCEEDED(params->Append(m_pTranslation1))); wxVERIFY(SUCCEEDED(params->Append(m_pTranslation1)));
} }
wxASSERT_MSG(!m_comTranslationSets, wxT("ADO command already created")); wxASSERT_MSG(!m_comTranslationSets.valid(), wxT("ADO command already created"));
wxVERIFY(SUCCEEDED(::CoCreateInstance(CLSID_CADOCommand, NULL, CLSCTX_ALL, IID_IADOCommand, (LPVOID*)&m_comTranslationSets))); wxVERIFY(SUCCEEDED(::CoCreateInstance(CLSID_CADOCommand, NULL, CLSCTX_ALL, IID_IADOCommand, (LPVOID*)&m_comTranslationSets)));
wxVERIFY(SUCCEEDED(m_comTranslationSets->put_ActiveConnection(variant(m_db)))); wxVERIFY(SUCCEEDED(m_comTranslationSets->put_ActiveConnection(variant((IDispatch*)m_db))));
wxVERIFY(SUCCEEDED(m_comTranslationSets->put_CommandType(adCmdText))); wxVERIFY(SUCCEEDED(m_comTranslationSets->put_CommandType(adCmdText)));
wxVERIFY(SUCCEEDED(m_comTranslationSets->put_CommandText(bstr(L"SELECT [Script] " wxVERIFY(SUCCEEDED(m_comTranslationSets->put_CommandText(bstr(L"SELECT [Script] "
L"FROM [VRS_Script2SeqScr] " L"FROM [VRS_Script2SeqScr] "
@@ -323,14 +337,14 @@ bool ZRCola::DBSource::Open(LPCTSTR filename)
// Create and add command parameters. // Create and add command parameters.
com_obj<ADOParameters> params; com_obj<ADOParameters> params;
wxVERIFY(SUCCEEDED(m_comTranslationSets->get_Parameters(&params))); wxVERIFY(SUCCEEDED(m_comTranslationSets->get_Parameters(&params)));
wxASSERT_MSG(!m_pTranslationSets1, wxT("ADO command parameter already created")); wxASSERT_MSG(!m_pTranslationSets1.valid(), wxT("ADO command parameter already created"));
wxVERIFY(SUCCEEDED(m_comTranslationSets->CreateParameter(bstr(L"@ID"), adSmallInt, adParamInput, 0, variant(DISP_E_PARAMNOTFOUND, VT_ERROR), &m_pTranslationSets1))); wxVERIFY(SUCCEEDED(m_comTranslationSets->CreateParameter(bstr(L"@ID"), adSmallInt, adParamInput, 0, variant(DISP_E_PARAMNOTFOUND, VT_ERROR), &m_pTranslationSets1)));
wxVERIFY(SUCCEEDED(params->Append(m_pTranslationSets1))); wxVERIFY(SUCCEEDED(params->Append(m_pTranslationSets1)));
} }
wxASSERT_MSG(!m_comHighlight, wxT("ADO command already created")); wxASSERT_MSG(!m_comHighlight.valid(), wxT("ADO command already created"));
wxVERIFY(SUCCEEDED(::CoCreateInstance(CLSID_CADOCommand, NULL, CLSCTX_ALL, IID_IADOCommand, (LPVOID*)&m_comHighlight))); wxVERIFY(SUCCEEDED(::CoCreateInstance(CLSID_CADOCommand, NULL, CLSCTX_ALL, IID_IADOCommand, (LPVOID*)&m_comHighlight)));
wxVERIFY(SUCCEEDED(m_comHighlight->put_ActiveConnection(variant(m_db)))); wxVERIFY(SUCCEEDED(m_comHighlight->put_ActiveConnection(variant((IDispatch*)m_db))));
wxVERIFY(SUCCEEDED(m_comHighlight->put_CommandType(adCmdText))); wxVERIFY(SUCCEEDED(m_comHighlight->put_CommandType(adCmdText)));
wxVERIFY(SUCCEEDED(m_comHighlight->put_CommandText(bstr(L"SELECT [komb] " wxVERIFY(SUCCEEDED(m_comHighlight->put_CommandText(bstr(L"SELECT [komb] "
L"FROM [VRS_HighlightChars2] " L"FROM [VRS_HighlightChars2] "
@@ -340,7 +354,7 @@ bool ZRCola::DBSource::Open(LPCTSTR filename)
// Create and add command parameters. // Create and add command parameters.
com_obj<ADOParameters> params; com_obj<ADOParameters> params;
wxVERIFY(SUCCEEDED(m_comHighlight->get_Parameters(&params))); wxVERIFY(SUCCEEDED(m_comHighlight->get_Parameters(&params)));
wxASSERT_MSG(!m_pHighlight1, wxT("ADO command parameter already created")); wxASSERT_MSG(!m_pHighlight1.valid(), wxT("ADO command parameter already created"));
wxVERIFY(SUCCEEDED(m_comHighlight->CreateParameter(bstr(L"@group"), adSmallInt, adParamInput, 0, variant(DISP_E_PARAMNOTFOUND, VT_ERROR), &m_pHighlight1))); wxVERIFY(SUCCEEDED(m_comHighlight->CreateParameter(bstr(L"@group"), adSmallInt, adParamInput, 0, variant(DISP_E_PARAMNOTFOUND, VT_ERROR), &m_pHighlight1)));
wxVERIFY(SUCCEEDED(params->Append(m_pHighlight1))); wxVERIFY(SUCCEEDED(params->Append(m_pHighlight1)));
} }
@@ -360,7 +374,7 @@ bool ZRCola::DBSource::Open(LPCTSTR filename)
void ZRCola::DBSource::LogErrors() const void ZRCola::DBSource::LogErrors() const
{ {
wxASSERT_MSG(m_db, wxT("database does not exist")); wxASSERT_MSG(m_db.valid(), wxT("database does not exist"));
// Get array of errors. // Get array of errors.
ADOErrors *errors = NULL; ADOErrors *errors = NULL;
@@ -393,7 +407,7 @@ void ZRCola::DBSource::LogErrors() const
bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, bool& val) const bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, bool& val) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -407,7 +421,7 @@ bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, bool& val) const
bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, short& val) const bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, short& val) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -421,7 +435,7 @@ bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, short& val) const
bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, string& val) const bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, string& val) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -438,7 +452,7 @@ bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, string& val) const
bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, wstring& val) const bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, wstring& val) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -454,9 +468,9 @@ bool ZRCola::DBSource::GetValue(const com_obj<ADOField>& f, wstring& val) const
} }
bool ZRCola::DBSource::GetUnicodeCharacter(const com_obj<ADOField>& f, wchar_t& chr) const bool ZRCola::DBSource::GetUnicodeCharacter(const com_obj<ADOField>& f, char32_t& chr) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -472,9 +486,9 @@ bool ZRCola::DBSource::GetUnicodeCharacter(const com_obj<ADOField>& f, wchar_t&
else if (L'a' <= V_BSTR(&v)[i] && V_BSTR(&v)[i] <= L'f') chr = chr*0x10 + (V_BSTR(&v)[i] - L'a' + 10); else if (L'a' <= V_BSTR(&v)[i] && V_BSTR(&v)[i] <= L'f') chr = chr*0x10 + (V_BSTR(&v)[i] - L'a' + 10);
else break; else break;
} }
if (i <= 0 && 4 < i) { if (i <= 0 && 6 < i) {
bstr fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname))); bstr fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname)));
_ftprintf(stderr, wxT("%s: error ZCC0030: Syntax error in \"%.*ls\" field (\"%.*ls\"). Unicode code must be one to four hexadecimal characters long.\n"), m_filename.c_str(), fieldname.length(), (BSTR)fieldname, n, V_BSTR(&v)); _ftprintf(stderr, wxT("%s: error ZCC0030: Syntax error in \"%.*ls\" field (\"%.*ls\"). Unicode code must be one to six hexadecimal characters long.\n"), m_filename.c_str(), fieldname.length(), (BSTR)fieldname, n, V_BSTR(&v));
return false; return false;
} else if (i != n) { } else if (i != n) {
bstr fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname))); bstr fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname)));
@@ -490,7 +504,7 @@ bool ZRCola::DBSource::GetUnicodeCharacter(const com_obj<ADOField>& f, wchar_t&
bool ZRCola::DBSource::GetUnicodeString(const com_obj<ADOField>& f, wstring& str) const bool ZRCola::DBSource::GetUnicodeString(const com_obj<ADOField>& f, wstring& str) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -527,7 +541,7 @@ bool ZRCola::DBSource::GetUnicodeString(const com_obj<ADOField>& f, wstring& str
bool ZRCola::DBSource::GetNormPerm(const winstd::com_obj<ADOField>& f, normperm& np) const bool ZRCola::DBSource::GetNormPerm(const winstd::com_obj<ADOField>& f, normperm& np) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -563,7 +577,7 @@ bool ZRCola::DBSource::GetNormPerm(const winstd::com_obj<ADOField>& f, normperm&
bool ZRCola::DBSource::GetLanguage(const com_obj<ADOField>& f, ZRCola::langid_t& lang) const bool ZRCola::DBSource::GetLanguage(const com_obj<ADOField>& f, ZRCola::langid_t& lang) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -599,47 +613,9 @@ bool ZRCola::DBSource::GetLanguage(const com_obj<ADOField>& f, ZRCola::langid_t&
} }
bool ZRCola::DBSource::GetChrCat(const com_obj<ADOField>& f, chrcatid_t& cc) const
{
wxASSERT_MSG(f, wxT("field is empty"));
variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v)));
if (V_VT(&v) != VT_NULL) {
wxCHECK(SUCCEEDED(v.change_type(VT_BSTR)), false);
// Parse the field.
size_t n = wcsnlen(V_BSTR(&v), ::SysStringLen(V_BSTR(&v)));
if (n < 1 || 2 < n) {
bstr fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname)));
_ftprintf(stderr, wxT("%s: error ZCC0110: Syntax error in \"%.*ls\" field (\"%.*ls\"). Character category ID must be one (1) or two (2) characters long.\n"), m_filename.c_str(), fieldname.length(), (BSTR)fieldname, n, V_BSTR(&v));
return false;
}
for (size_t i = 0;; i++) {
if (i < sizeof(cc)) {
if (i < n) {
wchar_t c = V_BSTR(&v)[i];
if ((unsigned short)c > 0x7f) {
bstr fieldname; wxVERIFY(SUCCEEDED(f->get_Name(&fieldname)));
_ftprintf(stderr, wxT("%s: error ZCC0111: Syntax error in \"%.*ls\" field (\"%.*ls\"). Character category ID must contain ASCII characters only.\n"), m_filename.c_str(), fieldname.length(), (BSTR)fieldname, n, V_BSTR(&v));
return false;
}
cc.data[i] = (char)c;
} else
cc.data[i] = 0;
} else
break;
}
} else
memset(cc.data, 0, sizeof(cc));
return true;
}
bool ZRCola::DBSource::GetTagNames(const winstd::com_obj<ADOField>& f, LCID lcid, list<wstring>& names) const bool ZRCola::DBSource::GetTagNames(const winstd::com_obj<ADOField>& f, LCID lcid, list<wstring>& names) const
{ {
wxASSERT_MSG(f, wxT("field is empty")); wxASSERT_MSG(f.valid(), wxT("field is empty"));
variant v; variant v;
wxVERIFY(SUCCEEDED(f->get_Value(&v))); wxVERIFY(SUCCEEDED(f->get_Value(&v)));
@@ -691,7 +667,7 @@ bool ZRCola::DBSource::SelectNormPermSets(winstd::com_obj<ADORecordset>& rs) con
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT [oblika], [oblike] " L"SELECT [oblika], [oblike] "
L"FROM [VRS_CharCanoOblike] " L"FROM [VRS_CharCanoOblike] "
L"ORDER BY [oblika], [oblike]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [oblika], [oblike]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0160: Error loading normalization permutation sets from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0160: Error loading normalization permutation sets from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -704,7 +680,7 @@ bool ZRCola::DBSource::SelectNormPermSets(winstd::com_obj<ADORecordset>& rs) con
bool ZRCola::DBSource::GetNormPerm(const winstd::com_obj<ADORecordset>& rs, std::string& norm, normperm& np) const bool ZRCola::DBSource::GetNormPerm(const winstd::com_obj<ADORecordset>& rs, std::string& norm, normperm& np) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -745,7 +721,7 @@ bool ZRCola::DBSource::SelectTranslations(com_obj<ADORecordset> &rs) const
L"SELECT [komb], [rang_komb], [Kano], [Kanoniziraj], [znak], [rang_znak] " L"SELECT [komb], [rang_komb], [Kano], [Kanoniziraj], [znak], [rang_znak] "
L"FROM [VRS_ReplChar] " L"FROM [VRS_ReplChar] "
L"WHERE [rang_komb]=1 " L"WHERE [rang_komb]=1 "
L"ORDER BY [znak], [rang_znak], [rang_komb], [komb]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [znak], [rang_znak], [rang_komb], [komb]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0040: Error loading translations from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0040: Error loading translations from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -767,7 +743,7 @@ bool ZRCola::DBSource::SelectTranslations(short set, winstd::com_obj<ADORecordse
// Open it. // Open it.
wxVERIFY(SUCCEEDED(m_pTranslation1->put_Value(variant(set)))); wxVERIFY(SUCCEEDED(m_pTranslation1->put_Value(variant(set))));
if (FAILED(rs->Open(variant(m_comTranslation), variant(DISP_E_PARAMNOTFOUND, VT_ERROR)))) { if (FAILED(rs->Open(variant((IDispatch*)m_comTranslation), variant(DISP_E_PARAMNOTFOUND, VT_ERROR)))) {
_ftprintf(stderr, wxT("%s: error ZCC0100: Error loading translations from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0100: Error loading translations from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
return false; return false;
@@ -779,7 +755,7 @@ bool ZRCola::DBSource::SelectTranslations(short set, winstd::com_obj<ADORecordse
bool ZRCola::DBSource::GetTranslation(const com_obj<ADORecordset>& rs, ZRCola::DBSource::translation& t) const bool ZRCola::DBSource::GetTranslation(const com_obj<ADORecordset>& rs, ZRCola::DBSource::translation& t) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -835,7 +811,7 @@ bool ZRCola::DBSource::SelectTranlationSets(com_obj<ADORecordset> &rs) const
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [entCode], [Src_En], [Dst_En] " L"SELECT DISTINCT [entCode], [Src_En], [Dst_En] "
L"FROM [VRS_Script2] " L"FROM [VRS_Script2] "
L"ORDER BY [entCode], [Src_En], [Dst_En]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [entCode], [Src_En], [Dst_En]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0060: Error loading translation sets from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0060: Error loading translation sets from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -848,7 +824,7 @@ bool ZRCola::DBSource::SelectTranlationSets(com_obj<ADORecordset> &rs) const
bool ZRCola::DBSource::GetTranslationSet(const com_obj<ADORecordset>& rs, ZRCola::DBSource::transet& ts) const bool ZRCola::DBSource::GetTranslationSet(const com_obj<ADORecordset>& rs, ZRCola::DBSource::transet& ts) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -885,7 +861,7 @@ bool ZRCola::DBSource::SelectTranlationSeqs(com_obj<ADORecordset> &rs) const
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [ID], [Descr], [Rank] " L"SELECT DISTINCT [ID], [Descr], [Rank] "
L"FROM [VRS_Script2Seq] " L"FROM [VRS_Script2Seq] "
L"ORDER BY [Rank], [Descr]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [Rank], [Descr]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0060: Error loading translation sequences from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0060: Error loading translation sequences from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -898,7 +874,7 @@ bool ZRCola::DBSource::SelectTranlationSeqs(com_obj<ADORecordset> &rs) const
bool ZRCola::DBSource::GetTranslationSeq(const com_obj<ADORecordset>& rs, ZRCola::DBSource::transeq& ts) const bool ZRCola::DBSource::GetTranslationSeq(const com_obj<ADORecordset>& rs, ZRCola::DBSource::transeq& ts) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -928,7 +904,7 @@ bool ZRCola::DBSource::GetTranslationSeq(const com_obj<ADORecordset>& rs, ZRCola
wxVERIFY(SUCCEEDED(rs_chars->put_CursorLocation(adUseClient))); wxVERIFY(SUCCEEDED(rs_chars->put_CursorLocation(adUseClient)));
wxVERIFY(SUCCEEDED(rs_chars->put_CursorType(adOpenForwardOnly))); wxVERIFY(SUCCEEDED(rs_chars->put_CursorType(adOpenForwardOnly)));
wxVERIFY(SUCCEEDED(rs_chars->put_LockType(adLockReadOnly))); wxVERIFY(SUCCEEDED(rs_chars->put_LockType(adLockReadOnly)));
if (FAILED(rs_chars->Open(variant(m_comTranslationSets), variant(DISP_E_PARAMNOTFOUND, VT_ERROR)))) { if (FAILED(rs_chars->Open(variant((IDispatch*)m_comTranslationSets), variant(DISP_E_PARAMNOTFOUND, VT_ERROR)))) {
_ftprintf(stderr, wxT("%s: error ZCC0140: Error loading character group characters from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0140: Error loading character group characters from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
return false; return false;
@@ -962,7 +938,7 @@ bool ZRCola::DBSource::SelectKeySequences(com_obj<ADORecordset> &rs) const
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [VRS_KeyCodes].[Znak], [VRS_CharGroup].[CharGroup], IIF([VRS_CharGroup].[Arg1] IS NOT NULL, [VRS_CharGroup].[Arg1], 0)+IIF([VRS_CharGroup].[Arg2] IS NOT NULL, [VRS_CharGroup].[Arg2], 0)+IIF([VRS_CharGroup].[Arg3] IS NOT NULL, [VRS_CharGroup].[Arg3], 0) AS [Modifiers], IIF([VRS_CharGroup].[Arg4] IS NOT NULL, [VRS_CharGroup].[Arg4], 0) AS [KeyCodePre], [VRS_KeyCodes].[KeyCode], [VRS_KeyCodes].[Shift] " L"SELECT DISTINCT [VRS_KeyCodes].[Znak], [VRS_CharGroup].[CharGroup], IIF([VRS_CharGroup].[Arg1] IS NOT NULL, [VRS_CharGroup].[Arg1], 0)+IIF([VRS_CharGroup].[Arg2] IS NOT NULL, [VRS_CharGroup].[Arg2], 0)+IIF([VRS_CharGroup].[Arg3] IS NOT NULL, [VRS_CharGroup].[Arg3], 0) AS [Modifiers], IIF([VRS_CharGroup].[Arg4] IS NOT NULL, [VRS_CharGroup].[Arg4], 0) AS [KeyCodePre], [VRS_KeyCodes].[KeyCode], [VRS_KeyCodes].[Shift] "
L"FROM [VRS_KeyCodes] LEFT JOIN [VRS_CharGroup] ON [VRS_CharGroup].[CharGroup]=[VRS_KeyCodes].[CharGroup] " L"FROM [VRS_KeyCodes] LEFT JOIN [VRS_CharGroup] ON [VRS_CharGroup].[CharGroup]=[VRS_KeyCodes].[CharGroup] "
L"ORDER BY [VRS_CharGroup].[CharGroup], [VRS_KeyCodes].[KeyCode], [VRS_KeyCodes].[Shift], [VRS_KeyCodes].[Znak]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [VRS_CharGroup].[CharGroup], [VRS_KeyCodes].[KeyCode], [VRS_KeyCodes].[Shift], [VRS_KeyCodes].[Znak]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0050: Error loading key sequences from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0050: Error loading key sequences from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -975,7 +951,7 @@ bool ZRCola::DBSource::SelectKeySequences(com_obj<ADORecordset> &rs) const
bool ZRCola::DBSource::GetKeySequence(const com_obj<ADORecordset>& rs, ZRCola::DBSource::keyseq& ks) const bool ZRCola::DBSource::GetKeySequence(const com_obj<ADORecordset>& rs, ZRCola::DBSource::keyseq& ks) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -1050,7 +1026,7 @@ bool ZRCola::DBSource::SelectLanguages(com_obj<ADORecordset> &rs) const
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [entCode], [Jezik_En] " L"SELECT DISTINCT [entCode], [Jezik_En] "
L"FROM [VRS_Jezik] " L"FROM [VRS_Jezik] "
L"ORDER BY [entCode], [Jezik_En]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [entCode], [Jezik_En]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0060: Error loading languages from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0060: Error loading languages from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -1063,7 +1039,7 @@ bool ZRCola::DBSource::SelectLanguages(com_obj<ADORecordset> &rs) const
bool ZRCola::DBSource::GetLanguage(const com_obj<ADORecordset>& rs, ZRCola::DBSource::language& lang) const bool ZRCola::DBSource::GetLanguage(const com_obj<ADORecordset>& rs, ZRCola::DBSource::language& lang) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -1094,7 +1070,7 @@ bool ZRCola::DBSource::SelectLanguageCharacters(com_obj<ADORecordset> &rs) const
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [znak], [lang] " L"SELECT DISTINCT [znak], [lang] "
L"FROM [VRS_CharLocal] " L"FROM [VRS_CharLocal] "
L"ORDER BY [znak], [lang]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [znak], [lang]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0090: Error loading language characters from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0090: Error loading language characters from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -1107,7 +1083,7 @@ bool ZRCola::DBSource::SelectLanguageCharacters(com_obj<ADORecordset> &rs) const
bool ZRCola::DBSource::GetLanguageCharacter(const com_obj<ADORecordset>& rs, ZRCola::DBSource::langchar& lc) const bool ZRCola::DBSource::GetLanguageCharacter(const com_obj<ADORecordset>& rs, ZRCola::DBSource::langchar& lc) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -1138,7 +1114,7 @@ bool ZRCola::DBSource::SelectCharacterGroups(com_obj<ADORecordset>& rs) const
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [id], [Skupina], [opis_en], [Rang] " L"SELECT DISTINCT [id], [Skupina], [opis_en], [Rang] "
L"FROM [VRS_SkupinaZnakov] " L"FROM [VRS_SkupinaZnakov] "
L"ORDER BY [Rang], [opis_en]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [Rang], [opis_en]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0090: Error loading character groups from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0090: Error loading character groups from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -1151,7 +1127,7 @@ bool ZRCola::DBSource::SelectCharacterGroups(com_obj<ADORecordset>& rs) const
bool ZRCola::DBSource::GetCharacterGroup(const com_obj<ADORecordset>& rs, chrgrp& cg) const bool ZRCola::DBSource::GetCharacterGroup(const com_obj<ADORecordset>& rs, chrgrp& cg) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -1188,7 +1164,7 @@ bool ZRCola::DBSource::GetCharacterGroup(const com_obj<ADORecordset>& rs, chrgrp
wxVERIFY(SUCCEEDED(rs_chars->put_CursorLocation(adUseClient))); wxVERIFY(SUCCEEDED(rs_chars->put_CursorLocation(adUseClient)));
wxVERIFY(SUCCEEDED(rs_chars->put_CursorType(adOpenForwardOnly))); wxVERIFY(SUCCEEDED(rs_chars->put_CursorType(adOpenForwardOnly)));
wxVERIFY(SUCCEEDED(rs_chars->put_LockType(adLockReadOnly))); wxVERIFY(SUCCEEDED(rs_chars->put_LockType(adLockReadOnly)));
if (FAILED(rs_chars->Open(variant(m_comCharacterGroup), variant(DISP_E_PARAMNOTFOUND, VT_ERROR)))) { if (FAILED(rs_chars->Open(variant((IDispatch*)m_comCharacterGroup), variant(DISP_E_PARAMNOTFOUND, VT_ERROR)))) {
_ftprintf(stderr, wxT("%s: error ZCC0140: Error loading character group characters from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0140: Error loading character group characters from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
return false; return false;
@@ -1228,12 +1204,12 @@ bool ZRCola::DBSource::SelectCharacters(com_obj<ADORecordset>& rs) const
// Open it. // Open it.
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [znak], [opis_en], [kat], [znak_v], [znak_m] " L"SELECT DISTINCT [znak], [opis_en], [znak_v], [znak_m] "
L"FROM [VRS_CharList] " L"FROM [VRS_CharList] "
L"WHERE " L"WHERE "
L"[aktiven]=1 AND " // Active characters only L"[aktiven]=1 AND " // Active characters only
L"[kat]<>'g' " // Ignore "Other, Control" category! L"[kat]<>'g' " // Ignore "Other, Control" category!
L"ORDER BY [znak]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [znak]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0120: Error loading characters from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0120: Error loading characters from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -1246,7 +1222,7 @@ bool ZRCola::DBSource::SelectCharacters(com_obj<ADORecordset>& rs) const
bool ZRCola::DBSource::GetCharacter(const com_obj<ADORecordset>& rs, character& chr) const bool ZRCola::DBSource::GetCharacter(const com_obj<ADORecordset>& rs, character& chr) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -1289,17 +1265,11 @@ bool ZRCola::DBSource::GetCharacter(const com_obj<ADORecordset>& rs, character&
} }
} }
{
com_obj<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"kat"), &f)));
wxCHECK(GetChrCat(f, chr.second.cat), false);
}
return true; return true;
} }
bool ZRCola::DBSource::SelectCharacterCategories(com_obj<ADORecordset>& rs) const bool ZRCola::DBSource::SelectCharacterBlocks(com_obj<ADORecordset>& rs) const
{ {
// Create a new recordset. // Create a new recordset.
rs.free(); rs.free();
@@ -1307,12 +1277,11 @@ bool ZRCola::DBSource::SelectCharacterCategories(com_obj<ADORecordset>& rs) cons
// Open it. // Open it.
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [kat], [opis_en], [Rang] " L"SELECT DISTINCT [blok], [znak_od], [znak_do], [opis_en], [Rang] "
L"FROM [VRS_CharCategory] " L"FROM [VRS_CharBlocks] "
L"WHERE [kat]<>'g' " // Ignore "Other, Control" category! L"ORDER BY [Rang], [opis_en]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
L"ORDER BY [Rang], [opis_en]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0130: Error loading character categories from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0130: Error loading character blocks from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
return false; return false;
} }
@@ -1321,29 +1290,41 @@ bool ZRCola::DBSource::SelectCharacterCategories(com_obj<ADORecordset>& rs) cons
} }
bool ZRCola::DBSource::GetCharacterCategory(const com_obj<ADORecordset>& rs, chrcat& cc) const bool ZRCola::DBSource::GetCharacterBlock(const com_obj<ADORecordset>& rs, chrblk& cb) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
{ {
com_obj<ADOField> f; com_obj<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"kat"), &f))); wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"blok"), &f)));
wxCHECK(GetChrCat(f, cc.cat), false); wxCHECK(GetValue(f, cb.second.id), false);
}
{
com_obj<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"znak_od"), &f)));
wxCHECK(GetUnicodeCharacter(f, cb.first), false);
}
{
com_obj<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"znak_do"), &f)));
wxCHECK(GetUnicodeCharacter(f, cb.second.chr_end), false);
} }
{ {
com_obj<ADOField> f; com_obj<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"Rang"), &f))); wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"Rang"), &f)));
wxCHECK(GetValue(f, cc.rank), false); wxCHECK(GetValue(f, cb.second.rank), false);
} }
{ {
com_obj<ADOField> f; com_obj<ADOField> f;
wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"opis_en"), &f))); wxVERIFY(SUCCEEDED(flds->get_Item(variant(L"opis_en"), &f)));
wxCHECK(GetValue(f, cc.name), false); wxCHECK(GetValue(f, cb.second.name), false);
} }
return true; return true;
@@ -1360,7 +1341,7 @@ bool ZRCola::DBSource::SelectCharacterTags(winstd::com_obj<ADORecordset>& rs) co
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [znak], [oznaka] " L"SELECT DISTINCT [znak], [oznaka] "
L"FROM [VRS_CharTags] " L"FROM [VRS_CharTags] "
L"ORDER BY [znak], [oznaka]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [znak], [oznaka]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0130: Error loading character tags from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0130: Error loading character tags from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -1373,7 +1354,7 @@ bool ZRCola::DBSource::SelectCharacterTags(winstd::com_obj<ADORecordset>& rs) co
bool ZRCola::DBSource::GetCharacterTag(const winstd::com_obj<ADORecordset>& rs, chrtag& ct) const bool ZRCola::DBSource::GetCharacterTag(const winstd::com_obj<ADORecordset>& rs, chrtag& ct) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -1404,7 +1385,7 @@ bool ZRCola::DBSource::SelectTagNames(winstd::com_obj<ADORecordset>& rs) const
if (FAILED(rs->Open(variant( if (FAILED(rs->Open(variant(
L"SELECT DISTINCT [oznaka], [opis_en], [opis_sl], [opis_ru] " L"SELECT DISTINCT [oznaka], [opis_en], [opis_sl], [opis_ru] "
L"FROM [VRS_Tags] " L"FROM [VRS_Tags] "
L"ORDER BY [oznaka]"), variant(m_db), adOpenStatic, adLockReadOnly, adCmdText))) L"ORDER BY [oznaka]"), variant((IDispatch*)m_db), adOpenStatic, adLockReadOnly, adCmdText)))
{ {
_ftprintf(stderr, wxT("%s: error ZCC0130: Error loading tags from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0130: Error loading tags from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
@@ -1417,7 +1398,7 @@ bool ZRCola::DBSource::SelectTagNames(winstd::com_obj<ADORecordset>& rs) const
bool ZRCola::DBSource::GetTagName(const winstd::com_obj<ADORecordset>& rs, tagname& tn) const bool ZRCola::DBSource::GetTagName(const winstd::com_obj<ADORecordset>& rs, tagname& tn) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));
@@ -1471,7 +1452,7 @@ bool ZRCola::DBSource::SelectHighlights(short set, winstd::com_obj<ADORecordset>
// Open it. // Open it.
wxVERIFY(SUCCEEDED(m_pHighlight1->put_Value(variant(set)))); wxVERIFY(SUCCEEDED(m_pHighlight1->put_Value(variant(set))));
if (FAILED(rs->Open(variant(m_comHighlight), variant(DISP_E_PARAMNOTFOUND, VT_ERROR)))) { if (FAILED(rs->Open(variant((IDispatch*)m_comHighlight), variant(DISP_E_PARAMNOTFOUND, VT_ERROR)))) {
_ftprintf(stderr, wxT("%s: error ZCC0101: Error loading highlights from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0101: Error loading highlights from database. Please make sure the file is ZRCola.zrc compatible.\n"), m_filename.c_str());
LogErrors(); LogErrors();
return false; return false;
@@ -1483,7 +1464,7 @@ bool ZRCola::DBSource::SelectHighlights(short set, winstd::com_obj<ADORecordset>
bool ZRCola::DBSource::GetHighlight(const com_obj<ADORecordset>& rs, ZRCola::DBSource::highlight& h) const bool ZRCola::DBSource::GetHighlight(const com_obj<ADORecordset>& rs, ZRCola::DBSource::highlight& h) const
{ {
wxASSERT_MSG(rs, wxT("recordset is empty")); wxASSERT_MSG(rs.valid(), wxT("recordset is empty"));
com_obj<ADOFields> flds; com_obj<ADOFields> flds;
wxVERIFY(SUCCEEDED(rs->get_Fields(&flds))); wxVERIFY(SUCCEEDED(rs->get_Fields(&flds)));

View File

@@ -16,6 +16,7 @@
#include <WinStd/COM.h> #include <WinStd/COM.h>
#include <WinStd/Win.h> #include <WinStd/Win.h>
#include <stdex/string.hpp>
#include <wxex/common.h> #include <wxex/common.h>
#pragma warning(push) #pragma warning(push)
@@ -45,45 +46,41 @@ namespace ZRCola {
/// ///
/// Character sequence /// Character sequence
/// ///
class charseq { struct charseq {
public: short rank = 0; ///< Sequence rank
short rank; ///< Sequence rank
std::wstring str; ///< Sequence string std::wstring str; ///< Sequence string
inline charseq() : charseq() = default;
rank(0)
{
}
inline charseq(_In_ short _rank, _In_z_ const wchar_t *_str) : charseq(_In_ short _rank, _In_z_ const wchar_t *_str) :
rank(_rank), rank(_rank),
str (_str) str (_str)
{ {
} }
inline charseq(_In_ short _rank, _In_ const std::wstring &_str) : charseq(_In_ short _rank, _In_ const std::wstring &_str) :
rank(_rank), rank(_rank),
str (_str) str (_str)
{ {
} }
inline charseq(_In_ short _rank, _Inout_ std::wstring &&_str) : charseq(_In_ short _rank, _Inout_ std::wstring &&_str) :
rank(_rank), rank(_rank),
str (std::move(_str)) str (std::move(_str))
{ {
} }
inline bool operator==(_In_ const charseq &other) const bool operator==(_In_ const charseq &other) const
{ {
return rank == other.rank && str == other.str; return rank == other.rank && str == other.str;
} }
inline bool operator!=(_In_ const charseq &other) const bool operator!=(_In_ const charseq &other) const
{ {
return !operator==(other); return !operator==(other);
} }
inline bool operator<(_In_ const charseq &other) const bool operator<(_In_ const charseq &other) const
{ {
if (rank < other.rank) return true; if (rank < other.rank) return true;
else if (rank > other.rank) return false; else if (rank > other.rank) return false;
@@ -91,17 +88,17 @@ namespace ZRCola {
else return false; else return false;
} }
inline bool operator<=(_In_ const charseq &other) const bool operator<=(_In_ const charseq &other) const
{ {
return !operator>(other); return !operator>(other);
} }
inline bool operator>(_In_ const charseq &other) const bool operator>(_In_ const charseq &other) const
{ {
return other.operator<(*this); return other.operator<(*this);
} }
inline bool operator>=(_In_ const charseq &other) const bool operator>=(_In_ const charseq &other) const
{ {
return !operator<(other); return !operator<(other);
} }
@@ -111,44 +108,32 @@ namespace ZRCola {
/// ///
/// Translation /// Translation
/// ///
class translation { struct translation {
public: short set = (short)ZRCOLA_TRANSETID_DEFAULT; ///< Translation set ID
short set; ///< Translation set ID
charseq src; ///< Source sequence charseq src; ///< Source sequence
std::string norm; ///< Normalization footprint std::string norm; ///< Normalization footprint
charseq dst; ///< Destination sequence charseq dst; ///< Destination sequence
inline translation() : set((short)ZRCOLA_TRANSETID_DEFAULT) {}
}; };
/// ///
/// Translation set /// Translation set
/// ///
class transet { struct transet {
public: short set = (short)ZRCOLA_TRANSETID_DEFAULT; ///< ID
short set; ///< ID
std::wstring src; ///< Source name std::wstring src; ///< Source name
std::wstring dst; ///< Destination name std::wstring dst; ///< Destination name
inline transet() : set((short)ZRCOLA_TRANSETID_DEFAULT) {}
}; };
/// ///
/// Translation sequence /// Translation sequence
/// ///
class transeq { struct transeq {
public: short seq = 0; ///< ID
short seq; ///< ID short rank = 0; ///< Rank
short rank; ///< Rank
std::wstring name; ///< Name std::wstring name; ///< Name
std::vector<short> sets; ///< Sets std::vector<short> sets; ///< Sets
inline transeq() :
seq(0),
rank(0)
{}
}; };
@@ -161,8 +146,7 @@ namespace ZRCola {
/// ///
/// Key sequence /// Key sequence
/// ///
class keyseq { struct keyseq {
public:
/// ///
/// Key code /// Key code
/// ///
@@ -175,7 +159,7 @@ namespace ZRCola {
/// ///
/// Translates keycode from Slovenian to English keyboard /// Translates keycode from Slovenian to English keyboard
/// ///
inline static wchar_t translate_slen(_In_ wchar_t key) static wchar_t translate_slen(_In_ wchar_t key)
{ {
switch (key) { switch (key) {
case L'Z': return L'Y'; case L'Z': return L'Y';
@@ -187,7 +171,6 @@ namespace ZRCola {
} }
}; };
public:
std::wstring chr; ///< Character std::wstring chr; ///< Character
std::vector<keycode> seq; ///< Key sequence std::vector<keycode> seq; ///< Key sequence
}; };
@@ -196,74 +179,67 @@ namespace ZRCola {
/// ///
/// Language /// Language
/// ///
class language { struct language {
public:
ZRCola::langid_t lang; ///< Language ID ZRCola::langid_t lang; ///< Language ID
std::wstring name; ///< Name std::wstring name; ///< Name
inline language() : lang(ZRCola::langid_t::blank) {}
}; };
/// ///
/// Language Character /// Language Character
/// ///
class langchar { struct langchar {
public:
std::wstring chr; ///> Character std::wstring chr; ///> Character
ZRCola::langid_t lang; ///< Language ID ZRCola::langid_t lang; ///< Language ID
inline langchar() : lang(ZRCola::langid_t::blank) {}
}; };
/// ///
/// Character group /// Character group
/// ///
class chrgrp { struct chrgrp {
public: short grp = 0; ///< Character group ID
short grp; ///< Character group ID short rank = 0; ///< Rank
short rank; ///< Rank
std::wstring name; ///< Name std::wstring name; ///< Name
std::vector<wchar_t> chars; ///< Characters (zero-delimited) std::vector<wchar_t> chars; ///< Characters (zero-delimited)
std::vector<uint16_t> show; ///< Bit vector if particular character from \c chars is displayed initially std::vector<uint16_t> show; ///< Bit vector if particular character from \c chars is displayed initially
inline chrgrp() : grp(0), rank(0) {}
}; };
/// ///
/// Character data /// Character data
/// ///
class character_data { struct character_data {
public:
inline character_data()
{
cat.data[0] = 0;
cat.data[1] = 0;
}
inline character_data(_In_ const character_data &othr) :
cat (othr.cat),
desc (othr.desc),
terms (othr.terms),
terms_rel(othr.terms_rel),
rel (othr.rel)
{
}
ZRCola::chrcatid_t cat; ///< Category ID
std::wstring desc; ///< Character description std::wstring desc; ///< Character description
std::set<std::wstring> terms; ///< Search terms std::set<std::wstring> terms; ///< Search terms
std::set<std::wstring> terms_rel; ///< Relevant terms for relating characters std::set<std::wstring> terms_rel; ///< Relevant terms for relating characters
std::vector<wchar_t> rel; ///< Related characters (zero-delimited) std::vector<wchar_t> rel; ///< Related characters (zero-delimited)
short blk = 0; ///> Block ID
}; };
///
/// Character block
///
struct chrblk_data {
short id = 0; ///> Block ID
char32_t chr_end = 0; ///> Last character in the block
short rank = 0; ///< Rank
std::wstring name; ///< Name
bool used = false; ///< Are there any characters from this block
};
///
/// Character block
///
using chrblk = std::pair<char32_t, chrblk_data>;
/// ///
/// Character /// Character
/// ///
typedef std::pair<std::wstring, character_data> character; using character = std::pair<std::wstring, character_data>;
/// ///
@@ -278,9 +254,9 @@ namespace ZRCola {
class build_related_worker : public winstd::thread class build_related_worker : public winstd::thread
{ {
public: public:
build_related_worker(_In_ const character_bank *cb, _In_ iterator from, _In_ iterator to); build_related_worker(_In_ const character_bank &cb, _In_ iterator from, _In_ iterator to);
inline void join() void join()
{ {
if (m_h != invalid) if (m_h != invalid)
WaitForSingleObject(m_h, INFINITE); WaitForSingleObject(m_h, INFINITE);
@@ -298,22 +274,27 @@ namespace ZRCola {
static unsigned int __stdcall process(_In_ void *param); static unsigned int __stdcall process(_In_ void *param);
protected: protected:
const character_bank *m_cb; const character_bank &m_cb;
iterator m_from, m_to; iterator m_from, m_to;
winstd::heap m_heap; winstd::heap m_heap;
}; };
public:
std::map<char32_t, chrblk_data> idxChrBlk;
}; };
/// ///
/// Character description index key comparator /// Character comparator
/// ///
struct character_desc_idx_less : public std::binary_function<std::wstring, std::wstring, bool> struct character_less
{ {
inline bool operator()(const std::wstring& _Left, const std::wstring& _Right) const bool operator()(const std::wstring& a, const std::wstring& b) const
{ {
auto &coll = std::use_facet<std::collate<wchar_t>>(std::locale()); auto &coll = std::use_facet<std::collate<wchar_t>>(std::locale());
return coll.compare(&*_Left.cbegin(), &*_Left.cend(), &*_Right.cbegin(), &*_Right.cend()) < 0; return coll.compare(
a.data(), a.data() + a.size(),
b.data(), b.data() + b.size()) < 0;
} }
}; };
@@ -321,12 +302,12 @@ namespace ZRCola {
/// ///
/// Character description index /// Character description index
/// ///
class character_desc_idx : public std::map<std::wstring, std::vector<wchar_t>, character_desc_idx_less> class character_desc_idx : public std::map<std::wstring, std::vector<wchar_t>, character_less>
{ {
public: public:
static void parse_keywords(_In_ const wchar_t *str, _Inout_ std::set<std::wstring> &terms); static void parse_keywords(_In_ const wchar_t *str, _Inout_ std::set<std::wstring> &terms);
void add_keywords(const std::set<std::wstring> &terms, const std::wstring &chr, size_t sub = 0); void add_keywords(const std::set<std::wstring> &terms, const std::wstring &chr, size_t sub = 0);
inline void add_keywords(const wchar_t *str, const std::wstring &chr, size_t sub = 0) void add_keywords(const wchar_t *str, const std::wstring &chr, size_t sub = 0)
{ {
std::set<std::wstring> terms; std::set<std::wstring> terms;
parse_keywords(str, terms); parse_keywords(str, terms);
@@ -336,7 +317,7 @@ namespace ZRCola {
void save(ZRCola::textindex<wchar_t, wchar_t, uint32_t> &idx) const; void save(ZRCola::textindex<wchar_t, wchar_t, uint32_t> &idx) const;
protected: protected:
inline void add_keyword(const std::wstring &term, const std::wstring &chr) void add_keyword(const std::wstring &term, const std::wstring &chr)
{ {
iterator idx = find(term); iterator idx = find(term);
if (idx == end()) { if (idx == end()) {
@@ -345,7 +326,7 @@ namespace ZRCola {
} else { } else {
// Append to existing keyword. // Append to existing keyword.
auto &val = idx->second; auto &val = idx->second;
for (mapped_type::size_type i = 0, n = val.size(); ; i += wcsnlen(val.data() + i, n - i) + 1) { for (mapped_type::size_type i = 0, n = val.size(); ; i += stdex::strnlen(val.data() + i, n - i) + 1) {
if (i >= n) { if (i >= n) {
// End-of-values reached. Append character. // End-of-values reached. Append character.
val.insert(val.end(), chr.data(), chr.data() + chr.length() + 1); val.insert(val.end(), chr.data(), chr.data() + chr.length() + 1);
@@ -360,52 +341,30 @@ namespace ZRCola {
}; };
///
/// Character category
///
class chrcat {
public:
ZRCola::chrcatid_t cat; ///> Category ID
short rank; ///< Rank
std::wstring name; ///< Name
inline chrcat() : cat(ZRCola::chrcatid_t::blank), rank(0) {}
};
/// ///
/// Character tag /// Character tag
/// ///
class chrtag { struct chrtag {
public:
std::wstring chr; ///> Character std::wstring chr; ///> Character
short tag; ///< Tag ID short tag = 0; ///< Tag ID
inline chrtag() : tag(0) {}
}; };
/// ///
/// Tag name /// Tag name
/// ///
class tagname { struct tagname {
public: short tag = 0; ///< Tag ID
short tag; ///< Tag ID
std::map<LCID, std::list<std::wstring> > names; ///< Names std::map<LCID, std::list<std::wstring> > names; ///< Names
inline tagname() : tag(0) {}
}; };
/// ///
/// Highlight /// Highlight
/// ///
class highlight { struct highlight {
public: short set = (short)ZRCOLA_HLGHTSETID_DEFAULT; ///< Highlight set ID
short set; ///< Highlight set ID std::wstring chr; ///< Character sequence
std::wstring chr; ///< Character sequence
inline highlight() : set((short)ZRCOLA_HLGHTSETID_DEFAULT) {}
}; };
@@ -438,7 +397,7 @@ namespace ZRCola {
/// - true when at end /// - true when at end
/// - false otherwise /// - false otherwise
/// ///
static inline bool IsEOF(const winstd::com_obj<ADORecordset>& rs) static bool IsEOF(const winstd::com_obj<ADORecordset>& rs)
{ {
VARIANT_BOOL eof = VARIANT_TRUE; VARIANT_BOOL eof = VARIANT_TRUE;
return FAILED(rs->get_EOF(&eof)) || eof ? true : false; return FAILED(rs->get_EOF(&eof)) || eof ? true : false;
@@ -451,7 +410,7 @@ namespace ZRCola {
/// ///
/// \returns Number of records /// \returns Number of records
/// ///
static inline size_t GetRecordsetCount(const winstd::com_obj<ADORecordset>& rs) static size_t GetRecordsetCount(const winstd::com_obj<ADORecordset>& rs)
{ {
ADO_LONGPTR count; ADO_LONGPTR count;
return SUCCEEDED(rs->get_RecordCount(&count)) ? count : (size_t)-1; return SUCCEEDED(rs->get_RecordCount(&count)) ? count : (size_t)-1;
@@ -515,10 +474,10 @@ namespace ZRCola {
/// - true when successful /// - true when successful
/// - false otherwise /// - false otherwise
/// ///
bool GetUnicodeCharacter(const winstd::com_obj<ADOField>& f, wchar_t& chr) const; bool GetUnicodeCharacter(const winstd::com_obj<ADOField>& f, char32_t& chr) const;
/// ///
/// Gets encoded Unicode string from ZRCola.zrc database /// Gets encoded UTF-16 string from ZRCola.zrc database
/// ///
/// \param[in] f Data field /// \param[in] f Data field
/// \param[out] str Output string /// \param[out] str Output string
@@ -553,18 +512,6 @@ namespace ZRCola {
/// ///
bool GetLanguage(const winstd::com_obj<ADOField>& f, langid_t& lang) const; bool GetLanguage(const winstd::com_obj<ADOField>& f, langid_t& lang) const;
///
/// Gets character category ID from ZRCola.zrc database
///
/// \param[in] f Data field
/// \param[out] cc Character category
///
/// \returns
/// - true when successful
/// - false otherwise
///
bool GetChrCat(const winstd::com_obj<ADOField>& f, chrcatid_t& cc) const;
/// ///
/// Gets tag names from ZRCola.zrc database /// Gets tag names from ZRCola.zrc database
/// ///
@@ -797,7 +744,7 @@ namespace ZRCola {
bool GetCharacter(const winstd::com_obj<ADORecordset>& rs, character& chr) const; bool GetCharacter(const winstd::com_obj<ADORecordset>& rs, character& chr) const;
/// ///
/// Returns character categories /// Returns character blocks
/// ///
/// \param[out] rs Recordset with results /// \param[out] rs Recordset with results
/// ///
@@ -805,19 +752,19 @@ namespace ZRCola {
/// - true when query succeeds /// - true when query succeeds
/// - false otherwise /// - false otherwise
/// ///
bool SelectCharacterCategories(winstd::com_obj<ADORecordset>& rs) const; bool SelectCharacterBlocks(winstd::com_obj<ADORecordset>& rs) const;
/// ///
/// Returns character category data /// Returns character block data
/// ///
/// \param[in] rs Recordset with results /// \param[in] rs Recordset with results
/// \param[out] cc Character category /// \param[out] cb Character block
/// ///
/// \returns /// \returns
/// - true when succeeded /// - true when succeeded
/// - false otherwise /// - false otherwise
/// ///
bool GetCharacterCategory(const winstd::com_obj<ADORecordset>& rs, chrcat& cc) const; bool GetCharacterBlock(const winstd::com_obj<ADORecordset>& rs, chrblk& cb) const;
/// ///
/// Returns character tags /// Returns character tags
@@ -834,7 +781,7 @@ namespace ZRCola {
/// Returns character tag data /// Returns character tag data
/// ///
/// \param[in] rs Recordset with results /// \param[in] rs Recordset with results
/// \param[out] cc Character tag /// \param[out] tc Character tag
/// ///
/// \returns /// \returns
/// - true when succeeded /// - true when succeeded
@@ -1049,7 +996,7 @@ inline ZRCola::chrgrp_db& operator<<(_Inout_ ZRCola::chrgrp_db &db, _In_ const Z
inline ZRCola::character_db& operator<<(_Inout_ ZRCola::character_db &db, _In_ const ZRCola::DBSource::character &rec) inline ZRCola::character_db& operator<<(_Inout_ ZRCola::character_db &db, _In_ const ZRCola::DBSource::character &rec)
{ {
uint32_t idx = db.data.size(); uint32_t idx = db.data.size();
db.data.insert(db.data.end(), reinterpret_cast<const uint16_t*>(&rec.second.cat), reinterpret_cast<const uint16_t*>(&rec.second.cat + 1)); db.data.push_back((uint16_t)rec.second.blk);
std::wstring::size_type n = rec.first.length(); std::wstring::size_type n = rec.first.length();
wxASSERT_MSG(n <= 0xffff, wxT("character overflow")); wxASSERT_MSG(n <= 0xffff, wxT("character overflow"));
db.data.push_back((uint16_t)n); db.data.push_back((uint16_t)n);
@@ -1068,17 +1015,27 @@ inline ZRCola::character_db& operator<<(_Inout_ ZRCola::character_db &db, _In_ c
} }
inline ZRCola::chrcat_db& operator<<(_Inout_ ZRCola::chrcat_db &db, _In_ const ZRCola::DBSource::chrcat &rec) inline ZRCola::chrblk_db& operator<<(_Inout_ ZRCola::chrblk_db &db, _In_ const ZRCola::DBSource::chrblk &rec)
{ {
uint32_t idx = db.data.size(); uint32_t idx = db.data.size();
db.data.insert(db.data.end(), reinterpret_cast<const uint16_t*>(&rec.cat), reinterpret_cast<const uint16_t*>(&rec.cat + 1)); db.data.push_back((uint16_t)rec.second.id);
db.data.push_back((uint16_t)rec.rank); db.data.push_back((uint16_t)rec.second.rank);
std::wstring::size_type n = rec.name.length(); std::wstring::size_type n = rec.first >= 0x10000 ? 2 : 1;
wxASSERT_MSG(n <= 0xffff, wxT("character category name overflow"));
db.data.push_back((uint16_t)n); db.data.push_back((uint16_t)n);
db.data.insert(db.data.end(), rec.name.cbegin(), rec.name.cend()); n += rec.second.name.length();
db.idxChrCat.push_back(idx); wxASSERT_MSG(n <= 0xffff, wxT("character block name overflow"));
db.idxRank .push_back(idx); db.data.push_back((uint16_t)n);
if (rec.first < 0x10000)
db.data.push_back((uint16_t)rec.first);
else {
stdex::utf16_t buf[2];
stdex::ucs4_to_surrogate_pair(buf, rec.first);
db.data.insert(db.data.end(), &buf[0], &buf[2]);
}
db.data.insert(db.data.end(), rec.second.name.cbegin(), rec.second.name.cend());
db.idxChrId.push_back(idx);
db.idxFirst.push_back(idx);
db.idxRank .push_back(idx);
return db; return db;
} }

View File

@@ -745,8 +745,6 @@ int _tmain(int argc, _TCHAR *argv[])
} }
} }
set<ZRCola::chrcatid_t> categories_used;
{ {
// Get characters. // Get characters.
com_obj<ADORecordset> rs; com_obj<ADORecordset> rs;
@@ -756,7 +754,32 @@ int _tmain(int argc, _TCHAR *argv[])
ZRCola::DBSource::character_desc_idx idxChrDsc, idxChrDscSub; ZRCola::DBSource::character_desc_idx idxChrDsc, idxChrDscSub;
ZRCola::DBSource::character_bank chrs; ZRCola::DBSource::character_bank chrs;
// Phase 1: Parse characters and build indexes. // Phase 1: Get character blocks.
com_obj<ADORecordset> rs2;
if (src.SelectCharacterBlocks(rs2)) {
size_t count2 = src.GetRecordsetCount(rs2);
if (count2 < 0xffffffff) { // 4G check (-1 is reserved for error condition)
// Parse character blocks and build index and data.
for (; !ZRCola::DBSource::IsEOF(rs2); rs2->MoveNext()) {
// Read character block from the database.
ZRCola::DBSource::chrblk cb;
if (src.GetCharacterBlock(rs2, cb))
chrs.idxChrBlk[cb.first] = std::move(cb.second);
else
has_errors = true;
}
}
else {
_ftprintf(stderr, wxT("%s: error ZCC0029: Error getting character block count from database or too many character blocks.\n"), (LPCTSTR)filenameIn.c_str());
has_errors = true;
}
}
else {
_ftprintf(stderr, wxT("%s: error ZCC0028: Error getting character blocks from database. Please make sure the file is ZRCola.zrc compatible.\n"), (LPCTSTR)filenameIn.c_str());
has_errors = true;
}
// Phase 2: Parse characters and build indexes.
for (; !ZRCola::DBSource::IsEOF(rs); rs->MoveNext()) { for (; !ZRCola::DBSource::IsEOF(rs); rs->MoveNext()) {
// Read character from the database. // Read character from the database.
ZRCola::DBSource::character chr; ZRCola::DBSource::character chr;
@@ -766,33 +789,63 @@ int _tmain(int argc, _TCHAR *argv[])
has_errors = true; has_errors = true;
} }
// Phase 2: Build related character lists. // Phase 3: Build related character lists.
chrs.build_related(); chrs.build_related();
ZRCola::character_db db; {
ZRCola::character_db db;
// Preallocate memory. // Preallocate memory.
db.idxChr.reserve(count); db.idxChr.reserve(count);
db.data .reserve(count*4); db.data.reserve(count * 4);
// Phase 3: Parse characters and build index and data. // Phase 4: Parse characters and build index and data.
for (auto chr = chrs.cbegin(), chr_end = chrs.cend(); chr != chr_end; ++chr) { for (auto chr = chrs.cbegin(), chr_end = chrs.cend(); chr != chr_end; ++chr) {
// Add character to index and data. // Add character to index and data.
db << *chr; db << *chr;
// Add description (and keywords) to index. // Add description (and keywords) to index.
idxChrDsc .add_keywords(chr->second.terms, chr->first, 0); idxChrDsc.add_keywords(chr->second.terms, chr->first, 0);
idxChrDscSub.add_keywords(chr->second.terms, chr->first, 3); idxChrDscSub.add_keywords(chr->second.terms, chr->first, 3);
}
// Mark category used. // Write characters to file.
categories_used.insert(chr->second.cat); db.idxChr.sort();
idxChrDsc.save(db.idxDsc);
idxChrDscSub.save(db.idxDscSub);
dst << ZRCola::character_rec(db);
} }
// Write characters to file. {
db.idxChr.sort(); ZRCola::chrblk_db db;
idxChrDsc .save(db.idxDsc );
idxChrDscSub.save(db.idxDscSub); // Preallocate memory.
dst << ZRCola::character_rec(db); db.idxChrId.reserve(chrs.idxChrBlk.size());
db.idxFirst.reserve(chrs.idxChrBlk.size());
db.idxRank.reserve(chrs.idxChrBlk.size());
db.data.reserve(chrs.idxChrBlk.size() * 16);
// Phase 5: Parse character blocks and build index and data.
for (auto& cb : chrs.idxChrBlk)
{
if (!cb.second.used) {
// Skip unused character blocks.
continue;
}
if (build_pot)
pot.insert(cb.second.name);
// Add character block to index and data.
db << cb;
}
// Write character blocks to file.
db.idxChrId.sort();
db.idxFirst.sort();
db.idxRank.sort();
dst << ZRCola::chrblk_rec(db);
}
} else { } else {
_ftprintf(stderr, wxT("%s: error ZCC0017: Error getting character count from database or too many characters.\n"), (LPCTSTR)filenameIn.c_str()); _ftprintf(stderr, wxT("%s: error ZCC0017: Error getting character count from database or too many characters.\n"), (LPCTSTR)filenameIn.c_str());
has_errors = true; has_errors = true;
@@ -803,52 +856,6 @@ int _tmain(int argc, _TCHAR *argv[])
} }
} }
{
// Get character categories.
com_obj<ADORecordset> rs;
if (src.SelectCharacterCategories(rs)) {
size_t count = src.GetRecordsetCount(rs);
if (count < 0xffffffff) { // 4G check (-1 is reserved for error condition)
ZRCola::DBSource::chrcat cc;
ZRCola::chrcat_db db;
// Preallocate memory.
db.idxChrCat.reserve(count);
db.idxRank .reserve(count);
db.data .reserve(count*4);
// Parse character categories and build index and data.
for (; !ZRCola::DBSource::IsEOF(rs); rs->MoveNext()) {
// Read character category from the database.
if (src.GetCharacterCategory(rs, cc)) {
if (build_pot)
pot.insert(cc.name);
if (categories_used.find(cc.cat) == categories_used.end()) {
// Skip empty character categories.
continue;
}
// Add character category to index and data.
db << cc;
} else
has_errors = true;
}
// Write character categories to file.
db.idxChrCat.sort();
db.idxRank .sort();
dst << ZRCola::chrcat_rec(db);
} else {
_ftprintf(stderr, wxT("%s: error ZCC0019: Error getting character category count from database or too many character categories.\n"), (LPCTSTR)filenameIn.c_str());
has_errors = true;
}
} else {
_ftprintf(stderr, wxT("%s: error ZCC0018: Error getting character categories from database. Please make sure the file is ZRCola.zrc compatible.\n"), (LPCTSTR)filenameIn.c_str());
has_errors = true;
}
}
{ {
// Get characters tags. // Get characters tags.
com_obj<ADORecordset> rs; com_obj<ADORecordset> rs;
@@ -981,10 +988,10 @@ int _tmain(int argc, _TCHAR *argv[])
<< "\"Content-Transfer-Encoding: 8bit\\n\"" << endl << "\"Content-Transfer-Encoding: 8bit\\n\"" << endl
<< "\"X-Generator: ZRColaCompile\\n\"" << endl; << "\"X-Generator: ZRColaCompile\\n\"" << endl;
wstring_convert<codecvt_utf8<wchar_t>> conv; charset_encoder<wchar_t, char> conv(stdex::wchar_t_charset, charset_id::utf8);
for (auto p = pot.cbegin(); p != pot.cend(); ++p) { for (auto p = pot.cbegin(); p != pot.cend(); ++p) {
// Convert UTF-16 to UTF-8 and escape. // Convert UTF-16 to UTF-8 and escape.
string t(conv.to_bytes(*p)), u; string t(conv.convert(*p)), u;
for (size_t i = 0, n = t.size(); i < n; i++) { for (size_t i = 0, n = t.size(); i < n; i++) {
char c = t[i]; char c = t[i];
switch (c) { switch (c) {

View File

@@ -39,7 +39,7 @@
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<IntDir>temp\$(ProjectName).$(Platform).$(Configuration).$(PlatformToolset)\</IntDir> <IntDir>temp\$(ProjectName).$(Platform).$(Configuration)\</IntDir>
<OutDir>..\output\$(Platform).$(Configuration)\</OutDir> <OutDir>..\output\$(Platform).$(Configuration)\</OutDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>

View File

@@ -4,7 +4,7 @@
1. Install prerequisites: `sudo dnf install git cmake gcc gcc-c++ make libatomic` 1. Install prerequisites: `sudo dnf install git cmake gcc gcc-c++ make libatomic`
2. Clone this Git repository: `git clone --recursive https://github.com/Amebis/ZRCola.git` 2. Clone this Git repository: `git clone --recursive https://git.amebis.si/Amebis/ZRCola.git`
3. Build ZRColaWS: `make -C ZRCola/ZRColaWS` 3. Build ZRColaWS: `make -C ZRCola/ZRColaWS`

View File

@@ -5,7 +5,7 @@
#pragma once #pragma once
#include <stdex/sal.hpp> #include <stdex/compat.hpp>
#include <iconv.h> #include <iconv.h>
#include <cstring> #include <cstring>
#include <stdexcept> #include <stdexcept>

View File

@@ -23,7 +23,7 @@ transet_db ts_db;
langchar_db lc_db; langchar_db lc_db;
language_db lang_db; language_db lang_db;
// character_db chr_db; // character_db chr_db;
// chrcat_db cc_db; // chrblk_db cb_db;
// chrtag_db ct_db; // chrtag_db ct_db;
// tagname_db tn_db; // tagname_db tn_db;
// highlight_db h_db; // highlight_db h_db;
@@ -84,11 +84,11 @@ static void load_database()
// OATPP_LOGE(__FUNCTION__, "Error reading character data from " PREFIX "/share/zrcola/ZRCola.zrcdb."); // OATPP_LOGE(__FUNCTION__, "Error reading character data from " PREFIX "/share/zrcola/ZRCola.zrcdb.");
// chr_db.clear(); // chr_db.clear();
// } // }
// } else if (id == chrcat_rec::id()) { // } else if (id == chrblk_rec::id()) {
// dat >> chrcat_rec(cc_db); // dat >> chrblk_rec(cb_db);
// if (!dat.good()) { // if (!dat.good()) {
// OATPP_LOGE(__FUNCTION__, "Error reading character category data from " PREFIX "/share/zrcola/ZRCola.zrcdb."); // OATPP_LOGE(__FUNCTION__, "Error reading character block data from " PREFIX "/share/zrcola/ZRCola.zrcdb.");
// cc_db.clear(); // cb_db.clear();
// } // }
// } else if (id == chrtag_rec::id()) { // } else if (id == chrtag_rec::id()) {
// dat >> chrtag_rec(ct_db); // dat >> chrtag_rec(ct_db);

View File

@@ -18,7 +18,7 @@ extern ZRCola::transet_db ts_db;
extern ZRCola::langchar_db lc_db; extern ZRCola::langchar_db lc_db;
extern ZRCola::language_db lang_db; extern ZRCola::language_db lang_db;
// extern ZRCola::character_db chr_db; // extern ZRCola::character_db chr_db;
// extern ZRCola::chrcat_db cc_db; // extern ZRCola::chrblk_db cb_db;
// extern ZRCola::chrtag_db ct_db; // extern ZRCola::chrtag_db ct_db;
// extern ZRCola::tagname_db tn_db; // extern ZRCola::tagname_db tn_db;
// extern ZRCola::highlight_db h_db; // extern ZRCola::highlight_db h_db;

View File

@@ -20,11 +20,7 @@
</ResourceCompile> </ResourceCompile>
<Link> <Link>
<EnableCOMDATFolding>false</EnableCOMDATFolding> <EnableCOMDATFolding>false</EnableCOMDATFolding>
<SetChecksum>true</SetChecksum>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<Target Name="Sign" Condition="'$(ManifestCertificateThumbprint)' != '' and ('$(ConfigurationType)' == 'Application' or '$(ConfigurationType)' == 'DynamicLibrary')" AfterTargets="_Manifest" BeforeTargets="RegisterOutput" Inputs="$(OutDir)$(TargetName)$(TargetExt)" Outputs="$(IntDir)$(TargetName).sign">
<Message Text="Signing output file..." />
<Exec Command="signtool.exe sign /du &quot;https://www.amebis.si&quot; /sha1 &quot;%ManifestCertificateThumbprint%&quot; /fd sha256 /q &quot;$(TargetPath)&quot;" />
<Touch Files="$(IntDir)$(TargetName).sign" AlwaysCreate="true" />
</Target>
</Project> </Project>

View File

@@ -24,9 +24,12 @@
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile> </ResourceCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<Target Name="Sign" Condition="'$(ManifestCertificateThumbprint)' != '' and ('$(ConfigurationType)' == 'Application' or '$(ConfigurationType)' == 'DynamicLibrary')" AfterTargets="_Manifest" BeforeTargets="RegisterOutput" Inputs="$(OutDir)$(TargetName)$(TargetExt)" Outputs="$(IntDir)$(TargetName).sign"> <Target Name="SignLocal" Condition="('$(ConfigurationType)' == 'Application' or '$(ConfigurationType)' == 'DynamicLibrary') and '$(ManifestCertificateThumbprint)' != ''" AfterTargets="_Manifest" BeforeTargets="RegisterOutput" Inputs="$(OutDir)$(TargetName)$(TargetExt)" Outputs="$(IntDir)$(TargetName).sign">
<Message Text="Signing output file..." /> <Exec Command="signtool.exe sign /sha1 &quot;$(ManifestCertificateThumbprint)&quot; /fd SHA256 /tr &quot;$(ManifestTimestampRFC3161Url)&quot; /td SHA256 /q &quot;$(TargetPath)&quot;" />
<Exec Command="signtool.exe sign /sha1 &quot;%ManifestCertificateThumbprint%&quot; /fd sha256 /tr &quot;%ManifestTimestampRFC3161Url%&quot; /td sha256 /q &quot;$(TargetPath)&quot;" /> <Touch Files="$(IntDir)$(TargetName).sign" AlwaysCreate="true" />
</Target>
<Target Name="SignAzure" Condition="('$(ConfigurationType)' == 'Application' or '$(ConfigurationType)' == 'DynamicLibrary') and exists('$(APPDATA)\Microsoft.Trusted.Signing.Client.json')" AfterTargets="_Manifest" BeforeTargets="RegisterOutput" Inputs="$(OutDir)$(TargetName)$(TargetExt)" Outputs="$(IntDir)$(TargetName).sign">
<Exec Command="signtool.exe sign /dlib &quot;$(USERPROFILE)\.nuget\packages\microsoft.trusted.signing.client\1.0.53\bin\$(PreferredToolArchitecture)\Azure.CodeSigning.Dlib.dll&quot; /dmdf &quot;$(APPDATA)\Microsoft.Trusted.Signing.Client.json&quot; /fd SHA256 /tr &quot;http://timestamp.acs.microsoft.com&quot; /td SHA256 /q &quot;$(TargetPath)&quot;" />
<Touch Files="$(IntDir)$(TargetName).sign" AlwaysCreate="true" /> <Touch Files="$(IntDir)$(TargetName).sign" AlwaysCreate="true" />
</Target> </Target>
</Project> </Project>

View File

@@ -12,8 +12,8 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<_PropertySheetDisplayName>ZRCola Common</_PropertySheetDisplayName> <_PropertySheetDisplayName>ZRCola Common</_PropertySheetDisplayName>
<IntDir>temp\$(MSBuildProjectName).$(Platform).$(Configuration).$(PlatformToolset)\</IntDir> <IntDir>temp\$(MSBuildProjectName).$(Platform).$(Configuration)\</IntDir>
<OutDir>temp\$(MSBuildProjectName).$(Platform).$(Configuration).$(PlatformToolset)\</OutDir> <OutDir>temp\$(MSBuildProjectName).$(Platform).$(Configuration)\</OutDir>
<IncludePath>$(WXWIN)\include\msvc;$(WXWIN)\include;$(IncludePath)</IncludePath> <IncludePath>$(WXWIN)\include\msvc;$(WXWIN)\include;$(IncludePath)</IncludePath>
<SourcePath>$(WXWIN)\src\aui;$(WXWIN)\src\cocoa;$(WXWIN)\src\common;$(WXWIN)\src\dfb;$(WXWIN)\src\expat;$(WXWIN)\src\generic;$(WXWIN)\src\gtk;$(WXWIN)\src\gtk1;$(WXWIN)\src\html;$(WXWIN)\src\jpeg;$(WXWIN)\src\motif;$(WXWIN)\src\msdos;$(WXWIN)\src\msw;$(WXWIN)\src\os2;$(WXWIN)\src\osx;$(WXWIN)\src\png;$(WXWIN)\src\propgrid;$(WXWIN)\src\regex;$(WXWIN)\src\ribbon;$(WXWIN)\src\richtext;$(WXWIN)\src\stc;$(WXWIN)\src\tiff;$(WXWIN)\src\univ;$(WXWIN)\src\unix;$(WXWIN)\src\x11;$(WXWIN)\src\xml;$(WXWIN)\src\xrc;$(WXWIN)\src\zlib;$(SourcePath)</SourcePath> <SourcePath>$(WXWIN)\src\aui;$(WXWIN)\src\cocoa;$(WXWIN)\src\common;$(WXWIN)\src\dfb;$(WXWIN)\src\expat;$(WXWIN)\src\generic;$(WXWIN)\src\gtk;$(WXWIN)\src\gtk1;$(WXWIN)\src\html;$(WXWIN)\src\jpeg;$(WXWIN)\src\motif;$(WXWIN)\src\msdos;$(WXWIN)\src\msw;$(WXWIN)\src\os2;$(WXWIN)\src\osx;$(WXWIN)\src\png;$(WXWIN)\src\propgrid;$(WXWIN)\src\regex;$(WXWIN)\src\ribbon;$(WXWIN)\src\richtext;$(WXWIN)\src\stc;$(WXWIN)\src\tiff;$(WXWIN)\src\univ;$(WXWIN)\src\unix;$(WXWIN)\src\x11;$(WXWIN)\src\xml;$(WXWIN)\src\xrc;$(WXWIN)\src\zlib;$(SourcePath)</SourcePath>
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
@@ -31,6 +31,7 @@
<DisableSpecificWarnings>4100;4505</DisableSpecificWarnings> <DisableSpecificWarnings>4100;4505</DisableSpecificWarnings>
<SupportJustMyCode>false</SupportJustMyCode> <SupportJustMyCode>false</SupportJustMyCode>
<EnablePREfast>true</EnablePREfast> <EnablePREfast>true</EnablePREfast>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>

View File

@@ -9,7 +9,7 @@
// Product version as a single DWORD // Product version as a single DWORD
// Note: Used for version comparison within C/C++ code. // Note: Used for version comparison within C/C++ code.
// //
#define PRODUCT_VERSION 0x02070000 #define PRODUCT_VERSION 0x02070200
// //
// Product version by components // Product version by components
@@ -19,26 +19,26 @@
// //
#define PRODUCT_VERSION_MAJ 2 #define PRODUCT_VERSION_MAJ 2
#define PRODUCT_VERSION_MIN 7 #define PRODUCT_VERSION_MIN 7
#define PRODUCT_VERSION_REV 0 #define PRODUCT_VERSION_REV 2
#define PRODUCT_VERSION_BUILD 0 #define PRODUCT_VERSION_BUILD 0
// //
// Human readable product version and build year for UI // Human readable product version and build year for UI
// //
#define PRODUCT_VERSION_STR "2.7" #define PRODUCT_VERSION_STR "2.7.2"
#define PRODUCT_BUILD_YEAR_STR "2023" #define PRODUCT_BUILD_YEAR_STR "2025"
// //
// Numerical version presentation for ProductVersion propery in // Numerical version presentation for ProductVersion property in
// MSI packages (syntax: N.N[.N[.N]]) // MSI packages (syntax: N.N[.N[.N]])
// //
#define PRODUCT_VERSION_INST "2.7" #define PRODUCT_VERSION_INST "2.7.2"
// //
// The product code for ProductCode property in MSI packages // The product code for ProductCode property in MSI packages
// Replace with new on every version change, regardless how minor it is. // Replace with new on every version change, regardless how minor it is.
// //
#define PRODUCT_VERSION_GUID "{BD675AE4-7800-412A-9F89-1C213B722B16}" #define PRODUCT_VERSION_GUID "{4B9FEEBE-280F-414D-BC8D-CB091F00C48F}"
// //
// The product vendor and application name for configuration keeping. // The product vendor and application name for configuration keeping.

View File

@@ -66,7 +66,6 @@
<ClCompile Include="..\src\common.cpp" /> <ClCompile Include="..\src\common.cpp" />
<ClCompile Include="..\src\highlight.cpp" /> <ClCompile Include="..\src\highlight.cpp" />
<ClCompile Include="..\src\language.cpp" /> <ClCompile Include="..\src\language.cpp" />
<ClCompile Include="..\src\mapping.cpp" />
<ClCompile Include="..\src\pch.cpp"> <ClCompile Include="..\src\pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader> <PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile> </ClCompile>

View File

@@ -14,9 +14,6 @@
<ClCompile Include="..\src\pch.cpp"> <ClCompile Include="..\src\pch.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\mapping.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\translate.cpp"> <ClCompile Include="..\src\translate.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>

View File

@@ -39,135 +39,11 @@ namespace ZRCola {
size_t wcsnlen(_In_z_count_(count) const char_t* str, _In_ size_t count); size_t wcsnlen(_In_z_count_(count) const char_t* str, _In_ size_t count);
#endif #endif
#pragma pack(push)
#pragma pack(2)
///
/// Character category ID type
/// Two letter abbreviation, non-terminated
///
struct chrcatid_t {
char data[2];
inline chrcatid_t& operator=(const chrcatid_t &src)
{
data[0] = src.data[0];
data[1] = src.data[1];
return *this;
}
inline chrcatid_t& operator=(const char *src)
{
data[1] = (data[0] = src[0]) != 0 ? src[1] : 0;
return *this;
}
///
/// Blank character category
///
static const chrcatid_t blank;
};
#pragma pack(pop)
/// ///
/// Compares two character category IDs /// Character block ID
/// ///
/// \param[in] a First character category ID typedef uint16_t chrblkid_t;
/// \param[in] b Second character category ID
///
/// \returns
/// - true when \p a == \p b
/// - false otherwise
///
inline bool operator==(const chrcatid_t &a, const chrcatid_t & b)
{
return
a.data[0] == b.data[0] &&
(a.data[0] == 0 || a.data[1] == b.data[1]);
}
///
/// Compares two character category IDs
///
/// \param[in] a First character category ID
/// \param[in] b Second character category ID
///
/// \returns
/// - true when \p a != \p b
/// - false otherwise
///
inline bool operator!=(const chrcatid_t &a, const chrcatid_t & b)
{
return !operator==(a, b);
}
///
/// Compares two character category IDs
///
/// \param[in] a First character category ID
/// \param[in] b Second character category ID
///
/// \returns
/// - true when \p a < \p b
/// - false otherwise
///
inline bool operator<(const chrcatid_t& a, const chrcatid_t& b)
{
if (a.data[0] < b.data[0]) return true;
else if (a.data[0] > b.data[0]) return false;
else if (a.data[1] < b.data[1]) return true;
else return false;
}
///
/// Compares two character category IDs
///
/// \param[in] a First character category ID
/// \param[in] b Second character category ID
///
/// \returns
/// - true when \p a > \p b
/// - false otherwise
///
inline bool operator>(const chrcatid_t& a, const chrcatid_t& b)
{
return operator<(b, a);
}
///
/// Compares two character category IDs
///
/// \param[in] a First character category ID
/// \param[in] b Second character category ID
///
/// \returns
/// - true when \p a <= \p b
/// - false otherwise
///
inline bool operator<=(const chrcatid_t &a, const chrcatid_t & b)
{
return !operator>(a, b);
}
///
/// Compares two character category IDs
///
/// \param[in] a First character category ID
/// \param[in] b Second character category ID
///
/// \returns
/// - true when \p a >= \p b
/// - false otherwise
///
inline bool operator>=(const chrcatid_t &a, const chrcatid_t & b)
{
return !operator<(a, b);
}
/// ///
@@ -182,7 +58,7 @@ namespace ZRCola {
/// ///
struct character { struct character {
public: public:
chrcatid_t cat; ///> Character category ID chrblkid_t blk; ///> Character block ID
protected: protected:
uint16_t chr_to; ///< Character end in \c data uint16_t chr_to; ///< Character end in \c data
@@ -191,8 +67,8 @@ namespace ZRCola {
char_t data[]; ///< Character, character description char_t data[]; ///< Character, character description
private: private:
inline character(_In_ const character &other); character(_In_ const character &other);
inline character& operator=(_In_ const character &other); character& operator=(_In_ const character &other);
public: public:
/// ///
@@ -200,22 +76,22 @@ namespace ZRCola {
/// ///
/// \param[in] chr Character /// \param[in] chr Character
/// \param[in] chr_len Number of UTF-16 characters in \p chr /// \param[in] chr_len Number of UTF-16 characters in \p chr
/// \param[in] cat Category /// \param[in] blk Unicode block
/// \param[in] desc Description /// \param[in] desc Description
/// \param[in] desc_len Number of UTF-16 characters in \p desc /// \param[in] desc_len Number of UTF-16 characters in \p desc
/// \param[in] rel Related characters list (zero delimited) /// \param[in] rel Related characters list (zero delimited)
/// \param[in] rel_len Number of UTF-16 characters in \p rel (including zero delimiters) /// \param[in] rel_len Number of UTF-16 characters in \p rel (including zero delimiters)
/// ///
inline character( character(
_In_opt_z_count_(chr_len) const char_t *chr = NULL, _In_opt_z_count_(chr_len) const char_t *chr = NULL,
_In_opt_ size_t chr_len = 0, _In_opt_ size_t chr_len = 0,
_In_opt_ chrcatid_t cat = chrcatid_t::blank, _In_opt_ chrblkid_t blk = 0,
_In_opt_z_count_(desc_len) const char_t *desc = NULL, _In_opt_z_count_(desc_len) const char_t *desc = NULL,
_In_opt_ size_t desc_len = 0, _In_opt_ size_t desc_len = 0,
_In_opt_z_count_(rel_len) const char_t *rel = NULL, _In_opt_z_count_(rel_len) const char_t *rel = NULL,
_In_opt_ size_t rel_len = 0) _In_opt_ size_t rel_len = 0)
{ {
this->cat = cat; this->blk = blk;
this->chr_to = static_cast<uint16_t>(chr_len); this->chr_to = static_cast<uint16_t>(chr_len);
if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len); if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len);
this->desc_to = static_cast<uint16_t>(this->chr_to + desc_len); this->desc_to = static_cast<uint16_t>(this->chr_to + desc_len);
@@ -224,23 +100,23 @@ namespace ZRCola {
if (rel && rel_len) memcpy(this->data + this->desc_to, rel, sizeof(char_t)*rel_len); if (rel && rel_len) memcpy(this->data + this->desc_to, rel, sizeof(char_t)*rel_len);
} }
inline const char_t* chr () const { return data; }; const char_t* chr () const { return data; };
inline char_t* chr () { return data; }; char_t* chr () { return data; };
inline const char_t* chr_end() const { return data + chr_to; }; const char_t* chr_end() const { return data + chr_to; };
inline char_t* chr_end() { return data + chr_to; }; char_t* chr_end() { return data + chr_to; };
inline uint16_t chr_len() const { return chr_to; }; uint16_t chr_len() const { return chr_to; };
inline const char_t* desc () const { return data + chr_to; }; const char_t* desc () const { return data + chr_to; };
inline char_t* desc () { return data + chr_to; }; char_t* desc () { return data + chr_to; };
inline const char_t* desc_end() const { return data + desc_to; }; const char_t* desc_end() const { return data + desc_to; };
inline char_t* desc_end() { return data + desc_to; }; char_t* desc_end() { return data + desc_to; };
inline uint16_t desc_len() const { return desc_to - chr_to; }; uint16_t desc_len() const { return desc_to - chr_to; };
inline const char_t* rel () const { return data + desc_to; }; const char_t* rel () const { return data + desc_to; };
inline char_t* rel () { return data + desc_to; }; char_t* rel () { return data + desc_to; };
inline const char_t* rel_end() const { return data + rel_to; }; const char_t* rel_end() const { return data + rel_to; };
inline char_t* rel_end() { return data + rel_to; }; char_t* rel_end() { return data + rel_to; };
inline uint16_t rel_len() const { return rel_to - desc_to; }; uint16_t rel_len() const { return rel_to - desc_to; };
}; };
#pragma pack(pop) #pragma pack(pop)
@@ -285,12 +161,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline character_db() : idxChr(data) {} character_db() : idxChr(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxChr .clear(); idxChr .clear();
idxDsc .clear(); idxDsc .clear();
@@ -299,37 +175,36 @@ namespace ZRCola {
} }
/// ///
/// Search for characters by description in given categories /// Search for characters by description in given blocks
/// ///
/// \param[in ] str Search string /// \param[in ] str Search string
/// \param[in ] cats Set of categories, character must be a part of /// \param[in ] blks Set of blocks, character must be a part of
/// \param[inout] hits (character, count) map to append full-word hits to /// \param[inout] hits (character, count) map to append full-word hits to
/// \param[inout] hits_sub (character, count) map to append partial-word hits to /// \param[inout] hits_sub (character, count) map to append partial-word hits to
/// \param[in ] fn_abort Pointer to function to periodically test for search cancellation /// \param[in ] fn_abort Pointer to function to periodically test for search cancellation
/// \param[in ] cookie Cookie for \p fn_abort call /// \param[in ] cookie Cookie for \p fn_abort call
/// ///
bool Search(_In_z_ const char_t *str, _In_ const std::set<chrcatid_t> &cats, _Inout_ std::map<string_t, charrank_t> &hits, _Inout_ std::map<string_t, charrank_t> &hits_sub, _In_opt_ bool (__cdecl *fn_abort)(void *cookie) = NULL, _In_opt_ void *cookie = NULL) const; bool Search(_In_z_ const char_t *str, _In_ const std::set<chrblkid_t> &blks, _Inout_ std::map<string_t, charrank_t> &hits, _Inout_ std::map<string_t, charrank_t> &hits_sub, _In_opt_ bool (__cdecl *fn_abort)(void *cookie) = NULL, _In_opt_ void *cookie = NULL) const;
/// ///
/// Get character category /// Get character block
/// ///
/// \param[in] chr Character /// \param[in] chr Character
/// \param[in] len Number of UTF-16 characters in \p chr /// \param[in] len Number of UTF-16 characters in \p chr
/// ///
/// \returns /// \returns
/// - Character category if character found /// - Character block if character found
/// - `ZRCola::chrcatid_t::blank` otherwise /// - 0 otherwise
/// ///
inline chrcatid_t GetCharCat(_In_z_count_(len) const char_t *chr, _In_ const size_t len) const chrblkid_t GetCharBlk(_In_z_count_(len) const char_t *chr, _In_ const size_t len) const
{ {
assert(len <= 0xffff); assert(len <= 0xffff);
std::unique_ptr<character> c((character*)new char[sizeof(character) + sizeof(char_t)*len]); std::unique_ptr<character> c((character*)new char[sizeof(character) + sizeof(char_t)*len]);
new (c.get()) character(chr, len); new (c.get()) character(chr, len);
indexChr::size_type start; indexChr::size_type start;
return idxChr.find(*c, start) ? idxChr[start].cat : chrcatid_t::blank; return idxChr.find(*c, start) ? idxChr[start].blk : 0;
} }
/// ///
/// Writes character database to a stream /// Writes character database to a stream
/// ///
@@ -414,61 +289,74 @@ namespace ZRCola {
/// ///
/// Character category database /// Character block database
/// ///
class chrcat_db { class chrblk_db {
public: public:
#pragma pack(push) #pragma pack(push)
#pragma pack(2) #pragma pack(2)
/// ///
/// Character category data /// Character block data
/// ///
struct chrcat { struct chrblk {
public: public:
chrcatid_t cat; ///< Character category ID chrblkid_t id; ///< Character block ID
uint16_t rank; ///< Character category rank uint16_t rank; ///< Character block rank
protected: protected:
uint16_t name_to; ///< Character category name end in \c data uint16_t first_to; ///< Character block first character end in \c data
char_t data[]; ///< Character category name uint16_t name_to; ///< Character block name end in \c data
char_t data[]; ///< Character block name
private: private:
inline chrcat(_In_ const chrcat &other); chrblk(_In_ const chrblk &other);
inline chrcat& operator=(_In_ const chrcat &other); chrblk& operator=(_In_ const chrblk &other);
public: public:
/// ///
/// Constructs the character category /// Constructs the character block
/// ///
/// \param[in] cat Character category ID /// \param[in] id Character block ID
/// \param[in] rank Character category rank /// \param[in] rank Character block rank
/// \param[in] name Character category name /// \param[in] first Character block first character
/// \param[in] name_len Number of UTF-16 characters in \p name /// \param[in] first_len Number of UTF-16 characters in \p first
/// \param[in] name Character block name
/// \param[in] name_len Number of UTF-16 characters in \p name
/// ///
inline chrcat( chrblk(
_In_opt_ chrcatid_t cat = chrcatid_t::blank, _In_opt_ chrblkid_t id = 0,
_In_opt_ uint16_t rank = 0, _In_opt_ uint16_t rank = 0,
_In_opt_z_count_(name_len) const char_t *name = NULL, _In_opt_z_count_(first_len) const char_t *first = NULL,
_In_opt_ size_t name_len = 0) _In_opt_ size_t first_len = 0,
_In_opt_z_count_(name_len) const char_t *name = NULL,
_In_opt_ size_t name_len = 0)
{ {
this->cat = cat; this->id = id;
this->rank = rank; this->rank = rank;
this->name_to = static_cast<uint16_t>(name_len); this->first_to = static_cast<uint16_t>(first_len);
if (name && name_len) memcpy(this->data, name, sizeof(char_t)*name_len); if (first && first_len) memcpy(this->data, first, sizeof(char_t)*first_len);
this->name_to = static_cast<uint16_t>(this->first_to + name_len);
if (name && name_len) memcpy(this->data + this->first_to, name, sizeof(char_t)*name_len);
} }
inline const char_t* name () const { return data; }; const char_t* first () const { return data; };
inline char_t* name () { return data; }; char_t* first () { return data; };
inline const char_t* name_end() const { return data + name_to; }; const char_t* first_end() const { return data + first_to; };
inline char_t* name_end() { return data + name_to; }; char_t* first_end() { return data + first_to; };
inline uint16_t name_len() const { return name_to; }; uint16_t first_len() const { return first_to; };
const char_t* name () const { return data + first_to; };
char_t* name () { return data + first_to; };
const char_t* name_end() const { return data + name_to; };
char_t* name_end() { return data + name_to; };
uint16_t name_len() const { return name_to - first_to; };
}; };
#pragma pack(pop) #pragma pack(pop)
/// ///
/// Character category index /// Character block index
/// ///
class indexChrCat : public index<uint16_t, uint32_t, chrcat> class indexChrId : public index<uint16_t, uint32_t, chrblk>
{ {
public: public:
/// ///
@@ -476,10 +364,10 @@ namespace ZRCola {
/// ///
/// \param[in] h Reference to vector holding the data /// \param[in] h Reference to vector holding the data
/// ///
indexChrCat(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrcat>(h) {} indexChrId(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrblk>(h) {}
/// ///
/// Compares two character categories by ID (for searching) /// Compares two character blocks by ID (for searching)
/// ///
/// \param[in] a Pointer to first element /// \param[in] a Pointer to first element
/// \param[in] b Pointer to second element /// \param[in] b Pointer to second element
@@ -489,19 +377,52 @@ namespace ZRCola {
/// - =0 when a == b /// - =0 when a == b
/// - >0 when a > b /// - >0 when a > b
/// ///
virtual int compare(_In_ const chrcat &a, _In_ const chrcat &b) const virtual int compare(_In_ const chrblk &a, _In_ const chrblk &b) const
{ {
if (a.cat < b.cat) return -1; if (a.id < b.id) return -1;
if (a.cat > b.cat) return 1; if (a.id > b.id) return 1;
return 0; return 0;
} }
} idxChrCat; ///< Character category index } idxChrId; ///< Character block index
///
/// First character index
///
class indexFirst : public index<uint16_t, uint32_t, chrblk>
{
public:
///
/// Constructs the index
///
/// \param[in] h Reference to vector holding the data
///
indexFirst(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrblk>(h) {}
///
/// Compares two character blocks by first character (for searching)
///
/// \param[in] a Pointer to first element
/// \param[in] b Pointer to second element
///
/// \returns
/// - <0 when a < b
/// - =0 when a == b
/// - >0 when a > b
///
virtual int compare(_In_ const chrblk &a, _In_ const chrblk &b) const
{
int r = ZRCola::CompareString(a.first(), a.first_len(), b.first(), b.first_len());
if (r != 0) return r;
return 0;
}
} idxFirst; ///< First character index
/// ///
/// Rank index /// Rank index
/// ///
class indexRank : public index<uint16_t, uint32_t, chrcat> class indexRank : public index<uint16_t, uint32_t, chrblk>
{ {
public: public:
/// ///
@@ -509,10 +430,10 @@ namespace ZRCola {
/// ///
/// \param[in] h Reference to vector holding the data /// \param[in] h Reference to vector holding the data
/// ///
indexRank(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrcat>(h) {} indexRank(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, chrblk>(h) {}
/// ///
/// Compares two character categories by ID (for searching) /// Compares two character blocks by ID (for searching)
/// ///
/// \param[in] a Pointer to first element /// \param[in] a Pointer to first element
/// \param[in] b Pointer to second element /// \param[in] b Pointer to second element
@@ -522,7 +443,7 @@ namespace ZRCola {
/// - =0 when a == b /// - =0 when a == b
/// - >0 when a > b /// - >0 when a > b
/// ///
virtual int compare(_In_ const chrcat &a, _In_ const chrcat &b) const virtual int compare(_In_ const chrblk &a, _In_ const chrblk &b) const
{ {
if (a.rank < b.rank) return -1; if (a.rank < b.rank) return -1;
if (a.rank > b.rank) return +1; if (a.rank > b.rank) return +1;
@@ -531,17 +452,17 @@ namespace ZRCola {
} }
/// ///
/// Compares two character categories by rank (for sorting) /// Compares two character blocks by rank (for sorting)
/// ///
/// \param[in] a Pointer to character category /// \param[in] a Pointer to character block
/// \param[in] b Pointer to second character category /// \param[in] b Pointer to second character block
/// ///
/// \returns /// \returns
/// - <0 when a < b /// - <0 when a < b
/// - =0 when a == b /// - =0 when a == b
/// - >0 when a > b /// - >0 when a > b
/// ///
virtual int compare_sort(_In_ const chrcat &a, _In_ const chrcat &b) const virtual int compare_sort(_In_ const chrblk &a, _In_ const chrblk &b) const
{ {
if (a.rank < b.rank) return -1; if (a.rank < b.rank) return -1;
else if (a.rank > b.rank) return +1; else if (a.rank > b.rank) return +1;
@@ -551,38 +472,43 @@ namespace ZRCola {
} }
} idxRank; ///< Rank index } idxRank; ///< Rank index
std::vector<uint16_t> data; ///< Character category data std::vector<uint16_t> data; ///< Character block data
public: public:
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline chrcat_db() : idxChrCat(data), idxRank(data) {} chrblk_db() : idxChrId(data), idxFirst(data), idxRank(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxChrCat.clear(); idxChrId.clear();
idxRank .clear(); idxFirst.clear();
data .clear(); idxRank .clear();
data .clear();
} }
/// ///
/// Writes character category database to a stream /// Writes character block database to a stream
/// ///
/// \param[in] stream Output stream /// \param[in] stream Output stream
/// \param[in] db Character category database /// \param[in] db Character block database
/// ///
/// \returns The stream \p stream /// \returns The stream \p stream
/// ///
friend std::ostream& operator <<(_In_ std::ostream& stream, _In_ const chrcat_db& db) friend std::ostream& operator <<(_In_ std::ostream& stream, _In_ const chrblk_db& db)
{ {
// Write character category index. // Write character block index.
if (stream.fail()) return stream; if (stream.fail()) return stream;
stream << db.idxChrCat; stream << db.idxChrId;
// Write first character index.
if (stream.fail()) return stream;
stream << db.idxFirst;
// Write rank index. // Write rank index.
if (stream.fail()) return stream; if (stream.fail()) return stream;
@@ -610,17 +536,21 @@ namespace ZRCola {
/// ///
/// Reads character category database from a stream /// Reads character block database from a stream
/// ///
/// \param[in ] stream Input stream /// \param[in ] stream Input stream
/// \param[out] db Character category database /// \param[out] db Character block database
/// ///
/// \returns The stream \p stream /// \returns The stream \p stream
/// ///
friend std::istream& operator >>(_In_ std::istream& stream, _Out_ chrcat_db& db) friend std::istream& operator >>(_In_ std::istream& stream, _Out_ chrblk_db& db)
{ {
// Read character category index. // Read character block index.
stream >> db.idxChrCat; stream >> db.idxChrId;
if (!stream.good()) return stream;
// Read first character index.
stream >> db.idxFirst;
if (!stream.good()) return stream; if (!stream.good()) return stream;
// Read rank index. // Read rank index.

View File

@@ -10,6 +10,7 @@
#include <Windows.h> #include <Windows.h>
#endif #endif
#include <stdex/compat.hpp> #include <stdex/compat.hpp>
#include <stdex/mapping.hpp>
#include <stdint.h> #include <stdint.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
@@ -92,7 +93,15 @@ namespace ZRCola {
struct langid_t { struct langid_t {
char data[4]; char data[4];
inline langid_t& operator=(_In_ const langid_t &src) langid_t()
{
data[0] = 0;
data[1] = 0;
data[2] = 0;
data[3] = 0;
}
langid_t& operator=(_In_ const langid_t &src)
{ {
data[0] = src.data[0]; data[0] = src.data[0];
data[1] = src.data[1]; data[1] = src.data[1];
@@ -101,7 +110,7 @@ namespace ZRCola {
return *this; return *this;
} }
inline langid_t& operator=(_In_z_ const char *src) langid_t& operator=(_In_z_ const char *src)
{ {
data[3] = ( data[3] = (
data[2] = ( data[2] = (
@@ -112,11 +121,6 @@ namespace ZRCola {
src[3] : 0; src[3] : 0;
return *this; return *this;
} }
///
/// Blank language ID
///
static const langid_t blank;
}; };
#pragma pack(pop) #pragma pack(pop)
@@ -269,7 +273,7 @@ namespace ZRCola {
/// ///
/// \returns Data reference /// \returns Data reference
/// ///
inline const T_el& at(size_type pos) const const T_el& at(size_type pos) const
{ {
return *reinterpret_cast<const T_el*>(&host[base_t::at(pos)]); return *reinterpret_cast<const T_el*>(&host[base_t::at(pos)]);
} }
@@ -282,7 +286,7 @@ namespace ZRCola {
/// ///
/// \returns Data reference /// \returns Data reference
/// ///
inline T_el& at(size_type pos) T_el& at(size_type pos)
{ {
return *reinterpret_cast<T_el*>(&host[base_t::at(pos)]); return *reinterpret_cast<T_el*>(&host[base_t::at(pos)]);
} }
@@ -295,7 +299,7 @@ namespace ZRCola {
/// ///
/// \returns Data reference /// \returns Data reference
/// ///
inline const T_el& operator[](size_type pos) const const T_el& operator[](size_type pos) const
{ {
return *reinterpret_cast<const T_el*>(&host[base_t::operator[](pos)]); return *reinterpret_cast<const T_el*>(&host[base_t::operator[](pos)]);
} }
@@ -308,7 +312,7 @@ namespace ZRCola {
/// ///
/// \returns Data reference /// \returns Data reference
/// ///
inline T_el& operator[](size_type pos) T_el& operator[](size_type pos)
{ {
return *reinterpret_cast<T_el*>(&host[base_t::operator[](pos)]); return *reinterpret_cast<T_el*>(&host[base_t::operator[](pos)]);
} }
@@ -317,7 +321,7 @@ namespace ZRCola {
/// ///
/// Sorts index /// Sorts index
/// ///
inline void sort() void sort()
{ {
qsort_s(base_t::data(), base_t::size(), sizeof(T_idx), compare_s, this); qsort_s(base_t::data(), base_t::size(), sizeof(T_idx), compare_s, this);
} }
@@ -525,7 +529,7 @@ namespace ZRCola {
/// ///
/// Clears the index /// Clears the index
/// ///
inline void clear() void clear()
{ {
std::vector< mappair_t<T_idx> >::clear(); std::vector< mappair_t<T_idx> >::clear();
keys .clear(); keys .clear();
@@ -695,7 +699,7 @@ namespace ZRCola {
} }
protected: protected:
inline int compare(_In_count_(key_len) const T_key *key, _In_ size_t key_len, size_type pos) const int compare(_In_count_(key_len) const T_key *key, _In_ size_t key_len, size_type pos) const
{ {
// Get key at position pos. // Get key at position pos.
auto pos_next = pos + 1; auto pos_next = pos + 1;
@@ -714,57 +718,15 @@ namespace ZRCola {
} }
}; };
/// ///
/// Source-destination index transformation mapping /// Source-destination index transformation mapping
/// ///
struct mapping { using mapping = stdex::mapping<size_t>;
public:
size_t src; ///< Character index in source string
size_t dst; ///< Character index in destination string
inline mapping() : src(0), dst(0) {};
inline mapping(_In_ size_t s, _In_ size_t d) : src(s), dst(d) {}
///
/// Reverses source and destination indexes
///
inline void invert() { size_t tmp = src; src = dst; dst = tmp; }
};
/// ///
/// A vector for destination-source index transformation mapping /// A vector for destination-source index transformation mapping
/// ///
class mapping_vector : public std::vector<mapping> { using mapping_vector = std::vector<mapping>;
public:
///
/// Transforms character index of destination to source
///
/// \param[in] decmp Character index in destination string
///
/// \returns Character index in source string
///
size_t to_src(_In_ size_t dst) const;
///
/// Transforms source index to destination index
///
/// \param[in] cmp Character index in source string
///
/// \returns Character index in destination string
///
size_t to_dst(_In_ size_t src) const;
///
/// Reverses source and destination indexes
///
inline void invert()
{
for (iterator i = begin(), iEnd = end(); i != iEnd; ++i)
i->invert();
}
};
/// ///
/// Binary compares two strings /// Binary compares two strings

View File

@@ -48,8 +48,8 @@ namespace ZRCola {
char_t data[]; ///< Character char_t data[]; ///< Character
private: private:
inline highlight(_In_ const highlight &other); highlight(_In_ const highlight &other);
inline highlight& operator=(_In_ const highlight &other); highlight& operator=(_In_ const highlight &other);
public: public:
/// ///
@@ -59,7 +59,7 @@ namespace ZRCola {
/// \param[in] chr Character /// \param[in] chr Character
/// \param[in] chr_len Number of UTF-16 characters in \p chr /// \param[in] chr_len Number of UTF-16 characters in \p chr
/// ///
inline highlight( highlight(
_In_opt_ hlghtsetid_t set = 0, _In_opt_ hlghtsetid_t set = 0,
_In_opt_z_count_(chr_len) const char_t *chr = NULL, _In_opt_z_count_(chr_len) const char_t *chr = NULL,
_In_opt_ size_t chr_len = 0) _In_opt_ size_t chr_len = 0)
@@ -69,13 +69,13 @@ namespace ZRCola {
if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len); if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len);
} }
inline const char_t* chr () const { return data; }; const char_t* chr () const { return data; };
inline char_t* chr () { return data; }; char_t* chr () { return data; };
inline const char_t* chr_end() const { return data + chr_to; }; const char_t* chr_end() const { return data + chr_to; };
inline char_t* chr_end() { return data + chr_to; }; char_t* chr_end() { return data + chr_to; };
inline uint16_t chr_len() const { return chr_to; }; uint16_t chr_len() const { return chr_to; };
inline char_t chr_at(_In_ size_t i) const char_t chr_at(_In_ size_t i) const
{ {
return i < chr_to ? data[i] : 0; return i < chr_to ? data[i] : 0;
} }
@@ -142,12 +142,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline highlight_db() : idxChr(data) {} highlight_db() : idxChr(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxChr.clear(); idxChr.clear();
data .clear(); data .clear();

View File

@@ -15,7 +15,7 @@
namespace ZRCola { namespace ZRCola {
typedef stdex::idrec::record<character_db, recordid_t, 0x524843 /*"CHR"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> character_rec; typedef stdex::idrec::record<character_db, recordid_t, 0x524843 /*"CHR"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> character_rec;
typedef stdex::idrec::record<chrcat_db, recordid_t, 0x544343 /*"CCT"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> chrcat_rec; typedef stdex::idrec::record<chrblk_db, recordid_t, 0x4c4243 /*"CBL"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> chrblk_rec;
typedef stdex::idrec::record<highlight_db, recordid_t, 0x484748 /*"HGH"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> highlight_rec; typedef stdex::idrec::record<highlight_db, recordid_t, 0x484748 /*"HGH"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> highlight_rec;
typedef stdex::idrec::record<langchar_db, recordid_t, 0x432d4c /*"L-C"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> langchar_rec; typedef stdex::idrec::record<langchar_db, recordid_t, 0x432d4c /*"L-C"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> langchar_rec;
typedef stdex::idrec::record<language_db, recordid_t, 0x474e4c /*"LNG"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> language_rec; typedef stdex::idrec::record<language_db, recordid_t, 0x474e4c /*"LNG"*/, recordsize_t, ZRCOLA_RECORD_ALIGN> language_rec;

View File

@@ -38,8 +38,8 @@ namespace ZRCola {
char_t data[]; ///< Character char_t data[]; ///< Character
private: private:
inline langchar(_In_ const langchar &other); langchar(_In_ const langchar &other);
inline langchar& operator=(_In_ const langchar &other); langchar& operator=(_In_ const langchar &other);
public: public:
/// ///
@@ -49,8 +49,8 @@ namespace ZRCola {
/// \param[in] chr Character /// \param[in] chr Character
/// \param[in] chr_len Number of UTF-16 characters in \p chr /// \param[in] chr_len Number of UTF-16 characters in \p chr
/// ///
inline langchar( langchar(
_In_opt_ langid_t lang = langid_t::blank, _In_opt_ langid_t lang = langid_t(),
_In_opt_z_count_(chr_len) const char_t *chr = NULL, _In_opt_z_count_(chr_len) const char_t *chr = NULL,
_In_opt_ size_t chr_len = 0) _In_opt_ size_t chr_len = 0)
{ {
@@ -59,11 +59,11 @@ namespace ZRCola {
if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len); if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len);
} }
inline const char_t* chr () const { return data; }; const char_t* chr () const { return data; };
inline char_t* chr () { return data; }; char_t* chr () { return data; };
inline const char_t* chr_end() const { return data + chr_to; }; const char_t* chr_end() const { return data + chr_to; };
inline char_t* chr_end() { return data + chr_to; }; char_t* chr_end() { return data + chr_to; };
inline uint16_t chr_len() const { return chr_to; }; uint16_t chr_len() const { return chr_to; };
}; };
#pragma pack(pop) #pragma pack(pop)
@@ -148,7 +148,7 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline langchar_db() : idxChr(data) langchar_db() : idxChr(data)
#ifdef ZRCOLA_LANGCHAR_LANG_IDX #ifdef ZRCOLA_LANGCHAR_LANG_IDX
, idxLang(data) , idxLang(data)
#endif #endif
@@ -157,7 +157,7 @@ namespace ZRCola {
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxChr .clear(); idxChr .clear();
#ifdef ZRCOLA_LANGCHAR_LANG_IDX #ifdef ZRCOLA_LANGCHAR_LANG_IDX
@@ -277,8 +277,8 @@ namespace ZRCola {
char_t data[]; ///< Language name char_t data[]; ///< Language name
private: private:
inline language(_In_ const language &other); language(_In_ const language &other);
inline language& operator=(_In_ const language &other); language& operator=(_In_ const language &other);
public: public:
/// ///
@@ -288,8 +288,8 @@ namespace ZRCola {
/// \param[in] name Language name /// \param[in] name Language name
/// \param[in] name_len Number of UTF-16 characters in \p name /// \param[in] name_len Number of UTF-16 characters in \p name
/// ///
inline language( language(
_In_opt_ langid_t lang = langid_t::blank, _In_opt_ langid_t lang = langid_t(),
_In_opt_z_count_(name_len) const char_t *name = NULL, _In_opt_z_count_(name_len) const char_t *name = NULL,
_In_opt_ size_t name_len = 0) _In_opt_ size_t name_len = 0)
{ {
@@ -298,11 +298,11 @@ namespace ZRCola {
if (name && name_len) memcpy(this->data, name, sizeof(char_t)*name_len); if (name && name_len) memcpy(this->data, name, sizeof(char_t)*name_len);
} }
inline const char_t* name () const { return data; }; const char_t* name () const { return data; };
inline char_t* name () { return data; }; char_t* name () { return data; };
inline const char_t* name_end() const { return data + name_to; }; const char_t* name_end() const { return data + name_to; };
inline char_t* name_end() { return data + name_to; }; char_t* name_end() { return data + name_to; };
inline uint16_t name_len() const { return name_to; }; uint16_t name_len() const { return name_to; };
}; };
#pragma pack(pop) #pragma pack(pop)
@@ -345,12 +345,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline language_db() : idxLang(data) {} language_db() : idxLang(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxLang.clear(); idxLang.clear();
data .clear(); data .clear();

View File

@@ -41,8 +41,8 @@ namespace ZRCola {
char_t data[]; ///< Character char_t data[]; ///< Character
private: private:
inline chrtag(_In_ const chrtag &other); chrtag(_In_ const chrtag &other);
inline chrtag& operator=(_In_ const chrtag &other); chrtag& operator=(_In_ const chrtag &other);
public: public:
/// ///
@@ -52,7 +52,7 @@ namespace ZRCola {
/// \param[in] chr_len Number of UTF-16 characters in \p chr /// \param[in] chr_len Number of UTF-16 characters in \p chr
/// \param[in] tag Tag /// \param[in] tag Tag
/// ///
inline chrtag( chrtag(
_In_opt_z_count_(chr_len) const char_t *chr = NULL, _In_opt_z_count_(chr_len) const char_t *chr = NULL,
_In_opt_ size_t chr_len = 0, _In_opt_ size_t chr_len = 0,
_In_opt_ tagid_t tag = 0) _In_opt_ tagid_t tag = 0)
@@ -62,11 +62,11 @@ namespace ZRCola {
if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len); if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len);
} }
inline const char_t* chr () const { return data; }; const char_t* chr () const { return data; };
inline char_t* chr () { return data; }; char_t* chr () { return data; };
inline const char_t* chr_end() const { return data + chr_to; }; const char_t* chr_end() const { return data + chr_to; };
inline char_t* chr_end() { return data + chr_to; }; char_t* chr_end() { return data + chr_to; };
inline uint16_t chr_len() const { return chr_to; }; uint16_t chr_len() const { return chr_to; };
}; };
#pragma pack(pop) #pragma pack(pop)
@@ -187,12 +187,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline chrtag_db() : idxChr(data), idxTag(data) {} chrtag_db() : idxChr(data), idxTag(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxChr.clear(); idxChr.clear();
idxTag.clear(); idxTag.clear();
@@ -204,12 +204,12 @@ namespace ZRCola {
/// ///
/// \param[in ] tags Search tags /// \param[in ] tags Search tags
/// \param[in ] ch_db Character database /// \param[in ] ch_db Character database
/// \param[in ] cats Set of categories from \p ch_db, character must be a part of /// \param[in ] blks Set of blocks from \p ch_db, character must be a part of
/// \param[inout] hits (character, count) map to append hits to /// \param[inout] hits (character, count) map to append hits to
/// \param[in ] fn_abort Pointer to function to periodically test for search cancellation /// \param[in ] fn_abort Pointer to function to periodically test for search cancellation
/// \param[in ] cookie Cookie for \p fn_abort call /// \param[in ] cookie Cookie for \p fn_abort call
/// ///
bool Search(_In_ const std::map<tagid_t, uint16_t> &tags, _In_ const character_db &ch_db, _In_ const std::set<chrcatid_t> &cats, _Inout_ std::map<string_t, charrank_t> &hits, _In_opt_ bool (__cdecl *fn_abort)(void *cookie) = NULL, _In_opt_ void *cookie = NULL) const; bool Search(_In_ const std::map<tagid_t, uint16_t> &tags, _In_ const character_db &ch_db, _In_ const std::set<chrblkid_t> &blks, _Inout_ std::map<string_t, charrank_t> &hits, _In_opt_ bool (__cdecl *fn_abort)(void *cookie) = NULL, _In_opt_ void *cookie = NULL) const;
/// ///
@@ -307,8 +307,8 @@ namespace ZRCola {
char_t data[]; ///< Tag name char_t data[]; ///< Tag name
private: private:
inline tagname(_In_ const tagname &other); tagname(_In_ const tagname &other);
inline tagname& operator=(_In_ const tagname &other); tagname& operator=(_In_ const tagname &other);
public: public:
/// ///
@@ -319,7 +319,7 @@ namespace ZRCola {
/// \param[in] name Tag name /// \param[in] name Tag name
/// \param[in] name_len Number of UTF-16 characters in \p name /// \param[in] name_len Number of UTF-16 characters in \p name
/// ///
inline tagname( tagname(
_In_opt_ tagid_t tag = 0, _In_opt_ tagid_t tag = 0,
_In_opt_ uint32_t locale = 0, _In_opt_ uint32_t locale = 0,
_In_opt_z_count_(name_len) const char_t *name = NULL, _In_opt_z_count_(name_len) const char_t *name = NULL,
@@ -331,11 +331,11 @@ namespace ZRCola {
if (name && name_len) memcpy(this->data, name, sizeof(char_t)*name_len); if (name && name_len) memcpy(this->data, name, sizeof(char_t)*name_len);
} }
inline const char_t* name () const { return data; }; const char_t* name () const { return data; };
inline char_t* name () { return data; }; char_t* name () { return data; };
inline const char_t* name_end() const { return data + name_to; }; const char_t* name_end() const { return data + name_to; };
inline char_t* name_end() { return data + name_to; }; char_t* name_end() { return data + name_to; };
inline uint16_t name_len() const { return name_to; }; uint16_t name_len() const { return name_to; };
/// ///
/// Compares two names /// Compares two names
@@ -355,7 +355,7 @@ namespace ZRCola {
/// The function does not treat \\0 characters as terminators for performance reasons. /// The function does not treat \\0 characters as terminators for performance reasons.
/// Therefore \p count_a and \p count_b must represent exact string lengths. /// Therefore \p count_a and \p count_b must represent exact string lengths.
/// ///
static inline int CompareName(_In_ uint32_t locale, _In_z_count_(count_a) const char_t *str_a, _In_ uint16_t count_a, _In_z_count_(count_b) const char_t *str_b, _In_ uint16_t count_b) static int CompareName(_In_ uint32_t locale, _In_z_count_(count_a) const char_t *str_a, _In_ uint16_t count_a, _In_z_count_(count_b) const char_t *str_b, _In_ uint16_t count_b)
{ {
#ifdef _WIN32 #ifdef _WIN32
switch (::CompareString(locale, SORT_STRINGSORT | NORM_IGNORECASE, str_a, count_a, str_b, count_b)) { switch (::CompareString(locale, SORT_STRINGSORT | NORM_IGNORECASE, str_a, count_a, str_b, count_b)) {
@@ -373,7 +373,9 @@ namespace ZRCola {
std::transform(a.begin(), a.end(), a.begin(), tolower); std::transform(a.begin(), a.end(), a.begin(), tolower);
std::transform(b.begin(), b.end(), b.begin(), tolower); std::transform(b.begin(), b.end(), b.begin(), tolower);
auto &coll = std::use_facet<std::collate<char_t>>(std::locale()); auto &coll = std::use_facet<std::collate<char_t>>(std::locale());
return coll.compare(&*a.cbegin(), &*a.cend(), &*b.cbegin(), &*b.cend()); return coll.compare(
a.data(), a.data() + a.size(),
b.data(), b.data() + b.size());
#endif #endif
} }
}; };
@@ -484,12 +486,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline tagname_db() : idxName(data), idxTag(data) {} tagname_db() : idxName(data), idxTag(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxName.clear(); idxName.clear();
idxTag .clear(); idxTag .clear();

View File

@@ -12,16 +12,6 @@ namespace ZRCola {
class translation_db; class translation_db;
} }
///
/// Reads translation database from a stream
///
/// \param[in ] stream Input stream
/// \param[out] db Translation database
///
/// \returns The stream \p stream
///
inline std::istream& operator >>(_In_ std::istream& stream, _Out_ ZRCola::translation_db &db);
#include <algorithm> #include <algorithm>
#include <istream> #include <istream>
#include <ostream> #include <ostream>
@@ -87,8 +77,8 @@ namespace ZRCola {
char_t data[]; ///< Destination string and source character char_t data[]; ///< Destination string and source character
private: private:
inline translation(_In_ const translation &other); translation(_In_ const translation &other);
inline translation& operator=(_In_ const translation &other); translation& operator=(_In_ const translation &other);
public: public:
/// ///
@@ -102,7 +92,7 @@ namespace ZRCola {
/// \param[in] src Source character /// \param[in] src Source character
/// \param[in] src_len Number of UTF-16 characters in \p src /// \param[in] src_len Number of UTF-16 characters in \p src
/// ///
inline translation( translation(
_In_opt_ transetid_t set = 0, _In_opt_ transetid_t set = 0,
_In_opt_ uint16_t dst_rank = 0, _In_opt_ uint16_t dst_rank = 0,
_In_opt_z_count_(dst_len) const char_t *dst = NULL, _In_opt_z_count_(dst_len) const char_t *dst = NULL,
@@ -120,24 +110,24 @@ namespace ZRCola {
if (src && src_len) memcpy(this->data + this->dst_to, src, sizeof(char_t)*src_len); if (src && src_len) memcpy(this->data + this->dst_to, src, sizeof(char_t)*src_len);
} }
inline const char_t* dst () const { return data; }; const char_t* dst () const { return data; };
inline char_t* dst () { return data; }; char_t* dst () { return data; };
inline const char_t* dst_end() const { return data + dst_to; }; const char_t* dst_end() const { return data + dst_to; };
inline char_t* dst_end() { return data + dst_to; }; char_t* dst_end() { return data + dst_to; };
inline uint16_t dst_len() const { return dst_to; }; uint16_t dst_len() const { return dst_to; };
inline char_t dst_at(_In_ size_t i) const char_t dst_at(_In_ size_t i) const
{ {
return i < dst_to ? data[i] : 0; return i < dst_to ? data[i] : 0;
} }
inline const char_t* src () const { return data + dst_to; }; const char_t* src () const { return data + dst_to; };
inline char_t* src () { return data + dst_to; }; char_t* src () { return data + dst_to; };
inline const char_t* src_end() const { return data + src_to; }; const char_t* src_end() const { return data + src_to; };
inline char_t* src_end() { return data + src_to; }; char_t* src_end() { return data + src_to; };
inline uint16_t src_len() const { return src_to - dst_to; }; uint16_t src_len() const { return src_to - dst_to; };
inline char_t src_at(_In_ size_t i) const char_t src_at(_In_ size_t i) const
{ {
size_t ii = i + dst_to; // absolute index size_t ii = i + dst_to; // absolute index
return ii < src_to ? data[ii] : 0; return ii < src_to ? data[ii] : 0;
@@ -281,12 +271,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline translation_db() : idxSrc(data), idxDst(data) {} translation_db() : idxSrc(data), idxDst(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxSrc.clear(); idxSrc.clear();
idxDst.clear(); idxDst.clear();
@@ -313,9 +303,9 @@ namespace ZRCola {
/// \param[out] output Output string (UTF-16) /// \param[out] output Output string (UTF-16)
/// \param[out] map The vector of source to destination index mappings (optional) /// \param[out] map The vector of source to destination index mappings (optional)
/// ///
inline void TranslateInv(_In_ transetid_t set, _In_z_count_(inputMax) const char_t* input, _In_ size_t inputMax, _Out_ string_t &output, _Out_opt_ std::vector<mapping>* map = NULL) const void TranslateInv(_In_ transetid_t set, _In_z_count_(inputMax) const char_t* input, _In_ size_t inputMax, _Out_ string_t &output, _Out_opt_ std::vector<mapping>* map = NULL) const
{ {
TranslateInv(set, input, inputMax, NULL, langid_t::blank, output, map); TranslateInv(set, input, inputMax, NULL, langid_t(), output, map);
} }
/// ///
@@ -427,8 +417,8 @@ namespace ZRCola {
char_t data[]; ///< Source and destination names char_t data[]; ///< Source and destination names
private: private:
inline transet(_In_ const transet &other); transet(_In_ const transet &other);
inline transet& operator=(_In_ const transet &other); transet& operator=(_In_ const transet &other);
public: public:
/// ///
@@ -440,7 +430,7 @@ namespace ZRCola {
/// \param[in] dst Translation set destination /// \param[in] dst Translation set destination
/// \param[in] dst_len Number of UTF-16 characters in \p dst /// \param[in] dst_len Number of UTF-16 characters in \p dst
/// ///
inline transet( transet(
_In_opt_ transetid_t set = 0, _In_opt_ transetid_t set = 0,
_In_opt_z_count_(src_len) const char_t *src = NULL, _In_opt_z_count_(src_len) const char_t *src = NULL,
_In_opt_ size_t src_len = 0, _In_opt_ size_t src_len = 0,
@@ -454,17 +444,17 @@ namespace ZRCola {
if (dst && dst_len) memcpy(this->data + this->src_to, dst, sizeof(char_t)*dst_len); if (dst && dst_len) memcpy(this->data + this->src_to, dst, sizeof(char_t)*dst_len);
} }
inline const char_t* src () const { return data; }; const char_t* src () const { return data; };
inline char_t* src () { return data; }; char_t* src () { return data; };
inline const char_t* src_end() const { return data + src_to; }; const char_t* src_end() const { return data + src_to; };
inline char_t* src_end() { return data + src_to; }; char_t* src_end() { return data + src_to; };
inline uint16_t src_len() const { return src_to; }; uint16_t src_len() const { return src_to; };
inline const char_t* dst () const { return data + src_to; }; const char_t* dst () const { return data + src_to; };
inline char_t* dst () { return data + src_to; }; char_t* dst () { return data + src_to; };
inline const char_t* dst_end() const { return data + dst_to; }; const char_t* dst_end() const { return data + dst_to; };
inline char_t* dst_end() { return data + dst_to; }; char_t* dst_end() { return data + dst_to; };
inline uint16_t dst_len() const { return dst_to - src_to; }; uint16_t dst_len() const { return dst_to - src_to; };
}; };
#pragma pack(pop) #pragma pack(pop)
@@ -507,12 +497,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline transet_db() : idxTranSet(data) {} transet_db() : idxTranSet(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxTranSet.clear(); idxTranSet.clear();
data .clear(); data .clear();
@@ -607,8 +597,8 @@ namespace ZRCola {
char_t data[]; ///< Translation sequence name and sets char_t data[]; ///< Translation sequence name and sets
private: private:
inline transeq(_In_ const transeq &other); transeq(_In_ const transeq &other);
inline transeq& operator=(_In_ const transeq &other); transeq& operator=(_In_ const transeq &other);
public: public:
/// ///
@@ -621,7 +611,7 @@ namespace ZRCola {
/// \param[in] sets Translation sequence destination /// \param[in] sets Translation sequence destination
/// \param[in] sets_len Number of UTF-16 characters in \p sets /// \param[in] sets_len Number of UTF-16 characters in \p sets
/// ///
inline transeq( transeq(
_In_opt_ transeqid_t seq = 0, _In_opt_ transeqid_t seq = 0,
_In_opt_ uint16_t rank = 0, _In_opt_ uint16_t rank = 0,
_In_opt_z_count_(name_len) const char_t *name = NULL, _In_opt_z_count_(name_len) const char_t *name = NULL,
@@ -637,17 +627,17 @@ namespace ZRCola {
if (sets && sets_len) memcpy(this->data + this->name_to, sets, sizeof(transetid_t)*sets_len); if (sets && sets_len) memcpy(this->data + this->name_to, sets, sizeof(transetid_t)*sets_len);
} }
inline const char_t* name () const { return data; }; const char_t* name () const { return data; };
inline char_t* name () { return data; }; char_t* name () { return data; };
inline const char_t* name_end() const { return data + name_to; }; const char_t* name_end() const { return data + name_to; };
inline char_t* name_end() { return data + name_to; }; char_t* name_end() { return data + name_to; };
inline uint16_t name_len() const { return name_to; }; uint16_t name_len() const { return name_to; };
inline const transetid_t* sets () const { return reinterpret_cast<const transetid_t*>(data + name_to); }; const transetid_t* sets () const { return reinterpret_cast<const transetid_t*>(data + name_to); };
inline transetid_t* sets () { return reinterpret_cast< transetid_t*>(data + name_to); }; transetid_t* sets () { return reinterpret_cast< transetid_t*>(data + name_to); };
inline const transetid_t* sets_end() const { return reinterpret_cast<const transetid_t*>(data + sets_to); }; const transetid_t* sets_end() const { return reinterpret_cast<const transetid_t*>(data + sets_to); };
inline transetid_t* sets_end() { return reinterpret_cast< transetid_t*>(data + sets_to); }; transetid_t* sets_end() { return reinterpret_cast< transetid_t*>(data + sets_to); };
inline uint16_t sets_len() const { return sets_to - name_to; }; uint16_t sets_len() const { return sets_to - name_to; };
}; };
#pragma pack(pop) #pragma pack(pop)
@@ -743,12 +733,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline transeq_db() : idxTranSeq(data), idxRank(data) {} transeq_db() : idxTranSeq(data), idxRank(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxTranSeq.clear(); idxTranSeq.clear();
idxRank .clear(); idxRank .clear();

View File

@@ -6,9 +6,6 @@
#include "pch.h" #include "pch.h"
const ZRCola::chrcatid_t ZRCola::chrcatid_t::blank = {};
#ifndef _WIN32 #ifndef _WIN32
_Use_decl_annotations_ _Use_decl_annotations_
@@ -31,7 +28,7 @@ size_t ZRCola::wcsnlen(const char_t *str, size_t count)
_Use_decl_annotations_ _Use_decl_annotations_
bool ZRCola::character_db::Search(const char_t *str, const std::set<chrcatid_t> &cats, std::map<string_t, charrank_t> &hits, std::map<string_t, charrank_t> &hits_sub, bool (__cdecl *fn_abort)(void *cookie), void *cookie) const bool ZRCola::character_db::Search(const char_t *str, const std::set<chrblkid_t> &blks, std::map<string_t, charrank_t> &hits, std::map<string_t, charrank_t> &hits_sub, bool (__cdecl *fn_abort)(void *cookie), void *cookie) const
{ {
assert(str); assert(str);
@@ -87,7 +84,7 @@ bool ZRCola::character_db::Search(const char_t *str, const std::set<chrcatid_t>
for (size_t i = 0, j = 0; i < val_len; i += j + 1) { for (size_t i = 0, j = 0; i < val_len; i += j + 1) {
if (fn_abort && fn_abort(cookie)) return false; if (fn_abort && fn_abort(cookie)) return false;
j = wcsnlen(val + i, val_len - i); j = wcsnlen(val + i, val_len - i);
if (cats.find(GetCharCat(val + i, j)) != cats.end()) { if (blks.find(GetCharBlk(val + i, j)) != blks.end()) {
string_t c(val + i, j); string_t c(val + i, j);
auto idx = hits.find(c); auto idx = hits.find(c);
if (idx == hits.end()) { if (idx == hits.end()) {
@@ -106,7 +103,7 @@ bool ZRCola::character_db::Search(const char_t *str, const std::set<chrcatid_t>
for (size_t i = 0, j = 0; i < val_len; i += j + 1) { for (size_t i = 0, j = 0; i < val_len; i += j + 1) {
if (fn_abort && fn_abort(cookie)) return false; if (fn_abort && fn_abort(cookie)) return false;
j = wcsnlen(val + i, val_len - i); j = wcsnlen(val + i, val_len - i);
if (cats.find(GetCharCat(val + i, j)) != cats.end()) { if (blks.find(GetCharBlk(val + i, j)) != blks.end()) {
string_t c(val + i, j); string_t c(val + i, j);
auto idx = hits_sub.find(c); auto idx = hits_sub.find(c);
if (idx == hits_sub.end()) { if (idx == hits_sub.end()) {

View File

@@ -6,19 +6,10 @@
#include "pch.h" #include "pch.h"
const ZRCola::langid_t ZRCola::langid_t::blank = {};
_Use_decl_annotations_ _Use_decl_annotations_
int ZRCola::CompareString(const char_t* str_a, size_t count_a, const char_t* str_b, size_t count_b) int ZRCola::CompareString(const char_t* str_a, size_t count_a, const char_t* str_b, size_t count_b)
{ {
for (size_t i = 0; ; i++) { return stdex::strncmp(str_a, count_a, str_b, count_b);
if (i >= count_a && i >= count_b) return 0;
else if (i >= count_a && i < count_b) return -1;
else if (i < count_a && i >= count_b) return +1;
else if (str_a[i] < str_b[i]) return -1;
else if (str_a[i] > str_b[i]) return +1;
}
} }

View File

@@ -1,68 +0,0 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#include "pch.h"
size_t ZRCola::mapping_vector::to_src(_In_ size_t dst) const
{
if (empty()) {
// One-to-one mapping.
return dst;
}
for (size_type l = 0, r = size();;) {
if (l < r) {
size_type m = (l + r) / 2;
const mapping &el = (*this)[m];
if ( dst < el.dst) r = m;
else if (el.dst < dst) l = m + 1;
else {
// An exact match found.
return el.src;
}
} else if (l) {
// We found a map interval.
const mapping &el = (*this)[l - 1];
return el.src + (dst - el.dst);
} else {
// The destination character index is left of the first transformation.
const mapping &el = (*this)[0];
return std::min<size_t>(dst, el.src);
}
}
}
size_t ZRCola::mapping_vector::to_dst(_In_ size_t src) const
{
if (empty()) {
// One-to-one mapping.
return src;
}
for (size_type l = 0, r = size();;) {
if (l < r) {
size_type m = (l + r) / 2;
const mapping &el = (*this)[m];
if ( src < el.src) r = m;
else if (el.src < src) l = m + 1;
else {
// An exact match found.
return el.dst;
}
} else if (l) {
// We found a map interval.
const mapping &el = (*this)[l - 1];
return el.dst + (src - el.src);
} else {
// The source character index is left of the first transformation.
const mapping &el = (*this)[0];
return std::min<size_t>(src, el.dst);
}
}
}

View File

@@ -14,6 +14,8 @@
#include "../include/zrcola/translate.h" #include "../include/zrcola/translate.h"
#include "../include/zrcola/tag.h" #include "../include/zrcola/tag.h"
#include <stdex/string.hpp>
#include <assert.h> #include <assert.h>
#include <algorithm> #include <algorithm>

View File

@@ -6,7 +6,7 @@
#include "pch.h" #include "pch.h"
bool ZRCola::chrtag_db::Search(_In_ const std::map<tagid_t, uint16_t> &tags, _In_ const character_db &ch_db, _In_ const std::set<chrcatid_t> &cats, _Inout_ std::map<string_t, charrank_t> &hits, _In_opt_ bool (__cdecl *fn_abort)(void *cookie), _In_opt_ void *cookie) const bool ZRCola::chrtag_db::Search(_In_ const std::map<tagid_t, uint16_t> &tags, _In_ const character_db &ch_db, _In_ const std::set<chrblkid_t> &blks, _Inout_ std::map<string_t, charrank_t> &hits, _In_opt_ bool (__cdecl *fn_abort)(void *cookie), _In_opt_ void *cookie) const
{ {
for (auto tag = tags.cbegin(), tag_end = tags.cend(); tag != tag_end; ++tag) { for (auto tag = tags.cbegin(), tag_end = tags.cend(); tag != tag_end; ++tag) {
if (fn_abort && fn_abort(cookie)) return false; if (fn_abort && fn_abort(cookie)) return false;
@@ -18,7 +18,7 @@ bool ZRCola::chrtag_db::Search(_In_ const std::map<tagid_t, uint16_t> &tags, _In
if (fn_abort && fn_abort(cookie)) return false; if (fn_abort && fn_abort(cookie)) return false;
const chrtag &ct = idxTag[i]; const chrtag &ct = idxTag[i];
uint16_t len = ct.chr_len(); uint16_t len = ct.chr_len();
if (cats.find(ch_db.GetCharCat(ct.chr(), len)) != cats.end()) { if (blks.find(ch_db.GetCharBlk(ct.chr(), len)) != blks.end()) {
string_t chr(ct.chr(), len); string_t chr(ct.chr(), len);
auto idx = hits.find(chr); auto idx = hits.find(chr);
if (idx == hits.end()) { if (idx == hits.end()) {

View File

@@ -12,7 +12,7 @@ transeq_db tsq_db;
langchar_db lc_db; langchar_db lc_db;
language_db lang_db; language_db lang_db;
character_db chr_db; character_db chr_db;
chrcat_db cc_db; chrblk_db cb_db;
chrtag_db ct_db; chrtag_db ct_db;
tagname_db tn_db; tagname_db tn_db;
highlight_db h_db; highlight_db h_db;
@@ -73,11 +73,11 @@ static void load_database()
cerr << "Error reading character data from ZRCola.zrcdb.\n"; cerr << "Error reading character data from ZRCola.zrcdb.\n";
chr_db.clear(); chr_db.clear();
} }
} else if (id == chrcat_rec::id()) { } else if (id == chrblk_rec::id()) {
dat >> chrcat_rec(cc_db); dat >> chrblk_rec(cb_db);
if (!dat.good()) { if (!dat.good()) {
cerr << "Error reading character category data from ZRCola.zrcdb.\n"; cerr << "Error reading character block data from ZRCola.zrcdb.\n";
cc_db.clear(); cb_db.clear();
} }
} else if (id == chrtag_rec::id()) { } else if (id == chrtag_rec::id()) {
dat >> chrtag_rec(ct_db); dat >> chrtag_rec(ct_db);

View File

@@ -63,7 +63,7 @@ namespace ZRCola {
/// \param[in] chr Character /// \param[in] chr Character
/// \param[in] chr_len Number of UTF-16 characters in \p chr /// \param[in] chr_len Number of UTF-16 characters in \p chr
/// ///
inline keyseq( keyseq(
_In_opt_count_(seq_count) const key_t *seq = NULL, _In_opt_count_(seq_count) const key_t *seq = NULL,
_In_opt_ size_t seq_count = 0, _In_opt_ size_t seq_count = 0,
_In_opt_z_count_(chr_len) const char_t *chr = NULL, _In_opt_z_count_(chr_len) const char_t *chr = NULL,
@@ -75,17 +75,17 @@ namespace ZRCola {
if (seq && seq_count) memcpy(this->data + this->chr_to, seq, sizeof(key_t)*seq_count); if (seq && seq_count) memcpy(this->data + this->chr_to, seq, sizeof(key_t)*seq_count);
} }
inline const char_t* chr () const { return data; }; const char_t* chr () const { return data; };
inline char_t* chr () { return data; }; char_t* chr () { return data; };
inline const char_t* chr_end() const { return data + chr_to; }; const char_t* chr_end() const { return data + chr_to; };
inline char_t* chr_end() { return data + chr_to; }; char_t* chr_end() { return data + chr_to; };
inline uint16_t chr_len() const { return chr_to; }; uint16_t chr_len() const { return chr_to; };
inline const key_t* seq () const { return reinterpret_cast<const key_t*>(data + chr_to); }; const key_t* seq () const { return reinterpret_cast<const key_t*>(data + chr_to); };
inline key_t* seq () { return reinterpret_cast< key_t*>(data + chr_to); }; key_t* seq () { return reinterpret_cast< key_t*>(data + chr_to); };
inline const key_t* seq_end() const { return reinterpret_cast<const key_t*>(data + seq_to); }; const key_t* seq_end() const { return reinterpret_cast<const key_t*>(data + seq_to); };
inline key_t* seq_end() { return reinterpret_cast< key_t*>(data + seq_to); }; key_t* seq_end() { return reinterpret_cast< key_t*>(data + seq_to); };
inline uint16_t seq_len() const { return (seq_to - chr_to) * sizeof(*data) / sizeof(key_t); }; uint16_t seq_len() const { return (seq_to - chr_to) * sizeof(*data) / sizeof(key_t); };
/// ///
/// Compares two key sequences /// Compares two key sequences
@@ -100,7 +100,7 @@ namespace ZRCola {
/// - =0 when seq_a == seq_b /// - =0 when seq_a == seq_b
/// - >0 when seq_a > seq_b /// - >0 when seq_a > seq_b
/// ///
static inline int CompareSequence(_In_ const key_t *seq_a, _In_ size_t len_a, _In_ const key_t *seq_b, _In_ size_t len_b) static int CompareSequence(_In_ const key_t *seq_a, _In_ size_t len_a, _In_ const key_t *seq_b, _In_ size_t len_b)
{ {
for (size_t i = 0; ; i++) { for (size_t i = 0; ; i++) {
if (i >= len_a && i >= len_b) return 0; if (i >= len_a && i >= len_b) return 0;
@@ -232,12 +232,12 @@ namespace ZRCola {
/// ///
/// Constructs the database /// Constructs the database
/// ///
inline keyseq_db() : idxChr(data), idxKey(data) {} keyseq_db() : idxChr(data), idxKey(data) {}
/// ///
/// Clears the database /// Clears the database
/// ///
inline void clear() void clear()
{ {
idxChr.clear(); idxChr.clear();
idxKey.clear(); idxKey.clear();
@@ -265,7 +265,7 @@ namespace ZRCola {
/// ///
/// \returns Text representation of a \p seq key sequence /// \returns Text representation of a \p seq key sequence
/// ///
static inline wxString GetSequenceAsText(_In_count_(seq_len) const keyseq_db::keyseq::key_t *seq, _In_ size_t seq_len) static wxString GetSequenceAsText(_In_count_(seq_len) const keyseq_db::keyseq::key_t *seq, _In_ size_t seq_len)
{ {
wxString str; wxString str;
return GetSequenceAsText(seq, seq_len, str) ? str : wxEmptyString; return GetSequenceAsText(seq, seq_len, str) ? str : wxEmptyString;

View File

@@ -1,167 +1,167 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2018 # Simon Rozman <simon.rozman@amebis.si>, 2018
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: libZRColaUI\n" "Project-Id-Version: libZRColaUI\n"
"POT-Creation-Date: 2018-09-19 09:05+0200\n" "POT-Creation-Date: 2022-02-17 13:29+0100\n"
"PO-Revision-Date: 2018-09-19 07:21+0000\n" "PO-Revision-Date: 2018-09-19 07:21+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2018\n"
"Language-Team: German (Germany) (https://www.transifex.com/amebis/teams/91592/de_DE/)\n" "Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: de_DE\n" "Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.1.1\n" "X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ..\n" "X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: _\n" "X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: src\n" "X-Poedit-SearchPath-0: src\n"
"X-Poedit-SearchPath-1: include\n" "X-Poedit-SearchPath-1: include\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: src/keyboard.cpp:30 src/keyboard.cpp:72 #: src/keyboard.cpp:16 src/keyboard.cpp:58
msgid "Ctrl" msgid "Ctrl"
msgstr "Strg" msgstr "Strg"
#: src/keyboard.cpp:31 src/keyboard.cpp:71 #: src/keyboard.cpp:17 src/keyboard.cpp:57
msgid "Alt" msgid "Alt"
msgstr "Alt" msgstr "Alt"
#: src/keyboard.cpp:32 src/keyboard.cpp:70 #: src/keyboard.cpp:18 src/keyboard.cpp:56
msgid "Shift" msgid "Shift"
msgstr "" msgstr ""
#: src/keyboard.cpp:45 #: src/keyboard.cpp:31
msgid "Esc" msgid "Esc"
msgstr "Esc" msgstr "Esc"
#: src/keyboard.cpp:47 #: src/keyboard.cpp:33
msgid "F1" msgid "F1"
msgstr "F1" msgstr "F1"
#: src/keyboard.cpp:48 #: src/keyboard.cpp:34
msgid "F2" msgid "F2"
msgstr "F2" msgstr "F2"
#: src/keyboard.cpp:49 #: src/keyboard.cpp:35
msgid "F3" msgid "F3"
msgstr "F3" msgstr "F3"
#: src/keyboard.cpp:50 #: src/keyboard.cpp:36
msgid "F4" msgid "F4"
msgstr "F4" msgstr "F4"
#: src/keyboard.cpp:51 #: src/keyboard.cpp:37
msgid "F5" msgid "F5"
msgstr "F5" msgstr "F5"
#: src/keyboard.cpp:52 #: src/keyboard.cpp:38
msgid "F6" msgid "F6"
msgstr "F6" msgstr "F6"
#: src/keyboard.cpp:53 #: src/keyboard.cpp:39
msgid "F7" msgid "F7"
msgstr "F7" msgstr "F7"
#: src/keyboard.cpp:54 #: src/keyboard.cpp:40
msgid "F8" msgid "F8"
msgstr "F8" msgstr "F8"
#: src/keyboard.cpp:55 #: src/keyboard.cpp:41
msgid "F9" msgid "F9"
msgstr "F9" msgstr "F9"
#: src/keyboard.cpp:56 #: src/keyboard.cpp:42
msgid "F10" msgid "F10"
msgstr "F10" msgstr "F10"
#: src/keyboard.cpp:57 #: src/keyboard.cpp:43
msgid "F11" msgid "F11"
msgstr "F11" msgstr "F11"
#: src/keyboard.cpp:58 #: src/keyboard.cpp:44
msgid "F12" msgid "F12"
msgstr "F12" msgstr "F12"
#: src/keyboard.cpp:60 #: src/keyboard.cpp:46
msgid "Print Screen" msgid "Print Screen"
msgstr "Druck" msgstr "Druck"
#: src/keyboard.cpp:61 #: src/keyboard.cpp:47
msgid "Scroll Lock" msgid "Scroll Lock"
msgstr "Rollen" msgstr "Rollen"
#: src/keyboard.cpp:62 #: src/keyboard.cpp:48
msgid "Pause" msgid "Pause"
msgstr "Pause" msgstr "Pause"
#: src/keyboard.cpp:64 #: src/keyboard.cpp:50
msgid "Backspace" msgid "Backspace"
msgstr "" msgstr ""
#: src/keyboard.cpp:65 #: src/keyboard.cpp:51
msgid "Tab" msgid "Tab"
msgstr "" msgstr ""
#: src/keyboard.cpp:66 #: src/keyboard.cpp:52
msgid "Caps Lock" msgid "Caps Lock"
msgstr "" msgstr ""
#: src/keyboard.cpp:67 #: src/keyboard.cpp:53
msgid "Return" msgid "Return"
msgstr "" msgstr ""
#: src/keyboard.cpp:68 #: src/keyboard.cpp:54
msgid "Space" msgid "Space"
msgstr "" msgstr ""
#: src/keyboard.cpp:73 #: src/keyboard.cpp:59
msgid "Menu" msgid "Menu"
msgstr "Menu" msgstr "Menu"
#: src/keyboard.cpp:75 #: src/keyboard.cpp:61
msgid "Insert" msgid "Insert"
msgstr "Einfg" msgstr "Einfg"
#: src/keyboard.cpp:76 #: src/keyboard.cpp:62
msgid "Delete" msgid "Delete"
msgstr "Entf" msgstr "Entf"
#: src/keyboard.cpp:77 #: src/keyboard.cpp:63
msgid "Page Up" msgid "Page Up"
msgstr "Bild↑" msgstr "Bild↑"
#: src/keyboard.cpp:78 #: src/keyboard.cpp:64
msgid "Page Down" msgid "Page Down"
msgstr "Bild↓" msgstr "Bild↓"
#: src/keyboard.cpp:79 #: src/keyboard.cpp:65
msgid "Home" msgid "Home"
msgstr "Pos1" msgstr "Pos1"
#: src/keyboard.cpp:80 #: src/keyboard.cpp:66
msgid "End" msgid "End"
msgstr "Ende" msgstr "Ende"
#: src/keyboard.cpp:82 #: src/keyboard.cpp:68
msgid "Left" msgid "Left"
msgstr "" msgstr ""
#: src/keyboard.cpp:83 #: src/keyboard.cpp:69
msgid "Up" msgid "Up"
msgstr "" msgstr ""
#: src/keyboard.cpp:84 #: src/keyboard.cpp:70
msgid "Right" msgid "Right"
msgstr "" msgstr ""
#: src/keyboard.cpp:85 #: src/keyboard.cpp:71
msgid "Down" msgid "Down"
msgstr "" msgstr ""
#: src/keyboard.cpp:87 #: src/keyboard.cpp:73
msgid "Num Lock" msgid "Num Lock"
msgstr "" msgstr ""

View File

@@ -1,167 +1,167 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2018 # Simon Rozman <simon.rozman@amebis.si>, 2018
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: libZRColaUI\n" "Project-Id-Version: libZRColaUI\n"
"POT-Creation-Date: 2018-09-19 09:05+0200\n" "POT-Creation-Date: 2022-02-17 13:29+0100\n"
"PO-Revision-Date: 2018-09-19 07:21+0000\n" "PO-Revision-Date: 2018-09-19 07:21+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2018\n"
"Language-Team: Russian (Russia) (https://www.transifex.com/amebis/teams/91592/ru_RU/)\n" "Language-Team: Russian (Russia) (https://app.transifex.com/amebis/teams/91592/ru_RU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: ru_RU\n" "Language: ru_RU\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Poedit 2.1.1\n" "X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ..\n" "X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: _\n" "X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: src\n" "X-Poedit-SearchPath-0: src\n"
"X-Poedit-SearchPath-1: include\n" "X-Poedit-SearchPath-1: include\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: src/keyboard.cpp:30 src/keyboard.cpp:72 #: src/keyboard.cpp:16 src/keyboard.cpp:58
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
#: src/keyboard.cpp:31 src/keyboard.cpp:71 #: src/keyboard.cpp:17 src/keyboard.cpp:57
msgid "Alt" msgid "Alt"
msgstr "Alt" msgstr "Alt"
#: src/keyboard.cpp:32 src/keyboard.cpp:70 #: src/keyboard.cpp:18 src/keyboard.cpp:56
msgid "Shift" msgid "Shift"
msgstr "Shift" msgstr "Shift"
#: src/keyboard.cpp:45 #: src/keyboard.cpp:31
msgid "Esc" msgid "Esc"
msgstr "Esc" msgstr "Esc"
#: src/keyboard.cpp:47 #: src/keyboard.cpp:33
msgid "F1" msgid "F1"
msgstr "F1" msgstr "F1"
#: src/keyboard.cpp:48 #: src/keyboard.cpp:34
msgid "F2" msgid "F2"
msgstr "F2" msgstr "F2"
#: src/keyboard.cpp:49 #: src/keyboard.cpp:35
msgid "F3" msgid "F3"
msgstr "F3" msgstr "F3"
#: src/keyboard.cpp:50 #: src/keyboard.cpp:36
msgid "F4" msgid "F4"
msgstr "F4" msgstr "F4"
#: src/keyboard.cpp:51 #: src/keyboard.cpp:37
msgid "F5" msgid "F5"
msgstr "F5" msgstr "F5"
#: src/keyboard.cpp:52 #: src/keyboard.cpp:38
msgid "F6" msgid "F6"
msgstr "F6" msgstr "F6"
#: src/keyboard.cpp:53 #: src/keyboard.cpp:39
msgid "F7" msgid "F7"
msgstr "F7" msgstr "F7"
#: src/keyboard.cpp:54 #: src/keyboard.cpp:40
msgid "F8" msgid "F8"
msgstr "F8" msgstr "F8"
#: src/keyboard.cpp:55 #: src/keyboard.cpp:41
msgid "F9" msgid "F9"
msgstr "F9" msgstr "F9"
#: src/keyboard.cpp:56 #: src/keyboard.cpp:42
msgid "F10" msgid "F10"
msgstr "F10" msgstr "F10"
#: src/keyboard.cpp:57 #: src/keyboard.cpp:43
msgid "F11" msgid "F11"
msgstr "F11" msgstr "F11"
#: src/keyboard.cpp:58 #: src/keyboard.cpp:44
msgid "F12" msgid "F12"
msgstr "F12" msgstr "F12"
#: src/keyboard.cpp:60 #: src/keyboard.cpp:46
msgid "Print Screen" msgid "Print Screen"
msgstr "Print Screen" msgstr "Print Screen"
#: src/keyboard.cpp:61 #: src/keyboard.cpp:47
msgid "Scroll Lock" msgid "Scroll Lock"
msgstr "Scroll Lock" msgstr "Scroll Lock"
#: src/keyboard.cpp:62 #: src/keyboard.cpp:48
msgid "Pause" msgid "Pause"
msgstr "Pause" msgstr "Pause"
#: src/keyboard.cpp:64 #: src/keyboard.cpp:50
msgid "Backspace" msgid "Backspace"
msgstr "Backspace" msgstr "Backspace"
#: src/keyboard.cpp:65 #: src/keyboard.cpp:51
msgid "Tab" msgid "Tab"
msgstr "Tab" msgstr "Tab"
#: src/keyboard.cpp:66 #: src/keyboard.cpp:52
msgid "Caps Lock" msgid "Caps Lock"
msgstr "Caps Lock" msgstr "Caps Lock"
#: src/keyboard.cpp:67 #: src/keyboard.cpp:53
msgid "Return" msgid "Return"
msgstr "Return" msgstr "Return"
#: src/keyboard.cpp:68 #: src/keyboard.cpp:54
msgid "Space" msgid "Space"
msgstr "Space" msgstr "Space"
#: src/keyboard.cpp:73 #: src/keyboard.cpp:59
msgid "Menu" msgid "Menu"
msgstr "Menu" msgstr "Menu"
#: src/keyboard.cpp:75 #: src/keyboard.cpp:61
msgid "Insert" msgid "Insert"
msgstr "Insert" msgstr "Insert"
#: src/keyboard.cpp:76 #: src/keyboard.cpp:62
msgid "Delete" msgid "Delete"
msgstr "Delete" msgstr "Delete"
#: src/keyboard.cpp:77 #: src/keyboard.cpp:63
msgid "Page Up" msgid "Page Up"
msgstr "Page Up" msgstr "Page Up"
#: src/keyboard.cpp:78 #: src/keyboard.cpp:64
msgid "Page Down" msgid "Page Down"
msgstr "Page Down" msgstr "Page Down"
#: src/keyboard.cpp:79 #: src/keyboard.cpp:65
msgid "Home" msgid "Home"
msgstr "Home" msgstr "Home"
#: src/keyboard.cpp:80 #: src/keyboard.cpp:66
msgid "End" msgid "End"
msgstr "End" msgstr "End"
#: src/keyboard.cpp:82 #: src/keyboard.cpp:68
msgid "Left" msgid "Left"
msgstr "Left" msgstr "Left"
#: src/keyboard.cpp:83 #: src/keyboard.cpp:69
msgid "Up" msgid "Up"
msgstr "Up" msgstr "Up"
#: src/keyboard.cpp:84 #: src/keyboard.cpp:70
msgid "Right" msgid "Right"
msgstr "Right" msgstr "Right"
#: src/keyboard.cpp:85 #: src/keyboard.cpp:71
msgid "Down" msgid "Down"
msgstr "Down" msgstr "Down"
#: src/keyboard.cpp:87 #: src/keyboard.cpp:73
msgid "Num Lock" msgid "Num Lock"
msgstr "Num Lock" msgstr "Num Lock"

View File

@@ -1,167 +1,167 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2018 # Simon Rozman <simon.rozman@amebis.si>, 2018
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: libZRColaUI\n" "Project-Id-Version: libZRColaUI\n"
"POT-Creation-Date: 2018-09-19 09:05+0200\n" "POT-Creation-Date: 2022-02-17 13:29+0100\n"
"PO-Revision-Date: 2018-09-19 07:21+0000\n" "PO-Revision-Date: 2018-09-19 07:21+0000\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2018\n"
"Language-Team: Slovenian (Slovenia) (https://www.transifex.com/amebis/teams/91592/sl_SI/)\n" "Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: sl_SI\n" "Language: sl_SI\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-Generator: Poedit 2.1.1\n" "X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ..\n" "X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: _\n" "X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: src\n" "X-Poedit-SearchPath-0: src\n"
"X-Poedit-SearchPath-1: include\n" "X-Poedit-SearchPath-1: include\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: src/keyboard.cpp:30 src/keyboard.cpp:72 #: src/keyboard.cpp:16 src/keyboard.cpp:58
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
#: src/keyboard.cpp:31 src/keyboard.cpp:71 #: src/keyboard.cpp:17 src/keyboard.cpp:57
msgid "Alt" msgid "Alt"
msgstr "Alt" msgstr "Alt"
#: src/keyboard.cpp:32 src/keyboard.cpp:70 #: src/keyboard.cpp:18 src/keyboard.cpp:56
msgid "Shift" msgid "Shift"
msgstr "Shift" msgstr "Shift"
#: src/keyboard.cpp:45 #: src/keyboard.cpp:31
msgid "Esc" msgid "Esc"
msgstr "Esc" msgstr "Esc"
#: src/keyboard.cpp:47 #: src/keyboard.cpp:33
msgid "F1" msgid "F1"
msgstr "F1" msgstr "F1"
#: src/keyboard.cpp:48 #: src/keyboard.cpp:34
msgid "F2" msgid "F2"
msgstr "F2" msgstr "F2"
#: src/keyboard.cpp:49 #: src/keyboard.cpp:35
msgid "F3" msgid "F3"
msgstr "F3" msgstr "F3"
#: src/keyboard.cpp:50 #: src/keyboard.cpp:36
msgid "F4" msgid "F4"
msgstr "F4" msgstr "F4"
#: src/keyboard.cpp:51 #: src/keyboard.cpp:37
msgid "F5" msgid "F5"
msgstr "F5" msgstr "F5"
#: src/keyboard.cpp:52 #: src/keyboard.cpp:38
msgid "F6" msgid "F6"
msgstr "F6" msgstr "F6"
#: src/keyboard.cpp:53 #: src/keyboard.cpp:39
msgid "F7" msgid "F7"
msgstr "F7" msgstr "F7"
#: src/keyboard.cpp:54 #: src/keyboard.cpp:40
msgid "F8" msgid "F8"
msgstr "F8" msgstr "F8"
#: src/keyboard.cpp:55 #: src/keyboard.cpp:41
msgid "F9" msgid "F9"
msgstr "F9" msgstr "F9"
#: src/keyboard.cpp:56 #: src/keyboard.cpp:42
msgid "F10" msgid "F10"
msgstr "F10" msgstr "F10"
#: src/keyboard.cpp:57 #: src/keyboard.cpp:43
msgid "F11" msgid "F11"
msgstr "F11" msgstr "F11"
#: src/keyboard.cpp:58 #: src/keyboard.cpp:44
msgid "F12" msgid "F12"
msgstr "F12" msgstr "F12"
#: src/keyboard.cpp:60 #: src/keyboard.cpp:46
msgid "Print Screen" msgid "Print Screen"
msgstr "Print Screen" msgstr "Print Screen"
#: src/keyboard.cpp:61 #: src/keyboard.cpp:47
msgid "Scroll Lock" msgid "Scroll Lock"
msgstr "Scroll Lock" msgstr "Scroll Lock"
#: src/keyboard.cpp:62 #: src/keyboard.cpp:48
msgid "Pause" msgid "Pause"
msgstr "Pause" msgstr "Pause"
#: src/keyboard.cpp:64 #: src/keyboard.cpp:50
msgid "Backspace" msgid "Backspace"
msgstr "Backspace" msgstr "Backspace"
#: src/keyboard.cpp:65 #: src/keyboard.cpp:51
msgid "Tab" msgid "Tab"
msgstr "Tab" msgstr "Tab"
#: src/keyboard.cpp:66 #: src/keyboard.cpp:52
msgid "Caps Lock" msgid "Caps Lock"
msgstr "Caps Lock" msgstr "Caps Lock"
#: src/keyboard.cpp:67 #: src/keyboard.cpp:53
msgid "Return" msgid "Return"
msgstr "Return" msgstr "Return"
#: src/keyboard.cpp:68 #: src/keyboard.cpp:54
msgid "Space" msgid "Space"
msgstr "preslednica" msgstr "preslednica"
#: src/keyboard.cpp:73 #: src/keyboard.cpp:59
msgid "Menu" msgid "Menu"
msgstr "Menu" msgstr "Menu"
#: src/keyboard.cpp:75 #: src/keyboard.cpp:61
msgid "Insert" msgid "Insert"
msgstr "Insert" msgstr "Insert"
#: src/keyboard.cpp:76 #: src/keyboard.cpp:62
msgid "Delete" msgid "Delete"
msgstr "Delete" msgstr "Delete"
#: src/keyboard.cpp:77 #: src/keyboard.cpp:63
msgid "Page Up" msgid "Page Up"
msgstr "Page Up" msgstr "Page Up"
#: src/keyboard.cpp:78 #: src/keyboard.cpp:64
msgid "Page Down" msgid "Page Down"
msgstr "Page Down" msgstr "Page Down"
#: src/keyboard.cpp:79 #: src/keyboard.cpp:65
msgid "Home" msgid "Home"
msgstr "Home" msgstr "Home"
#: src/keyboard.cpp:80 #: src/keyboard.cpp:66
msgid "End" msgid "End"
msgstr "End" msgstr "End"
#: src/keyboard.cpp:82 #: src/keyboard.cpp:68
msgid "Left" msgid "Left"
msgstr "Left" msgstr "Left"
#: src/keyboard.cpp:83 #: src/keyboard.cpp:69
msgid "Up" msgid "Up"
msgstr "Up" msgstr "Up"
#: src/keyboard.cpp:84 #: src/keyboard.cpp:70
msgid "Right" msgid "Right"
msgstr "Right" msgstr "Right"
#: src/keyboard.cpp:85 #: src/keyboard.cpp:71
msgid "Down" msgid "Down"
msgstr "Down" msgstr "Down"
#: src/keyboard.cpp:87 #: src/keyboard.cpp:73
msgid "Num Lock" msgid "Num Lock"
msgstr "Num Lock" msgstr "Num Lock"

Binary file not shown.

View File

@@ -10,6 +10,9 @@ msgstr ""
msgid "Albanian" msgid "Albanian"
msgstr "" msgstr ""
msgid "Alphabetic Presentation Forms"
msgstr ""
msgid "Apostrophes 1" msgid "Apostrophes 1"
msgstr "" msgstr ""
@@ -19,24 +22,42 @@ msgstr ""
msgid "Arabic" msgid "Arabic"
msgstr "" msgstr ""
msgid "Armenian"
msgstr ""
msgid "Arrows" msgid "Arrows"
msgstr "" msgstr ""
msgid "Belarusian" msgid "Belarusian"
msgstr "" msgstr ""
msgid "Block Elements"
msgstr ""
msgid "Bosnian Cyrillic" msgid "Bosnian Cyrillic"
msgstr "" msgstr ""
msgid "Bosnian Latinic" msgid "Bosnian Latinic"
msgstr "" msgstr ""
msgid "Box Drawing"
msgstr ""
msgid "C0 Controls and Basic Latin (Basic Latin)"
msgstr ""
msgid "C1 Controls and Latin-1 Supplement (Latin-1 Supplement)"
msgstr ""
msgid "CAPITAL Case" msgid "CAPITAL Case"
msgstr "" msgstr ""
msgid "CAPITAL Case » small Case" msgid "CAPITAL Case » small Case"
msgstr "" msgstr ""
msgid "CJK Symbols and Punctuation"
msgstr ""
msgid "Combine" msgid "Combine"
msgstr "" msgstr ""
@@ -49,6 +70,18 @@ msgstr ""
msgid "Combine Over" msgid "Combine Over"
msgstr "" msgstr ""
msgid "Combining Diacritical Marks"
msgstr ""
msgid "Combining Diacritical Marks Supplement"
msgstr ""
msgid "Combining Diacritical Marks for Symbols"
msgstr ""
msgid "Combining Half Marks"
msgstr ""
msgid "Combining Marks" msgid "Combining Marks"
msgstr "" msgstr ""
@@ -58,6 +91,9 @@ msgstr ""
msgid "Currencies" msgid "Currencies"
msgstr "" msgstr ""
msgid "Currency Symbols"
msgstr ""
msgid "Cyrillic" msgid "Cyrillic"
msgstr "" msgstr ""
@@ -118,6 +154,12 @@ msgstr ""
msgid "Cyrillic BdC" msgid "Cyrillic BdC"
msgstr "" msgstr ""
msgid "Cyrillic Extended-B"
msgstr ""
msgid "Cyrillic Supplement"
msgstr ""
msgid "Cyrillic » Latin (GOST2000)" msgid "Cyrillic » Latin (GOST2000)"
msgstr "" msgstr ""
@@ -130,9 +172,15 @@ msgstr ""
msgid "Diacritics" msgid "Diacritics"
msgstr "" msgstr ""
msgid "Dingbats"
msgstr ""
msgid "Encircled Characters" msgid "Encircled Characters"
msgstr "" msgstr ""
msgid "Enclosed Alphanumerics"
msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
@@ -148,6 +196,12 @@ msgstr ""
msgid "Friulian" msgid "Friulian"
msgstr "" msgstr ""
msgid "General Punctuation"
msgstr ""
msgid "Geometric Shapes"
msgstr ""
msgid "Geometrical Shapes" msgid "Geometrical Shapes"
msgstr "" msgstr ""
@@ -169,12 +223,24 @@ msgstr ""
msgid "Greek (Old)" msgid "Greek (Old)"
msgstr "" msgstr ""
msgid "Greek Extended"
msgstr ""
msgid "Greek and Coptic"
msgstr ""
msgid "Gujarati"
msgstr ""
msgid "Hebrew" msgid "Hebrew"
msgstr "" msgstr ""
msgid "Hungarian" msgid "Hungarian"
msgstr "" msgstr ""
msgid "IPA Extensions"
msgstr ""
msgid "Irish Gaelic" msgid "Irish Gaelic"
msgstr "" msgstr ""
@@ -295,6 +361,21 @@ msgstr ""
msgid "Latin BdC" msgid "Latin BdC"
msgstr "" msgstr ""
msgid "Latin Extended Additional"
msgstr ""
msgid "Latin Extended-A"
msgstr ""
msgid "Latin Extended-B"
msgstr ""
msgid "Latin Extended-C"
msgstr ""
msgid "Latin Extended-D"
msgstr ""
msgid "Latin » Cyrillic (Belarusian)" msgid "Latin » Cyrillic (Belarusian)"
msgstr "" msgstr ""
@@ -418,19 +499,7 @@ msgstr ""
msgid "Letter u" msgid "Letter u"
msgstr "" msgstr ""
msgid "Letter, Lowercase" msgid "Letterlike Symbols"
msgstr ""
msgid "Letter, Modifier"
msgstr ""
msgid "Letter, Other"
msgstr ""
msgid "Letter, Titlecase"
msgstr ""
msgid "Letter, Uppercase"
msgstr "" msgstr ""
msgid "Ligatures" msgid "Ligatures"
@@ -445,21 +514,30 @@ msgstr ""
msgid "Maltese" msgid "Maltese"
msgstr "" msgstr ""
msgid "Mark, Enclosing"
msgstr ""
msgid "Mark, Non-Spacing"
msgstr ""
msgid "Mark, Spacing Combining"
msgstr ""
msgid "Mathematical And Physical Symbols" msgid "Mathematical And Physical Symbols"
msgstr "" msgstr ""
msgid "Mathematical Operators"
msgstr ""
msgid "Metric" msgid "Metric"
msgstr "" msgstr ""
msgid "Miscellaneous Mathematical Symbols-A"
msgstr ""
msgid "Miscellaneous Mathematical Symbols-B"
msgstr ""
msgid "Miscellaneous Symbols"
msgstr ""
msgid "Miscellaneous Symbols and Arrows"
msgstr ""
msgid "Miscellaneous Technical"
msgstr ""
msgid "Modified" msgid "Modified"
msgstr "" msgstr ""
@@ -505,13 +583,7 @@ msgstr ""
msgid "Number 9" msgid "Number 9"
msgstr "" msgstr ""
msgid "Number, Decimal Digit" msgid "Number Forms"
msgstr ""
msgid "Number, Letter"
msgstr ""
msgid "Number, Other"
msgstr "" msgstr ""
msgid "Numbers" msgid "Numbers"
@@ -523,45 +595,27 @@ msgstr ""
msgid "Other Modifiers" msgid "Other Modifiers"
msgstr "" msgstr ""
msgid "Other, Format"
msgstr ""
msgid "Other, Surrogate"
msgstr ""
msgid "Parentheses" msgid "Parentheses"
msgstr "" msgstr ""
msgid "Phonetic Extensions"
msgstr ""
msgid "Phonetic Extensions Supplement"
msgstr ""
msgid "Polish" msgid "Polish"
msgstr "" msgstr ""
msgid "Portuguese" msgid "Portuguese"
msgstr "" msgstr ""
msgid "Private Use Area"
msgstr ""
msgid "Punctuation" msgid "Punctuation"
msgstr "" msgstr ""
msgid "Punctuation, Close"
msgstr ""
msgid "Punctuation, Connector"
msgstr ""
msgid "Punctuation, Dash"
msgstr ""
msgid "Punctuation, Final quote"
msgstr ""
msgid "Punctuation, Initial quote"
msgstr ""
msgid "Punctuation, Open"
msgstr ""
msgid "Punctuation, Other"
msgstr ""
msgid "Quotes" msgid "Quotes"
msgstr "" msgstr ""
@@ -571,15 +625,6 @@ msgstr ""
msgid "Russian" msgid "Russian"
msgstr "" msgstr ""
msgid "Separator, Line"
msgstr ""
msgid "Separator, Paragraph"
msgstr ""
msgid "Separator, Space"
msgstr ""
msgid "Serbian Cyrillic" msgid "Serbian Cyrillic"
msgstr "" msgstr ""
@@ -607,19 +652,37 @@ msgstr ""
msgid "Spaces" msgid "Spaces"
msgstr "" msgstr ""
msgid "Spacing Modifier Letters"
msgstr ""
msgid "Spanish" msgid "Spanish"
msgstr "" msgstr ""
msgid "Special Characters" msgid "Special Characters"
msgstr "" msgstr ""
msgid "Specials"
msgstr ""
msgid "Strokes" msgid "Strokes"
msgstr "" msgstr ""
msgid "Subscript Characters" msgid "Subscript Characters"
msgstr "" msgstr ""
msgid "Superscript Sharacters" msgid "Superscript Characters"
msgstr ""
msgid "Superscripts and Subscripts"
msgstr ""
msgid "Supplemental Arrows-A"
msgstr ""
msgid "Supplemental Arrows-B"
msgstr ""
msgid "Supplemental Punctuation"
msgstr "" msgstr ""
msgid "Surrounded" msgid "Surrounded"
@@ -664,16 +727,7 @@ msgstr ""
msgid "Symbol ?" msgid "Symbol ?"
msgstr "" msgstr ""
msgid "Symbol, Currency" msgid "Syriac"
msgstr ""
msgid "Symbol, Math"
msgstr ""
msgid "Symbol, Modifier"
msgstr ""
msgid "Symbol, Other"
msgstr "" msgstr ""
msgid "Technical Characters" msgid "Technical Characters"
@@ -694,6 +748,9 @@ msgstr ""
msgid "Ukrainian" msgid "Ukrainian"
msgstr "" msgstr ""
msgid "Unified Canadian Aboriginal Syllabics"
msgstr ""
msgid "Units" msgid "Units"
msgstr "" msgstr ""

View File

@@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola.zrcdb\n" "Project-Id-Version: ZRCola.zrcdb\n"
"Language-Team: German (Germany) (https://www.transifex.com/amebis/teams/91592/de_DE/)\n" "Language-Team: German (Germany) (https://app.transifex.com/amebis/teams/91592/de_DE/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -13,6 +13,9 @@ msgstr ""
msgid "Albanian" msgid "Albanian"
msgstr "" msgstr ""
msgid "Alphabetic Presentation Forms"
msgstr ""
msgid "Apostrophes 1" msgid "Apostrophes 1"
msgstr "" msgstr ""
@@ -22,24 +25,42 @@ msgstr ""
msgid "Arabic" msgid "Arabic"
msgstr "" msgstr ""
msgid "Armenian"
msgstr ""
msgid "Arrows" msgid "Arrows"
msgstr "" msgstr ""
msgid "Belarusian" msgid "Belarusian"
msgstr "" msgstr ""
msgid "Block Elements"
msgstr ""
msgid "Bosnian Cyrillic" msgid "Bosnian Cyrillic"
msgstr "" msgstr ""
msgid "Bosnian Latinic" msgid "Bosnian Latinic"
msgstr "" msgstr ""
msgid "Box Drawing"
msgstr ""
msgid "C0 Controls and Basic Latin (Basic Latin)"
msgstr ""
msgid "C1 Controls and Latin-1 Supplement (Latin-1 Supplement)"
msgstr ""
msgid "CAPITAL Case" msgid "CAPITAL Case"
msgstr "" msgstr ""
msgid "CAPITAL Case » small Case" msgid "CAPITAL Case » small Case"
msgstr "" msgstr ""
msgid "CJK Symbols and Punctuation"
msgstr ""
msgid "Combine" msgid "Combine"
msgstr "" msgstr ""
@@ -52,6 +73,18 @@ msgstr ""
msgid "Combine Over" msgid "Combine Over"
msgstr "" msgstr ""
msgid "Combining Diacritical Marks"
msgstr ""
msgid "Combining Diacritical Marks Supplement"
msgstr ""
msgid "Combining Diacritical Marks for Symbols"
msgstr ""
msgid "Combining Half Marks"
msgstr ""
msgid "Combining Marks" msgid "Combining Marks"
msgstr "" msgstr ""
@@ -61,6 +94,9 @@ msgstr ""
msgid "Currencies" msgid "Currencies"
msgstr "" msgstr ""
msgid "Currency Symbols"
msgstr ""
msgid "Cyrillic" msgid "Cyrillic"
msgstr "" msgstr ""
@@ -121,6 +157,12 @@ msgstr ""
msgid "Cyrillic BdC" msgid "Cyrillic BdC"
msgstr "" msgstr ""
msgid "Cyrillic Extended-B"
msgstr ""
msgid "Cyrillic Supplement"
msgstr ""
msgid "Cyrillic » Latin (GOST2000)" msgid "Cyrillic » Latin (GOST2000)"
msgstr "" msgstr ""
@@ -133,9 +175,15 @@ msgstr ""
msgid "Diacritics" msgid "Diacritics"
msgstr "" msgstr ""
msgid "Dingbats"
msgstr ""
msgid "Encircled Characters" msgid "Encircled Characters"
msgstr "" msgstr ""
msgid "Enclosed Alphanumerics"
msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
@@ -151,6 +199,12 @@ msgstr ""
msgid "Friulian" msgid "Friulian"
msgstr "" msgstr ""
msgid "General Punctuation"
msgstr ""
msgid "Geometric Shapes"
msgstr ""
msgid "Geometrical Shapes" msgid "Geometrical Shapes"
msgstr "" msgstr ""
@@ -172,12 +226,24 @@ msgstr ""
msgid "Greek (Old)" msgid "Greek (Old)"
msgstr "" msgstr ""
msgid "Greek Extended"
msgstr ""
msgid "Greek and Coptic"
msgstr ""
msgid "Gujarati"
msgstr ""
msgid "Hebrew" msgid "Hebrew"
msgstr "" msgstr ""
msgid "Hungarian" msgid "Hungarian"
msgstr "" msgstr ""
msgid "IPA Extensions"
msgstr ""
msgid "Irish Gaelic" msgid "Irish Gaelic"
msgstr "" msgstr ""
@@ -298,6 +364,21 @@ msgstr ""
msgid "Latin BdC" msgid "Latin BdC"
msgstr "" msgstr ""
msgid "Latin Extended Additional"
msgstr ""
msgid "Latin Extended-A"
msgstr ""
msgid "Latin Extended-B"
msgstr ""
msgid "Latin Extended-C"
msgstr ""
msgid "Latin Extended-D"
msgstr ""
msgid "Latin » Cyrillic (Belarusian)" msgid "Latin » Cyrillic (Belarusian)"
msgstr "" msgstr ""
@@ -421,19 +502,7 @@ msgstr ""
msgid "Letter u" msgid "Letter u"
msgstr "" msgstr ""
msgid "Letter, Lowercase" msgid "Letterlike Symbols"
msgstr ""
msgid "Letter, Modifier"
msgstr ""
msgid "Letter, Other"
msgstr ""
msgid "Letter, Titlecase"
msgstr ""
msgid "Letter, Uppercase"
msgstr "" msgstr ""
msgid "Ligatures" msgid "Ligatures"
@@ -448,21 +517,30 @@ msgstr ""
msgid "Maltese" msgid "Maltese"
msgstr "" msgstr ""
msgid "Mark, Enclosing"
msgstr ""
msgid "Mark, Non-Spacing"
msgstr ""
msgid "Mark, Spacing Combining"
msgstr ""
msgid "Mathematical And Physical Symbols" msgid "Mathematical And Physical Symbols"
msgstr "" msgstr ""
msgid "Mathematical Operators"
msgstr ""
msgid "Metric" msgid "Metric"
msgstr "" msgstr ""
msgid "Miscellaneous Mathematical Symbols-A"
msgstr ""
msgid "Miscellaneous Mathematical Symbols-B"
msgstr ""
msgid "Miscellaneous Symbols"
msgstr ""
msgid "Miscellaneous Symbols and Arrows"
msgstr ""
msgid "Miscellaneous Technical"
msgstr ""
msgid "Modified" msgid "Modified"
msgstr "" msgstr ""
@@ -508,13 +586,7 @@ msgstr ""
msgid "Number 9" msgid "Number 9"
msgstr "" msgstr ""
msgid "Number, Decimal Digit" msgid "Number Forms"
msgstr ""
msgid "Number, Letter"
msgstr ""
msgid "Number, Other"
msgstr "" msgstr ""
msgid "Numbers" msgid "Numbers"
@@ -526,45 +598,27 @@ msgstr ""
msgid "Other Modifiers" msgid "Other Modifiers"
msgstr "" msgstr ""
msgid "Other, Format"
msgstr ""
msgid "Other, Surrogate"
msgstr ""
msgid "Parentheses" msgid "Parentheses"
msgstr "" msgstr ""
msgid "Phonetic Extensions"
msgstr ""
msgid "Phonetic Extensions Supplement"
msgstr ""
msgid "Polish" msgid "Polish"
msgstr "" msgstr ""
msgid "Portuguese" msgid "Portuguese"
msgstr "" msgstr ""
msgid "Private Use Area"
msgstr ""
msgid "Punctuation" msgid "Punctuation"
msgstr "" msgstr ""
msgid "Punctuation, Close"
msgstr ""
msgid "Punctuation, Connector"
msgstr ""
msgid "Punctuation, Dash"
msgstr ""
msgid "Punctuation, Final quote"
msgstr ""
msgid "Punctuation, Initial quote"
msgstr ""
msgid "Punctuation, Open"
msgstr ""
msgid "Punctuation, Other"
msgstr ""
msgid "Quotes" msgid "Quotes"
msgstr "" msgstr ""
@@ -574,15 +628,6 @@ msgstr ""
msgid "Russian" msgid "Russian"
msgstr "" msgstr ""
msgid "Separator, Line"
msgstr ""
msgid "Separator, Paragraph"
msgstr ""
msgid "Separator, Space"
msgstr ""
msgid "Serbian Cyrillic" msgid "Serbian Cyrillic"
msgstr "" msgstr ""
@@ -610,19 +655,37 @@ msgstr ""
msgid "Spaces" msgid "Spaces"
msgstr "" msgstr ""
msgid "Spacing Modifier Letters"
msgstr ""
msgid "Spanish" msgid "Spanish"
msgstr "" msgstr ""
msgid "Special Characters" msgid "Special Characters"
msgstr "" msgstr ""
msgid "Specials"
msgstr ""
msgid "Strokes" msgid "Strokes"
msgstr "" msgstr ""
msgid "Subscript Characters" msgid "Subscript Characters"
msgstr "" msgstr ""
msgid "Superscript Sharacters" msgid "Superscript Characters"
msgstr ""
msgid "Superscripts and Subscripts"
msgstr ""
msgid "Supplemental Arrows-A"
msgstr ""
msgid "Supplemental Arrows-B"
msgstr ""
msgid "Supplemental Punctuation"
msgstr "" msgstr ""
msgid "Surrounded" msgid "Surrounded"
@@ -667,16 +730,7 @@ msgstr ""
msgid "Symbol ?" msgid "Symbol ?"
msgstr "" msgstr ""
msgid "Symbol, Currency" msgid "Syriac"
msgstr ""
msgid "Symbol, Math"
msgstr ""
msgid "Symbol, Modifier"
msgstr ""
msgid "Symbol, Other"
msgstr "" msgstr ""
msgid "Technical Characters" msgid "Technical Characters"
@@ -697,6 +751,9 @@ msgstr ""
msgid "Ukrainian" msgid "Ukrainian"
msgstr "" msgstr ""
msgid "Unified Canadian Aboriginal Syllabics"
msgstr ""
msgid "Units" msgid "Units"
msgstr "" msgstr ""

View File

@@ -1,12 +1,12 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2018 # Simon Rozman <simon.rozman@amebis.si>, 2018
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola.zrcdb\n" "Project-Id-Version: ZRCola.zrcdb\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>, 2018\n"
"Language-Team: Russian (Russia) (https://www.transifex.com/amebis/teams/91592/ru_RU/)\n" "Language-Team: Russian (Russia) (https://app.transifex.com/amebis/teams/91592/ru_RU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -17,6 +17,9 @@ msgstr ""
msgid "Albanian" msgid "Albanian"
msgstr "албанский" msgstr "албанский"
msgid "Alphabetic Presentation Forms"
msgstr ""
msgid "Apostrophes 1" msgid "Apostrophes 1"
msgstr "апострофы 1" msgstr "апострофы 1"
@@ -26,24 +29,42 @@ msgstr "апострофы 2"
msgid "Arabic" msgid "Arabic"
msgstr "Арабские знаки" msgstr "Арабские знаки"
msgid "Armenian"
msgstr ""
msgid "Arrows" msgid "Arrows"
msgstr "Стрелки" msgstr "Стрелки"
msgid "Belarusian" msgid "Belarusian"
msgstr "белорусский" msgstr "белорусский"
msgid "Block Elements"
msgstr ""
msgid "Bosnian Cyrillic" msgid "Bosnian Cyrillic"
msgstr "боснийский кириллица" msgstr "боснийский кириллица"
msgid "Bosnian Latinic" msgid "Bosnian Latinic"
msgstr "боснийский латиница" msgstr "боснийский латиница"
msgid "Box Drawing"
msgstr ""
msgid "C0 Controls and Basic Latin (Basic Latin)"
msgstr ""
msgid "C1 Controls and Latin-1 Supplement (Latin-1 Supplement)"
msgstr ""
msgid "CAPITAL Case" msgid "CAPITAL Case"
msgstr "ПРОПИСНИЕ буквы" msgstr "ПРОПИСНИЕ буквы"
msgid "CAPITAL Case » small Case" msgid "CAPITAL Case » small Case"
msgstr "ПРОПИСНИЕ буквы » строчние буквы" msgstr "ПРОПИСНИЕ буквы » строчние буквы"
msgid "CJK Symbols and Punctuation"
msgstr ""
msgid "Combine" msgid "Combine"
msgstr "Средние замещающие знаки" msgstr "Средние замещающие знаки"
@@ -56,6 +77,18 @@ msgstr "Низжние замещающие знаки"
msgid "Combine Over" msgid "Combine Over"
msgstr "Неотдельные замещающие знаки" msgstr "Неотдельные замещающие знаки"
msgid "Combining Diacritical Marks"
msgstr ""
msgid "Combining Diacritical Marks Supplement"
msgstr ""
msgid "Combining Diacritical Marks for Symbols"
msgstr ""
msgid "Combining Half Marks"
msgstr ""
msgid "Combining Marks" msgid "Combining Marks"
msgstr "Модифицирующие символы" msgstr "Модифицирующие символы"
@@ -65,6 +98,9 @@ msgstr "хорватский"
msgid "Currencies" msgid "Currencies"
msgstr "Валюты" msgstr "Валюты"
msgid "Currency Symbols"
msgstr ""
msgid "Cyrillic" msgid "Cyrillic"
msgstr "Кириллические знаки" msgstr "Кириллические знаки"
@@ -125,6 +161,12 @@ msgstr "кириллица (украинский) » латиница (слов
msgid "Cyrillic BdC" msgid "Cyrillic BdC"
msgstr "кириллица (BdC)" msgstr "кириллица (BdC)"
msgid "Cyrillic Extended-B"
msgstr ""
msgid "Cyrillic Supplement"
msgstr ""
msgid "Cyrillic » Latin (GOST2000)" msgid "Cyrillic » Latin (GOST2000)"
msgstr "кириллица » латиница (ГОСТ2000)" msgstr "кириллица » латиница (ГОСТ2000)"
@@ -137,9 +179,15 @@ msgstr "датский"
msgid "Diacritics" msgid "Diacritics"
msgstr "Диакритики" msgstr "Диакритики"
msgid "Dingbats"
msgstr ""
msgid "Encircled Characters" msgid "Encircled Characters"
msgstr "Знаки в круге" msgstr "Знаки в круге"
msgid "Enclosed Alphanumerics"
msgstr ""
msgid "English" msgid "English"
msgstr "английский" msgstr "английский"
@@ -155,6 +203,12 @@ msgstr "французский"
msgid "Friulian" msgid "Friulian"
msgstr "фриульский" msgstr "фриульский"
msgid "General Punctuation"
msgstr ""
msgid "Geometric Shapes"
msgstr ""
msgid "Geometrical Shapes" msgid "Geometrical Shapes"
msgstr "Геометрические фигуры" msgstr "Геометрические фигуры"
@@ -177,12 +231,24 @@ msgstr ""
msgid "Greek (Old)" msgid "Greek (Old)"
msgstr "греческий алфавит (древнегреческий)" msgstr "греческий алфавит (древнегреческий)"
msgid "Greek Extended"
msgstr ""
msgid "Greek and Coptic"
msgstr ""
msgid "Gujarati"
msgstr ""
msgid "Hebrew" msgid "Hebrew"
msgstr "Еврейские знаки" msgstr "Еврейские знаки"
msgid "Hungarian" msgid "Hungarian"
msgstr "венгерский" msgstr "венгерский"
msgid "IPA Extensions"
msgstr ""
msgid "Irish Gaelic" msgid "Irish Gaelic"
msgstr "ирландский гэльский" msgstr "ирландский гэльский"
@@ -303,6 +369,21 @@ msgstr "латиница (ALE)"
msgid "Latin BdC" msgid "Latin BdC"
msgstr "латиница (BdC)" msgstr "латиница (BdC)"
msgid "Latin Extended Additional"
msgstr ""
msgid "Latin Extended-A"
msgstr ""
msgid "Latin Extended-B"
msgstr ""
msgid "Latin Extended-C"
msgstr ""
msgid "Latin Extended-D"
msgstr ""
msgid "Latin » Cyrillic (Belarusian)" msgid "Latin » Cyrillic (Belarusian)"
msgstr "латиница » кириллица (белорусский)" msgstr "латиница » кириллица (белорусский)"
@@ -426,20 +507,8 @@ msgstr "Буква о"
msgid "Letter u" msgid "Letter u"
msgstr "Буква у" msgstr "Буква у"
msgid "Letter, Lowercase" msgid "Letterlike Symbols"
msgstr "Буква, строчная" msgstr ""
msgid "Letter, Modifier"
msgstr "Буква, модификатор"
msgid "Letter, Other"
msgstr "Буква, остальное"
msgid "Letter, Titlecase"
msgstr "Буква, начальная"
msgid "Letter, Uppercase"
msgstr "Буква, прописная"
msgid "Ligatures" msgid "Ligatures"
msgstr "Лигатуры" msgstr "Лигатуры"
@@ -453,21 +522,30 @@ msgstr "македонский"
msgid "Maltese" msgid "Maltese"
msgstr "мальтийский" msgstr "мальтийский"
msgid "Mark, Enclosing"
msgstr "Метка, закрывающая"
msgid "Mark, Non-Spacing"
msgstr "Метка, несамостоятельная"
msgid "Mark, Spacing Combining"
msgstr "Метка, несамостоятельная ненулевой ширины"
msgid "Mathematical And Physical Symbols" msgid "Mathematical And Physical Symbols"
msgstr "Математические и физические знаки" msgstr "Математические и физические знаки"
msgid "Mathematical Operators"
msgstr ""
msgid "Metric" msgid "Metric"
msgstr "Метрические знаки" msgstr "Метрические знаки"
msgid "Miscellaneous Mathematical Symbols-A"
msgstr ""
msgid "Miscellaneous Mathematical Symbols-B"
msgstr ""
msgid "Miscellaneous Symbols"
msgstr ""
msgid "Miscellaneous Symbols and Arrows"
msgstr ""
msgid "Miscellaneous Technical"
msgstr ""
msgid "Modified" msgid "Modified"
msgstr "Изменяющие знаки" msgstr "Изменяющие знаки"
@@ -513,14 +591,8 @@ msgstr "Число 8"
msgid "Number 9" msgid "Number 9"
msgstr "Число 9" msgstr "Число 9"
msgid "Number, Decimal Digit" msgid "Number Forms"
msgstr "Число, децималная цифра" msgstr ""
msgid "Number, Letter"
msgstr "Число, буква"
msgid "Number, Other"
msgstr "Число, другое"
msgid "Numbers" msgid "Numbers"
msgstr "Числа" msgstr "Числа"
@@ -531,45 +603,27 @@ msgstr "Числа в круге"
msgid "Other Modifiers" msgid "Other Modifiers"
msgstr "Остальные замещающие знаки" msgstr "Остальные замещающие знаки"
msgid "Other, Format"
msgstr "Другое, формат"
msgid "Other, Surrogate"
msgstr "Другое, суррогат"
msgid "Parentheses" msgid "Parentheses"
msgstr "Скобкы" msgstr "Скобкы"
msgid "Phonetic Extensions"
msgstr ""
msgid "Phonetic Extensions Supplement"
msgstr ""
msgid "Polish" msgid "Polish"
msgstr "польский" msgstr "польский"
msgid "Portuguese" msgid "Portuguese"
msgstr "португальский" msgstr "португальский"
msgid "Private Use Area"
msgstr ""
msgid "Punctuation" msgid "Punctuation"
msgstr "Знаки препинания" msgstr "Знаки препинания"
msgid "Punctuation, Close"
msgstr "Пунктуация, заключительная"
msgid "Punctuation, Connector"
msgstr "Пунктуация, соединитель"
msgid "Punctuation, Dash"
msgstr "Пунктуация, черта"
msgid "Punctuation, Final quote"
msgstr "Пунктуация, окончательная кавычка"
msgid "Punctuation, Initial quote"
msgstr "Пунктуация, начальная кавычка"
msgid "Punctuation, Open"
msgstr "Пунктуация, открывающая"
msgid "Punctuation, Other"
msgstr "Пунктуация, остальное"
msgid "Quotes" msgid "Quotes"
msgstr "Кавычки" msgstr "Кавычки"
@@ -579,15 +633,6 @@ msgstr "румынский"
msgid "Russian" msgid "Russian"
msgstr "русский" msgstr "русский"
msgid "Separator, Line"
msgstr "Сепаратор, строчка"
msgid "Separator, Paragraph"
msgstr "Сепаратор, абзац"
msgid "Separator, Space"
msgstr "Сепаратор, пробел"
msgid "Serbian Cyrillic" msgid "Serbian Cyrillic"
msgstr "сербский кириллица" msgstr "сербский кириллица"
@@ -615,20 +660,38 @@ msgstr "лужицкий"
msgid "Spaces" msgid "Spaces"
msgstr "Пробелы" msgstr "Пробелы"
msgid "Spacing Modifier Letters"
msgstr ""
msgid "Spanish" msgid "Spanish"
msgstr "испанский" msgstr "испанский"
msgid "Special Characters" msgid "Special Characters"
msgstr "Специальные знаки" msgstr "Специальные знаки"
msgid "Specials"
msgstr ""
msgid "Strokes" msgid "Strokes"
msgstr "Перечертка" msgstr "Перечертка"
msgid "Subscript Characters" msgid "Subscript Characters"
msgstr "Форматирование нижнего индекса" msgstr "Форматирование нижнего индекса"
msgid "Superscript Sharacters" msgid "Superscript Characters"
msgstr "Форматирование надстрочного индекса" msgstr ""
msgid "Superscripts and Subscripts"
msgstr ""
msgid "Supplemental Arrows-A"
msgstr ""
msgid "Supplemental Arrows-B"
msgstr ""
msgid "Supplemental Punctuation"
msgstr ""
msgid "Surrounded" msgid "Surrounded"
msgstr "В круге" msgstr "В круге"
@@ -672,17 +735,8 @@ msgstr "Симбол >"
msgid "Symbol ?" msgid "Symbol ?"
msgstr "Симбол ?" msgstr "Симбол ?"
msgid "Symbol, Currency" msgid "Syriac"
msgstr "Симбол, валюта" msgstr ""
msgid "Symbol, Math"
msgstr "Симбол, математический"
msgid "Symbol, Modifier"
msgstr "Симбол, модификатор"
msgid "Symbol, Other"
msgstr "Симбол, остальное"
msgid "Technical Characters" msgid "Technical Characters"
msgstr "Технические символы" msgstr "Технические символы"
@@ -702,6 +756,9 @@ msgstr "турецкий"
msgid "Ukrainian" msgid "Ukrainian"
msgstr "украинский" msgstr "украинский"
msgid "Unified Canadian Aboriginal Syllabics"
msgstr ""
msgid "Units" msgid "Units"
msgstr "Единицы" msgstr "Единицы"

View File

@@ -1,12 +1,13 @@
# #
# Translators: # Translators:
# Simon Rozman <simon@rozman.si>, 2018 # Simon Rozman <simon.rozman@amebis.si>, 2025
# Janoš Ježovnik, 2025
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola.zrcdb\n" "Project-Id-Version: ZRCola.zrcdb\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n" "Last-Translator: Janoš Ježovnik, 2025\n"
"Language-Team: Slovenian (Slovenia) (https://www.transifex.com/amebis/teams/91592/sl_SI/)\n" "Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -15,28 +16,46 @@ msgstr ""
"X-Generator: ZRColaCompile\n" "X-Generator: ZRColaCompile\n"
msgid "Albanian" msgid "Albanian"
msgstr "albanščina" msgstr "Albanščina"
msgid "Alphabetic Presentation Forms"
msgstr "Abecedne predstavnostne oblike"
msgid "Apostrophes 1" msgid "Apostrophes 1"
msgstr "apostrofi 1" msgstr "Apostrofi 1"
msgid "Apostrophes 2" msgid "Apostrophes 2"
msgstr "apostrofi 2" msgstr "Apostrofi 2"
msgid "Arabic" msgid "Arabic"
msgstr "Arabski znaki" msgstr "Arabščina"
msgid "Armenian"
msgstr "Armenščina"
msgid "Arrows" msgid "Arrows"
msgstr "Puščice" msgstr "Puščice"
msgid "Belarusian" msgid "Belarusian"
msgstr "beloruščina" msgstr "Beloruščina"
msgid "Block Elements"
msgstr "Blokovni elementi"
msgid "Bosnian Cyrillic" msgid "Bosnian Cyrillic"
msgstr "bosanščina cirilica" msgstr "Bosanščina cirilica"
msgid "Bosnian Latinic" msgid "Bosnian Latinic"
msgstr "bosanščina latinica" msgstr "Bosanščina latinica"
msgid "Box Drawing"
msgstr "Risanje okvirjev"
msgid "C0 Controls and Basic Latin (Basic Latin)"
msgstr "Osnovna latinica (Latin-1)"
msgid "C1 Controls and Latin-1 Supplement (Latin-1 Supplement)"
msgstr "Dopolnitev osnovne latinice"
msgid "CAPITAL Case" msgid "CAPITAL Case"
msgstr "VELIKE črke" msgstr "VELIKE črke"
@@ -44,6 +63,9 @@ msgstr "VELIKE črke"
msgid "CAPITAL Case » small Case" msgid "CAPITAL Case » small Case"
msgstr "VELIKE črke » male črke" msgstr "VELIKE črke » male črke"
msgid "CJK Symbols and Punctuation"
msgstr "Simboli in ločila KJK"
msgid "Combine" msgid "Combine"
msgstr "Srednji nadomestni znaki" msgstr "Srednji nadomestni znaki"
@@ -56,110 +78,143 @@ msgstr "Spodnji nadomestni znaki"
msgid "Combine Over" msgid "Combine Over"
msgstr "Neločljivi nadomestni znaki" msgstr "Neločljivi nadomestni znaki"
msgid "Combining Diacritical Marks"
msgstr "Sestavljiva naglasna znamenja"
msgid "Combining Diacritical Marks Supplement"
msgstr "Dopolnilna sestavljiva naglasna znamenja"
msgid "Combining Diacritical Marks for Symbols"
msgstr "Sestavljiva naglasna znamenja za simbole"
msgid "Combining Half Marks"
msgstr "Sestavljiva večznakovna znamenja"
msgid "Combining Marks" msgid "Combining Marks"
msgstr "Sestavljiva ločevalna znamenja" msgstr "Sestavljiva ločevalna znamenja"
msgid "Croatian" msgid "Croatian"
msgstr "hrvaščina" msgstr "Hrvaščina"
msgid "Currencies" msgid "Currencies"
msgstr "Valute" msgstr "Valute"
msgid "Currency Symbols"
msgstr "Simboli valut"
msgid "Cyrillic" msgid "Cyrillic"
msgstr "Cirilski znaki" msgstr "Cirilica"
msgid "Cyrillic (Belarusian)" msgid "Cyrillic (Belarusian)"
msgstr "cirilica (beloruščina)" msgstr "Cirilica (beloruščina)"
msgid "Cyrillic (Belarusian) » Latin (English)" msgid "Cyrillic (Belarusian) » Latin (English)"
msgstr "cirilica (beloruščina) » latinica (angleščina)" msgstr "Cirilica (beloruščina) » latinica (angleščina)"
msgid "Cyrillic (Belarusian) » Latin (Slovenian)" msgid "Cyrillic (Belarusian) » Latin (Slovenian)"
msgstr "cirilica (beloruščina) » latinica (slovenščina)" msgstr "Cirilica (beloruščina) » latinica (slovenščina)"
msgid "Cyrillic (Bulgarian)" msgid "Cyrillic (Bulgarian)"
msgstr "cirilica (bolgarščina)" msgstr "Cirilica (bolgarščina)"
msgid "Cyrillic (Bulgarian) » Latin (English)" msgid "Cyrillic (Bulgarian) » Latin (English)"
msgstr "cirilica (bolgarščina) » latinica (angleščina)" msgstr "Cirilica (bolgarščina) » latinica (angleščina)"
msgid "Cyrillic (Bulgarian) » Latin (Slovenian)" msgid "Cyrillic (Bulgarian) » Latin (Slovenian)"
msgstr "cirilica (bolgarščina) » latinica (slovenščina)" msgstr "Cirilica (bolgarščina) » latinica (slovenščina)"
msgid "Cyrillic (GOST2000)" msgid "Cyrillic (GOST2000)"
msgstr "cirilica (GOST2000)" msgstr "Cirilica (GOST2000)"
msgid "Cyrillic (Macedonian)" msgid "Cyrillic (Macedonian)"
msgstr "cirilica (makedonščina)" msgstr "Cirilica (makedonščina)"
msgid "Cyrillic (Macedonian) » Latin (English)" msgid "Cyrillic (Macedonian) » Latin (English)"
msgstr "cirilica (makedonščina) » latinica (angleščina)" msgstr "Cirilica (makedonščina) » latinica (angleščina)"
msgid "Cyrillic (Macedonian) » Latin (Slovenian)" msgid "Cyrillic (Macedonian) » Latin (Slovenian)"
msgstr "cirilica (makedonščina) » latinica (slovenščina)" msgstr "Cirilica (makedonščina) » latinica (slovenščina)"
msgid "Cyrillic (Russian)" msgid "Cyrillic (Russian)"
msgstr "cirilica (ruščina)" msgstr "Cirilica (ruščina)"
msgid "Cyrillic (Russian) » Latin (English)" msgid "Cyrillic (Russian) » Latin (English)"
msgstr "cirilica (ruščina) » latinica (angleščina)" msgstr "Cirilica (ruščina) » latinica (angleščina)"
msgid "Cyrillic (Russian) » Latin (Slovenian)" msgid "Cyrillic (Russian) » Latin (Slovenian)"
msgstr "cirilica (ruščina) » latinica (slovenščina)" msgstr "Cirilica (ruščina) » latinica (slovenščina)"
msgid "Cyrillic (Serbian)" msgid "Cyrillic (Serbian)"
msgstr "cirilica (srbščina)" msgstr "Cirilica (srbščina)"
msgid "Cyrillic (Serbian) » Latin" msgid "Cyrillic (Serbian) » Latin"
msgstr "cirilica (srbščina) » latinica" msgstr "Cirilica (srbščina) » latinica"
msgid "Cyrillic (Ukrainian)" msgid "Cyrillic (Ukrainian)"
msgstr "cirilica (ukrajinščina)" msgstr "Cirilica (ukrajinščina)"
msgid "Cyrillic (Ukrainian) » Latin (English)" msgid "Cyrillic (Ukrainian) » Latin (English)"
msgstr "cirilica (ukrajinščina) » latinica (angleščina)" msgstr "Cirilica (ukrajinščina) » latinica (angleščina)"
msgid "Cyrillic (Ukrainian) » Latin (Slovenian)" msgid "Cyrillic (Ukrainian) » Latin (Slovenian)"
msgstr "cirilica (ukrajinščina) » latinica (slovenščina)" msgstr "Cirilica (ukrajinščina) » latinica (slovenščina)"
msgid "Cyrillic BdC" msgid "Cyrillic BdC"
msgstr "cirilica (BdC)" msgstr "Cirilica (BdC)"
msgid "Cyrillic Extended-B"
msgstr "Razširitev cirilice B"
msgid "Cyrillic Supplement"
msgstr "Dopolnitev cirilice"
msgid "Cyrillic » Latin (GOST2000)" msgid "Cyrillic » Latin (GOST2000)"
msgstr "cirilica » latinica (GOST2000)" msgstr "Cirilica » latinica (GOST2000)"
msgid "Czech" msgid "Czech"
msgstr "češčina" msgstr "Češčina"
msgid "Danish" msgid "Danish"
msgstr "danščina" msgstr "Danščina"
msgid "Diacritics" msgid "Diacritics"
msgstr "Ločevalna znamenja" msgstr "Ločevalna znamenja"
msgid "Dingbats"
msgstr "Ornamenti"
msgid "Encircled Characters" msgid "Encircled Characters"
msgstr "Obkroženi znaki" msgstr "Obkroženi znaki"
msgid "Enclosed Alphanumerics"
msgstr "Obkrožene črke in številke"
msgid "English" msgid "English"
msgstr "angleščina" msgstr "Angleščina"
msgid "Estonian" msgid "Estonian"
msgstr "estonščina" msgstr "Estonščina"
msgid "Eva" msgid "Eva"
msgstr "Eva" msgstr "Eva"
msgid "French" msgid "French"
msgstr "francoščina" msgstr "Francoščina"
msgid "Friulian" msgid "Friulian"
msgstr "furlanščina" msgstr "Furlanščina"
msgid "General Punctuation"
msgstr "Splošna ločila"
msgid "Geometric Shapes"
msgstr "Geometrijske oblike"
msgid "Geometrical Shapes" msgid "Geometrical Shapes"
msgstr "Geometrijski liki" msgstr "Geometrijski liki"
msgid "German" msgid "German"
msgstr "nemščina" msgstr "Nemščina"
msgid "Glagolitic" msgid "Glagolitic"
msgstr "Glagolski znaki" msgstr "Glagolski znaki"
@@ -168,169 +223,196 @@ msgid "Greek"
msgstr "Grški znaki" msgstr "Grški znaki"
msgid "Greek (Modern)" msgid "Greek (Modern)"
msgstr "grški alfabet (nova grščina)" msgstr "Grški alfabet (nova grščina)"
msgid "Greek (Modern) » Greek (Old)" msgid "Greek (Modern) » Greek (Old)"
msgstr "grški alfabet (nova grščina) » grški alfabet (stara grščina)" msgstr "Grški alfabet (nova grščina) » grški alfabet (stara grščina)"
msgid "Greek (Old)" msgid "Greek (Old)"
msgstr "grški alfabet (stara grščina)" msgstr "Grški alfabet (stara grščina)"
msgid "Greek Extended"
msgstr "Razširitev grščine"
msgid "Greek and Coptic"
msgstr "Grščina in koptščina"
msgid "Gujarati"
msgstr "Gudžarati"
msgid "Hebrew" msgid "Hebrew"
msgstr "Hebrejski znaki" msgstr "Hebrejščina"
msgid "Hungarian" msgid "Hungarian"
msgstr "madžarščina" msgstr "Madžarščina"
msgid "IPA Extensions"
msgstr "Razširitve IPA"
msgid "Irish Gaelic" msgid "Irish Gaelic"
msgstr "irščina" msgstr "Irščina"
msgid "Joined" msgid "Joined"
msgstr "Povezajni nadomestni znaki" msgstr "Povezovalni nadomestni znaki"
msgid "Joined strings with A" msgid "Joined strings with A"
msgstr "Povezajni nizi z A" msgstr "Povezani nizi z A"
msgid "Joined strings with B" msgid "Joined strings with B"
msgstr "Povezajni nizi z B" msgstr "Povezani nizi z B"
msgid "Joined strings with C" msgid "Joined strings with C"
msgstr "Povezajni nizi s C" msgstr "Povezani nizi s C"
msgid "Joined strings with D" msgid "Joined strings with D"
msgstr "Povezajni nizi z D" msgstr "Povezani nizi z D"
msgid "Joined strings with E" msgid "Joined strings with E"
msgstr "Povezajni nizi z E" msgstr "Povezani nizi z E"
msgid "Joined strings with F" msgid "Joined strings with F"
msgstr "Povezajni nizi s F" msgstr "Povezani nizi s F"
msgid "Joined strings with G" msgid "Joined strings with G"
msgstr "Povezajni nizi z G" msgstr "Povezani nizi z G"
msgid "Joined strings with H" msgid "Joined strings with H"
msgstr "Povezajni nizi s H" msgstr "Povezani nizi s H"
msgid "Joined strings with I" msgid "Joined strings with I"
msgstr "Povezajni nizi z I" msgstr "Povezani nizi z I"
msgid "Joined strings with J" msgid "Joined strings with J"
msgstr "Povezajni nizi z J" msgstr "Povezani nizi z J"
msgid "Joined strings with K" msgid "Joined strings with K"
msgstr "Povezajni nizi s K" msgstr "Povezani nizi s K"
msgid "Joined strings with L" msgid "Joined strings with L"
msgstr "Povezajni nizi z L" msgstr "Povezani nizi z L"
msgid "Joined strings with M" msgid "Joined strings with M"
msgstr "Povezajni nizi z M" msgstr "Povezani nizi z M"
msgid "Joined strings with N" msgid "Joined strings with N"
msgstr "Povezajni nizi z N" msgstr "Povezani nizi z N"
msgid "Joined strings with O" msgid "Joined strings with O"
msgstr "Povezajni nizi z O" msgstr "Povezani nizi z O"
msgid "Joined strings with P" msgid "Joined strings with P"
msgstr "Povezajni nizi s P" msgstr "Povezani nizi s P"
msgid "Joined strings with Q" msgid "Joined strings with Q"
msgstr "Povezajni nizi z Q" msgstr "Povezani nizi z Q"
msgid "Joined strings with R" msgid "Joined strings with R"
msgstr "Povezajni nizi z R" msgstr "Povezani nizi z R"
msgid "Joined strings with S" msgid "Joined strings with S"
msgstr "Povezajni nizi s S" msgstr "Povezani nizi s S"
msgid "Joined strings with T" msgid "Joined strings with T"
msgstr "Povezajni nizi s T" msgstr "Povezani nizi s T"
msgid "Joined strings with U" msgid "Joined strings with U"
msgstr "Povezajni nizi z U" msgstr "Povezani nizi z U"
msgid "Joined strings with V" msgid "Joined strings with V"
msgstr "Povezajni nizi z V" msgstr "Povezani nizi z V"
msgid "Joined strings with W" msgid "Joined strings with W"
msgstr "Povezajni nizi z W" msgstr "Povezani nizi z W"
msgid "Joined strings with X" msgid "Joined strings with X"
msgstr "Povezajni nizi z X" msgstr "Povezani nizi z X"
msgid "Joined strings with Y" msgid "Joined strings with Y"
msgstr "Povezajni nizi z Y" msgstr "Povezani nizi z Y"
msgid "Joined strings with Z" msgid "Joined strings with Z"
msgstr "Povezajni nizi z Z" msgstr "Povezani nizi z Z"
msgid "Joined strings with a" msgid "Joined strings with a"
msgstr "Povezajni nizi z a" msgstr "Povezani nizi z a"
msgid "Joined strings with e" msgid "Joined strings with e"
msgstr "Povezajni nizi z e" msgstr "Povezani nizi z e"
msgid "Joined strings with i" msgid "Joined strings with i"
msgstr "Povezajni nizi z i" msgstr "Povezani nizi z i"
msgid "Joined strings with o" msgid "Joined strings with o"
msgstr "Povezajni nizi z o" msgstr "Povezani nizi z o"
msgid "Joined strings with u" msgid "Joined strings with u"
msgstr "Povezajni nizi z u" msgstr "Povezani nizi z u"
msgid "Kashubian" msgid "Kashubian"
msgstr "kašubščina" msgstr "Kašubščina"
msgid "Latin" msgid "Latin"
msgstr "latinščina" msgstr "Latinica"
msgid "Latin (English)" msgid "Latin (English)"
msgstr "latinica (angleščina)" msgstr "Latinica (angleščina)"
msgid "Latin (GOST2000)" msgid "Latin (GOST2000)"
msgstr "latinica (GOST2000)" msgstr "Latinica (GOST2000)"
msgid "Latin (Slovenian)" msgid "Latin (Slovenian)"
msgstr "latinica (slovenščina)" msgstr "Latinica (slovenščina)"
msgid "Latin ALE" msgid "Latin ALE"
msgstr "latinščina (ALE)" msgstr "Latinica (ALE)"
msgid "Latin BdC" msgid "Latin BdC"
msgstr "latinščina (BdC)" msgstr "Latinica (BdC)"
msgid "Latin Extended Additional"
msgstr "Dodatna razširitev latinice"
msgid "Latin Extended-A"
msgstr "Razširitev latinice A"
msgid "Latin Extended-B"
msgstr "Razširitev latinice B"
msgid "Latin Extended-C"
msgstr "Razširitev latinice C"
msgid "Latin Extended-D"
msgstr "Razširitev latinice D"
msgid "Latin » Cyrillic (Belarusian)" msgid "Latin » Cyrillic (Belarusian)"
msgstr "latinica » cirilica (beloruščina)" msgstr "Latinica » cirilica (beloruščina)"
msgid "Latin » Cyrillic (Bulgarian)" msgid "Latin » Cyrillic (Bulgarian)"
msgstr "latinica » cirilica (bolgarščina)" msgstr "Latinica » cirilica (bolgarščina)"
msgid "Latin » Cyrillic (GOST2000)" msgid "Latin » Cyrillic (GOST2000)"
msgstr "latinica » cirilica (GOST2000)" msgstr "Latinica » cirilica (GOST2000)"
msgid "Latin » Cyrillic (Macedonian)" msgid "Latin » Cyrillic (Macedonian)"
msgstr "latinica » cirilica (makedonščina)" msgstr "Latinica » cirilica (makedonščina)"
msgid "Latin » Cyrillic (Russian)" msgid "Latin » Cyrillic (Russian)"
msgstr "latinica » cirilica (ruščina)" msgstr "Latinica » cirilica (ruščina)"
msgid "Latin » Cyrillic (Serbian)" msgid "Latin » Cyrillic (Serbian)"
msgstr "latinica » cirilica (srbščina)" msgstr "Latinica » cirilica (srbščina)"
msgid "Latin » Cyrillic (Ukrainian)" msgid "Latin » Cyrillic (Ukrainian)"
msgstr "latinica » cirilica (ukrajinščina)" msgstr "Latinica » cirilica (ukrajinščina)"
msgid "Latin » Greek (modern)" msgid "Latin » Greek (modern)"
msgstr "latinica » grški alfabet (nova grščina)" msgstr "Latinica » grški alfabet (nova grščina)"
msgid "Latin » Greek (old)" msgid "Latin » Greek (old)"
msgstr "latinica » grški alfabet (stara grščina)" msgstr "Latinica » grški alfabet (stara grščina)"
msgid "Latvian" msgid "Latvian"
msgstr "letonščina" msgstr "Latvijščina"
msgid "Letter A" msgid "Letter A"
msgstr "Črka A" msgstr "Črka A"
@@ -425,62 +507,59 @@ msgstr "Črka o"
msgid "Letter u" msgid "Letter u"
msgstr "Črka u" msgstr "Črka u"
msgid "Letter, Lowercase" msgid "Letterlike Symbols"
msgstr "Črka, mala" msgstr "Simboli iz črk"
msgid "Letter, Modifier"
msgstr "Črka, spreminjevalo"
msgid "Letter, Other"
msgstr "Črka, drugo"
msgid "Letter, Titlecase"
msgstr "Črka, naslovna"
msgid "Letter, Uppercase"
msgstr "Črka, velika"
msgid "Ligatures" msgid "Ligatures"
msgstr "Ligature" msgstr "Ligature"
msgid "Lithuanian" msgid "Lithuanian"
msgstr "litovščina" msgstr "Litovščina"
msgid "Macedonian" msgid "Macedonian"
msgstr "makedonščina" msgstr "Makedonščina"
msgid "Maltese" msgid "Maltese"
msgstr "malteščina" msgstr "Malteščina"
msgid "Mark, Enclosing"
msgstr "Ločevalo, obdajajoče"
msgid "Mark, Non-Spacing"
msgstr "Ločevalo, neločljivo"
msgid "Mark, Spacing Combining"
msgstr "Ločevalo, ločljivo"
msgid "Mathematical And Physical Symbols" msgid "Mathematical And Physical Symbols"
msgstr "Matematični in fizikalni simboli" msgstr "Matematični in fizikalni simboli"
msgid "Mathematical Operators"
msgstr "Matematični operatorji"
msgid "Metric" msgid "Metric"
msgstr "Metrično" msgstr "Metrično"
msgid "Miscellaneous Mathematical Symbols-A"
msgstr "Razni matematični simboli A"
msgid "Miscellaneous Mathematical Symbols-B"
msgstr "Razni matematični simboli B"
msgid "Miscellaneous Symbols"
msgstr "Razni simboli"
msgid "Miscellaneous Symbols and Arrows"
msgstr "Razni simboli in puščice"
msgid "Miscellaneous Technical"
msgstr "Razno tehnika"
msgid "Modified" msgid "Modified"
msgstr "Spreminjevalni nadomestni znaki" msgstr "Spreminjevalni nadomestni znaki"
msgid "Moldavian Cyrillic" msgid "Moldavian Cyrillic"
msgstr "moldavščina cirilica" msgstr "Moldavščina cirilica"
msgid "Moldavian Latinic" msgid "Moldavian Latinic"
msgstr "moldavščina latinica" msgstr "Moldavščina latinica"
msgid "Musical Characters" msgid "Musical Characters"
msgstr "Glasbeni znaki" msgstr "Glasbeni znaki"
msgid "Norwegian" msgid "Norwegian"
msgstr "norveščina" msgstr "Norveščina"
msgid "Number 0" msgid "Number 0"
msgstr "Številka 0" msgstr "Številka 0"
@@ -512,14 +591,8 @@ msgstr "Številka 8"
msgid "Number 9" msgid "Number 9"
msgstr "Številka 9" msgstr "Številka 9"
msgid "Number, Decimal Digit" msgid "Number Forms"
msgstr "Številka, desetiška števka" msgstr "Oblike števnikov"
msgid "Number, Letter"
msgstr "Številka, črka"
msgid "Number, Other"
msgstr "Številka, drugo"
msgid "Numbers" msgid "Numbers"
msgstr "Številke" msgstr "Številke"
@@ -530,110 +603,101 @@ msgstr "Številka, obkrožena"
msgid "Other Modifiers" msgid "Other Modifiers"
msgstr "Ostali nadomestni znaki" msgstr "Ostali nadomestni znaki"
msgid "Other, Format"
msgstr "Drugo, oblikovni znaki"
msgid "Other, Surrogate"
msgstr "Drugo, nadomestni znaki"
msgid "Parentheses" msgid "Parentheses"
msgstr "Oklepaji" msgstr "Oklepaji"
msgid "Phonetic Extensions"
msgstr "Fonetične razširitve"
msgid "Phonetic Extensions Supplement"
msgstr "Dopolnitev fonetične razširitve"
msgid "Polish" msgid "Polish"
msgstr "poljščina" msgstr "Poljščina"
msgid "Portuguese" msgid "Portuguese"
msgstr "portugalščina" msgstr "Portugalščina"
msgid "Private Use Area"
msgstr "Območje zasebne rabe"
msgid "Punctuation" msgid "Punctuation"
msgstr "Ločila" msgstr "Ločila"
msgid "Punctuation, Close"
msgstr "Ločilo, zapiralno"
msgid "Punctuation, Connector"
msgstr "Ločilo, povezaj"
msgid "Punctuation, Dash"
msgstr "Ločilo, pomišljaj"
msgid "Punctuation, Final quote"
msgstr "Ločilo, zaključni narekovaj"
msgid "Punctuation, Initial quote"
msgstr "Ločilo, uvodni narekovaj"
msgid "Punctuation, Open"
msgstr "Ločilo, odpiralno"
msgid "Punctuation, Other"
msgstr "Ločilo, drugo"
msgid "Quotes" msgid "Quotes"
msgstr "Narekovaji" msgstr "Narekovaji"
msgid "Romanian" msgid "Romanian"
msgstr "romunščina" msgstr "Romunščina"
msgid "Russian" msgid "Russian"
msgstr "ruščina" msgstr "Ruščina"
msgid "Separator, Line"
msgstr "Ločilo, vrstica"
msgid "Separator, Paragraph"
msgstr "Ločilo, odstavek"
msgid "Separator, Space"
msgstr "Ločilo, presledek"
msgid "Serbian Cyrillic" msgid "Serbian Cyrillic"
msgstr "srbščina cirilica" msgstr "Srbščina cirilica"
msgid "Serbian Latinic" msgid "Serbian Latinic"
msgstr "srbščina latinica" msgstr "Srbščina latinica"
msgid "Sigma Final" msgid "Sigma Final"
msgstr "sigma (končna)" msgstr "Sigma (končna)"
msgid "Sigma Nav" msgid "Sigma Nav"
msgstr "sigma (navadna)" msgstr "Sigma (navadna)"
msgid "Slovak" msgid "Slovak"
msgstr "slovaščina" msgstr "Slovaščina"
msgid "Slovene Historical Writings" msgid "Slovene Historical Writings"
msgstr "Slovenske zgodovinske pisave" msgstr "Slovenske zgodovinske pisave"
msgid "Slovenian" msgid "Slovenian"
msgstr "slovenščina" msgstr "Slovenščina"
msgid "Sorbian" msgid "Sorbian"
msgstr "lužiščini" msgstr "Lužiška srbščina"
msgid "Spaces" msgid "Spaces"
msgstr "Presledki" msgstr "Presledki"
msgid "Spacing Modifier Letters"
msgstr "Nesestavljive nadomestne črke"
msgid "Spanish" msgid "Spanish"
msgstr "španščina" msgstr "Španščina"
msgid "Special Characters" msgid "Special Characters"
msgstr "Posebni znaki" msgstr "Posebni znaki"
msgid "Specials"
msgstr "Posebno"
msgid "Strokes" msgid "Strokes"
msgstr "Poševnice" msgstr "Poševnice"
msgid "Subscript Characters" msgid "Subscript Characters"
msgstr "Podpisani znaki" msgstr "Podpisani znaki"
msgid "Superscript Sharacters" msgid "Superscript Characters"
msgstr "Nadpisani znaki" msgstr "Nadpisani znaki"
msgid "Superscripts and Subscripts"
msgstr "Nadpisano in podpisano"
msgid "Supplemental Arrows-A"
msgstr "Dopolnilne puščice A"
msgid "Supplemental Arrows-B"
msgstr "Dopolnilne puščice B"
msgid "Supplemental Punctuation"
msgstr "Dopolnilna ločila"
msgid "Surrounded" msgid "Surrounded"
msgstr "Obkrožajni nadomestni znaki" msgstr "Obkrožajni nadomestni znaki"
msgid "Swedish" msgid "Swedish"
msgstr "švedščina" msgstr "Švedščina"
msgid "Symbol !" msgid "Symbol !"
msgstr "Simbol !" msgstr "Simbol !"
@@ -671,17 +735,8 @@ msgstr "Simbol >"
msgid "Symbol ?" msgid "Symbol ?"
msgstr "Simbol ?" msgstr "Simbol ?"
msgid "Symbol, Currency" msgid "Syriac"
msgstr "Simbol, valuta" msgstr "Sirščina"
msgid "Symbol, Math"
msgstr "Simbol, matematični"
msgid "Symbol, Modifier"
msgstr "Simbol, ločevalo"
msgid "Symbol, Other"
msgstr "Simbol, drugo"
msgid "Technical Characters" msgid "Technical Characters"
msgstr "Tehnični znaki" msgstr "Tehnični znaki"
@@ -696,10 +751,13 @@ msgid "Transliterating Marks"
msgstr "Prečrkovalni nadomestni znaki" msgstr "Prečrkovalni nadomestni znaki"
msgid "Turkish" msgid "Turkish"
msgstr "turščina" msgstr "Turščina"
msgid "Ukrainian" msgid "Ukrainian"
msgstr "ukrajinščina" msgstr "Ukrajinščina"
msgid "Unified Canadian Aboriginal Syllabics"
msgstr "Združeni kanadski staroselski zlogovni znaki"
msgid "Units" msgid "Units"
msgstr "Enote" msgstr "Enote"