Compare commits

...

37 Commits
2.7 ... 2.7.1

Author SHA1 Message Date
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
68 changed files with 13216 additions and 12912 deletions

12
.gitmodules vendored
View File

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

Binary file not shown.

View File

@@ -7,21 +7,22 @@ msgid ""
msgstr ""
"Project-Id-Version: ZRCola MSI\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"
"Last-Translator: Simon Rozman <simon@rozman.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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de_DE\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-KeywordsList: __\n"
"X-Poedit-SearchPath-0: .\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.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4
msgid ""
@@ -3465,6 +3466,8 @@ msgstr ""
"Heading;}}{\\*\\datastore "
"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.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
@@ -3472,11 +3475,13 @@ msgstr ""
msgid "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.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6
msgid "[DlgTitleFont][SimpleProductName] Declaration"
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.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7
msgid ""
@@ -3484,6 +3489,7 @@ msgid ""
"or some other appropriate part of the publication the note below:"
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.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8
msgid ""
@@ -3497,6 +3503,7 @@ msgid ""
"(http://www.zrc-sazu.si) by Peter Weiss.\\f1\\par}"
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.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9
msgid ""
@@ -3504,11 +3511,14 @@ msgid ""
"dialog or on its website."
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.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10
msgid "I &agree."
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.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
@@ -3516,16 +3526,19 @@ msgstr ""
msgid "&Continue"
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.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13
msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font"
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.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14
msgid "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.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15
msgid ""
@@ -3534,86 +3547,103 @@ msgid ""
"computer that will take effect after the next restart."
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.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4
msgid "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.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts"
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.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts used by ZRCola"
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.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "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.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "Times New Roman based font"
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.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "Documentation"
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.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "ZRCola Documentation"
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.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "Keyboard Shortcuts"
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.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "PDF document with a list of ZRCola keyboard shortcuts"
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.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4
msgid "Amebis, Slovenia, E.U."
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.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5
msgid "Fran Ramovš Institute of Slovenian Language ZRC SAZU"
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.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6
msgid "+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.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts"
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.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola Keyboard Shortcuts"

View File

@@ -7,21 +7,22 @@ msgid ""
msgstr ""
"Project-Id-Version: ZRCola MSI\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"
"Last-Translator: Simon Rozman <simon@rozman.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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Poedit 2.1.1\n"
"X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ../Main\n"
"X-Poedit-KeywordsList: __\n"
"X-Poedit-SearchPath-0: .\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.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4
msgid ""
@@ -3465,6 +3466,8 @@ msgstr ""
"Heading;}}{\\*\\datastore "
"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.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
@@ -3472,11 +3475,13 @@ msgstr ""
msgid "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.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6
msgid "[DlgTitleFont][SimpleProductName] Declaration"
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.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7
msgid ""
@@ -3486,6 +3491,7 @@ msgstr ""
"Текст, созданный с помощью системы 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.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8
msgid ""
@@ -3515,6 +3521,7 @@ msgstr ""
"\\'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}"
#: 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.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9
msgid ""
@@ -3524,11 +3531,14 @@ msgstr ""
"Примечание: Ета декларация доступна также в диалоговом окне «О программе» "
"либо на вебсайте системы 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.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10
msgid "I &agree."
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.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
@@ -3536,16 +3546,19 @@ msgstr "Согласен."
msgid "&Continue"
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.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13
msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font"
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.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14
msgid "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.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15
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.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4
msgid "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.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts"
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.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts used by 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.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "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.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "Times New Roman based font"
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.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "Documentation"
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.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "ZRCola Documentation"
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.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "Keyboard Shortcuts"
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.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "PDF document with a list of ZRCola keyboard shortcuts"
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.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4
msgid "Amebis, Slovenia, E.U."
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.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5
msgid "Fran Ramovš Institute of Slovenian Language 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.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6
msgid "+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.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts"
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.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCola Keyboard Shortcuts"

View File

@@ -7,21 +7,22 @@ msgid ""
msgstr ""
"Project-Id-Version: ZRCola MSI\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"
"Last-Translator: Simon Rozman <simon@rozman.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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Poedit 2.1.1\n"
"X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ../Main\n"
"X-Poedit-KeywordsList: __\n"
"X-Poedit-SearchPath-0: .\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.x64.Debug.Control-2.idtx:4 en_US.x64.Release.Control-2.idtx:4
msgid ""
@@ -3465,6 +3466,8 @@ msgstr ""
"Heading;}}{\\*\\datastore "
"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.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
@@ -3472,11 +3475,13 @@ msgstr ""
msgid "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.x64.Debug.Control-2.idtx:6 en_US.x64.Release.Control-2.idtx:6
msgid "[DlgTitleFont][SimpleProductName] Declaration"
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.x64.Debug.Control-2.idtx:7 en_US.x64.Release.Control-2.idtx:7
msgid ""
@@ -3487,6 +3492,7 @@ msgstr ""
"opombi ali na drugem ustreznem mestu v publikaciji opremljeno z naslednjim "
"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.x64.Debug.Control-2.idtx:8 en_US.x64.Release.Control-2.idtx:8
msgid ""
@@ -3508,6 +3514,7 @@ msgstr ""
"(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}"
#: 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.x64.Debug.Control-2.idtx:9 en_US.x64.Release.Control-2.idtx:9
msgid ""
@@ -3517,11 +3524,14 @@ msgstr ""
"Opomba: Ta deklaracija je na voljo tudi v dialogu vizitke "
"[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.x64.Debug.Control-2.idtx:10 en_US.x64.Release.Control-2.idtx:10
msgid "I &agree."
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.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
@@ -3529,16 +3539,19 @@ msgstr "&Strinjam se."
msgid "&Continue"
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.x64.Debug.Control-2.idtx:13 en_US.x64.Release.Control-2.idtx:13
msgid "[DlgTitleFont]\"00 ZRCola\" to \"ZRCola\" Font"
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.x64.Debug.Control-2.idtx:14 en_US.x64.Release.Control-2.idtx:14
msgid "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.x64.Debug.Control-2.idtx:15 en_US.x64.Release.Control-2.idtx:15
msgid ""
@@ -3550,86 +3563,103 @@ msgstr ""
" dokumenti prikazani pravilno, smo na vašem računalniku uredili nadomeščanje"
" 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.x64.Debug.Directory-2.idtx:4 en_US.x64.Release.Directory-2.idtx:4
msgid "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.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts"
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.x64.Debug.Feature-2.idtx:4 en_US.x64.Release.Feature-2.idtx:4
msgid "Fonts used by 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.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "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.x64.Debug.Feature-2.idtx:5 en_US.x64.Release.Feature-2.idtx:5
msgid "Times New Roman based font"
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.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "Documentation"
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.x64.Debug.Feature-2.idtx:6 en_US.x64.Release.Feature-2.idtx:6
msgid "ZRCola Documentation"
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.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "Keyboard Shortcuts"
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.x64.Debug.Feature-2.idtx:7 en_US.x64.Release.Feature-2.idtx:7
msgid "PDF document with a list of ZRCola keyboard shortcuts"
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.x64.Debug.Property-2.idtx:4 en_US.x64.Release.Property-2.idtx:4
msgid "Amebis, Slovenia, E.U."
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.x64.Debug.Property-2.idtx:5 en_US.x64.Release.Property-2.idtx:5
msgid "Fran Ramovš Institute of Slovenian Language 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.x64.Debug.Property-2.idtx:6 en_US.x64.Release.Property-2.idtx:6
msgid "+386 1 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.x64.Debug.Property-2.idtx:7 en_US.x64.Release.Property-2.idtx:7
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Property-2.idtx:8 en_US.x64.Release.Property-2.idtx:8
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Property-2.idtx:9 en_US.x64.Release.Property-2.idtx:9
msgid "http://zrcola.zrc-sazu.si/en/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.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
msgid "ZRCOLA~1|ZRCola Keyboard Shortcuts"
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.x64.Debug.Shortcut-2.idtx:4 en_US.x64.Release.Shortcut-2.idtx:4
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`).
### 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.
2. The following variables in the environment:
- `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.
- Local signing:
1. A signing certificate installed in the current user's certificate store.
2. The following variables in the environment:
- `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
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...f457f62448

View File

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

View File

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

View File

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

View File

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

View File

@@ -21,6 +21,7 @@
#include <Updater/chkthread.h>
#include <wxex/common.h>
#include <wxex/icon.h>
#include <wxex/url.h>
#include <wxex/persist/auimanager.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/
//
// 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_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_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_toolbarTranslate->AddControl( m_toolComposition );
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_toolbarTranslate->AddControl( m_toolTranslationSeq );
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_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 );
@@ -382,7 +382,7 @@ wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindow
this->SetSizer( bSizerMain );
this->Layout();
bSizerMain->Fit( this );
m_timerSave.SetOwner( this, wxID_TIMER_SAVE );
m_timerSave.SetOwner( this, m_timerSave.GetId() );
// Connect Events
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_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), 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()
@@ -403,7 +403,7 @@ wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase()
m_destination->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationPaint ), NULL, this );
m_destination->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), NULL, this );
m_destinationHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this );
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;
sbSizerSearch = new wxBoxSizer( wxVERTICAL );
wxArrayString m_categoriesChoices;
m_categories = new wxCheckListBox( m_search_panel, wxID_ANY, wxDefaultPosition, wxSize( -1,60 ), m_categoriesChoices, 0 );
m_categories->SetToolTip( _("List of Unicode character categories to search in") );
wxArrayString m_blocksChoices;
m_blocks = new wxCheckListBox( m_search_panel, wxID_ANY, wxDefaultPosition, wxSize( -1,60 ), m_blocksChoices, 0 );
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;
bSizerCategoriesCtrl = new wxBoxSizer( wxHORIZONTAL );
wxBoxSizer* bSizerBlocksCtrl;
bSizerBlocksCtrl = new wxBoxSizer( wxHORIZONTAL );
m_categoriesAll = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("All"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
m_categoriesAll->SetToolTip( _("Select all categories") );
m_blocksAll = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("All"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
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_categoriesNone->SetToolTip( _("Clear category selection") );
m_blocksNone = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("None"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
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_categoriesInvert->SetToolTip( _("Invert category selection") );
m_blocksInvert = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("Invert"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
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 );
@@ -687,10 +687,10 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
sbSizerPreview->Add( m_tags, 1, wxALL|wxEXPAND, 5 );
m_category = new wxTextCtrl( sbSizerPreview->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTER );
m_category->SetToolTip( _("Unicode character category") );
m_block = new wxTextCtrl( sbSizerPreview->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTER );
m_block->SetToolTip( _("Unicode character block") );
sbSizerPreview->Add( m_category, 0, wxALL|wxEXPAND, 5 );
sbSizerPreview->Add( m_block, 0, wxALL|wxEXPAND, 5 );
wxBoxSizer* bSizerNavigateButtons;
bSizerNavigateButtons = new wxBoxSizer( wxHORIZONTAL );
@@ -780,10 +780,10 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) );
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_categories->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnCategoriesToggle ), NULL, this );
m_categoriesAll->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesAll ), NULL, this );
m_categoriesNone->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesNone ), NULL, this );
m_categoriesInvert->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesInvert ), NULL, this );
m_blocks->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnBlocksToggle ), NULL, this );
m_blocksAll->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksAll ), NULL, this );
m_blocksNone->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksNone ), 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_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), 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 ) );
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_categories->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnCategoriesToggle ), NULL, this );
m_categoriesAll->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesAll ), NULL, this );
m_categoriesNone->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesNone ), NULL, this );
m_categoriesInvert->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesInvert ), NULL, this );
m_blocks->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnBlocksToggle ), NULL, this );
m_blocksAll->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksAll ), NULL, this );
m_blocksNone->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksNone ), 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_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), 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/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -61,7 +61,7 @@ class wxZRColaFrameBase : public wxFrame
protected:
enum
{
wxID_CHARACTER_SELECTOR = 1000,
wxID_CHARACTER_SELECTOR = 6000,
wxID_SEND_DESTINATION,
wxID_COPY_DESTINATION_AND_RETURN,
wxID_SEND_SOURCE,
@@ -78,7 +78,7 @@ class wxZRColaFrameBase : public wxFrame
wxID_HELP_INSTRUCTIONS,
wxID_HELP_SHORTCUTS,
wxID_HELP_REQCHAR,
wxID_HELP_UPDATE
wxID_HELP_UPDATE,
};
wxMenuBar* m_menubar;
@@ -105,7 +105,7 @@ class wxZRColaFrameBase : public wxFrame
wxZRColaCharacterCatalogPanel* m_panelChrCat;
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 OnIconize( wxIconizeEvent& event ) { event.Skip(); }
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
@@ -116,7 +116,7 @@ class wxZRColaFrameBase : public wxFrame
public:
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;
~wxZRColaFrameBase();
@@ -133,7 +133,7 @@ class wxZRColaComposerPanelBase : public wxPanel
protected:
enum
{
wxID_TIMER_SAVE = 1000
wxID_TIMER_SAVE = 6000,
};
wxSplitterWindow* m_splitterSource;
@@ -146,7 +146,7 @@ class wxZRColaComposerPanelBase : public wxPanel
wxTextCtrl* m_destinationHex;
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 OnSourceText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSourceHexPaint( wxPaintEvent& event ) { event.Skip(); }
@@ -161,6 +161,7 @@ class wxZRColaComposerPanelBase : public wxPanel
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();
void m_splitterSourceOnIdle( wxIdleEvent& )
@@ -189,7 +190,7 @@ class wxZRColaCharacterCatalogPanelBase : public wxPanel
wxZRColaCharGrid* m_grid;
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 OnGridClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnGridKeyDown( wxKeyEvent& event ) { event.Skip(); }
@@ -199,6 +200,7 @@ class wxZRColaCharacterCatalogPanelBase : public wxPanel
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();
};
@@ -214,10 +216,10 @@ class wxZRColaCharSelectBase : public wxDialog
wxSearchCtrl* m_search;
wxHyperlinkCtrl* m_search_more;
wxPanel* m_search_panel;
wxCheckListBox* m_categories;
wxHyperlinkCtrl* m_categoriesAll;
wxHyperlinkCtrl* m_categoriesNone;
wxHyperlinkCtrl* m_categoriesInvert;
wxCheckListBox* m_blocks;
wxHyperlinkCtrl* m_blocksAll;
wxHyperlinkCtrl* m_blocksNone;
wxHyperlinkCtrl* m_blocksInvert;
wxZRColaCharGrid* m_gridResults;
wxZRColaCharGrid* m_gridRecent;
wxStaticText* m_labelUnicode;
@@ -226,20 +228,20 @@ class wxZRColaCharSelectBase : public wxDialog
wxGrid* m_gridPreview;
wxTextCtrl* m_description;
wxTextCtrl* m_tags;
wxTextCtrl* m_category;
wxTextCtrl* m_block;
wxHyperlinkCtrl* m_navigateBack;
wxHyperlinkCtrl* m_navigateForward;
wxZRColaCharGrid* m_gridRelated;
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 OnSearchText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSearchMore( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesToggle( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCategoriesAll( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesNone( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesInvert( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnBlocksToggle( wxCommandEvent& event ) { event.Skip(); }
virtual void OnBlocksAll( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnBlocksNone( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnBlocksInvert( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnResultCellDClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnResultSelectCell( wxGridEvent& event ) { event.Skip(); }
virtual void OnResultsKeyDown( wxKeyEvent& event ) { event.Skip(); }
@@ -258,6 +260,7 @@ class wxZRColaCharSelectBase : public wxDialog
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();
};
@@ -284,7 +287,7 @@ class wxZRColaSettingsBase : public wxDialog
wxButton* m_sdbSizerButtonsApply;
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 OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); }
@@ -294,6 +297,7 @@ class wxZRColaSettingsBase : public wxDialog
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();
};
@@ -320,6 +324,7 @@ class wxZRColaAboutBase : public wxDialog
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();
};
@@ -336,7 +341,7 @@ class wxZRColaUpdaterBase : public wxDialog
wxButton* m_buttonUpdate;
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 OnUpdate( wxCommandEvent& event ) { event.Skip(); }
virtual void OnClose( wxCommandEvent& event ) { event.Skip(); }
@@ -345,6 +350,7 @@ class wxZRColaUpdaterBase : public wxDialog
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();
};
@@ -367,13 +373,14 @@ class wxZRColaCharRequestBase : public wxDialog
wxButton* m_sdbSizerButtonsOK;
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(); }
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();
};
@@ -399,7 +406,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
wxButton* m_sdbSizerButtonsOK;
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 OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnAvailableChar( wxKeyEvent& event ) { event.Skip(); }
@@ -416,6 +423,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
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();
};

View File

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

View File

@@ -70,7 +70,7 @@ public:
ZRCola::language_db m_lang_db; ///< Language database
ZRCola::keyseq_db m_ks_db; ///< Key sequence 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::tagname_db m_tn_db; ///< Tag name 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));
// Fill categories.
// Fill blocks.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
int idx = m_categories->Insert(wxGetTranslation(wxString(cc.name(), cc.name_len()), wxT("ZRCola-zrcdb")), (unsigned int)i);
m_categories->Check(idx);
m_ccOrder.insert(std::make_pair(cc.cat, idx));
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) {
const auto &cb = app->m_cb_db.idxRank[i];
int idx = m_blocks->Insert(wxGetTranslation(wxString(cb.name(), cb.name_len()), wxT("ZRCola-zrcdb")), (unsigned int)i);
m_blocks->Check(idx);
m_cbOrder.insert(std::make_pair(cb.id, idx));
}
ResetResults();
@@ -265,20 +265,20 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
m_shortcut->SetValue(wxEmptyString);
}
{
// Update character category.
ZRCola::chrcat_db::indexChrCat::size_type cc_start;
if (app->m_cc_db.idxChrCat.find(ZRCola::chrcat_db::chrcat(chr.cat), cc_start)) {
const auto &cat = app->m_cc_db.idxChrCat[cc_start];
m_category->SetValue(wxGetTranslation(wxString(cat.name(), cat.name_len()), wxT("ZRCola-zrcdb")));
// Update character block.
ZRCola::chrblk_db::indexChrId::size_type cb_start;
if (app->m_cb_db.idxChrId.find(ZRCola::chrblk_db::chrcls(chr.blk), cb_start)) {
const auto &blk = app->m_cb_db.idxChrId[cb_start];
m_block->SetValue(wxGetTranslation(wxString(blk.name(), blk.name_len()), wxT("ZRCola-zrcdb")));
} else
m_category->SetValue(wxEmptyString);
m_block->SetValue(wxEmptyString);
}
// Update related characters.
m_gridRelated->SetCharacters(wxString(chr.rel(), chr.rel_end()));
} else {
m_description->SetValue(wxEmptyString);
m_shortcut->SetValue(wxEmptyString);
m_category->SetValue(wxEmptyString);
m_block->SetValue(wxEmptyString);
m_gridRelated->ClearGrid();
}
@@ -340,11 +340,11 @@ void wxZRColaCharSelect::OnIdle(wxIdleEvent& event)
m_searchThread->m_search.assign(val.c_str(), val.Length());
// Select categories.
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
if (m_categories->IsChecked((unsigned int)i))
m_searchThread->m_cats.insert(cc.cat);
// Select blocks.
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) {
const auto &cb = app->m_cb_db.idxRank[i];
if (m_blocks->IsChecked((unsigned int)i))
m_searchThread->m_blks.insert(cb.id);
}
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();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
m_categories->Check((unsigned int)i, true);
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++)
m_blocks->Check((unsigned int)i, true);
m_searchChanged = true;
}
void wxZRColaCharSelect::OnCategoriesNone(wxHyperlinkEvent& event)
void wxZRColaCharSelect::OnBlocksNone(wxHyperlinkEvent& event)
{
event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
m_categories->Check((unsigned int)i, false);
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++)
m_blocks->Check((unsigned int)i, false);
m_searchChanged = true;
}
void wxZRColaCharSelect::OnCategoriesInvert(wxHyperlinkEvent& event)
void wxZRColaCharSelect::OnBlocksInvert(wxHyperlinkEvent& event)
{
event.StopPropagation();
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++)
m_categories->Check((unsigned int)i, !m_categories->IsChecked((unsigned int)i));
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++)
m_blocks->Check((unsigned int)i, !m_blocks->IsChecked((unsigned int)i));
m_searchChanged = true;
}
void wxZRColaCharSelect::OnCategoriesToggle(wxCommandEvent& event)
void wxZRColaCharSelect::OnBlocksToggle(wxCommandEvent& event)
{
event.Skip();
@@ -625,8 +625,8 @@ void wxZRColaCharSelect::ResetResults()
val.reserve(n);
for (i = 0; i < n; i++) {
const auto &chr = app->m_chr_db.idxChr[i];
auto idx = m_ccOrder.find(chr.cat);
if (idx == m_ccOrder.end() || m_categories->IsChecked(idx->second))
auto idx = m_cbOrder.find(chr.blk);
if (idx == m_cbOrder.end() || m_blocks->IsChecked(idx->second))
val.Add(wxString(chr.chr(), chr.chr_len()));
}
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.
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_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.
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) {
if (TestDestroy()) return (wxThread::ExitCode)1;
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("recentChars2"), str2); // Save in native format
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
wxString name(wxT("category"));
name.Append(cc.cat.data, _countof(cc.cat.data));
SaveValue(name, wnd->m_categories->IsChecked((unsigned int)i));
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) {
const auto &cb = app->m_cb_db.idxRank[i];
SaveValue(wxString::Format(wxT("block%u"), cb.id), wnd->m_blocks->IsChecked((unsigned int)i));
}
SaveValue(wxT("searchPanel"), wnd->m_search_panel->IsShown());
@@ -855,13 +853,11 @@ bool wxPersistentZRColaCharSelect::Restore()
wnd->m_gridRecent->SetCharacters(val);
}
for (size_t i = 0, n = app->m_cc_db.idxRank.size(); i < n; i++) {
const auto &cc = app->m_cc_db.idxRank[i];
wxString name(wxT("category"));
name.Append(cc.cat.data, _countof(cc.cat.data));
for (size_t i = 0, n = app->m_cb_db.idxRank.size(); i < n; i++) {
const auto &cb = app->m_cb_db.idxRank[i];
bool val;
if (RestoreValue(name, &val))
wnd->m_categories->Check((unsigned int)i, val);
if (RestoreValue(wxString::Format(wxT("block%u"), cb.id), &val))
wnd->m_blocks->Check((unsigned int)i, val);
}
bool search_panel;

View File

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

View File

@@ -150,7 +150,8 @@ void wxZRColaComposerPanel::SynchronizePanels()
dst = std::move(dst2);
dst2.clear();
map.invert();
for (auto& m : map)
m.invert();
m_mapping.push_back(std::move(map));
map.clear();
}
@@ -161,7 +162,8 @@ void wxZRColaComposerPanel::SynchronizePanels()
dst = std::move(dst2);
dst2.clear();
map.invert();
for (auto& m : map)
m.invert();
m_mapping.push_back(std::move(map));
map.clear();
}
@@ -203,16 +205,16 @@ void wxZRColaComposerPanel::OnSourcePaint(wxPaintEvent& event)
m_selSource.second = to;
m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(from),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(to ));
m_selSourceHex.first = (long)stdex::src2dst<size_t>(m_mappingSourceHex, from),
m_selSourceHex.second = (long)stdex::src2dst<size_t>(m_mappingSourceHex, to ));
m_destination->SetSelection(
m_selDestination.first = (long)MapToDestination(from),
m_selDestination.second = (long)MapToDestination(to ));
m_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(m_selDestination.first ),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(m_selDestination.second));
m_selDestinationHex.first = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, m_selDestination.first ),
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_source->SetSelection(
m_selSource.first = (long)m_mappingSourceHex.to_src(from),
m_selSource.second = (long)m_mappingSourceHex.to_src(to ));
m_selSource.first = (long)stdex::dst2src<size_t>(m_mappingSourceHex, from),
m_selSource.second = (long)stdex::dst2src<size_t>(m_mappingSourceHex, to ));
m_destination->SetSelection(
m_selDestination.first = (long)MapToDestination(m_selSource.first ),
m_selDestination.second = (long)MapToDestination(m_selSource.second));
m_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(m_selDestination.first ),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(m_selDestination.second));
m_selDestinationHex.first = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, m_selDestination.first ),
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_destinationHex->SetSelection(
m_selDestinationHex.first = (long)m_mappingDestinationHex.to_dst(from),
m_selDestinationHex.second = (long)m_mappingDestinationHex.to_dst(to ));
m_selDestinationHex.first = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, from),
m_selDestinationHex.second = (long)stdex::src2dst<size_t>(m_mappingDestinationHex, to ));
m_source->SetSelection(
m_selSource.first = (long)MapToSource(from),
m_selSource.second = (long)MapToSource(to ));
m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(m_selSource.first ),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(m_selSource.second));
m_selSourceHex.first = (long)stdex::src2dst<size_t>(m_mappingSourceHex, m_selSource.first ),
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_destination->SetSelection(
m_selDestination.first = (long)m_mappingDestinationHex.to_src(from),
m_selDestination.second = (long)m_mappingDestinationHex.to_src(to ));
m_selDestination.first = (long)stdex::dst2src<size_t>(m_mappingDestinationHex, from),
m_selDestination.second = (long)stdex::dst2src<size_t>(m_mappingDestinationHex, to ));
m_source->SetSelection(
m_selSource.first = (long)MapToSource(m_selDestination.first ),
m_selSource.second = (long)MapToSource(m_selDestination.second));
m_sourceHex->SetSelection(
m_selSourceHex.first = (long)m_mappingSourceHex.to_dst(m_selSource.first ),
m_selSourceHex.second = (long)m_mappingSourceHex.to_dst(m_selSource.second));
m_selSourceHex.first = (long)stdex::src2dst<size_t>(m_mappingSourceHex, m_selSource.first ),
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->SetSelection(
range.first = (long)mapping.to_dst(from),
range.second = (long)mapping.to_dst(to ));
range.first = (long)stdex::src2dst<size_t>(mapping, from),
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
{
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;
}
@@ -106,7 +106,7 @@ inline size_t wxZRColaComposerPanel::MapToDestination(_In_ size_t src) 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)
dst = m->to_src(dst);
dst = stdex::dst2src(*m, dst);
return dst;
}

View File

@@ -69,14 +69,6 @@ wxZRColaFrame::wxZRColaFrame() :
m_transeq(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.
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
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/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -30,7 +30,7 @@ delete old;
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 );
m_mgr.SetManagedWindow(this);
@@ -48,27 +48,27 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
wxMenuItem* m_menuItemEditCut;
m_menuItemEditCut = new wxMenuItem( m_menuEdit, wxID_CUT, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL );
#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__ ))
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
m_menuEdit->Append( m_menuItemEditCut );
wxMenuItem* m_menuItemEditCopy;
m_menuItemEditCopy = new wxMenuItem( m_menuEdit, wxID_COPY, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL );
#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__ ))
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
m_menuEdit->Append( m_menuItemEditCopy );
wxMenuItem* m_menuItemEditPaste;
m_menuItemEditPaste = new wxMenuItem( m_menuEdit, wxID_PASTE, wxString( wxEmptyString ) , wxEmptyString, wxITEM_NORMAL );
#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__ ))
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
m_menuEdit->Append( m_menuItemEditPaste );
@@ -89,45 +89,45 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
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 );
#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__ ))
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
m_menuEdit->Append( m_menuItemSendDestination );
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 );
#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__ ))
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
m_menuEdit->Append( m_menuItemCopyDestinationAndReturn );
wxMenuItem* m_menuItemSendSource;
m_menuItemSendSource = new wxMenuItem( m_menuEdit, wxID_SEND_SOURCE, wxString( _("Send &Decomposed") ) + wxT('\t') + wxT("F6"), _("Send decomposed text to source window"), wxITEM_NORMAL );
#ifdef __WXMSW__
m_menuItemSendSource->SetBitmaps( wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(16), FromDIP(16) ) );
m_menuItemSendSource->SetBitmaps( wxIconEx( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 16, 16, this ) );
#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
m_menuEdit->Append( m_menuItemSendSource );
wxMenuItem* m_menuItemCopySourceAndReturn;
m_menuItemCopySourceAndReturn = new wxMenuItem( m_menuEdit, wxID_COPY_SOURCE_AND_RETURN, wxString( _("Copy Decomposed and Re&turn") ) + wxT('\t') + wxT("Ctrl+F6"), _("Copy decomposed text to clipboard and return focus to source window"), wxITEM_NORMAL );
#ifdef __WXMSW__
m_menuItemCopySourceAndReturn->SetBitmaps( wxIcon( wxT("copy_source_and_return.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 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__ ))
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
m_menuEdit->Append( m_menuItemCopySourceAndReturn );
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 );
#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__ ))
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
m_menuEdit->Append( m_menuItemSendAbort );
@@ -211,21 +211,21 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
this->SetMenuBar( m_menubar );
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_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_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_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"), 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();
@@ -235,15 +235,15 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_toolComposition->SetSelection( 0 );
m_toolbarTranslate->AddControl( m_toolComposition );
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_toolbarTranslate->AddControl( m_toolTranslationSeq );
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_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 );
@@ -382,7 +382,7 @@ wxZRColaComposerPanelBase::wxZRColaComposerPanelBase( wxWindow* parent, wxWindow
this->SetSizer( bSizerMain );
this->Layout();
bSizerMain->Fit( this );
m_timerSave.SetOwner( this, wxID_TIMER_SAVE );
m_timerSave.SetOwner( this, m_timerSave.GetId() );
// Connect Events
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_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), 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()
@@ -403,7 +403,7 @@ wxZRColaComposerPanelBase::~wxZRColaComposerPanelBase()
m_destination->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationPaint ), NULL, this );
m_destination->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( wxZRColaComposerPanelBase::OnDestinationText ), NULL, this );
m_destinationHex->Disconnect( wxEVT_PAINT, wxPaintEventHandler( wxZRColaComposerPanelBase::OnDestinationHexPaint ), NULL, this );
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;
sbSizerSearch = new wxBoxSizer( wxVERTICAL );
wxArrayString m_categoriesChoices;
m_categories = new wxCheckListBox( m_search_panel, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( -1,60 )), m_categoriesChoices, 0 );
m_categories->SetToolTip( _("List of Unicode character categories to search in") );
wxArrayString m_blocksChoices;
m_blocks = new wxCheckListBox( m_search_panel, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( -1,60 )), m_blocksChoices, 0 );
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;
bSizerCategoriesCtrl = new wxBoxSizer( wxHORIZONTAL );
wxBoxSizer* bSizerBlocksCtrl;
bSizerBlocksCtrl = new wxBoxSizer( wxHORIZONTAL );
m_categoriesAll = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("All"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
m_categoriesAll->SetToolTip( _("Select all categories") );
m_blocksAll = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("All"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
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_categoriesNone->SetToolTip( _("Clear category selection") );
m_blocksNone = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("None"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
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_categoriesInvert->SetToolTip( _("Invert category selection") );
m_blocksInvert = new wxHyperlinkCtrl( m_search_panel, wxID_ANY, _("Invert"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
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 );
@@ -687,10 +687,10 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
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_category->SetToolTip( _("Unicode character category") );
m_block = new wxTextCtrl( sbSizerPreview->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_CENTER );
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;
bSizerNavigateButtons = new wxBoxSizer( wxHORIZONTAL );
@@ -780,10 +780,10 @@ wxZRColaCharSelectBase::wxZRColaCharSelectBase( wxWindow* parent, wxWindowID id,
this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaCharSelectBase::OnIdle ) );
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_categories->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnCategoriesToggle ), NULL, this );
m_categoriesAll->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesAll ), NULL, this );
m_categoriesNone->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesNone ), NULL, this );
m_categoriesInvert->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesInvert ), NULL, this );
m_blocks->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnBlocksToggle ), NULL, this );
m_blocksAll->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksAll ), NULL, this );
m_blocksNone->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksNone ), 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_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), 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 ) );
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_categories->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnCategoriesToggle ), NULL, this );
m_categoriesAll->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesAll ), NULL, this );
m_categoriesNone->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesNone ), NULL, this );
m_categoriesInvert->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnCategoriesInvert ), NULL, this );
m_blocks->Disconnect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, wxCommandEventHandler( wxZRColaCharSelectBase::OnBlocksToggle ), NULL, this );
m_blocksAll->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksAll ), NULL, this );
m_blocksNone->Disconnect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( wxZRColaCharSelectBase::OnBlocksNone ), 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_SELECT_CELL, wxGridEventHandler( wxZRColaCharSelectBase::OnResultSelectCell ), 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;
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) );
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/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -61,7 +61,7 @@ class wxZRColaFrameBase : public wxFrame
protected:
enum
{
wxID_CHARACTER_SELECTOR = 1000,
wxID_CHARACTER_SELECTOR = 6000,
wxID_SEND_DESTINATION,
wxID_COPY_DESTINATION_AND_RETURN,
wxID_SEND_SOURCE,
@@ -78,7 +78,7 @@ class wxZRColaFrameBase : public wxFrame
wxID_HELP_INSTRUCTIONS,
wxID_HELP_SHORTCUTS,
wxID_HELP_REQCHAR,
wxID_HELP_UPDATE
wxID_HELP_UPDATE,
};
wxMenuBar* m_menubar;
@@ -105,7 +105,7 @@ class wxZRColaFrameBase : public wxFrame
wxZRColaCharacterCatalogPanel* m_panelChrCat;
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 OnIconize( wxIconizeEvent& event ) { event.Skip(); }
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
@@ -133,7 +133,7 @@ class wxZRColaComposerPanelBase : public wxPanel
protected:
enum
{
wxID_TIMER_SAVE = 1000
wxID_TIMER_SAVE = 6000,
};
wxSplitterWindow* m_splitterSource;
@@ -146,7 +146,7 @@ class wxZRColaComposerPanelBase : public wxPanel
wxTextCtrl* m_destinationHex;
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 OnSourceText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSourceHexPaint( wxPaintEvent& event ) { event.Skip(); }
@@ -161,6 +161,7 @@ class wxZRColaComposerPanelBase : public wxPanel
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();
void m_splitterSourceOnIdle( wxIdleEvent& )
@@ -189,7 +190,7 @@ class wxZRColaCharacterCatalogPanelBase : public wxPanel
wxZRColaCharGrid* m_grid;
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 OnGridClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnGridKeyDown( wxKeyEvent& event ) { event.Skip(); }
@@ -199,6 +200,7 @@ class wxZRColaCharacterCatalogPanelBase : public wxPanel
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();
};
@@ -214,10 +216,10 @@ class wxZRColaCharSelectBase : public wxDialog
wxSearchCtrl* m_search;
wxHyperlinkCtrl* m_search_more;
wxPanel* m_search_panel;
wxCheckListBox* m_categories;
wxHyperlinkCtrl* m_categoriesAll;
wxHyperlinkCtrl* m_categoriesNone;
wxHyperlinkCtrl* m_categoriesInvert;
wxCheckListBox* m_blocks;
wxHyperlinkCtrl* m_blocksAll;
wxHyperlinkCtrl* m_blocksNone;
wxHyperlinkCtrl* m_blocksInvert;
wxZRColaCharGrid* m_gridResults;
wxZRColaCharGrid* m_gridRecent;
wxStaticText* m_labelUnicode;
@@ -226,20 +228,20 @@ class wxZRColaCharSelectBase : public wxDialog
wxGrid* m_gridPreview;
wxTextCtrl* m_description;
wxTextCtrl* m_tags;
wxTextCtrl* m_category;
wxTextCtrl* m_block;
wxHyperlinkCtrl* m_navigateBack;
wxHyperlinkCtrl* m_navigateForward;
wxZRColaCharGrid* m_gridRelated;
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 OnSearchText( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSearchMore( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesToggle( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCategoriesAll( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesNone( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnCategoriesInvert( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnBlocksToggle( wxCommandEvent& event ) { event.Skip(); }
virtual void OnBlocksAll( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnBlocksNone( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnBlocksInvert( wxHyperlinkEvent& event ) { event.Skip(); }
virtual void OnResultCellDClick( wxGridEvent& event ) { event.Skip(); }
virtual void OnResultSelectCell( wxGridEvent& event ) { event.Skip(); }
virtual void OnResultsKeyDown( wxKeyEvent& event ) { event.Skip(); }
@@ -258,6 +260,7 @@ class wxZRColaCharSelectBase : public wxDialog
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();
};
@@ -284,7 +287,7 @@ class wxZRColaSettingsBase : public wxDialog
wxButton* m_sdbSizerButtonsApply;
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 OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); }
@@ -294,6 +297,7 @@ class wxZRColaSettingsBase : public wxDialog
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();
};
@@ -320,6 +324,7 @@ class wxZRColaAboutBase : public wxDialog
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();
};
@@ -336,7 +341,7 @@ class wxZRColaUpdaterBase : public wxDialog
wxButton* m_buttonUpdate;
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 OnUpdate( wxCommandEvent& event ) { event.Skip(); }
virtual void OnClose( wxCommandEvent& event ) { event.Skip(); }
@@ -345,6 +350,7 @@ class wxZRColaUpdaterBase : public wxDialog
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();
};
@@ -367,13 +373,14 @@ class wxZRColaCharRequestBase : public wxDialog
wxButton* m_sdbSizerButtonsOK;
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(); }
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();
};
@@ -399,7 +406,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
wxButton* m_sdbSizerButtonsOK;
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 OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); }
virtual void OnAvailableChar( wxKeyEvent& event ) { event.Skip(); }
@@ -416,6 +423,7 @@ class wxZRColaTranslationSeqBase : public wxDialog
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();
};

View File

@@ -1,172 +1,171 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#include "pch.h"
//////////////////////////////////////////////////////////////////////////
// wxZRColaSettings
//////////////////////////////////////////////////////////////////////////
wxZRColaSettings::wxZRColaSettings(wxWindow* parent) :
m_lang_auto(true),
m_lang(ZRCola::langid_t::blank),
wxZRColaSettingsBase(parent)
{
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
m_languages->Clear();
for (size_t i = 0, n = app->m_lang_db.idxLang.size(); i < n; i++) {
const auto &lang = app->m_lang_db.idxLang[i];
wxString
label(lang.name(), lang.name_len()),
label_tran(wxGetTranslation(label, wxT("ZRCola-zrcdb")));
m_languages->Insert(label_tran, (unsigned int)i);
}
}
void wxZRColaSettings::OnInitDialog(wxInitDialogEvent& event)
{
event.Skip();
// Set state of auto-start according to Startup folder shortcut presence.
#if defined(__WXMSW__)
wxString linkName(wxExpandEnvVars("%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\ZRCola.lnk"));
m_autoStart->SetValue(wxFileExists(linkName));
#else
m_autoStart->SetValue(false);
m_panelAutoStart->Enable(false);
#endif
m_languages->Enable(!m_lang_auto);
(m_lang_auto ? m_langAuto : m_langManual)->SetValue(true);
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
ZRCola::language_db::indexLang::size_type start;
m_languages->Select(app->m_lang_db.idxLang.find(ZRCola::language_db::language(m_lang), start) ? (int)start : -1);
}
void wxZRColaSettings::OnLanguageUpdate(wxUpdateUIEvent& event)
{
m_languages->Enable(m_langManual->GetValue());
wxZRColaSettingsBase::OnLanguageUpdate(event);
}
void wxZRColaSettings::OnApplyButtonClick(wxCommandEvent& event)
{
event.Skip();
#if defined(__WXMSW__)
wxString linkName(wxExpandEnvVars("%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\ZRCola.lnk"));
if (m_autoStart->IsChecked()) {
// Create the shortcut.
IShellLink *sl;
HRESULT hr = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&sl);
if (SUCCEEDED(hr)) {
// Setup ZRCola shortcut.
sl->SetPath(wxTheApp->argv[0]);
sl->SetDescription(_("Start ZRCola automatically on logon"));
sl->SetShowCmd(SW_SHOWMINNOACTIVE);
// Query IShellLink for the IPersistFile interface, used for saving the
// shortcut in persistent storage.
IPersistFile *pf;
hr = sl->QueryInterface(IID_IPersistFile, (LPVOID*)&pf);
if (SUCCEEDED(hr)) {
// Save the link by calling IPersistFile::Save.
hr = pf->Save(linkName, TRUE);
pf->Release();
}
sl->Release();
}
} else if (wxFileExists(linkName)) {
// The shortcut already exists. Remove it.
wxRemoveFile(linkName);
}
#endif
if (m_langAuto->GetValue()) {
m_lang_auto = true;
#if defined(__WXMSW__)
// Set update keyboard language.
HKL hkl = ::GetKeyboardLayout(0);
ZRCola::LangConvert(LOWORD(hkl), m_lang);
#endif
} else {
m_lang_auto = false;
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
const auto &lang = app->m_lang_db.idxLang[m_languages->GetSelection()];
if (m_lang != lang.lang) {
m_lang = lang.lang;
// Notify destination text something changed and should re-inverse translate.
wxCommandEvent event2(wxEVT_COMMAND_TEXT_UPDATED);
app->m_mainWnd->m_panel->m_destination->ProcessWindowEvent(event2);
}
}
}
void wxZRColaSettings::OnOKButtonClick(wxCommandEvent& event)
{
wxZRColaSettings::OnApplyButtonClick(event);
}
//////////////////////////////////////////////////////////////////////////
// wxPersistentZRColaSettings
//////////////////////////////////////////////////////////////////////////
const int wxPersistentZRColaSettings::s_guiLevel = 1;
wxPersistentZRColaSettings::wxPersistentZRColaSettings(wxZRColaSettings *wnd) : wxPersistentTLWEx(wnd)
{
}
void wxPersistentZRColaSettings::Save() const
{
SaveValue(wxT("guiLevel"), s_guiLevel);
wxPersistentTLWEx::Save();
auto wnd = static_cast<const wxZRColaSettings*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
SaveValue(wxT("langAuto"), wnd->m_lang_auto);
SaveValue(wxT("lang" ), wxString::FromAscii(wnd->m_lang.data, _countof(wnd->m_lang.data)));
}
bool wxPersistentZRColaSettings::Restore()
{
auto wnd = dynamic_cast<wxZRColaSettings*>(GetWindow());
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
wxString lang;
// Restore automatic language detection setting first.
RestoreValue(wxT("langAuto"), &(wnd->m_lang_auto));
if (wnd->m_lang_auto) {
#if defined(__WXMSW__)
// Set keyboard language.
HKL hkl = ::GetKeyboardLayout(0);
ZRCola::LangConvert(LOWORD(hkl), wnd->m_lang);
#endif
} else if (RestoreValue(wxT("lang"), &lang) && lang.Length() == 3) {
// The language was read from configuration.
wnd->m_lang = lang.c_str();
} else if (!app->m_lang_db.idxLang.empty()) {
wnd->m_lang = app->m_lang_db.idxLang[0].lang;
} else
wnd->m_lang = ZRCola::langid_t::blank;
int guiLevel;
return RestoreValue(wxT("guiLevel"), &guiLevel) && guiLevel == s_guiLevel ? wxPersistentTLWEx::Restore() : true;
}
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#include "pch.h"
//////////////////////////////////////////////////////////////////////////
// wxZRColaSettings
//////////////////////////////////////////////////////////////////////////
wxZRColaSettings::wxZRColaSettings(wxWindow* parent) :
m_lang_auto(true),
wxZRColaSettingsBase(parent)
{
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
m_languages->Clear();
for (size_t i = 0, n = app->m_lang_db.idxLang.size(); i < n; i++) {
const auto &lang = app->m_lang_db.idxLang[i];
wxString
label(lang.name(), lang.name_len()),
label_tran(wxGetTranslation(label, wxT("ZRCola-zrcdb")));
m_languages->Insert(label_tran, (unsigned int)i);
}
}
void wxZRColaSettings::OnInitDialog(wxInitDialogEvent& event)
{
event.Skip();
// Set state of auto-start according to Startup folder shortcut presence.
#if defined(__WXMSW__)
wxString linkName(wxExpandEnvVars("%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\ZRCola.lnk"));
m_autoStart->SetValue(wxFileExists(linkName));
#else
m_autoStart->SetValue(false);
m_panelAutoStart->Enable(false);
#endif
m_languages->Enable(!m_lang_auto);
(m_lang_auto ? m_langAuto : m_langManual)->SetValue(true);
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
ZRCola::language_db::indexLang::size_type start;
m_languages->Select(app->m_lang_db.idxLang.find(ZRCola::language_db::language(m_lang), start) ? (int)start : -1);
}
void wxZRColaSettings::OnLanguageUpdate(wxUpdateUIEvent& event)
{
m_languages->Enable(m_langManual->GetValue());
wxZRColaSettingsBase::OnLanguageUpdate(event);
}
void wxZRColaSettings::OnApplyButtonClick(wxCommandEvent& event)
{
event.Skip();
#if defined(__WXMSW__)
wxString linkName(wxExpandEnvVars("%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\ZRCola.lnk"));
if (m_autoStart->IsChecked()) {
// Create the shortcut.
IShellLink *sl;
HRESULT hr = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&sl);
if (SUCCEEDED(hr)) {
// Setup ZRCola shortcut.
sl->SetPath(wxTheApp->argv[0]);
sl->SetDescription(_("Start ZRCola automatically on logon"));
sl->SetShowCmd(SW_SHOWMINNOACTIVE);
// Query IShellLink for the IPersistFile interface, used for saving the
// shortcut in persistent storage.
IPersistFile *pf;
hr = sl->QueryInterface(IID_IPersistFile, (LPVOID*)&pf);
if (SUCCEEDED(hr)) {
// Save the link by calling IPersistFile::Save.
hr = pf->Save(linkName, TRUE);
pf->Release();
}
sl->Release();
}
} else if (wxFileExists(linkName)) {
// The shortcut already exists. Remove it.
wxRemoveFile(linkName);
}
#endif
if (m_langAuto->GetValue()) {
m_lang_auto = true;
#if defined(__WXMSW__)
// Set update keyboard language.
HKL hkl = ::GetKeyboardLayout(0);
ZRCola::LangConvert(LOWORD(hkl), m_lang);
#endif
} else {
m_lang_auto = false;
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
const auto &lang = app->m_lang_db.idxLang[m_languages->GetSelection()];
if (m_lang != lang.lang) {
m_lang = lang.lang;
// Notify destination text something changed and should re-inverse translate.
wxCommandEvent event2(wxEVT_COMMAND_TEXT_UPDATED);
app->m_mainWnd->m_panel->m_destination->ProcessWindowEvent(event2);
}
}
}
void wxZRColaSettings::OnOKButtonClick(wxCommandEvent& event)
{
wxZRColaSettings::OnApplyButtonClick(event);
}
//////////////////////////////////////////////////////////////////////////
// wxPersistentZRColaSettings
//////////////////////////////////////////////////////////////////////////
const int wxPersistentZRColaSettings::s_guiLevel = 1;
wxPersistentZRColaSettings::wxPersistentZRColaSettings(wxZRColaSettings *wnd) : wxPersistentTLWEx(wnd)
{
}
void wxPersistentZRColaSettings::Save() const
{
SaveValue(wxT("guiLevel"), s_guiLevel);
wxPersistentTLWEx::Save();
auto wnd = static_cast<const wxZRColaSettings*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
SaveValue(wxT("langAuto"), wnd->m_lang_auto);
SaveValue(wxT("lang" ), wxString::FromAscii(wnd->m_lang.data, _countof(wnd->m_lang.data)));
}
bool wxPersistentZRColaSettings::Restore()
{
auto wnd = dynamic_cast<wxZRColaSettings*>(GetWindow());
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
wxString lang;
// Restore automatic language detection setting first.
RestoreValue(wxT("langAuto"), &(wnd->m_lang_auto));
if (wnd->m_lang_auto) {
#if defined(__WXMSW__)
// Set keyboard language.
HKL hkl = ::GetKeyboardLayout(0);
ZRCola::LangConvert(LOWORD(hkl), wnd->m_lang);
#endif
} else if (RestoreValue(wxT("lang"), &lang) && lang.Length() == 3) {
// The language was read from configuration.
wnd->m_lang = lang.c_str();
} else if (!app->m_lang_db.idxLang.empty()) {
wnd->m_lang = app->m_lang_db.idxLang[0].lang;
} else
wnd->m_lang = ZRCola::langid_t();
int guiLevel;
return RestoreValue(wxT("guiLevel"), &guiLevel) && guiLevel == s_guiLevel ? wxPersistentTLWEx::Restore() : true;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -745,8 +745,6 @@ int _tmain(int argc, _TCHAR *argv[])
}
}
set<ZRCola::chrcatid_t> categories_used;
{
// Get characters.
com_obj<ADORecordset> rs;
@@ -756,7 +754,32 @@ int _tmain(int argc, _TCHAR *argv[])
ZRCola::DBSource::character_desc_idx idxChrDsc, idxChrDscSub;
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()) {
// Read character from the database.
ZRCola::DBSource::character chr;
@@ -766,33 +789,61 @@ int _tmain(int argc, _TCHAR *argv[])
has_errors = true;
}
// Phase 2: Build related character lists.
// Phase 3: Build related character lists.
chrs.build_related();
ZRCola::character_db db;
{
ZRCola::character_db db;
// Preallocate memory.
db.idxChr.reserve(count);
db.data .reserve(count*4);
// Preallocate memory.
db.idxChr.reserve(count);
db.data.reserve(count * 4);
// Phase 3: Parse characters and build index and data.
for (auto chr = chrs.cbegin(), chr_end = chrs.cend(); chr != chr_end; ++chr) {
// Add character to index and data.
db << *chr;
// Phase 4: Parse characters and build index and data.
for (auto chr = chrs.cbegin(), chr_end = chrs.cend(); chr != chr_end; ++chr) {
// Add character to index and data.
db << *chr;
// Add description (and keywords) to index.
idxChrDsc .add_keywords(chr->second.terms, chr->first, 0);
idxChrDscSub.add_keywords(chr->second.terms, chr->first, 3);
// Add description (and keywords) to index.
idxChrDsc.add_keywords(chr->second.terms, chr->first, 0);
idxChrDscSub.add_keywords(chr->second.terms, chr->first, 3);
}
// Mark category used.
categories_used.insert(chr->second.cat);
// Write characters to file.
db.idxChr.sort();
idxChrDsc.save(db.idxDsc);
idxChrDscSub.save(db.idxDscSub);
dst << ZRCola::character_rec(db);
}
// Write characters to file.
db.idxChr.sort();
idxChrDsc .save(db.idxDsc );
idxChrDscSub.save(db.idxDscSub);
dst << ZRCola::character_rec(db);
{
ZRCola::chrblk_db db;
// Preallocate memory.
db.idxChrId.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.idxRank.sort();
dst << ZRCola::chrblk_rec(db);
}
} else {
_ftprintf(stderr, wxT("%s: error ZCC0017: Error getting character count from database or too many characters.\n"), (LPCTSTR)filenameIn.c_str());
has_errors = true;
@@ -803,52 +854,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.
com_obj<ADORecordset> rs;
@@ -981,10 +986,10 @@ int _tmain(int argc, _TCHAR *argv[])
<< "\"Content-Transfer-Encoding: 8bit\\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) {
// 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++) {
char c = t[i];
switch (c) {

View File

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

View File

@@ -4,7 +4,7 @@
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`

View File

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

View File

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

View File

@@ -20,11 +20,7 @@
</ResourceCompile>
<Link>
<EnableCOMDATFolding>false</EnableCOMDATFolding>
<SetChecksum>true</SetChecksum>
</Link>
</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>

View File

@@ -24,9 +24,12 @@
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</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 /sha1 &quot;%ManifestCertificateThumbprint%&quot; /fd sha256 /tr &quot;%ManifestTimestampRFC3161Url%&quot; /td sha256 /q &quot;$(TargetPath)&quot;" />
<Target Name="SignLocal" Condition="('$(ConfigurationType)' == 'Application' or '$(ConfigurationType)' == 'DynamicLibrary') and '$(ManifestCertificateThumbprint)' != ''" AfterTargets="_Manifest" BeforeTargets="RegisterOutput" Inputs="$(OutDir)$(TargetName)$(TargetExt)" Outputs="$(IntDir)$(TargetName).sign">
<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" />
</Target>
</Project>

View File

@@ -12,8 +12,8 @@
</PropertyGroup>
<PropertyGroup>
<_PropertySheetDisplayName>ZRCola Common</_PropertySheetDisplayName>
<IntDir>temp\$(MSBuildProjectName).$(Platform).$(Configuration).$(PlatformToolset)\</IntDir>
<OutDir>temp\$(MSBuildProjectName).$(Platform).$(Configuration).$(PlatformToolset)\</OutDir>
<IntDir>temp\$(MSBuildProjectName).$(Platform).$(Configuration)\</IntDir>
<OutDir>temp\$(MSBuildProjectName).$(Platform).$(Configuration)\</OutDir>
<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>
<LinkIncremental>false</LinkIncremental>
@@ -31,6 +31,7 @@
<DisableSpecificWarnings>4100;4505</DisableSpecificWarnings>
<SupportJustMyCode>false</SupportJustMyCode>
<EnablePREfast>true</EnablePREfast>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<OptimizeReferences>true</OptimizeReferences>

View File

@@ -9,7 +9,7 @@
// Product version as a single DWORD
// Note: Used for version comparison within C/C++ code.
//
#define PRODUCT_VERSION 0x02070000
#define PRODUCT_VERSION 0x02070100
//
// Product version by components
@@ -19,26 +19,26 @@
//
#define PRODUCT_VERSION_MAJ 2
#define PRODUCT_VERSION_MIN 7
#define PRODUCT_VERSION_REV 0
#define PRODUCT_VERSION_REV 1
#define PRODUCT_VERSION_BUILD 0
//
// Human readable product version and build year for UI
//
#define PRODUCT_VERSION_STR "2.7"
#define PRODUCT_BUILD_YEAR_STR "2023"
#define PRODUCT_VERSION_STR "2.7.1"
#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]])
//
#define PRODUCT_VERSION_INST "2.7"
#define PRODUCT_VERSION_INST "2.7.1"
//
// The product code for ProductCode property in MSI packages
// 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 "{9423BEC3-3159-4130-8C3E-48D5DE24D48A}"
//
// The product vendor and application name for configuration keeping.

View File

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

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -15,7 +15,7 @@
namespace ZRCola {
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<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;

View File

@@ -1,427 +1,427 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#pragma once
#include "common.h"
#include <istream>
#include <ostream>
#include <vector>
#include <string>
#pragma warning(push)
#pragma warning(disable: 4200)
#pragma warning(disable: 4251)
#pragma warning(disable: 4512)
namespace ZRCola {
///
/// Language Character Database
///
class langchar_db {
public:
#pragma pack(push)
#pragma pack(2)
///
/// Character data
///
struct langchar {
public:
langid_t lang; ///< Language ID
protected:
uint16_t chr_to; ///< Character end in \c data
char_t data[]; ///< Character
private:
inline langchar(_In_ const langchar &other);
inline langchar& operator=(_In_ const langchar &other);
public:
///
/// Constructs the language character
///
/// \param[in] lang Character language
/// \param[in] chr Character
/// \param[in] chr_len Number of UTF-16 characters in \p chr
///
inline langchar(
_In_opt_ langid_t lang = langid_t::blank,
_In_opt_z_count_(chr_len) const char_t *chr = NULL,
_In_opt_ size_t chr_len = 0)
{
this->lang = lang;
this->chr_to = static_cast<uint16_t>(chr_len);
if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len);
}
inline const char_t* chr () const { return data; };
inline char_t* chr () { return data; };
inline const char_t* chr_end() const { return data + chr_to; };
inline char_t* chr_end() { return data + chr_to; };
inline uint16_t chr_len() const { return chr_to; };
};
#pragma pack(pop)
///
/// Character index
///
class indexChr : public index<uint16_t, uint32_t, langchar>
{
public:
///
/// Constructs the index
///
/// \param[in] h Reference to vector holding the data
///
indexChr(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, langchar>(h) {}
///
/// Compares two characters by ID (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 langchar &a, _In_ const langchar &b) const
{
int r = ZRCola::CompareString(a.chr(), a.chr_len(), b.chr(), b.chr_len());
if (r != 0) return r;
if (a.lang < b.lang) return -1;
if (a.lang > b.lang) return 1;
return 0;
}
} idxChr; ///< Character index
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
///
/// Language Index
///
class indexLang : public index<uint16_t, uint32_t, langchar>
{
public:
///
/// Constructs the index
///
/// \param[in] h Reference to vector holding the data
///
indexLang(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, langchar>(h) {}
///
/// Compares two languages by ID (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 langchar &a, _In_ const langchar &b) const
{
if (a.lang < b.lang) return -1;
if (a.lang > b.lang) return 1;
int r = ZRCola::CompareString(a.chr, a.chr_len(), b.chr(), b.chr_len());
if (r != 0) return r;
return 0;
}
} idxLang; ///< Language index
#endif
std::vector<uint16_t> data; ///< Character data
public:
///
/// Constructs the database
///
inline langchar_db() : idxChr(data)
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
, idxLang(data)
#endif
{}
///
/// Clears the database
///
inline void clear()
{
idxChr .clear();
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
idxLang.clear();
#endif
data .clear();
}
///
/// Tests presence of character in the given language
///
/// \param[in] chr Pointer to character
/// \param[in] chr_end Pointer to character end
/// \param[in] lang Language
///
/// \returns
/// - \c true when character is used in language
/// - \c false otherwise
bool IsLocalCharacter(_In_ const char_t *chr, _In_ const char_t *chr_end, _In_ langid_t lang) const;
///
/// Writes language character database to a stream
///
/// \param[in] stream Output stream
/// \param[in] db Language character database
///
/// \returns The stream \p stream
///
friend std::ostream& operator <<(_In_ std::ostream& stream, _In_ const langchar_db& db)
{
// Write character index.
if (stream.fail()) return stream;
stream << db.idxChr;
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
// Write language index.
if (stream.fail()) return stream;
stream << db.idxLang;
#endif
// Write data count.
auto data_count = db.data.size();
#if defined(_WIN64) || defined(__x86_64__) || defined(__ppc64__)
// 4G check
if (data_count > 0xffffffff) {
stream.setstate(std::ios_base::failbit);
return stream;
}
#endif
if (stream.fail()) return stream;
uint32_t count = (uint32_t)data_count;
stream.write((const char*)&count, sizeof(count));
// Write data.
if (stream.fail()) return stream;
stream.write((const char*)db.data.data(), sizeof(uint16_t) * static_cast<std::streamsize>(count));
return stream;
}
///
/// Reads language character database from a stream
///
/// \param[in ] stream Input stream
/// \param[out] db Language character database
///
/// \returns The stream \p stream
///
friend std::istream& operator >>(_In_ std::istream& stream, _Out_ langchar_db& db)
{
// Read character index.
stream >> db.idxChr;
if (!stream.good()) return stream;
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
// Read language index.
stream >> db.idxLang;
if (!stream.good()) return stream;
#endif
// Read data count.
uint32_t count;
stream.read((char*)&count, sizeof(count));
if (!stream.good()) return stream;
if (count) {
// Read data.
db.data.resize(count);
stream.read((char*)db.data.data(), sizeof(uint16_t) * static_cast<std::streamsize>(count));
}
else
db.data.clear();
return stream;
}
};
///
/// Language database
///
class language_db {
public:
#pragma pack(push)
#pragma pack(2)
///
/// Language data
///
struct language {
public:
langid_t lang; ///< Language ID
protected:
uint16_t name_to; ///< Language name end in \c data
char_t data[]; ///< Language name
private:
inline language(_In_ const language &other);
inline language& operator=(_In_ const language &other);
public:
///
/// Constructs the language
///
/// \param[in] lang Language ID
/// \param[in] name Language name
/// \param[in] name_len Number of UTF-16 characters in \p name
///
inline language(
_In_opt_ langid_t lang = langid_t::blank,
_In_opt_z_count_(name_len) const char_t *name = NULL,
_In_opt_ size_t name_len = 0)
{
this->lang = lang;
this->name_to = static_cast<uint16_t>(name_len);
if (name && name_len) memcpy(this->data, name, sizeof(char_t)*name_len);
}
inline const char_t* name () const { return data; };
inline char_t* name () { return data; };
inline const char_t* name_end() const { return data + name_to; };
inline char_t* name_end() { return data + name_to; };
inline uint16_t name_len() const { return name_to; };
};
#pragma pack(pop)
///
/// Language index
///
class indexLang : public index<uint16_t, uint32_t, language>
{
public:
///
/// Constructs the index
///
/// \param[in] h Reference to vector holding the data
///
indexLang(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, language>(h) {}
///
/// Compares two languages by ID (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 language &a, _In_ const language &b) const
{
if (a.lang < b.lang) return -1;
if (a.lang > b.lang) return 1;
return 0;
}
} idxLang; ///< Language index
std::vector<uint16_t> data; ///< Language data
public:
///
/// Constructs the database
///
inline language_db() : idxLang(data) {}
///
/// Clears the database
///
inline void clear()
{
idxLang.clear();
data .clear();
}
///
/// Writes language database to a stream
///
/// \param[in] stream Output stream
/// \param[in] db Language database
///
/// \returns The stream \p stream
///
friend std::ostream& operator <<(_In_ std::ostream& stream, _In_ const language_db& db)
{
// Write language index.
if (stream.fail()) return stream;
stream << db.idxLang;
// Write data count.
auto data_count = db.data.size();
#if defined(_WIN64) || defined(__x86_64__) || defined(__ppc64__)
// 4G check
if (data_count > 0xffffffff) {
stream.setstate(std::ios_base::failbit);
return stream;
}
#endif
if (stream.fail()) return stream;
uint32_t count = (uint32_t)data_count;
stream.write((const char*)&count, sizeof(count));
// Write data.
if (stream.fail()) return stream;
stream.write((const char*)db.data.data(), sizeof(uint16_t) * static_cast<std::streamsize>(count));
return stream;
}
///
/// Reads language database from a stream
///
/// \param[in ] stream Input stream
/// \param[out] db Language database
///
/// \returns The stream \p stream
///
friend std::istream& operator >>(_In_ std::istream& stream, _Out_ language_db& db)
{
// Read language index.
stream >> db.idxLang;
if (!stream.good()) return stream;
// Read data count.
uint32_t count;
stream.read((char*)&count, sizeof(count));
if (!stream.good()) return stream;
if (count) {
// Read data.
db.data.resize(count);
stream.read((char*)db.data.data(), sizeof(uint16_t) * static_cast<std::streamsize>(count));
}
else
db.data.clear();
return stream;
}
};
};
#pragma warning(pop)
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#pragma once
#include "common.h"
#include <istream>
#include <ostream>
#include <vector>
#include <string>
#pragma warning(push)
#pragma warning(disable: 4200)
#pragma warning(disable: 4251)
#pragma warning(disable: 4512)
namespace ZRCola {
///
/// Language Character Database
///
class langchar_db {
public:
#pragma pack(push)
#pragma pack(2)
///
/// Character data
///
struct langchar {
public:
langid_t lang; ///< Language ID
protected:
uint16_t chr_to; ///< Character end in \c data
char_t data[]; ///< Character
private:
langchar(_In_ const langchar &other);
langchar& operator=(_In_ const langchar &other);
public:
///
/// Constructs the language character
///
/// \param[in] lang Character language
/// \param[in] chr Character
/// \param[in] chr_len Number of UTF-16 characters in \p chr
///
langchar(
_In_opt_ langid_t lang = langid_t(),
_In_opt_z_count_(chr_len) const char_t *chr = NULL,
_In_opt_ size_t chr_len = 0)
{
this->lang = lang;
this->chr_to = static_cast<uint16_t>(chr_len);
if (chr && chr_len) memcpy(this->data, chr, sizeof(char_t)*chr_len);
}
const char_t* chr () const { return data; };
char_t* chr () { return data; };
const char_t* chr_end() const { return data + chr_to; };
char_t* chr_end() { return data + chr_to; };
uint16_t chr_len() const { return chr_to; };
};
#pragma pack(pop)
///
/// Character index
///
class indexChr : public index<uint16_t, uint32_t, langchar>
{
public:
///
/// Constructs the index
///
/// \param[in] h Reference to vector holding the data
///
indexChr(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, langchar>(h) {}
///
/// Compares two characters by ID (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 langchar &a, _In_ const langchar &b) const
{
int r = ZRCola::CompareString(a.chr(), a.chr_len(), b.chr(), b.chr_len());
if (r != 0) return r;
if (a.lang < b.lang) return -1;
if (a.lang > b.lang) return 1;
return 0;
}
} idxChr; ///< Character index
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
///
/// Language Index
///
class indexLang : public index<uint16_t, uint32_t, langchar>
{
public:
///
/// Constructs the index
///
/// \param[in] h Reference to vector holding the data
///
indexLang(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, langchar>(h) {}
///
/// Compares two languages by ID (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 langchar &a, _In_ const langchar &b) const
{
if (a.lang < b.lang) return -1;
if (a.lang > b.lang) return 1;
int r = ZRCola::CompareString(a.chr, a.chr_len(), b.chr(), b.chr_len());
if (r != 0) return r;
return 0;
}
} idxLang; ///< Language index
#endif
std::vector<uint16_t> data; ///< Character data
public:
///
/// Constructs the database
///
langchar_db() : idxChr(data)
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
, idxLang(data)
#endif
{}
///
/// Clears the database
///
void clear()
{
idxChr .clear();
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
idxLang.clear();
#endif
data .clear();
}
///
/// Tests presence of character in the given language
///
/// \param[in] chr Pointer to character
/// \param[in] chr_end Pointer to character end
/// \param[in] lang Language
///
/// \returns
/// - \c true when character is used in language
/// - \c false otherwise
bool IsLocalCharacter(_In_ const char_t *chr, _In_ const char_t *chr_end, _In_ langid_t lang) const;
///
/// Writes language character database to a stream
///
/// \param[in] stream Output stream
/// \param[in] db Language character database
///
/// \returns The stream \p stream
///
friend std::ostream& operator <<(_In_ std::ostream& stream, _In_ const langchar_db& db)
{
// Write character index.
if (stream.fail()) return stream;
stream << db.idxChr;
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
// Write language index.
if (stream.fail()) return stream;
stream << db.idxLang;
#endif
// Write data count.
auto data_count = db.data.size();
#if defined(_WIN64) || defined(__x86_64__) || defined(__ppc64__)
// 4G check
if (data_count > 0xffffffff) {
stream.setstate(std::ios_base::failbit);
return stream;
}
#endif
if (stream.fail()) return stream;
uint32_t count = (uint32_t)data_count;
stream.write((const char*)&count, sizeof(count));
// Write data.
if (stream.fail()) return stream;
stream.write((const char*)db.data.data(), sizeof(uint16_t) * static_cast<std::streamsize>(count));
return stream;
}
///
/// Reads language character database from a stream
///
/// \param[in ] stream Input stream
/// \param[out] db Language character database
///
/// \returns The stream \p stream
///
friend std::istream& operator >>(_In_ std::istream& stream, _Out_ langchar_db& db)
{
// Read character index.
stream >> db.idxChr;
if (!stream.good()) return stream;
#ifdef ZRCOLA_LANGCHAR_LANG_IDX
// Read language index.
stream >> db.idxLang;
if (!stream.good()) return stream;
#endif
// Read data count.
uint32_t count;
stream.read((char*)&count, sizeof(count));
if (!stream.good()) return stream;
if (count) {
// Read data.
db.data.resize(count);
stream.read((char*)db.data.data(), sizeof(uint16_t) * static_cast<std::streamsize>(count));
}
else
db.data.clear();
return stream;
}
};
///
/// Language database
///
class language_db {
public:
#pragma pack(push)
#pragma pack(2)
///
/// Language data
///
struct language {
public:
langid_t lang; ///< Language ID
protected:
uint16_t name_to; ///< Language name end in \c data
char_t data[]; ///< Language name
private:
language(_In_ const language &other);
language& operator=(_In_ const language &other);
public:
///
/// Constructs the language
///
/// \param[in] lang Language ID
/// \param[in] name Language name
/// \param[in] name_len Number of UTF-16 characters in \p name
///
language(
_In_opt_ langid_t lang = langid_t(),
_In_opt_z_count_(name_len) const char_t *name = NULL,
_In_opt_ size_t name_len = 0)
{
this->lang = lang;
this->name_to = static_cast<uint16_t>(name_len);
if (name && name_len) memcpy(this->data, name, sizeof(char_t)*name_len);
}
const char_t* name () const { return data; };
char_t* name () { return data; };
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; };
};
#pragma pack(pop)
///
/// Language index
///
class indexLang : public index<uint16_t, uint32_t, language>
{
public:
///
/// Constructs the index
///
/// \param[in] h Reference to vector holding the data
///
indexLang(_In_ std::vector<uint16_t> &h) : index<uint16_t, uint32_t, language>(h) {}
///
/// Compares two languages by ID (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 language &a, _In_ const language &b) const
{
if (a.lang < b.lang) return -1;
if (a.lang > b.lang) return 1;
return 0;
}
} idxLang; ///< Language index
std::vector<uint16_t> data; ///< Language data
public:
///
/// Constructs the database
///
language_db() : idxLang(data) {}
///
/// Clears the database
///
void clear()
{
idxLang.clear();
data .clear();
}
///
/// Writes language database to a stream
///
/// \param[in] stream Output stream
/// \param[in] db Language database
///
/// \returns The stream \p stream
///
friend std::ostream& operator <<(_In_ std::ostream& stream, _In_ const language_db& db)
{
// Write language index.
if (stream.fail()) return stream;
stream << db.idxLang;
// Write data count.
auto data_count = db.data.size();
#if defined(_WIN64) || defined(__x86_64__) || defined(__ppc64__)
// 4G check
if (data_count > 0xffffffff) {
stream.setstate(std::ios_base::failbit);
return stream;
}
#endif
if (stream.fail()) return stream;
uint32_t count = (uint32_t)data_count;
stream.write((const char*)&count, sizeof(count));
// Write data.
if (stream.fail()) return stream;
stream.write((const char*)db.data.data(), sizeof(uint16_t) * static_cast<std::streamsize>(count));
return stream;
}
///
/// Reads language database from a stream
///
/// \param[in ] stream Input stream
/// \param[out] db Language database
///
/// \returns The stream \p stream
///
friend std::istream& operator >>(_In_ std::istream& stream, _Out_ language_db& db)
{
// Read language index.
stream >> db.idxLang;
if (!stream.good()) return stream;
// Read data count.
uint32_t count;
stream.read((char*)&count, sizeof(count));
if (!stream.good()) return stream;
if (count) {
// Read data.
db.data.resize(count);
stream.read((char*)db.data.data(), sizeof(uint16_t) * static_cast<std::streamsize>(count));
}
else
db.data.clear();
return stream;
}
};
};
#pragma warning(pop)

View File

@@ -41,8 +41,8 @@ namespace ZRCola {
char_t data[]; ///< Character
private:
inline chrtag(_In_ const chrtag &other);
inline chrtag& operator=(_In_ const chrtag &other);
chrtag(_In_ const chrtag &other);
chrtag& operator=(_In_ const chrtag &other);
public:
///
@@ -52,7 +52,7 @@ namespace ZRCola {
/// \param[in] chr_len Number of UTF-16 characters in \p chr
/// \param[in] tag Tag
///
inline chrtag(
chrtag(
_In_opt_z_count_(chr_len) const char_t *chr = NULL,
_In_opt_ size_t chr_len = 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);
}
inline const char_t* chr () const { return data; };
inline char_t* chr () { return data; };
inline const char_t* chr_end() const { return data + chr_to; };
inline char_t* chr_end() { return data + chr_to; };
inline uint16_t chr_len() const { return chr_to; };
const char_t* chr () const { return data; };
char_t* chr () { return data; };
const char_t* chr_end() const { return data + chr_to; };
char_t* chr_end() { return data + chr_to; };
uint16_t chr_len() const { return chr_to; };
};
#pragma pack(pop)
@@ -187,12 +187,12 @@ namespace ZRCola {
///
/// Constructs the database
///
inline chrtag_db() : idxChr(data), idxTag(data) {}
chrtag_db() : idxChr(data), idxTag(data) {}
///
/// Clears the database
///
inline void clear()
void clear()
{
idxChr.clear();
idxTag.clear();
@@ -204,12 +204,12 @@ namespace ZRCola {
///
/// \param[in ] tags Search tags
/// \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[in ] fn_abort Pointer to function to periodically test for search cancellation
/// \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
private:
inline tagname(_In_ const tagname &other);
inline tagname& operator=(_In_ const tagname &other);
tagname(_In_ const tagname &other);
tagname& operator=(_In_ const tagname &other);
public:
///
@@ -319,7 +319,7 @@ namespace ZRCola {
/// \param[in] name Tag name
/// \param[in] name_len Number of UTF-16 characters in \p name
///
inline tagname(
tagname(
_In_opt_ tagid_t tag = 0,
_In_opt_ uint32_t locale = 0,
_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);
}
inline const char_t* name () const { return data; };
inline char_t* name () { return data; };
inline const char_t* name_end() const { return data + name_to; };
inline char_t* name_end() { return data + name_to; };
inline uint16_t name_len() const { return name_to; };
const char_t* name () const { return data; };
char_t* name () { return data; };
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; };
///
/// Compares two names
@@ -355,7 +355,7 @@ namespace ZRCola {
/// 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.
///
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
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(b.begin(), b.end(), b.begin(), tolower);
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
}
};
@@ -484,12 +486,12 @@ namespace ZRCola {
///
/// Constructs the database
///
inline tagname_db() : idxName(data), idxTag(data) {}
tagname_db() : idxName(data), idxTag(data) {}
///
/// Clears the database
///
inline void clear()
void clear()
{
idxName.clear();
idxTag .clear();

File diff suppressed because it is too large Load Diff

View File

@@ -1,126 +1,123 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#include "pch.h"
const ZRCola::chrcatid_t ZRCola::chrcatid_t::blank = {};
#ifndef _WIN32
_Use_decl_annotations_
size_t ZRCola::wcslen(const char_t *str)
{
for (size_t i = 0; ; ++i)
if (!str[i])
return i;
}
_Use_decl_annotations_
size_t ZRCola::wcsnlen(const char_t *str, size_t count)
{
for (size_t i = 0; ; ++i)
if (i >= count || !str[i])
return i;
}
#endif
_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
{
assert(str);
while (*str) {
if (fn_abort && fn_abort(cookie)) return false;
// Skip white space.
for (;;) {
if (*str == 0)
return true;
else if (!iswspace(*str))
break;
else
str++;
}
// Get term.
string_t term;
if (*str == u'"') {
const auto *str_end = ++str;
for (;;) {
if (*str_end == 0) {
term.assign(str, str_end);
break;
} else if (*str_end == u'"') {
term.assign(str, str_end);
str_end++;
break;
} else
str_end++;
}
str = str_end;
} else {
const auto *str_end = str + 1;
for (; *str_end && !iswspace(*str_end); str_end++);
term.assign(str, str_end);
str = str_end;
}
if (!term.empty()) {
if (fn_abort && fn_abort(cookie)) return false;
// Find the term.
std::transform(term.begin(), term.end(), term.begin(), std::towlower);
if (fn_abort && fn_abort(cookie)) return false;
const char_t *val;
size_t val_len;
if (idxDsc.find(term.c_str(), term.size(), &val, &val_len)) {
// The term was found.
for (size_t i = 0, j = 0; i < val_len; i += j + 1) {
if (fn_abort && fn_abort(cookie)) return false;
j = wcsnlen(val + i, val_len - i);
if (cats.find(GetCharCat(val + i, j)) != cats.end()) {
string_t c(val + i, j);
auto idx = hits.find(c);
if (idx == hits.end()) {
// New character.
hits.insert(std::make_pair(std::move(c), 1.0/val_len));
} else {
// Increase rating of existing character.
idx->second += 1.0/val_len;
}
}
}
}
if (idxDscSub.find(term.c_str(), term.size(), &val, &val_len)) {
// The term was found in the sub-term index.
for (size_t i = 0, j = 0; i < val_len; i += j + 1) {
if (fn_abort && fn_abort(cookie)) return false;
j = wcsnlen(val + i, val_len - i);
if (cats.find(GetCharCat(val + i, j)) != cats.end()) {
string_t c(val + i, j);
auto idx = hits_sub.find(c);
if (idx == hits_sub.end()) {
// New character.
hits_sub.insert(std::make_pair(c, 1.0/val_len));
} else {
// Increase rating of existing character.
idx->second += 1.0/val_len;
}
}
}
}
}
}
return true;
}
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#include "pch.h"
#ifndef _WIN32
_Use_decl_annotations_
size_t ZRCola::wcslen(const char_t *str)
{
for (size_t i = 0; ; ++i)
if (!str[i])
return i;
}
_Use_decl_annotations_
size_t ZRCola::wcsnlen(const char_t *str, size_t count)
{
for (size_t i = 0; ; ++i)
if (i >= count || !str[i])
return i;
}
#endif
_Use_decl_annotations_
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);
while (*str) {
if (fn_abort && fn_abort(cookie)) return false;
// Skip white space.
for (;;) {
if (*str == 0)
return true;
else if (!iswspace(*str))
break;
else
str++;
}
// Get term.
string_t term;
if (*str == u'"') {
const auto *str_end = ++str;
for (;;) {
if (*str_end == 0) {
term.assign(str, str_end);
break;
} else if (*str_end == u'"') {
term.assign(str, str_end);
str_end++;
break;
} else
str_end++;
}
str = str_end;
} else {
const auto *str_end = str + 1;
for (; *str_end && !iswspace(*str_end); str_end++);
term.assign(str, str_end);
str = str_end;
}
if (!term.empty()) {
if (fn_abort && fn_abort(cookie)) return false;
// Find the term.
std::transform(term.begin(), term.end(), term.begin(), std::towlower);
if (fn_abort && fn_abort(cookie)) return false;
const char_t *val;
size_t val_len;
if (idxDsc.find(term.c_str(), term.size(), &val, &val_len)) {
// The term was found.
for (size_t i = 0, j = 0; i < val_len; i += j + 1) {
if (fn_abort && fn_abort(cookie)) return false;
j = wcsnlen(val + i, val_len - i);
if (blks.find(GetCharBlk(val + i, j)) != blks.end()) {
string_t c(val + i, j);
auto idx = hits.find(c);
if (idx == hits.end()) {
// New character.
hits.insert(std::make_pair(std::move(c), 1.0/val_len));
} else {
// Increase rating of existing character.
idx->second += 1.0/val_len;
}
}
}
}
if (idxDscSub.find(term.c_str(), term.size(), &val, &val_len)) {
// The term was found in the sub-term index.
for (size_t i = 0, j = 0; i < val_len; i += j + 1) {
if (fn_abort && fn_abort(cookie)) return false;
j = wcsnlen(val + i, val_len - i);
if (blks.find(GetCharBlk(val + i, j)) != blks.end()) {
string_t c(val + i, j);
auto idx = hits_sub.find(c);
if (idx == hits_sub.end()) {
// New character.
hits_sub.insert(std::make_pair(c, 1.0/val_len));
} else {
// Increase rating of existing character.
idx->second += 1.0/val_len;
}
}
}
}
}
}
return true;
}

View File

@@ -1,84 +1,81 @@
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#include "pch.h"
const ZRCola::langid_t ZRCola::langid_t::blank = {};
_Use_decl_annotations_
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++) {
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;
}
}
_Use_decl_annotations_
inline std::string ZRCola::GetUnicodeDumpA(const char_t* str, size_t count, const char* sep)
{
std::string out;
size_t sep_len = strlen(sep);
size_t dump_len_max = sep_len + 4 + 1;
char* dump;
std::unique_ptr<char[]> dump_obj(dump = new char[dump_len_max]);
if (count && str[0]) {
size_t i = 0;
static const char error[] = "????";
int n = snprintf(dump, dump_len_max, "%04X", str[i++]);
if (n >= 0)
out.insert(out.end(), dump, dump + n);
else
out.insert(out.end(), error, error + std::size(error) - 1);
while (i < count && str[i]) {
n = snprintf(dump, dump_len_max, "%s%04X", sep, str[i++]);
if (n >= 0)
out.insert(out.end(), dump, dump + n);
else {
out.insert(out.end(), sep, sep + sep_len);
out.insert(out.end(), error, error + std::size(error) - 1);
}
}
}
return out;
}
_Use_decl_annotations_
std::wstring ZRCola::GetUnicodeDumpW(const char_t* str, size_t count, const wchar_t* sep)
{
std::wstring out;
size_t sep_len = ::wcslen(sep);
size_t dump_len_max = sep_len + 4 + 1;
wchar_t* dump;
std::unique_ptr<wchar_t[]> dump_obj(dump = new wchar_t[dump_len_max]);
if (count && str[0]) {
size_t i = 0;
static const wchar_t error[] = L"????";
int n = swprintf(dump, dump_len_max, L"%04X", str[i++]);
if (n >= 0)
out.insert(out.end(), dump, dump + n);
else
out.insert(out.end(), error, error + std::size(error) - 1);
while (i < count && str[i]) {
n = swprintf(dump, dump_len_max, L"%s%04X", sep, str[i++]);
if (n >= 0)
out.insert(out.end(), dump, dump + n);
else {
out.insert(out.end(), sep, sep + sep_len);
out.insert(out.end(), error, error + std::size(error) - 1);
}
}
}
return out;
}
/*
SPDX-License-Identifier: GPL-3.0-or-later
Copyright © 2015-2022 Amebis
*/
#include "pch.h"
_Use_decl_annotations_
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++) {
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;
}
}
_Use_decl_annotations_
inline std::string ZRCola::GetUnicodeDumpA(const char_t* str, size_t count, const char* sep)
{
std::string out;
size_t sep_len = strlen(sep);
size_t dump_len_max = sep_len + 4 + 1;
char* dump;
std::unique_ptr<char[]> dump_obj(dump = new char[dump_len_max]);
if (count && str[0]) {
size_t i = 0;
static const char error[] = "????";
int n = snprintf(dump, dump_len_max, "%04X", str[i++]);
if (n >= 0)
out.insert(out.end(), dump, dump + n);
else
out.insert(out.end(), error, error + std::size(error) - 1);
while (i < count && str[i]) {
n = snprintf(dump, dump_len_max, "%s%04X", sep, str[i++]);
if (n >= 0)
out.insert(out.end(), dump, dump + n);
else {
out.insert(out.end(), sep, sep + sep_len);
out.insert(out.end(), error, error + std::size(error) - 1);
}
}
}
return out;
}
_Use_decl_annotations_
std::wstring ZRCola::GetUnicodeDumpW(const char_t* str, size_t count, const wchar_t* sep)
{
std::wstring out;
size_t sep_len = ::wcslen(sep);
size_t dump_len_max = sep_len + 4 + 1;
wchar_t* dump;
std::unique_ptr<wchar_t[]> dump_obj(dump = new wchar_t[dump_len_max]);
if (count && str[0]) {
size_t i = 0;
static const wchar_t error[] = L"????";
int n = swprintf(dump, dump_len_max, L"%04X", str[i++]);
if (n >= 0)
out.insert(out.end(), dump, dump + n);
else
out.insert(out.end(), error, error + std::size(error) - 1);
while (i < count && str[i]) {
n = swprintf(dump, dump_len_max, L"%s%04X", sep, str[i++]);
if (n >= 0)
out.insert(out.end(), dump, dump + n);
else {
out.insert(out.end(), sep, sep + sep_len);
out.insert(out.end(), error, error + std::size(error) - 1);
}
}
}
return out;
}

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

@@ -6,7 +6,7 @@
#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) {
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;
const chrtag &ct = idxTag[i];
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);
auto idx = hits.find(chr);
if (idx == hits.end()) {

View File

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

View File

@@ -63,7 +63,7 @@ namespace ZRCola {
/// \param[in] chr Character
/// \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_ size_t seq_count = 0,
_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);
}
inline const char_t* chr () const { return data; };
inline char_t* chr () { return data; };
inline const char_t* chr_end() const { return data + chr_to; };
inline char_t* chr_end() { return data + chr_to; };
inline uint16_t chr_len() const { return chr_to; };
const char_t* chr () const { return data; };
char_t* chr () { return data; };
const char_t* chr_end() const { return data + chr_to; };
char_t* chr_end() { return data + 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); };
inline 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); };
inline 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); };
const key_t* seq () const { return reinterpret_cast<const key_t*>(data + chr_to); };
key_t* seq () { return reinterpret_cast< key_t*>(data + chr_to); };
const key_t* seq_end() const { return reinterpret_cast<const key_t*>(data + seq_to); };
key_t* seq_end() { return reinterpret_cast< key_t*>(data + seq_to); };
uint16_t seq_len() const { return (seq_to - chr_to) * sizeof(*data) / sizeof(key_t); };
///
/// Compares two key sequences
@@ -100,7 +100,7 @@ namespace ZRCola {
/// - =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++) {
if (i >= len_a && i >= len_b) return 0;
@@ -232,12 +232,12 @@ namespace ZRCola {
///
/// Constructs the database
///
inline keyseq_db() : idxChr(data), idxKey(data) {}
keyseq_db() : idxChr(data), idxKey(data) {}
///
/// Clears the database
///
inline void clear()
void clear()
{
idxChr.clear();
idxKey.clear();
@@ -265,7 +265,7 @@ namespace ZRCola {
///
/// \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;
return GetSequenceAsText(seq, seq_len, str) ? str : wxEmptyString;

View File

@@ -6,162 +6,162 @@
msgid ""
msgstr ""
"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"
"Last-Translator: Simon Rozman <simon@rozman.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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de_DE\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-KeywordsList: _\n"
"X-Poedit-SearchPath-0: src\n"
"X-Poedit-SearchPath-1: include\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"
msgstr "Strg"
#: src/keyboard.cpp:31 src/keyboard.cpp:71
#: src/keyboard.cpp:17 src/keyboard.cpp:57
msgid "Alt"
msgstr "Alt"
#: src/keyboard.cpp:32 src/keyboard.cpp:70
#: src/keyboard.cpp:18 src/keyboard.cpp:56
msgid "Shift"
msgstr ""
#: src/keyboard.cpp:45
#: src/keyboard.cpp:31
msgid "Esc"
msgstr "Esc"
#: src/keyboard.cpp:47
#: src/keyboard.cpp:33
msgid "F1"
msgstr "F1"
#: src/keyboard.cpp:48
#: src/keyboard.cpp:34
msgid "F2"
msgstr "F2"
#: src/keyboard.cpp:49
#: src/keyboard.cpp:35
msgid "F3"
msgstr "F3"
#: src/keyboard.cpp:50
#: src/keyboard.cpp:36
msgid "F4"
msgstr "F4"
#: src/keyboard.cpp:51
#: src/keyboard.cpp:37
msgid "F5"
msgstr "F5"
#: src/keyboard.cpp:52
#: src/keyboard.cpp:38
msgid "F6"
msgstr "F6"
#: src/keyboard.cpp:53
#: src/keyboard.cpp:39
msgid "F7"
msgstr "F7"
#: src/keyboard.cpp:54
#: src/keyboard.cpp:40
msgid "F8"
msgstr "F8"
#: src/keyboard.cpp:55
#: src/keyboard.cpp:41
msgid "F9"
msgstr "F9"
#: src/keyboard.cpp:56
#: src/keyboard.cpp:42
msgid "F10"
msgstr "F10"
#: src/keyboard.cpp:57
#: src/keyboard.cpp:43
msgid "F11"
msgstr "F11"
#: src/keyboard.cpp:58
#: src/keyboard.cpp:44
msgid "F12"
msgstr "F12"
#: src/keyboard.cpp:60
#: src/keyboard.cpp:46
msgid "Print Screen"
msgstr "Druck"
#: src/keyboard.cpp:61
#: src/keyboard.cpp:47
msgid "Scroll Lock"
msgstr "Rollen"
#: src/keyboard.cpp:62
#: src/keyboard.cpp:48
msgid "Pause"
msgstr "Pause"
#: src/keyboard.cpp:64
#: src/keyboard.cpp:50
msgid "Backspace"
msgstr ""
#: src/keyboard.cpp:65
#: src/keyboard.cpp:51
msgid "Tab"
msgstr ""
#: src/keyboard.cpp:66
#: src/keyboard.cpp:52
msgid "Caps Lock"
msgstr ""
#: src/keyboard.cpp:67
#: src/keyboard.cpp:53
msgid "Return"
msgstr ""
#: src/keyboard.cpp:68
#: src/keyboard.cpp:54
msgid "Space"
msgstr ""
#: src/keyboard.cpp:73
#: src/keyboard.cpp:59
msgid "Menu"
msgstr "Menu"
#: src/keyboard.cpp:75
#: src/keyboard.cpp:61
msgid "Insert"
msgstr "Einfg"
#: src/keyboard.cpp:76
#: src/keyboard.cpp:62
msgid "Delete"
msgstr "Entf"
#: src/keyboard.cpp:77
#: src/keyboard.cpp:63
msgid "Page Up"
msgstr "Bild↑"
#: src/keyboard.cpp:78
#: src/keyboard.cpp:64
msgid "Page Down"
msgstr "Bild↓"
#: src/keyboard.cpp:79
#: src/keyboard.cpp:65
msgid "Home"
msgstr "Pos1"
#: src/keyboard.cpp:80
#: src/keyboard.cpp:66
msgid "End"
msgstr "Ende"
#: src/keyboard.cpp:82
#: src/keyboard.cpp:68
msgid "Left"
msgstr ""
#: src/keyboard.cpp:83
#: src/keyboard.cpp:69
msgid "Up"
msgstr ""
#: src/keyboard.cpp:84
#: src/keyboard.cpp:70
msgid "Right"
msgstr ""
#: src/keyboard.cpp:85
#: src/keyboard.cpp:71
msgid "Down"
msgstr ""
#: src/keyboard.cpp:87
#: src/keyboard.cpp:73
msgid "Num Lock"
msgstr ""

View File

@@ -6,162 +6,162 @@
msgid ""
msgstr ""
"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"
"Last-Translator: Simon Rozman <simon@rozman.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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Poedit 2.1.1\n"
"X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: src\n"
"X-Poedit-SearchPath-1: include\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"
msgstr "Ctrl"
#: src/keyboard.cpp:31 src/keyboard.cpp:71
#: src/keyboard.cpp:17 src/keyboard.cpp:57
msgid "Alt"
msgstr "Alt"
#: src/keyboard.cpp:32 src/keyboard.cpp:70
#: src/keyboard.cpp:18 src/keyboard.cpp:56
msgid "Shift"
msgstr "Shift"
#: src/keyboard.cpp:45
#: src/keyboard.cpp:31
msgid "Esc"
msgstr "Esc"
#: src/keyboard.cpp:47
#: src/keyboard.cpp:33
msgid "F1"
msgstr "F1"
#: src/keyboard.cpp:48
#: src/keyboard.cpp:34
msgid "F2"
msgstr "F2"
#: src/keyboard.cpp:49
#: src/keyboard.cpp:35
msgid "F3"
msgstr "F3"
#: src/keyboard.cpp:50
#: src/keyboard.cpp:36
msgid "F4"
msgstr "F4"
#: src/keyboard.cpp:51
#: src/keyboard.cpp:37
msgid "F5"
msgstr "F5"
#: src/keyboard.cpp:52
#: src/keyboard.cpp:38
msgid "F6"
msgstr "F6"
#: src/keyboard.cpp:53
#: src/keyboard.cpp:39
msgid "F7"
msgstr "F7"
#: src/keyboard.cpp:54
#: src/keyboard.cpp:40
msgid "F8"
msgstr "F8"
#: src/keyboard.cpp:55
#: src/keyboard.cpp:41
msgid "F9"
msgstr "F9"
#: src/keyboard.cpp:56
#: src/keyboard.cpp:42
msgid "F10"
msgstr "F10"
#: src/keyboard.cpp:57
#: src/keyboard.cpp:43
msgid "F11"
msgstr "F11"
#: src/keyboard.cpp:58
#: src/keyboard.cpp:44
msgid "F12"
msgstr "F12"
#: src/keyboard.cpp:60
#: src/keyboard.cpp:46
msgid "Print Screen"
msgstr "Print Screen"
#: src/keyboard.cpp:61
#: src/keyboard.cpp:47
msgid "Scroll Lock"
msgstr "Scroll Lock"
#: src/keyboard.cpp:62
#: src/keyboard.cpp:48
msgid "Pause"
msgstr "Pause"
#: src/keyboard.cpp:64
#: src/keyboard.cpp:50
msgid "Backspace"
msgstr "Backspace"
#: src/keyboard.cpp:65
#: src/keyboard.cpp:51
msgid "Tab"
msgstr "Tab"
#: src/keyboard.cpp:66
#: src/keyboard.cpp:52
msgid "Caps Lock"
msgstr "Caps Lock"
#: src/keyboard.cpp:67
#: src/keyboard.cpp:53
msgid "Return"
msgstr "Return"
#: src/keyboard.cpp:68
#: src/keyboard.cpp:54
msgid "Space"
msgstr "Space"
#: src/keyboard.cpp:73
#: src/keyboard.cpp:59
msgid "Menu"
msgstr "Menu"
#: src/keyboard.cpp:75
#: src/keyboard.cpp:61
msgid "Insert"
msgstr "Insert"
#: src/keyboard.cpp:76
#: src/keyboard.cpp:62
msgid "Delete"
msgstr "Delete"
#: src/keyboard.cpp:77
#: src/keyboard.cpp:63
msgid "Page Up"
msgstr "Page Up"
#: src/keyboard.cpp:78
#: src/keyboard.cpp:64
msgid "Page Down"
msgstr "Page Down"
#: src/keyboard.cpp:79
#: src/keyboard.cpp:65
msgid "Home"
msgstr "Home"
#: src/keyboard.cpp:80
#: src/keyboard.cpp:66
msgid "End"
msgstr "End"
#: src/keyboard.cpp:82
#: src/keyboard.cpp:68
msgid "Left"
msgstr "Left"
#: src/keyboard.cpp:83
#: src/keyboard.cpp:69
msgid "Up"
msgstr "Up"
#: src/keyboard.cpp:84
#: src/keyboard.cpp:70
msgid "Right"
msgstr "Right"
#: src/keyboard.cpp:85
#: src/keyboard.cpp:71
msgid "Down"
msgstr "Down"
#: src/keyboard.cpp:87
#: src/keyboard.cpp:73
msgid "Num Lock"
msgstr "Num Lock"

View File

@@ -6,162 +6,162 @@
msgid ""
msgstr ""
"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"
"Last-Translator: Simon Rozman <simon@rozman.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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Poedit 2.1.1\n"
"X-Generator: Poedit 2.4.2\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: src\n"
"X-Poedit-SearchPath-1: include\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"
msgstr "Ctrl"
#: src/keyboard.cpp:31 src/keyboard.cpp:71
#: src/keyboard.cpp:17 src/keyboard.cpp:57
msgid "Alt"
msgstr "Alt"
#: src/keyboard.cpp:32 src/keyboard.cpp:70
#: src/keyboard.cpp:18 src/keyboard.cpp:56
msgid "Shift"
msgstr "Shift"
#: src/keyboard.cpp:45
#: src/keyboard.cpp:31
msgid "Esc"
msgstr "Esc"
#: src/keyboard.cpp:47
#: src/keyboard.cpp:33
msgid "F1"
msgstr "F1"
#: src/keyboard.cpp:48
#: src/keyboard.cpp:34
msgid "F2"
msgstr "F2"
#: src/keyboard.cpp:49
#: src/keyboard.cpp:35
msgid "F3"
msgstr "F3"
#: src/keyboard.cpp:50
#: src/keyboard.cpp:36
msgid "F4"
msgstr "F4"
#: src/keyboard.cpp:51
#: src/keyboard.cpp:37
msgid "F5"
msgstr "F5"
#: src/keyboard.cpp:52
#: src/keyboard.cpp:38
msgid "F6"
msgstr "F6"
#: src/keyboard.cpp:53
#: src/keyboard.cpp:39
msgid "F7"
msgstr "F7"
#: src/keyboard.cpp:54
#: src/keyboard.cpp:40
msgid "F8"
msgstr "F8"
#: src/keyboard.cpp:55
#: src/keyboard.cpp:41
msgid "F9"
msgstr "F9"
#: src/keyboard.cpp:56
#: src/keyboard.cpp:42
msgid "F10"
msgstr "F10"
#: src/keyboard.cpp:57
#: src/keyboard.cpp:43
msgid "F11"
msgstr "F11"
#: src/keyboard.cpp:58
#: src/keyboard.cpp:44
msgid "F12"
msgstr "F12"
#: src/keyboard.cpp:60
#: src/keyboard.cpp:46
msgid "Print Screen"
msgstr "Print Screen"
#: src/keyboard.cpp:61
#: src/keyboard.cpp:47
msgid "Scroll Lock"
msgstr "Scroll Lock"
#: src/keyboard.cpp:62
#: src/keyboard.cpp:48
msgid "Pause"
msgstr "Pause"
#: src/keyboard.cpp:64
#: src/keyboard.cpp:50
msgid "Backspace"
msgstr "Backspace"
#: src/keyboard.cpp:65
#: src/keyboard.cpp:51
msgid "Tab"
msgstr "Tab"
#: src/keyboard.cpp:66
#: src/keyboard.cpp:52
msgid "Caps Lock"
msgstr "Caps Lock"
#: src/keyboard.cpp:67
#: src/keyboard.cpp:53
msgid "Return"
msgstr "Return"
#: src/keyboard.cpp:68
#: src/keyboard.cpp:54
msgid "Space"
msgstr "preslednica"
#: src/keyboard.cpp:73
#: src/keyboard.cpp:59
msgid "Menu"
msgstr "Menu"
#: src/keyboard.cpp:75
#: src/keyboard.cpp:61
msgid "Insert"
msgstr "Insert"
#: src/keyboard.cpp:76
#: src/keyboard.cpp:62
msgid "Delete"
msgstr "Delete"
#: src/keyboard.cpp:77
#: src/keyboard.cpp:63
msgid "Page Up"
msgstr "Page Up"
#: src/keyboard.cpp:78
#: src/keyboard.cpp:64
msgid "Page Down"
msgstr "Page Down"
#: src/keyboard.cpp:79
#: src/keyboard.cpp:65
msgid "Home"
msgstr "Home"
#: src/keyboard.cpp:80
#: src/keyboard.cpp:66
msgid "End"
msgstr "End"
#: src/keyboard.cpp:82
#: src/keyboard.cpp:68
msgid "Left"
msgstr "Left"
#: src/keyboard.cpp:83
#: src/keyboard.cpp:69
msgid "Up"
msgstr "Up"
#: src/keyboard.cpp:84
#: src/keyboard.cpp:70
msgid "Right"
msgstr "Right"
#: src/keyboard.cpp:85
#: src/keyboard.cpp:71
msgid "Down"
msgstr "Down"
#: src/keyboard.cpp:87
#: src/keyboard.cpp:73
msgid "Num Lock"
msgstr "Num Lock"

Binary file not shown.

View File

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

View File

@@ -2,7 +2,7 @@
msgid ""
msgstr ""
"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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -13,6 +13,9 @@ msgstr ""
msgid "Albanian"
msgstr ""
msgid "Alphabetic Presentation Forms"
msgstr ""
msgid "Apostrophes 1"
msgstr ""
@@ -22,24 +25,42 @@ msgstr ""
msgid "Arabic"
msgstr ""
msgid "Armenian"
msgstr ""
msgid "Arrows"
msgstr ""
msgid "Belarusian"
msgstr ""
msgid "Block Elements"
msgstr ""
msgid "Bosnian Cyrillic"
msgstr ""
msgid "Bosnian Latinic"
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"
msgstr ""
msgid "CAPITAL Case » small Case"
msgstr ""
msgid "CJK Symbols and Punctuation"
msgstr ""
msgid "Combine"
msgstr ""
@@ -52,6 +73,18 @@ msgstr ""
msgid "Combine Over"
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"
msgstr ""
@@ -61,6 +94,9 @@ msgstr ""
msgid "Currencies"
msgstr ""
msgid "Currency Symbols"
msgstr ""
msgid "Cyrillic"
msgstr ""
@@ -121,6 +157,12 @@ msgstr ""
msgid "Cyrillic BdC"
msgstr ""
msgid "Cyrillic Extended-B"
msgstr ""
msgid "Cyrillic Supplement"
msgstr ""
msgid "Cyrillic » Latin (GOST2000)"
msgstr ""
@@ -133,9 +175,15 @@ msgstr ""
msgid "Diacritics"
msgstr ""
msgid "Dingbats"
msgstr ""
msgid "Encircled Characters"
msgstr ""
msgid "Enclosed Alphanumerics"
msgstr ""
msgid "English"
msgstr ""
@@ -151,6 +199,12 @@ msgstr ""
msgid "Friulian"
msgstr ""
msgid "General Punctuation"
msgstr ""
msgid "Geometric Shapes"
msgstr ""
msgid "Geometrical Shapes"
msgstr ""
@@ -172,12 +226,24 @@ msgstr ""
msgid "Greek (Old)"
msgstr ""
msgid "Greek Extended"
msgstr ""
msgid "Greek and Coptic"
msgstr ""
msgid "Gujarati"
msgstr ""
msgid "Hebrew"
msgstr ""
msgid "Hungarian"
msgstr ""
msgid "IPA Extensions"
msgstr ""
msgid "Irish Gaelic"
msgstr ""
@@ -298,6 +364,21 @@ msgstr ""
msgid "Latin BdC"
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)"
msgstr ""
@@ -421,19 +502,7 @@ msgstr ""
msgid "Letter u"
msgstr ""
msgid "Letter, Lowercase"
msgstr ""
msgid "Letter, Modifier"
msgstr ""
msgid "Letter, Other"
msgstr ""
msgid "Letter, Titlecase"
msgstr ""
msgid "Letter, Uppercase"
msgid "Letterlike Symbols"
msgstr ""
msgid "Ligatures"
@@ -448,21 +517,30 @@ msgstr ""
msgid "Maltese"
msgstr ""
msgid "Mark, Enclosing"
msgstr ""
msgid "Mark, Non-Spacing"
msgstr ""
msgid "Mark, Spacing Combining"
msgstr ""
msgid "Mathematical And Physical Symbols"
msgstr ""
msgid "Mathematical Operators"
msgstr ""
msgid "Metric"
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"
msgstr ""
@@ -508,13 +586,7 @@ msgstr ""
msgid "Number 9"
msgstr ""
msgid "Number, Decimal Digit"
msgstr ""
msgid "Number, Letter"
msgstr ""
msgid "Number, Other"
msgid "Number Forms"
msgstr ""
msgid "Numbers"
@@ -526,45 +598,27 @@ msgstr ""
msgid "Other Modifiers"
msgstr ""
msgid "Other, Format"
msgstr ""
msgid "Other, Surrogate"
msgstr ""
msgid "Parentheses"
msgstr ""
msgid "Phonetic Extensions"
msgstr ""
msgid "Phonetic Extensions Supplement"
msgstr ""
msgid "Polish"
msgstr ""
msgid "Portuguese"
msgstr ""
msgid "Private Use Area"
msgstr ""
msgid "Punctuation"
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"
msgstr ""
@@ -574,15 +628,6 @@ msgstr ""
msgid "Russian"
msgstr ""
msgid "Separator, Line"
msgstr ""
msgid "Separator, Paragraph"
msgstr ""
msgid "Separator, Space"
msgstr ""
msgid "Serbian Cyrillic"
msgstr ""
@@ -610,12 +655,18 @@ msgstr ""
msgid "Spaces"
msgstr ""
msgid "Spacing Modifier Letters"
msgstr ""
msgid "Spanish"
msgstr ""
msgid "Special Characters"
msgstr ""
msgid "Specials"
msgstr ""
msgid "Strokes"
msgstr ""
@@ -625,6 +676,18 @@ msgstr ""
msgid "Superscript Sharacters"
msgstr ""
msgid "Superscripts and Subscripts"
msgstr ""
msgid "Supplemental Arrows-A"
msgstr ""
msgid "Supplemental Arrows-B"
msgstr ""
msgid "Supplemental Punctuation"
msgstr ""
msgid "Surrounded"
msgstr ""
@@ -667,16 +730,7 @@ msgstr ""
msgid "Symbol ?"
msgstr ""
msgid "Symbol, Currency"
msgstr ""
msgid "Symbol, Math"
msgstr ""
msgid "Symbol, Modifier"
msgstr ""
msgid "Symbol, Other"
msgid "Syriac"
msgstr ""
msgid "Technical Characters"
@@ -697,6 +751,9 @@ msgstr ""
msgid "Ukrainian"
msgstr ""
msgid "Unified Canadian Aboriginal Syllabics"
msgstr ""
msgid "Units"
msgstr ""

View File

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

View File

@@ -1,12 +1,12 @@
#
# Translators:
# Simon Rozman <simon@rozman.si>, 2018
# Simon Rozman <simon@rozman.si>, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: ZRCola.zrcdb\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2018\n"
"Language-Team: Slovenian (Slovenia) (https://www.transifex.com/amebis/teams/91592/sl_SI/)\n"
"Last-Translator: Simon Rozman <simon@rozman.si>, 2025\n"
"Language-Team: Slovenian (Slovenia) (https://app.transifex.com/amebis/teams/91592/sl_SI/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -17,6 +17,9 @@ msgstr ""
msgid "Albanian"
msgstr "albanščina"
msgid "Alphabetic Presentation Forms"
msgstr ""
msgid "Apostrophes 1"
msgstr "apostrofi 1"
@@ -26,24 +29,42 @@ msgstr "apostrofi 2"
msgid "Arabic"
msgstr "Arabski znaki"
msgid "Armenian"
msgstr "armenščina"
msgid "Arrows"
msgstr "Puščice"
msgid "Belarusian"
msgstr "beloruščina"
msgid "Block Elements"
msgstr "Blokovni elementi"
msgid "Bosnian Cyrillic"
msgstr "bosanščina cirilica"
msgid "Bosnian Latinic"
msgstr "bosanščina latinica"
msgid "Box Drawing"
msgstr "Risanje okvirjev"
msgid "C0 Controls and Basic Latin (Basic Latin)"
msgstr "Kontrolni znaki C0 in osnovna latinica (osnovna latinica)"
msgid "C1 Controls and Latin-1 Supplement (Latin-1 Supplement)"
msgstr "Kontrolni znaki C1 in dopolnitev Latin-1 (dopolnitev Latin-1)"
msgid "CAPITAL Case"
msgstr "VELIKE črke"
msgid "CAPITAL Case » small Case"
msgstr "VELIKE črke » male črke"
msgid "CJK Symbols and Punctuation"
msgstr "Simboli in ločila KJK"
msgid "Combine"
msgstr "Srednji nadomestni znaki"
@@ -56,6 +77,18 @@ msgstr "Spodnji nadomestni znaki"
msgid "Combine Over"
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"
msgstr "Sestavljiva ločevalna znamenja"
@@ -65,8 +98,11 @@ msgstr "hrvaščina"
msgid "Currencies"
msgstr "Valute"
msgid "Currency Symbols"
msgstr "Simboli valut"
msgid "Cyrillic"
msgstr "Cirilski znaki"
msgstr "Cirilica"
msgid "Cyrillic (Belarusian)"
msgstr "cirilica (beloruščina)"
@@ -125,6 +161,12 @@ msgstr "cirilica (ukrajinščina) » latinica (slovenščina)"
msgid "Cyrillic BdC"
msgstr "cirilica (BdC)"
msgid "Cyrillic Extended-B"
msgstr "Razširitev cirilice B"
msgid "Cyrillic Supplement"
msgstr "Dopolnitev cirilice"
msgid "Cyrillic » Latin (GOST2000)"
msgstr "cirilica » latinica (GOST2000)"
@@ -137,9 +179,15 @@ msgstr "danščina"
msgid "Diacritics"
msgstr "Ločevalna znamenja"
msgid "Dingbats"
msgstr "Ornamenti"
msgid "Encircled Characters"
msgstr "Obkroženi znaki"
msgid "Enclosed Alphanumerics"
msgstr "Obkrožene črke in številke"
msgid "English"
msgstr "angleščina"
@@ -155,6 +203,12 @@ msgstr "francoščina"
msgid "Friulian"
msgstr "furlanščina"
msgid "General Punctuation"
msgstr "Splošna ločila"
msgid "Geometric Shapes"
msgstr "Geometrijske oblike"
msgid "Geometrical Shapes"
msgstr "Geometrijski liki"
@@ -176,12 +230,24 @@ msgstr "grški alfabet (nova grščina) » grški alfabet (stara grščina)"
msgid "Greek (Old)"
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 ""
msgid "Hebrew"
msgstr "Hebrejski znaki"
msgstr "hebrejščina"
msgid "Hungarian"
msgstr "madžarščina"
msgid "IPA Extensions"
msgstr "Razširitve IPA"
msgid "Irish Gaelic"
msgstr "irščina"
@@ -302,6 +368,21 @@ msgstr "latinščina (ALE)"
msgid "Latin BdC"
msgstr "latinščina (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)"
msgstr "latinica » cirilica (beloruščina)"
@@ -425,20 +506,8 @@ msgstr "Črka o"
msgid "Letter u"
msgstr "Črka u"
msgid "Letter, Lowercase"
msgstr "Črka, mala"
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 "Letterlike Symbols"
msgstr "Simboli iz črk"
msgid "Ligatures"
msgstr "Ligature"
@@ -452,21 +521,30 @@ msgstr "makedonščina"
msgid "Maltese"
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"
msgstr "Matematični in fizikalni simboli"
msgid "Mathematical Operators"
msgstr "Matematični operatorji"
msgid "Metric"
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"
msgstr "Spreminjevalni nadomestni znaki"
@@ -512,14 +590,8 @@ msgstr "Številka 8"
msgid "Number 9"
msgstr "Številka 9"
msgid "Number, Decimal Digit"
msgstr "Številka, desetiška števka"
msgid "Number, Letter"
msgstr "Številka, črka"
msgid "Number, Other"
msgstr "Številka, drugo"
msgid "Number Forms"
msgstr "Oblike števnikov"
msgid "Numbers"
msgstr "Številke"
@@ -530,45 +602,27 @@ msgstr "Številka, obkrožena"
msgid "Other Modifiers"
msgstr "Ostali nadomestni znaki"
msgid "Other, Format"
msgstr "Drugo, oblikovni znaki"
msgid "Other, Surrogate"
msgstr "Drugo, nadomestni znaki"
msgid "Parentheses"
msgstr "Oklepaji"
msgid "Phonetic Extensions"
msgstr "Fonetične razširitve"
msgid "Phonetic Extensions Supplement"
msgstr "Dopolnitev fonetične razširitve"
msgid "Polish"
msgstr "poljščina"
msgid "Portuguese"
msgstr "portugalščina"
msgid "Private Use Area"
msgstr "Območje zasebne rabe"
msgid "Punctuation"
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"
msgstr "Narekovaji"
@@ -578,15 +632,6 @@ msgstr "romunščina"
msgid "Russian"
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"
msgstr "srbščina cirilica"
@@ -614,12 +659,18 @@ msgstr "lužiščini"
msgid "Spaces"
msgstr "Presledki"
msgid "Spacing Modifier Letters"
msgstr "Nesestavljive nadomestne črke"
msgid "Spanish"
msgstr "španščina"
msgid "Special Characters"
msgstr "Posebni znaki"
msgid "Specials"
msgstr "Posebno"
msgid "Strokes"
msgstr "Poševnice"
@@ -629,6 +680,18 @@ msgstr "Podpisani znaki"
msgid "Superscript Sharacters"
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"
msgstr "Obkrožajni nadomestni znaki"
@@ -671,17 +734,8 @@ msgstr "Simbol >"
msgid "Symbol ?"
msgstr "Simbol ?"
msgid "Symbol, Currency"
msgstr "Simbol, valuta"
msgid "Symbol, Math"
msgstr "Simbol, matematični"
msgid "Symbol, Modifier"
msgstr "Simbol, ločevalo"
msgid "Symbol, Other"
msgstr "Simbol, drugo"
msgid "Syriac"
msgstr ""
msgid "Technical Characters"
msgstr "Tehnični znaki"
@@ -701,6 +755,9 @@ msgstr "turščina"
msgid "Ukrainian"
msgstr "ukrajinščina"
msgid "Unified Canadian Aboriginal Syllabics"
msgstr ""
msgid "Units"
msgstr "Enote"