From 8ce86e66417340435f8d5361afa03e63b237033e Mon Sep 17 00:00:00 2001 From: serge-rider Date: Sun, 12 Nov 2017 14:06:17 +0300 Subject: [PATCH] #2502 Move all nls bundles/features in nls folder. Move modules (legacy name) into bundles --- modules/org.jkiss.utils/.classpath | 7 - modules/org.jkiss.utils/.project | 28 - .../.settings/org.eclipse.jdt.core.prefs | 12 - modules/org.jkiss.utils/META-INF/MANIFEST.MF | 12 - .../OSGI-INF/l10n/bundle.properties | 3 - modules/org.jkiss.utils/build.properties | 5 - modules/org.jkiss.utils/pom.xml | 14 - .../src/org/jkiss/code/NotNull.java | 25 - .../src/org/jkiss/code/Nullable.java | 25 - .../org/jkiss/utils/ArgumentTokenizer.java | 227 -- .../src/org/jkiss/utils/ArrayUtils.java | 243 -- .../src/org/jkiss/utils/Base64.java | 330 -- .../src/org/jkiss/utils/BeanUtils.java | 369 -- .../src/org/jkiss/utils/CommonUtils.java | 539 --- .../src/org/jkiss/utils/IOUtils.java | 247 -- .../src/org/jkiss/utils/IntKeyMap.java | 807 ---- .../src/org/jkiss/utils/LongKeyMap.java | 806 ---- .../src/org/jkiss/utils/MimeType.java | 90 - .../src/org/jkiss/utils/Pair.java | 38 - .../src/org/jkiss/utils/SecurityUtils.java | 198 - .../org/jkiss/utils/StandardConstants.java | 55 - .../jkiss/utils/time/ExtendedDateFormat.java | 218 -- .../src/org/jkiss/utils/xml/SAXListener.java | 65 - .../src/org/jkiss/utils/xml/SAXReader.java | 380 -- .../src/org/jkiss/utils/xml/XMLBuilder.java | 634 --- .../src/org/jkiss/utils/xml/XMLConstants.java | 40 - .../src/org/jkiss/utils/xml/XMLException.java | 35 - .../src/org/jkiss/utils/xml/XMLUtils.java | 285 -- modules/org.jkiss.wmi/.classpath | 7 - modules/org.jkiss.wmi/.project | 28 - .../.settings/org.eclipse.jdt.core.prefs | 8 - modules/org.jkiss.wmi/META-INF/MANIFEST.MF | 9 - .../OSGI-INF/l10n/bundle.properties | 3 - modules/org.jkiss.wmi/build.properties | 6 - modules/org.jkiss.wmi/copy_contrib.cmd | 2 - .../org.jkiss.wmi/native/x64/jkiss_wmi.dll | Bin 220672 -> 0 bytes .../org.jkiss.wmi/native/x86/jkiss_wmi.dll | Bin 159744 -> 0 bytes modules/org.jkiss.wmi/pom.xml | 14 - .../org/jkiss/wmi/service/WMIConstants.java | 162 - .../org/jkiss/wmi/service/WMIDataType.java | 24 - .../org/jkiss/wmi/service/WMIException.java | 29 - .../java/org/jkiss/wmi/service/WMIObject.java | 108 - .../jkiss/wmi/service/WMIObjectAttribute.java | 98 - .../jkiss/wmi/service/WMIObjectElement.java | 52 - .../jkiss/wmi/service/WMIObjectMethod.java | 50 - .../org/jkiss/wmi/service/WMIObjectSink.java | 29 - .../wmi/service/WMIObjectSinkStatus.java | 29 - .../jkiss/wmi/service/WMIQualifiedObject.java | 58 - .../org/jkiss/wmi/service/WMIQualifier.java | 55 - .../org/jkiss/wmi/service/WMIService.java | 61 - .../org/jkiss/wmi/service/WMISinkStatus.java | 27 - .../java/org/jkiss/wmi/test/TestService.java | 189 - .../org.jkiss.wmi/src/native/JNIMetaData.cpp | 164 - .../org.jkiss.wmi/src/native/JNIMetaData.h | 80 - .../org.jkiss.wmi/src/native/WMIObject.cpp | 259 -- modules/org.jkiss.wmi/src/native/WMIObject.h | 29 - .../org.jkiss.wmi/src/native/WMIObjectJNI.cpp | 123 - .../org.jkiss.wmi/src/native/WMIObjectJNI.h | 69 - .../src/native/WMIObjectSink.cpp | 185 - .../org.jkiss.wmi/src/native/WMIObjectSink.h | 56 - .../org.jkiss.wmi/src/native/WMIService.cpp | 424 -- modules/org.jkiss.wmi/src/native/WMIService.h | 73 - .../org.jkiss.wmi/src/native/WMIService.sln | 26 - .../src/native/WMIService.vcproj | 462 --- .../src/native/WMIServiceJNI.cpp | 205 - .../org.jkiss.wmi/src/native/WMIServiceJNI.h | 69 - .../src/native/WMIServiceModule.cpp | 65 - modules/org.jkiss.wmi/src/native/WMIUtils.cpp | 430 -- modules/org.jkiss.wmi/src/native/WMIUtils.h | 63 - .../org.jkiss.wmi/src/native/gen_headers.cmd | 5 - .../org.jkiss.wmi/src/native/show_sigs.cmd | 4 - modules/org.jkiss.wmi/src/native/stdafx.cpp | 3 - modules/org.jkiss.wmi/src/native/stdafx.h | 59 - .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_de.properties | 82 +- .../OSGI-INF/l10n/bundle_it.properties | 38 +- .../OSGI-INF/l10n/bundle_ko.properties | 10 +- .../OSGI-INF/l10n/bundle_ru.properties | 78 +- .../OSGI-INF/l10n/bundle_zh.properties | 184 +- .../build.properties | 0 .../pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_de.properties | 54 +- .../OSGI-INF/l10n/bundle_ru.properties | 0 .../OSGI-INF/l10n/bundle_zh.properties | 62 +- .../build.properties | 0 .../pom.xml | 0 .../org.jkiss.dbeaver.core.nls/.classpath | 0 .../org.jkiss.dbeaver.core.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_de.properties | 604 +-- .../OSGI-INF/l10n/bundle_it.properties | 0 .../OSGI-INF/l10n/bundle_ko.properties | 10 +- .../OSGI-INF/l10n/bundle_ru.properties | 0 .../OSGI-INF/l10n/bundle_zh.properties | 1072 ++--- .../build.properties | 0 .../org.jkiss.dbeaver.core.nls/pom.xml | 0 .../dbeaver/core/CoreResources_de.properties | 3480 ++++++++--------- .../dbeaver/core/CoreResources_it.properties | 0 .../dbeaver/core/CoreResources_ko.properties | 500 +-- .../dbeaver/core/CoreResources_ru.properties | 0 .../dbeaver/core/CoreResources_zh.properties | 2512 ++++++------ .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_zh.properties | 74 +- .../build.properties | 0 .../org.jkiss.dbeaver.data.office.nls/pom.xml | 0 .../org.jkiss.dbeaver.ext.db2.nls/.classpath | 0 .../org.jkiss.dbeaver.ext.db2.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.db2.nls/pom.xml | 0 .../.classpath | 0 .../org.jkiss.dbeaver.ext.derby.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.derby.nls/pom.xml | 0 .../org.jkiss.dbeaver.ext.erd.nls/.classpath | 0 .../org.jkiss.dbeaver.ext.erd.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_it.properties | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../OSGI-INF/l10n/bundle_zh.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.erd.nls/pom.xml | 0 .../ext/erd/ERDResources_it.properties | 0 .../ext/erd/ERDResources_ru.properties | 0 .../ext/erd/ERDResources_zh.properties | 0 .../.classpath | 0 .../org.jkiss.dbeaver.ext.exasol.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_de.properties | 424 +- .../build.properties | 0 .../org.jkiss.dbeaver.ext.exasol.nls/pom.xml | 0 .../ext/exasol/ExasolResources_de.properties | 100 +- .../ext/exasol/ExasolResources_zh.properties | 86 +- .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_zh.properties | 30 +- .../build.properties | 0 .../pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_it.properties | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../OSGI-INF/l10n/bundle_zh.properties | 172 +- .../build.properties | 0 .../org.jkiss.dbeaver.ext.generic.nls/pom.xml | 0 .../generic/GenericResources_it.properties | 0 .../generic/GenericResources_ru.properties | 0 .../generic/GenericResources_zh.properties | 0 .../org.jkiss.dbeaver.ext.h2.nls/.classpath | 0 .../org.jkiss.dbeaver.ext.h2.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.h2.nls/pom.xml | 0 .../.classpath | 0 .../org.jkiss.dbeaver.ext.hsqldb.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.hsqldb.nls/pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../pom.xml | 0 .../.classpath | 0 .../org.jkiss.dbeaver.ext.mssql.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.mssql.nls/pom.xml | 0 .../.classpath | 0 .../org.jkiss.dbeaver.ext.mysql.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_it.properties | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../OSGI-INF/l10n/bundle_zh.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.mysql.nls/pom.xml | 0 .../ext/mysql/MySQLResources_it.properties | 0 .../ext/mysql/MySQLResources_ru.properties | 0 .../ext/mysql/MySQLResources_zh.properties | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.netezza.nls/pom.xml | 0 .../.classpath | 0 .../org.jkiss.dbeaver.ext.oracle.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_it.properties | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../OSGI-INF/l10n/bundle_zh.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.oracle.nls/pom.xml | 0 .../ext/oracle/OracleResources_it.properties | 0 .../ext/oracle/OracleResources_ru.properties | 0 .../ext/oracle/OracleResources_zh.properties | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.phoenix.nls/pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../pom.xml | 0 .../.classpath | 0 .../org.jkiss.dbeaver.ext.sqlite.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_zh.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.sqlite.nls/pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../pom.xml | 0 .../.classpath | 0 .../org.jkiss.dbeaver.ext.ui.svg.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.ui.svg.nls/pom.xml | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.vertica.nls/pom.xml | 0 .../org.jkiss.dbeaver.ext.wmi.nls/.classpath | 0 .../org.jkiss.dbeaver.ext.wmi.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_zh.properties | 0 .../build.properties | 0 .../org.jkiss.dbeaver.ext.wmi.nls/pom.xml | 0 .../org.jkiss.dbeaver.model.nls/.classpath | 0 .../org.jkiss.dbeaver.model.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../OSGI-INF/l10n/bundle_zh.properties | 154 +- .../build.properties | 0 .../org.jkiss.dbeaver.model.nls/pom.xml | 0 .../messages/ModelResources_it.properties | 0 .../messages/ModelResources_ru.properties | 0 .../messages/ModelResources_zh.properties | 0 .../.classpath | 0 .../.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../build.properties | 0 .../pom.xml | 0 .../ide/core/ide_core_messages_ru.properties | 0 .../org.jkiss.dbeaver.ui.nls/.classpath | 0 .../org.jkiss.dbeaver.ui.nls/.project | 0 .../META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../org.jkiss.dbeaver.ui.nls/build.properties | 0 .../bundles}/org.jkiss.dbeaver.ui.nls/pom.xml | 0 .../bundles}/org.jkiss.utils.nls/.classpath | 0 .../bundles}/org.jkiss.utils.nls/.project | 0 .../org.jkiss.utils.nls/META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../org.jkiss.utils.nls/build.properties | 0 .../bundles}/org.jkiss.utils.nls/pom.xml | 0 .../bundles}/org.jkiss.wmi.nls/.classpath | 0 .../bundles}/org.jkiss.wmi.nls/.project | 0 .../org.jkiss.wmi.nls/META-INF/MANIFEST.MF | 0 .../OSGI-INF/l10n/bundle_ru.properties | 0 .../org.jkiss.wmi.nls/build.properties | 0 .../bundles}/org.jkiss.wmi.nls/pom.xml | 0 .../org.jkiss.dbeaver.ce.nls.feature/.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../org.jkiss.dbeaver.ce.nls.feature/pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../org.jkiss.dbeaver.ide.nls.feature/pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../org.jkiss.dbeaver.rcp.nls.feature/pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 .../.project | 0 .../build.properties | 0 .../feature.properties | 0 .../feature.xml | 0 .../pom.xml | 0 pom.xml | 108 +- 373 files changed, 4914 insertions(+), 14558 deletions(-) delete mode 100644 modules/org.jkiss.utils/.classpath delete mode 100644 modules/org.jkiss.utils/.project delete mode 100644 modules/org.jkiss.utils/.settings/org.eclipse.jdt.core.prefs delete mode 100644 modules/org.jkiss.utils/META-INF/MANIFEST.MF delete mode 100644 modules/org.jkiss.utils/OSGI-INF/l10n/bundle.properties delete mode 100644 modules/org.jkiss.utils/build.properties delete mode 100644 modules/org.jkiss.utils/pom.xml delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/code/NotNull.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/code/Nullable.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/ArgumentTokenizer.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/ArrayUtils.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/Base64.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/BeanUtils.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/IOUtils.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/IntKeyMap.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/LongKeyMap.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/MimeType.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/Pair.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/SecurityUtils.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/StandardConstants.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/time/ExtendedDateFormat.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/xml/SAXListener.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/xml/SAXReader.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLBuilder.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLConstants.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLException.java delete mode 100644 modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLUtils.java delete mode 100644 modules/org.jkiss.wmi/.classpath delete mode 100644 modules/org.jkiss.wmi/.project delete mode 100644 modules/org.jkiss.wmi/.settings/org.eclipse.jdt.core.prefs delete mode 100644 modules/org.jkiss.wmi/META-INF/MANIFEST.MF delete mode 100644 modules/org.jkiss.wmi/OSGI-INF/l10n/bundle.properties delete mode 100644 modules/org.jkiss.wmi/build.properties delete mode 100644 modules/org.jkiss.wmi/copy_contrib.cmd delete mode 100644 modules/org.jkiss.wmi/native/x64/jkiss_wmi.dll delete mode 100644 modules/org.jkiss.wmi/native/x86/jkiss_wmi.dll delete mode 100644 modules/org.jkiss.wmi/pom.xml delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIConstants.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIDataType.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIException.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObject.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectAttribute.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectElement.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectMethod.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectSink.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectSinkStatus.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIQualifiedObject.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIQualifier.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIService.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMISinkStatus.java delete mode 100644 modules/org.jkiss.wmi/src/java/org/jkiss/wmi/test/TestService.java delete mode 100644 modules/org.jkiss.wmi/src/native/JNIMetaData.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/JNIMetaData.h delete mode 100644 modules/org.jkiss.wmi/src/native/WMIObject.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/WMIObject.h delete mode 100644 modules/org.jkiss.wmi/src/native/WMIObjectJNI.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/WMIObjectJNI.h delete mode 100644 modules/org.jkiss.wmi/src/native/WMIObjectSink.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/WMIObjectSink.h delete mode 100644 modules/org.jkiss.wmi/src/native/WMIService.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/WMIService.h delete mode 100644 modules/org.jkiss.wmi/src/native/WMIService.sln delete mode 100644 modules/org.jkiss.wmi/src/native/WMIService.vcproj delete mode 100644 modules/org.jkiss.wmi/src/native/WMIServiceJNI.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/WMIServiceJNI.h delete mode 100644 modules/org.jkiss.wmi/src/native/WMIServiceModule.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/WMIUtils.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/WMIUtils.h delete mode 100644 modules/org.jkiss.wmi/src/native/gen_headers.cmd delete mode 100644 modules/org.jkiss.wmi/src/native/show_sigs.cmd delete mode 100644 modules/org.jkiss.wmi/src/native/stdafx.cpp delete mode 100644 modules/org.jkiss.wmi/src/native/stdafx.h rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_de.properties (97%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_it.properties (97%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ko.properties (96%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ru.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_zh.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.application.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.eclipse.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.eclipse.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.eclipse.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_de.properties (97%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_zh.properties (97%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.eclipse.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.eclipse.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_de.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ko.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_zh.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_de.properties (97%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ko.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_zh.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.data.office.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.data.office.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.data.office.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.data.office.nls/OSGI-INF/l10n/bundle_zh.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.data.office.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.data.office.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.db2.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.db2.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.db2.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.db2.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.db2.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.db2.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.derby.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.derby.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.derby.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.derby.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.derby.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.derby.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.exasol.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.exasol.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.exasol.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.exasol.nls/OSGI-INF/l10n/bundle_de.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.exasol.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.exasol.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_de.properties (95%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_zh.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.firebird.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.firebird.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.firebird.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.firebird.nls/OSGI-INF/l10n/bundle_zh.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.firebird.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.firebird.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_zh.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.h2.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.h2.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.h2.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.h2.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.h2.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.h2.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.hsqldb.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.hsqldb.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.hsqldb.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.hsqldb.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.hsqldb.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.hsqldb.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.import_config.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.import_config.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.import_config.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.import_config.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.import_config.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.import_config.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.informix.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.informix.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.informix.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.informix.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.informix.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.informix.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mssql.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mssql.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mssql.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mssql.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mssql.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mssql.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.netezza.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.netezza.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.netezza.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.netezza.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.netezza.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.netezza.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.phoenix.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.phoenix.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.phoenix.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.phoenix.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.phoenix.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.phoenix.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.postgresql.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.postgresql.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.postgresql.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.postgresql.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.postgresql.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.postgresql.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sample.database.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sample.database.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sample.database.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sample.database.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sample.database.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sample.database.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sqlite.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sqlite.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sqlite.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sqlite.nls/OSGI-INF/l10n/bundle_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sqlite.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.sqlite.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.teradata.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.teradata.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.teradata.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.teradata.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.teradata.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.teradata.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.locks.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.locks.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.locks.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.locks.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.locks.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.locks.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.svg.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.svg.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.svg.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.svg.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.svg.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.ui.svg.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.vertica.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.vertica.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.vertica.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.vertica.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.vertica.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.vertica.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.wmi.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.wmi.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.wmi.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.wmi.nls/OSGI-INF/l10n/bundle_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.wmi.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ext.wmi.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_zh.properties (98%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_it.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_zh.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.runtime.ide.core.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.runtime.ide.core.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.runtime.ide.core.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.runtime.ide.core.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.runtime.ide.core.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.runtime.ide.core.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.runtime.ide.core.nls/src/org/jkiss/dbeaver/runtime/internal/ide/core/ide_core_messages_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ui.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ui.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ui.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ui.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ui.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.dbeaver.ui.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.utils.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.utils.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.utils.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.utils.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.utils.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.utils.nls/pom.xml (100%) rename {bundles => nls/bundles}/org.jkiss.wmi.nls/.classpath (100%) rename {bundles => nls/bundles}/org.jkiss.wmi.nls/.project (100%) rename {bundles => nls/bundles}/org.jkiss.wmi.nls/META-INF/MANIFEST.MF (100%) rename {bundles => nls/bundles}/org.jkiss.wmi.nls/OSGI-INF/l10n/bundle_ru.properties (100%) rename {bundles => nls/bundles}/org.jkiss.wmi.nls/build.properties (100%) rename {bundles => nls/bundles}/org.jkiss.wmi.nls/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ce.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ce.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ce.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ce.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ce.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.db2.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.db2.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.db2.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.db2.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.db2.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.exasol.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.exasol.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.exasol.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.generic.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.generic.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.generic.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.generic.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.generic.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.mysql.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.mysql.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.mysql.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.office.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.office.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.office.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.office.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.office.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.oracle.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.oracle.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.oracle.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.ui.svg.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.ui.svg.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.ui.svg.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.wmi.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.wmi.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ext.wmi.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ide.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.ide.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ide.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.ide.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.ide.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.rcp.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.rcp.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.rcp.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.rcp.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.rcp.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.runtime.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.runtime.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.runtime.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.runtime.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.runtime.nls.feature/pom.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.standalone.nls.feature/.project (100%) rename {features => nls/features}/org.jkiss.dbeaver.standalone.nls.feature/build.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.standalone.nls.feature/feature.properties (100%) rename {features => nls/features}/org.jkiss.dbeaver.standalone.nls.feature/feature.xml (100%) rename {features => nls/features}/org.jkiss.dbeaver.standalone.nls.feature/pom.xml (100%) diff --git a/modules/org.jkiss.utils/.classpath b/modules/org.jkiss.utils/.classpath deleted file mode 100644 index b1dabee382..0000000000 --- a/modules/org.jkiss.utils/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/modules/org.jkiss.utils/.project b/modules/org.jkiss.utils/.project deleted file mode 100644 index 6e1e2aff86..0000000000 --- a/modules/org.jkiss.utils/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.jkiss.utils - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.pde.PluginNature - - diff --git a/modules/org.jkiss.utils/.settings/org.eclipse.jdt.core.prefs b/modules/org.jkiss.utils/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index ace45ceefb..0000000000 --- a/modules/org.jkiss.utils/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/modules/org.jkiss.utils/META-INF/MANIFEST.MF b/modules/org.jkiss.utils/META-INF/MANIFEST.MF deleted file mode 100644 index 4536d4460a..0000000000 --- a/modules/org.jkiss.utils/META-INF/MANIFEST.MF +++ /dev/null @@ -1,12 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %Bundle-Name -Bundle-SymbolicName: org.jkiss.utils -Bundle-Version: 2.1.51 -Bundle-Release-Date: 20171030 -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.jkiss.code, - org.jkiss.utils, - org.jkiss.utils.time, - org.jkiss.utils.xml -Bundle-Vendor: %Bundle-Vendor diff --git a/modules/org.jkiss.utils/OSGI-INF/l10n/bundle.properties b/modules/org.jkiss.utils/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index c48d0cb4e9..0000000000 --- a/modules/org.jkiss.utils/OSGI-INF/l10n/bundle.properties +++ /dev/null @@ -1,3 +0,0 @@ -#Properties file for org.jkiss.utils -Bundle-Vendor = JKISS -Bundle-Name = JKISS Utils diff --git a/modules/org.jkiss.utils/build.properties b/modules/org.jkiss.utils/build.properties deleted file mode 100644 index c58ea2178c..0000000000 --- a/modules/org.jkiss.utils/build.properties +++ /dev/null @@ -1,5 +0,0 @@ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - .,\ - OSGI-INF/ diff --git a/modules/org.jkiss.utils/pom.xml b/modules/org.jkiss.utils/pom.xml deleted file mode 100644 index 3e46c069ff..0000000000 --- a/modules/org.jkiss.utils/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - 4.0.0 - - org.jkiss.dbeaver - dbeaver - 1.0.0 - ../../ - - org.jkiss.utils - 2.1.51 - eclipse-plugin - diff --git a/modules/org.jkiss.utils/src/org/jkiss/code/NotNull.java b/modules/org.jkiss.utils/src/org/jkiss/code/NotNull.java deleted file mode 100644 index 6659992fc3..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/code/NotNull.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.code; - -/** - * NotNull annotation - */ -public @interface NotNull { - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/code/Nullable.java b/modules/org.jkiss.utils/src/org/jkiss/code/Nullable.java deleted file mode 100644 index b41c31e6e3..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/code/Nullable.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.code; - -/** - * Nullable annotation - */ -public @interface Nullable { - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/ArgumentTokenizer.java b/modules/org.jkiss.utils/src/org/jkiss/utils/ArgumentTokenizer.java deleted file mode 100644 index 46e12bd0d0..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/ArgumentTokenizer.java +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (c) 2001-2010, JavaPLT group at Rice University (drjava@rice.edu) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the names of DrJava, the JavaPLT group, Rice University, nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This software is Open Source Initiative approved Open Source Software. - * Open Source Initative Approved is a trademark of the Open Source Initiative. - * - * This file is part of DrJava. Download the current version of this project - * from http://www.drjava.org/ or http://sourceforge.net/projects/drjava/ - */ - -package org.jkiss.utils; - -import java.util.LinkedList; -import java.util.List; - -/** - * Utility class which can tokenize a String into a list of String arguments, - * with behavior similar to parsing command line arguments to a program. - * Quoted Strings are treated as single arguments, and escaped characters - * are translated so that the tokenized arguments have the same meaning. - * Since all methods are static, the class is declared abstract to prevent - * instantiation. - * - * @version $Id$ - */ -public abstract class ArgumentTokenizer { - private static final int NO_TOKEN_STATE = 0; - private static final int NORMAL_TOKEN_STATE = 1; - private static final int SINGLE_QUOTE_STATE = 2; - private static final int DOUBLE_QUOTE_STATE = 3; - - /** - * Tokenizes the given String into String tokens - * - * @param arguments A String containing one or more command-line style arguments to be tokenized. - * @return A list of parsed and properly escaped arguments. - */ - public static List tokenize(String arguments) { - return tokenize(arguments, false); - } - - /** - * Tokenizes the given String into String tokens. - * - * @param arguments A String containing one or more command-line style arguments to be tokenized. - * @param stringify whether or not to include escape special characters - * @return A list of parsed and properly escaped arguments. - */ - public static List tokenize(String arguments, boolean stringify) { - - LinkedList argList = new LinkedList(); - StringBuilder currArg = new StringBuilder(); - boolean escaped = false; - int state = NO_TOKEN_STATE; // start in the NO_TOKEN_STATE - int len = arguments.length(); - - // Loop over each character in the string - for (int i = 0; i < len; i++) { - char c = arguments.charAt(i); - if (escaped) { - // Escaped state: just append the next character to the current arg. - escaped = false; - if (c != 'n' && c != 't' && c != '\\') { - // This was just a regular slash - currArg.append('\\'); - } - currArg.append(c); - } else { - switch (state) { - case SINGLE_QUOTE_STATE: - if (c == '\'') { - // Seen the close quote; continue this arg until whitespace is seen - state = NORMAL_TOKEN_STATE; - } else { - currArg.append(c); - } - break; - case DOUBLE_QUOTE_STATE: - if (c == '"') { - // Seen the close quote; continue this arg until whitespace is seen - state = NORMAL_TOKEN_STATE; - } else if (c == '\\') { - // Look ahead, and only escape quotes or backslashes - i++; - char next = arguments.charAt(i); - if (next == '"' || next == '\\') { - currArg.append(next); - } else { - currArg.append(c); - currArg.append(next); - } - } else { - currArg.append(c); - } - break; -// case NORMAL_TOKEN_STATE: -// if (Character.isWhitespace(c)) { -// // Whitespace ends the token; start a new one -// argList.add(currArg.toString()); -// currArg = new StringBuffer(); -// state = NO_TOKEN_STATE; -// } -// else if (c == '\\') { -// // Backslash in a normal token: escape the next character -// escaped = true; -// } -// else if (c == '\'') { -// state = SINGLE_QUOTE_STATE; -// } -// else if (c == '"') { -// state = DOUBLE_QUOTE_STATE; -// } -// else { -// currArg.append(c); -// } -// break; - case NO_TOKEN_STATE: - case NORMAL_TOKEN_STATE: - switch (c) { - case '\\': - escaped = true; - state = NORMAL_TOKEN_STATE; - break; - case '\'': - state = SINGLE_QUOTE_STATE; - break; - case '"': - state = DOUBLE_QUOTE_STATE; - break; - default: - if (!Character.isWhitespace(c)) { - currArg.append(c); - state = NORMAL_TOKEN_STATE; - } else if (state == NORMAL_TOKEN_STATE) { - // Whitespace ends the token; start a new one - argList.add(currArg.toString()); - currArg = new StringBuilder(); - state = NO_TOKEN_STATE; - } - } - break; - default: - throw new IllegalStateException("ArgumentTokenizer state " + state + " is invalid!"); - } - } - } - - // If we're still escaped, put in the backslash - if (escaped) { - currArg.append('\\'); - argList.add(currArg.toString()); - } - // Close the last argument if we haven't yet - else if (state != NO_TOKEN_STATE) { - argList.add(currArg.toString()); - } - // Format each argument if we've been told to stringify them - if (stringify) { - for (int i = 0; i < argList.size(); i++) { - argList.set(i, "\"" + _escapeQuotesAndBackslashes(argList.get(i)) + "\""); - } - } - return argList; - } - - /** - * Inserts backslashes before any occurrences of a backslash or - * quote in the given string. Also converts any special characters - * appropriately. - */ - protected static String _escapeQuotesAndBackslashes(String s) { - final StringBuilder buf = new StringBuilder(s); - - // Walk backwards, looking for quotes or backslashes. - // If we see any, insert an extra backslash into the buffer at - // the same index. (By walking backwards, the index into the buffer - // will remain correct as we change the buffer.) - for (int i = s.length() - 1; i >= 0; i--) { - char c = s.charAt(i); - if ((c == '\\') || (c == '"')) { - buf.insert(i, '\\'); - } - // Replace any special characters with escaped versions - else if (c == '\n') { - buf.deleteCharAt(i); - buf.insert(i, "\\n"); - } else if (c == '\t') { - buf.deleteCharAt(i); - buf.insert(i, "\\t"); - } else if (c == '\r') { - buf.deleteCharAt(i); - buf.insert(i, "\\r"); - } else if (c == '\b') { - buf.deleteCharAt(i); - buf.insert(i, "\\b"); - } else if (c == '\f') { - buf.deleteCharAt(i); - buf.insert(i, "\\f"); - } - } - return buf.toString(); - } -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/ArrayUtils.java b/modules/org.jkiss.utils/src/org/jkiss/utils/ArrayUtils.java deleted file mode 100644 index 97cf6eb861..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/ArrayUtils.java +++ /dev/null @@ -1,243 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils; - -import org.jkiss.code.NotNull; -import org.jkiss.code.Nullable; - -import java.lang.reflect.Array; -import java.util.*; - -/** - * Common utils - */ -public class ArrayUtils { - - - public static boolean isEmpty(@Nullable Object[] arr) - { - return arr == null || arr.length == 0; - } - - public static boolean isEmpty(@Nullable short[] array) - { - return array == null || array.length == 0; - } - - public static boolean contains(@Nullable short[] array, short value) - { - if (array == null) - return false; - for (int i = 0, arrayLength = array.length; i < arrayLength; i++) { - if (array[i] == value) - return true; - } - return false; - } - - public static boolean contains(@Nullable char[] array, char value) - { - if (array == null || array.length == 0) - return false; - for (int i = 0, arrayLength = array.length; i < arrayLength; i++) { - if (array[i] == value) - return true; - } - return false; - } - - public static boolean isEmpty(@Nullable int[] array) - { - return array == null || array.length == 0; - } - - public static boolean contains(@Nullable int[] array, int value) - { - if (array == null) - return false; - for (int v : array) { - if (v == value) - return true; - } - return false; - } - - public static boolean isEmpty(@Nullable long[] array) - { - return array == null || array.length == 0; - } - - public static boolean contains(@Nullable long[] array, long value) - { - if (array == null) - return false; - for (long v : array) { - if (v == value) - return true; - } - return false; - } - - public static boolean contains(OBJECT_TYPE[] array, OBJECT_TYPE value) - { - if (isEmpty(array)) - return false; - for (int i = 0; i < array.length; i++) { - if (CommonUtils.equalObjects(value, array[i])) - return true; - } - return false; - } - - public static boolean containsIgnoreCase(String[] array, String value) - { - if (isEmpty(array) || value == null) - return false; - for (int i = 0; i < array.length; i++) { - if (value.equalsIgnoreCase(array[i])) - return true; - } - return false; - } - - public static boolean containsRef(@NotNull OBJECT_TYPE[] array, @Nullable OBJECT_TYPE value) - { - final int length = array.length; - for (int i = 0; i < length; i++) { - if (value == array[i]) - return true; - } - return false; - } - - @SafeVarargs - public static boolean contains(OBJECT_TYPE[] array, OBJECT_TYPE... values) - { - if (isEmpty(array)) - return false; - for (int i = 0; i < array.length; i++) { - for (int k = 0; k < values.length; k++) { - if (CommonUtils.equalObjects(array[i], values[k])) - return true; - } - } - return false; - } - - @NotNull - public static T[] concatArrays(@NotNull T[] first, @NotNull T[] second) - { - T[] result = Arrays.copyOf(first, first.length + second.length); - System.arraycopy(second, 0, result, first.length, second.length); - return result; - } - - @NotNull - public static List safeArray(@Nullable T[] array) - { - if (array == null) { - return Collections.emptyList(); - } else { - return Arrays.asList(array); - } - } - - public static int indexOf(T[] array, T element) { - for (int i = 0; i < array.length; i++) { - if (CommonUtils.equalObjects(array[i], element)) { - return i; - } - } - return -1; - } - - public static int indexOf(byte[] array, int offset, byte element) { - for (int i = offset; i < array.length; i++) { - if (array[i] == element) { - return i; - } - } - return -1; - } - - @SuppressWarnings("unchecked") - public static T[] deleteArea(Class type, T[] elements, int from, int to) { - int delCount = to - from + 1; - T[] newArray = (T[]) Array.newInstance(type, elements.length - delCount); - System.arraycopy(elements, 0, newArray, 0, from); - if (to < elements.length - 1) { - System.arraycopy(elements, to + 1, newArray, from, elements.length - from - delCount); - } - - return newArray; - } - - @SuppressWarnings("unchecked") - public static T[] insertArea(Class type, Object[] elements, int pos, Object[] add) { - T[] newArray = (T[]) Array.newInstance(type, elements.length + add.length); - System.arraycopy(elements, 0, newArray, 0, pos); - System.arraycopy(add, 0, newArray, pos, add.length); - System.arraycopy(elements, pos, newArray, pos + add.length, elements.length - pos); - return newArray; - } - - @SuppressWarnings("unchecked") - public static T[] add(Class type, T[] elements, T add) { - T[] newArray = (T[]) Array.newInstance(type, elements.length + 1); - System.arraycopy(elements, 0, newArray, 0, elements.length); - newArray[elements.length] = add; - return newArray; - } - - @SuppressWarnings("unchecked") - public static T[] remove(Class type, T[] elements, int index) { - T[] newArray = (T[]) Array.newInstance(type, elements.length - 1); - System.arraycopy(elements, 0, newArray, 0, index); - if (index < elements.length - 1) { - System.arraycopy(elements, index + 1, newArray, index, elements.length - index - 1); - } - return newArray; - } - - public static T[] remove(Class type, T[] elements, T element) { - for (int i = 0; i < elements.length; i++) { - if (elements[i] == element) { - return remove(type, elements, i); - } - } - return elements; - } - - public static void main(String[] args) { - String[] arr = new String[0]; - - for (int i = 0; i < 100; i++) { - arr = add(String.class, arr, String.valueOf(i)); - } - System.out.println(Arrays.toString(arr)); - for (int i = 0; i < 100; i++) { - arr = remove(String.class, arr, 0); - } - System.out.println(Arrays.toString(arr)); - } - - @SuppressWarnings("unchecked") - public static T[] toArray(Class type, Collection list) { - return list.toArray((T[]) Array.newInstance(type, list.size())); - } -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/Base64.java b/modules/org.jkiss.utils/src/org/jkiss/utils/Base64.java deleted file mode 100644 index baf04638b5..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/Base64.java +++ /dev/null @@ -1,330 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Writer; - -public final class Base64 { - - private static final char[] S_BASE64CHAR = { - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', - 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', - 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', - 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', - 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', - 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', '+', '/' - }; - - private static final char S_BASE64PAD = '='; - - private static final byte[] S_DECODETABLE = new byte[128]; - - static { - for (int i = 0; i < S_DECODETABLE.length; i ++) - S_DECODETABLE[i] = Byte.MAX_VALUE; // 127 - for (int i = 0; i < S_BASE64CHAR.length; i ++) // 0 to 63 - S_DECODETABLE[S_BASE64CHAR[i]] = (byte)i; - } - - private static int decode0(char[] ibuf, byte[] obuf, int wp) { - int outlen = 3; - if (ibuf[3] == S_BASE64PAD) outlen = 2; - if (ibuf[2] == S_BASE64PAD) outlen = 1; - int b0 = S_DECODETABLE[ibuf[0]]; - int b1 = S_DECODETABLE[ibuf[1]]; - int b2 = S_DECODETABLE[ibuf[2]]; - int b3 = S_DECODETABLE[ibuf[3]]; - switch (outlen) { - case 1: - obuf[wp] = (byte)(b0 << 2 & 0xfc | b1 >> 4 & 0x3); - return 1; - case 2: - obuf[wp++] = (byte)(b0 << 2 & 0xfc | b1 >> 4 & 0x3); - obuf[wp] = (byte)(b1 << 4 & 0xf0 | b2 >> 2 & 0xf); - return 2; - case 3: - default: - obuf[wp++] = (byte)(b0 << 2 & 0xfc | b1 >> 4 & 0x3); - obuf[wp++] = (byte)(b1 << 4 & 0xf0 | b2 >> 2 & 0xf); - obuf[wp] = (byte)(b2 << 6 & 0xc0 | b3 & 0x3f); - return 3; - } - } - - /** - * - */ - public static byte[] decode(char[] data, int off, int len) { - char[] ibuf = new char[4]; - int ibufcount = 0; - byte[] obuf = new byte[len/4*3+3]; - int obufcount = 0; - for (int i = off; i < off+len; i ++) { - char ch = data[i]; - if (ch == S_BASE64PAD - || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) { - ibuf[ibufcount++] = ch; - if (ibufcount == ibuf.length) { - ibufcount = 0; - obufcount += decode0(ibuf, obuf, obufcount); - } - } - } - if (obufcount == obuf.length) - return obuf; - byte[] ret = new byte[obufcount]; - System.arraycopy(obuf, 0, ret, 0, obufcount); - return ret; - } - - /** - * - */ - public static byte[] decode(String data) { - char[] ibuf = new char[4]; - int ibufcount = 0; - byte[] obuf = new byte[data.length()/4*3+3]; - int obufcount = 0; - for (int i = 0; i < data.length(); i ++) { - char ch = data.charAt(i); - if (ch == S_BASE64PAD - || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) { - ibuf[ibufcount++] = ch; - if (ibufcount == ibuf.length) { - ibufcount = 0; - obufcount += decode0(ibuf, obuf, obufcount); - } - } - } - if (obufcount == obuf.length) - return obuf; - byte[] ret = new byte[obufcount]; - System.arraycopy(obuf, 0, ret, 0, obufcount); - return ret; - } - - /** - * - */ - public static void decode(char[] data, int off, int len, OutputStream ostream) throws IOException { - char[] ibuf = new char[4]; - int ibufcount = 0; - byte[] obuf = new byte[3]; - for (int i = off; i < off+len; i ++) { - char ch = data[i]; - if (ch == S_BASE64PAD - || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) { - ibuf[ibufcount++] = ch; - if (ibufcount == ibuf.length) { - ibufcount = 0; - int obufcount = decode0(ibuf, obuf, 0); - ostream.write(obuf, 0, obufcount); - } - } - } - } - - /** - * - */ - public static void decode(String data, OutputStream ostream) throws IOException { - char[] ibuf = new char[4]; - int ibufcount = 0; - byte[] obuf = new byte[3]; - for (int i = 0; i < data.length(); i ++) { - char ch = data.charAt(i); - if (ch == S_BASE64PAD - || ch < S_DECODETABLE.length && S_DECODETABLE[ch] != Byte.MAX_VALUE) { - ibuf[ibufcount++] = ch; - if (ibufcount == ibuf.length) { - ibufcount = 0; - int obufcount = decode0(ibuf, obuf, 0); - ostream.write(obuf, 0, obufcount); - } - } - } - } - - /** - * Returns base64 representation of specified byte array. - */ - public static String encode(byte[] data) { - return encode(data, 0, data.length); - } - - public static String splitLines(String bigString, int lineLength) { - return bigString.replaceAll("(.{" + lineLength + "})", "$1\n"); - } - - /** - * Returns base64 representation of specified byte array. - */ - public static String encode(byte[] data, int off, int len) - { - if (len <= 0) return ""; - char[] out = new char[len/3*4+4]; - int rindex = off; - int windex = 0; - int rest = len-off; - while (rest >= 3) { - int i = ((data[rindex]&0xff)<<16) - +((data[rindex+1]&0xff)<<8) - +(data[rindex+2]&0xff); - out[windex++] = S_BASE64CHAR[i>>18]; - out[windex++] = S_BASE64CHAR[(i>>12)&0x3f]; - out[windex++] = S_BASE64CHAR[(i>>6)&0x3f]; - out[windex++] = S_BASE64CHAR[i&0x3f]; - rindex += 3; - rest -= 3; - } - if (rest == 1) { - int i = data[rindex]&0xff; - out[windex++] = S_BASE64CHAR[i>>2]; - out[windex++] = S_BASE64CHAR[(i<<4)&0x3f]; - out[windex++] = S_BASE64PAD; - out[windex++] = S_BASE64PAD; - } else if (rest == 2) { - int i = ((data[rindex]&0xff)<<8)+(data[rindex+1]&0xff); - out[windex++] = S_BASE64CHAR[i>>10]; - out[windex++] = S_BASE64CHAR[(i>>4)&0x3f]; - out[windex++] = S_BASE64CHAR[(i<<2)&0x3f]; - out[windex++] = S_BASE64PAD; - } - return new String(out, 0, windex); - } - - /** - * Outputs base64 representation of the specified byte array to a byte stream. - */ - public static void encode(byte[] data, int off, int len, OutputStream ostream) throws IOException { - if (len <= 0) return; - byte[] out = new byte[4]; - int rindex = off; - int rest = len-off; - while (rest >= 3) { - int i = ((data[rindex]&0xff)<<16) - +((data[rindex+1]&0xff)<<8) - +(data[rindex+2]&0xff); - out[0] = (byte)S_BASE64CHAR[i>>18]; - out[1] = (byte)S_BASE64CHAR[(i>>12)&0x3f]; - out[2] = (byte)S_BASE64CHAR[(i>>6)&0x3f]; - out[3] = (byte)S_BASE64CHAR[i&0x3f]; - ostream.write(out, 0, 4); - rindex += 3; - rest -= 3; - } - if (rest == 1) { - int i = data[rindex]&0xff; - out[0] = (byte)S_BASE64CHAR[i>>2]; - out[1] = (byte)S_BASE64CHAR[(i<<4)&0x3f]; - out[2] = (byte)S_BASE64PAD; - out[3] = (byte)S_BASE64PAD; - ostream.write(out, 0, 4); - } else if (rest == 2) { - int i = ((data[rindex]&0xff)<<8)+(data[rindex+1]&0xff); - out[0] = (byte)S_BASE64CHAR[i>>10]; - out[1] = (byte)S_BASE64CHAR[(i>>4)&0x3f]; - out[2] = (byte)S_BASE64CHAR[(i<<2)&0x3f]; - out[3] = (byte)S_BASE64PAD; - ostream.write(out, 0, 4); - } - } - - /** - * Outputs base64 representation of the specified byte array to a character stream. - */ - public static void encode(byte[] data, int off, int len, Writer writer) throws IOException { - if (len <= 0) return; - char[] out = new char[4]; - int rindex = off; - int rest = len-off; - while (rest >= 3) { - int i = ((data[rindex]&0xff)<<16) - +((data[rindex+1]&0xff)<<8) - +(data[rindex+2]&0xff); - out[0] = S_BASE64CHAR[i>>18]; - out[1] = S_BASE64CHAR[(i>>12)&0x3f]; - out[2] = S_BASE64CHAR[(i>>6)&0x3f]; - out[3] = S_BASE64CHAR[i&0x3f]; - writer.write(out, 0, 4); - rindex += 3; - rest -= 3; -/* - if (output % 76 == 0) - writer.write("\n"); -*/ - } - if (rest == 1) { - int i = data[rindex]&0xff; - out[0] = S_BASE64CHAR[i>>2]; - out[1] = S_BASE64CHAR[(i<<4)&0x3f]; - out[2] = S_BASE64PAD; - out[3] = S_BASE64PAD; - writer.write(out, 0, 4); - } else if (rest == 2) { - int i = ((data[rindex]&0xff)<<8)+(data[rindex+1]&0xff); - out[0] = S_BASE64CHAR[i>>10]; - out[1] = S_BASE64CHAR[(i>>4)&0x3f]; - out[2] = S_BASE64CHAR[(i<<2)&0x3f]; - out[3] = S_BASE64PAD; - writer.write(out, 0, 4); - } - } - - /** - * Outputs base64 representation of the specified input stream to a character stream. - */ - public static void encode(InputStream stream, long len, Writer writer) - throws IOException - { - if (len <= 0) return; - char[] out = new char[4]; - long rest = len; - while (rest >= 3) { - int i = ((stream.read()&0xff)<<16) - +((stream.read()&0xff)<<8) - +(stream.read()&0xff); - out[0] = S_BASE64CHAR[i>>18]; - out[1] = S_BASE64CHAR[(i>>12)&0x3f]; - out[2] = S_BASE64CHAR[(i>>6)&0x3f]; - out[3] = S_BASE64CHAR[i&0x3f]; - writer.write(out, 0, 4); - rest -= 3; - } - if (rest == 1) { - int i = stream.read()&0xff; - out[0] = S_BASE64CHAR[i>>2]; - out[1] = S_BASE64CHAR[(i<<4)&0x3f]; - out[2] = S_BASE64PAD; - out[3] = S_BASE64PAD; - writer.write(out, 0, 4); - } else if (rest == 2) { - int i = ((stream.read()&0xff)<<8)+(stream.read()&0xff); - out[0] = S_BASE64CHAR[i>>10]; - out[1] = S_BASE64CHAR[(i>>4)&0x3f]; - out[2] = S_BASE64CHAR[(i<<2)&0x3f]; - out[3] = S_BASE64PAD; - writer.write(out, 0, 4); - } - } - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/BeanUtils.java b/modules/org.jkiss.utils/src/org/jkiss/utils/BeanUtils.java deleted file mode 100644 index 55f49aaa6b..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/BeanUtils.java +++ /dev/null @@ -1,369 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils; - -import java.lang.reflect.*; -import java.util.Collection; -import java.util.StringTokenizer; - -/** - * BeanUtils - */ -public class BeanUtils { - - public static boolean isGetterName(String name) { - return name.startsWith("get") || name.startsWith("is") || name.startsWith("has"); - } - - public static String getPropertyNameFromGetter(String getterName) { - if (getterName.startsWith("get")) { - return - Character.toLowerCase(getterName.charAt(3)) + - getterName.substring(4); - } else if (getterName.startsWith("is")) { - return - Character.toLowerCase(getterName.charAt(2)) + - getterName.substring(3); - } else if (getterName.startsWith("has")) { - return - Character.toLowerCase(getterName.charAt(3)) + - getterName.substring(4); - } else { - // Unrecognized getter name - return null; - } - } - - public static String getSetterName(String getterName) { - if (getterName.startsWith("get")) { - return "set" + getterName.substring(3); - } else if (getterName.startsWith("is")) { - return "set" + getterName.substring(2); - } else if (getterName.startsWith("has")) { - return "set" + getterName.substring(3); - } else { - // Unrecognized getter name - return null; - } - } - - /** - * Returns a set method matching the property name. - */ - public static Method getSetMethod(Class cl, String propertyName) { - Method method = getSetMethod(cl, propertyName, false); - - if (method != null) { - return method; - } - - return getSetMethod(cl, propertyName, true); - } - - /** - * Returns a set method matching the property name. - */ - public static Method getSetMethod( - Class cl, - String propertyName, - boolean ignoreCase) { - String setName = "set" + propertyNameToMethodName(propertyName); - - return getSetMethod( - cl.getMethods(), - setName, - ignoreCase); - } - - /** - * Returns a get method matching the property name. - */ - public static Method getGetMethod(Class cl, String propertyName) { - Method method = getGetMethod(cl, propertyName, false); - - return method != null ? - method : - getGetMethod(cl, propertyName, true); - } - - /** - * Returns a get method matching the property name. - */ - public static Method getGetMethod( - Class cl, - String propertyName, - boolean ignoreCase) { - String methodName = propertyNameToMethodName(propertyName); - return getGetMethod( - cl.getMethods(), - "get" + methodName, - "is" + methodName, - ignoreCase); - } - - /** - * Converts a user's property name to a bean method name. - * - * @param propertyName the user property name - * @return the equivalent bean method name - */ - public static String propertyNameToMethodName(String propertyName) { - char ch = propertyName.charAt(0); - if (Character.isLowerCase(ch)) - propertyName = Character.toUpperCase(ch) + propertyName.substring(1); - - return propertyName; - } - - /** - * Converts a user's property name to a bean method name. - * - * @param methodName the method name - * @return the equivalent property name - */ - public static String methodNameToPropertyName(String methodName) { - if (methodName.startsWith("get")) - methodName = methodName.substring(3); - else if (methodName.startsWith("set")) - methodName = methodName.substring(3); - else if (methodName.startsWith("is")) - methodName = methodName.substring(2); - - if (methodName.length() == 0) - return null; - - char ch = methodName.charAt(0); - if (Character.isUpperCase(ch) && (methodName.length() == 1 || !Character.isUpperCase(methodName.charAt(1)))) { - methodName = Character.toLowerCase(ch) + methodName.substring(1); - } - - return methodName; - } - - public static boolean isArrayType(Type type) { - return (type instanceof Class && ((Class) type).isArray()); - } - - public static boolean isCollectionType(Type type) { - if (type instanceof Class && Collection.class.isAssignableFrom((Class) type)) { -/* - if (type instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType)type; - if (pt.getActualTypeArguments().length == 1) { - return true; - } - } -*/ - return true; - } - return isArrayType(type); - } - - public static Class getCollectionType(Type type) { - if (type instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType) type; - if (pt.getActualTypeArguments().length == 1) { - final Type argType = pt.getActualTypeArguments()[0]; - if (argType instanceof Class) { - return (Class) argType; - } else if (argType instanceof WildcardType) { - final Type[] upperBounds = ((WildcardType) argType).getUpperBounds(); - if (upperBounds.length > 0 && upperBounds[0] instanceof Class) { - return (Class) upperBounds[0]; - } - final Type[] lowerBounds = ((WildcardType) argType).getLowerBounds(); - if (lowerBounds.length > 0 && lowerBounds[0] instanceof Class) { - return (Class) lowerBounds[0]; - } - } - } - } - return null; - } - - public static Object readObjectProperty(Object object, String propName) - throws IllegalAccessException, InvocationTargetException { - if (propName.indexOf('.') == -1) { - Method getter = getGetMethod(object.getClass(), propName); - return getter == null ? null : getter.invoke(object); - } - // Parse property path - StringTokenizer st = new StringTokenizer(propName, "."); - Object value = object; - while (value != null && st.hasMoreTokens()) { - String pathItem = st.nextToken(); - Method getter = getGetMethod(value.getClass(), pathItem); - if (getter == null) { - return null; - } - value = getter.invoke(value); - } - return value; - } - - /** - * Finds the matching set method - */ - private static Method getGetMethod( - Method[] methods, - String getName, - String isName, - boolean ignoreCase) { - for (int i = 0; i < methods.length; i++) { - Method method = methods[i]; - - // The method must be public - if ( - (!Modifier.isPublic(method.getModifiers())) || - (!Modifier.isPublic(method.getDeclaringClass().getModifiers())) || - (method.getParameterTypes().length != 0) || - (method.getReturnType().equals(void.class))) { - continue; - } else if (!ignoreCase && method.getName().equals(getName)) { - // If it matches the get name, it's the right method - return method; - } else if (ignoreCase && method.getName().equalsIgnoreCase(getName)) { - // If it matches the get name, it's the right method - return method; - } else if (!method.getReturnType().equals(boolean.class)) { - // The is methods must return boolean - continue; - } else if (!ignoreCase && method.getName().equals(isName)) { - // If it matches the is name, it must return boolean - return method; - } else if (ignoreCase && method.getName().equalsIgnoreCase(isName)) { - // If it matches the is name, it must return boolean - return method; - } - } - - return null; - } - - /** - * Finds the matching set method - * - * @param setName the method name - */ - private static Method getSetMethod( - Method[] methods, - String setName, - boolean ignoreCase) { - for (int i = 0; i < methods.length; i++) { - Method method = methods[i]; - - // The method name must match - if ( - !(ignoreCase ? method.getName().equalsIgnoreCase(setName) : method.getName().equals(setName)) || - !Modifier.isPublic(method.getModifiers()) || - !Modifier.isPublic(method.getDeclaringClass().getModifiers()) || - method.getParameterTypes().length != 1 - ) - continue; - - return method; - } - - return null; - } - - public static final Short DEFAULT_SHORT = (short) 0; - public static final Integer DEFAULT_INTEGER = 0; - public static final Long DEFAULT_LONG = 0l; - public static final Float DEFAULT_FLOAT = new Float(0.0); - public static final Double DEFAULT_DOUBLE = 0.0; - public static final Byte DEFAULT_BYTE = (byte) 0; - public static final Character DEFAULT_CHAR = (char) 0; - - public static boolean isBooleanType(Type paramClass) { - return paramClass == Boolean.class || paramClass == Boolean.TYPE; - } - - public static Object getDefaultPrimitiveValue(Class paramClass) { - if (paramClass == Boolean.TYPE) { - return Boolean.FALSE; - } else if (paramClass == Short.TYPE) { - return DEFAULT_SHORT; - } else if (paramClass == Integer.TYPE) { - return DEFAULT_INTEGER; - } else if (paramClass == Long.TYPE) { - return DEFAULT_LONG; - } else if (paramClass == Float.TYPE) { - return DEFAULT_FLOAT; - } else if (paramClass == Double.TYPE) { - return DEFAULT_DOUBLE; - } else if (paramClass == Byte.TYPE) { - return DEFAULT_BYTE; - } else if (paramClass == Character.TYPE) { - return DEFAULT_CHAR; - } else { - throw new IllegalArgumentException("Class " + paramClass.getName() + " is not primitive type"); - } - } - - public static boolean isNumericType(Class paramClass) { - return - Number.class.isAssignableFrom(paramClass) || - paramClass == Short.TYPE || - paramClass == Integer.TYPE || - paramClass == Long.TYPE || - paramClass == Double.TYPE || - paramClass == Float.TYPE || - paramClass == Byte.TYPE; - } - - public static Object invokeObjectMethod(Object object, String name, Class paramTypes[], Object args[]) - throws Throwable { - Method method = object.getClass().getMethod(name, paramTypes); - if (!method.isAccessible()) { - method.setAccessible(true); - } - try { - return method.invoke(object, args); - } catch (InvocationTargetException e) { - throw e.getTargetException(); - } - } - - public static Object invokeObjectMethod(Object object, String name) - throws Throwable { - Method method = object.getClass().getMethod(name); - if (!method.isAccessible()) { - method.setAccessible(true); - } - try { - return method.invoke(object); - } catch (InvocationTargetException e) { - throw e.getTargetException(); - } - } - - public static Object invokeStaticMethod(Class objectType, String name, Class paramTypes[], Object args[]) - throws Throwable { - Method method = objectType.getMethod(name, paramTypes); - if (!method.isAccessible()) { - method.setAccessible(true); - } - try { - return method.invoke(null, args); - } catch (InvocationTargetException e) { - throw e.getTargetException(); - } - } - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java b/modules/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java deleted file mode 100644 index e7ea01adab..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/CommonUtils.java +++ /dev/null @@ -1,539 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils; - -import org.jkiss.code.NotNull; -import org.jkiss.code.Nullable; - -import java.lang.reflect.InvocationTargetException; -import java.util.*; - -/** - * Common utils - */ -public class CommonUtils { - - public static boolean isJavaIdentifier(@NotNull CharSequence str) { - for (int i = 0; i < str.length(); i++) { - if (!Character.isJavaIdentifierPart(str.charAt(i))) { - return false; - } - } - return true; - } - - @NotNull - public static String escapeJavaString(@NotNull String str) { - StringBuilder res = new StringBuilder(str.length() + 5); - for (int i = 0; i < str.length(); i++) { - char c = str.charAt(i); - switch (c) { - case '"': - res.append("\\\""); - break; - case '\n': - res.append("\\n"); - break; - case '\r': - res.append("\\r"); - break; - case '\t': - res.append("\\t"); - break; - default: - res.append(c); - break; - } - } - return res.toString(); - } - - @Nullable - public static String escapeIdentifier(@Nullable String str) { - if (str == null) { - return null; - } - StringBuilder res = new StringBuilder(str.length()); - for (int i = 0; i < str.length(); i++) { - char c = str.charAt(i); - if (Character.isJavaIdentifierPart(c)) { - res.append(c); - } else { - if (res.length() == 0 || res.charAt(res.length() - 1) != '_') { - res.append('_'); - } - } - } - return res.toString(); - } - - @Nullable - public static String escapeFileName(@Nullable String str) { - if (str == null) { - return null; - } - StringBuilder res = new StringBuilder(str.length()); - for (int i = 0; i < str.length(); i++) { - char c = str.charAt(i); - if (Character.isISOControl(c) || c == '\\' || c == '/' || c == '<' || c == '>' || c == '|' || c == '"' || c == ':' - || c == '*' || c == '?') { - res.append('_'); - } else { - res.append(c); - } - } - return res.toString(); - } - - public static String makeDirectoryName(@NotNull String str) { - if (!str.endsWith("/")) { - str += "/"; - } - return str; - } - - @NotNull - public static String removeTrailingSlash(@NotNull String str) { - while (str.endsWith("/") || str.endsWith("\\")) { - str = str.substring(0, str.length() - 1); - } - return str; - } - - public static String capitalizeWord(String str) { - if (isEmpty(str) || Character.isUpperCase(str.charAt(0))) { - return str; - } - return Character.toUpperCase(str.charAt(0)) + str.substring(1); - } - - @NotNull - public static T notNull(@Nullable T value, @NotNull T defaultValue) { - return value != null ? value : defaultValue; - } - - public static boolean isEmpty(@Nullable CharSequence value) { - return value == null || value.length() == 0; - } - - public static boolean isEmpty(@Nullable String value) { - return value == null || value.length() == 0; - } - - public static boolean isNotEmpty(@Nullable String value) { - return !isEmpty(value); - } - - public static boolean isEmpty(@Nullable Collection value) { - return value == null || value.isEmpty(); - } - - public static boolean isEmpty(@Nullable Map value) { - return value == null || value.isEmpty(); - } - - @NotNull - public static Collection safeCollection(@Nullable Collection theList) { - if (theList == null) { - theList = Collections.emptyList(); - } - return theList; - } - - @NotNull - public static List safeList(@Nullable List theList) { - if (theList == null) { - theList = Collections.emptyList(); - } - return theList; - } - - @NotNull - public static List copyList(@Nullable Collection theList) { - if (theList == null) { - return new ArrayList<>(); - } else { - return new ArrayList<>(theList); - } - } - - @NotNull - public static String notEmpty(@Nullable String value) { - return value == null ? "" : value; - } - - public static boolean isTrue(Boolean value) { - return value != null && value; - } - - public static boolean getBoolean(String value) { - return Boolean.parseBoolean(value); - } - - public static boolean getBoolean(@Nullable String value, boolean defaultValue) { - return isEmpty(value) ? defaultValue : Boolean.parseBoolean(value); - } - - public static boolean getBoolean(@Nullable Object value, boolean defaultValue) { - if (value == null) { - return defaultValue; - } else if (value instanceof Boolean) { - return (Boolean) value; - } else { - return getBoolean(value.toString(), defaultValue); - } - } - - @NotNull - public static String getLineSeparator() { - String lineSeparator = System.getProperty(StandardConstants.ENV_LINE_SEPARATOR); - return lineSeparator == null ? "\n" : lineSeparator; - } - - @NotNull - public static Throwable getRootCause(@NotNull Throwable ex) { - Throwable rootCause = ex; - for (; ; ) { - if (rootCause.getCause() != null) { - rootCause = rootCause.getCause(); - } else if (rootCause instanceof InvocationTargetException - && ((InvocationTargetException) rootCause).getTargetException() != null) { - rootCause = ((InvocationTargetException) rootCause).getTargetException(); - } else { - break; - } - } - return rootCause; - } - - public static boolean equalObjects(@Nullable Object o1, @Nullable Object o2) { - if (o1 == o2) { - return true; - } - if (o1 == null || o2 == null) { - return false; - } -// if (o1.getClass() != o2.getClass()) { -// return false; -// } - return o1.equals(o2); - } - - @NotNull - public static String toString(@Nullable Object object) { - if (object == null) { - return ""; - } else if (object instanceof String) { - return (String) object; - } else { - return object.toString(); - } - } - - public static String toString(@Nullable Object object, String def) { - if (object == null) { - return def; - } else if (object instanceof String) { - return (String) object; - } else { - return object.toString(); - } - } - - public static boolean toBoolean(@Nullable Object object) { - return object != null && getBoolean(object.toString()); - } - - public static int toInt(@Nullable Object object, int def) { - if (object == null) { - return def; - } else if (object instanceof Number) { - return ((Number) object).intValue(); - } else { - try { - return Integer.parseInt(toString(object)); - } catch (NumberFormatException e) { - return def; - } - } - } - - public static int toInt(@Nullable Object object) { - return toInt(object, 0); - } - - public static boolean isInt(@Nullable Object object) { - if (object == null) { - return false; - } else if (object instanceof Number) { - return true; - } else { - try { - Integer.parseInt(toString(object)); - return true; - } catch (NumberFormatException e) { - return false; - } - } - } - - public static long toLong(@Nullable Object object) { - if (object == null) { - return 0; - } else if (object instanceof Number) { - return ((Number) object).longValue(); - } else { - try { - return Long.parseLong(toString(object)); - } catch (NumberFormatException e) { - return -1; - } - } - } - - public static boolean isLong(@Nullable Object object) { - if (object == null) { - return false; - } else if (object instanceof Number) { - return true; - } else { - try { - Long.parseLong(toString(object)); - return true; - } catch (NumberFormatException e) { - return false; - } - } - } - - @NotNull - public static String toHexString(@Nullable byte[] bytes) { - return bytes == null ? "" : toHexString(bytes, 0, bytes.length); - } - - final protected static char[] hexArray = "0123456789ABCDEF".toCharArray(); - - @NotNull - public static String toHexString(@Nullable byte[] bytes, int offset, int length) { - if (bytes == null || bytes.length == 0) { - return ""; - } - char[] hexChars = new char[length * 2]; - for (int i = 0; i < length; i++) { - int v = bytes[offset + i] & 0xFF; - hexChars[i * 2] = hexArray[v >>> 4]; - hexChars[i * 2 + 1] = hexArray[v & 0x0F]; - } - return new String(hexChars); - } - - public static String toBinaryString(long longValue, int bitCount) { - String strValue = Long.toString(longValue, 2); - if (strValue.length() < bitCount) { - char[] headZeroes = new char[bitCount - strValue.length()]; - Arrays.fill(headZeroes, '0'); - strValue = String.valueOf(headZeroes) + strValue; - } - return strValue; - } - - @NotNull - public static List splitString(@Nullable String str, char delimiter) { - if (CommonUtils.isEmpty(str)) { - return Collections.emptyList(); - } else { - List result = new ArrayList<>(); - StringTokenizer st = new StringTokenizer(str, String.valueOf(delimiter)); - while (st.hasMoreTokens()) { - result.add(st.nextToken()); - } - return result; - } - } - - @NotNull - public static String makeString(@Nullable List tokens, char delimiter) { - if (tokens == null) { - return ""; - } else if (tokens.size() == 1) { - return tokens.get(0); - } else { - StringBuilder buf = new StringBuilder(); - for (String token : tokens) { - if (buf.length() > 0) { - buf.append(delimiter); - } - buf.append(token); - } - return buf.toString(); - } - } - - @Nullable - public static String truncateString(@Nullable String str, int maxLength) { - if (str != null && str.length() > maxLength) { - return str.substring(0, maxLength); - } - return str; - } - - public static String joinStrings(String divider, String ... array) { - if (array == null) return ""; - StringBuilder str = new StringBuilder(); - for (int i = 0; i < array.length; i++) { - if (i > 0) str.append(divider); - str.append(array[i]); - } - return str.toString(); - } - - public static String joinStrings(String divider, Collection col) { - if (col == null) return ""; - StringBuilder str = new StringBuilder(); - for (String item : col) { - if (str.length() > 0) str.append(divider); - str.append(item); - } - return str.toString(); - } - - public static boolean isEmptyTrimmed(@Nullable String str) { - return str == null || str.length() == 0 || str.trim().length() == 0; - } - - public static boolean isBitSet(int value, int mask) { - return (value & mask) == mask; - } - - @Nullable - public static > T valueOf(@NotNull Class type, @Nullable String name) { - return valueOf(type, name, false); - } - - @Nullable - public static > T valueOf(@Nullable Class type, @Nullable String name, boolean underscoreSpaces) { - if (name == null) { - return null; - } - name = name.trim(); - if (name.length() == 0) { - return null; - } - if (underscoreSpaces) { - name = name.replace(' ', '_'); - } - try { - return Enum.valueOf(type, name); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - @NotNull - public static T getItem(@NotNull Collection collection, int index) { - if (collection instanceof List) { - return ((List) collection).get(index); - } else { - Iterator iter = collection.iterator(); - for (int i = 0; i < index; i++) { - iter.next(); - } - return iter.next(); - } - } - - @NotNull - public static > T fromOrdinal(Class enumClass, int ordinal) { - T[] enumConstants = enumClass.getEnumConstants(); - for (T value : enumConstants) { - if (value.ordinal() == ordinal) { - return value; - } - } - IllegalArgumentException error = new IllegalArgumentException("Invalid ordinal " + ordinal + " for type " + enumClass.getName()); - if (enumConstants.length == 0) { - throw error; - } else { - error.printStackTrace(System.err); - return enumConstants[0]; - } - } - - @NotNull - public static List filterCollection(@NotNull Collection collection, @NotNull Class type) { - List result = new ArrayList<>(); - for (Object item : collection) { - if (type.isInstance(item)) { - result.add(type.cast(item)); - } - } - return result; - } - - @NotNull - public static String escapeDisplayString(@NotNull final String delim) { - StringBuilder str = new StringBuilder(); - for (int i = 0; i < delim.length(); i++) { - char c = delim.charAt(i); - if (c == '\n') { - str.append("\\n"); - } else if (c == '\r') { - str.append("\\r"); - } else if (c == '\t') { - str.append("\\t"); - } else { - str.append(c); - } - } - return str.toString(); - } - - @NotNull - public static String unescapeDisplayString(@NotNull final String delim) { - return delim.replace("\\t", "\t").replace("\\n", "\n").replace("\\r", "\r"); - } - - public static int hashCode(@Nullable Object obj) { - return obj == null ? 0 : obj.hashCode(); - } - - public static T getOption(Map options, String name, T defValue) { - Object optionValue = options.get(name); - if (optionValue == null) { - return defValue; - } - return (T)optionValue; - } - - public static boolean getOption(Map options, String name) { - return getOption(options, name, false); - } - - public static boolean getOption(Map options, String name, boolean defValue) { - if (options == null) { - return false; - } - Object optionValue = options.get(name); - if (optionValue == null) { - return defValue; - } - return Boolean.TRUE.equals(optionValue); - } - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/IOUtils.java b/modules/org.jkiss.utils/src/org/jkiss/utils/IOUtils.java deleted file mode 100644 index ec5865dc9b..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/IOUtils.java +++ /dev/null @@ -1,247 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils; - -import java.io.*; -import java.net.ServerSocket; -import java.nio.ByteBuffer; -import java.nio.channels.Channels; -import java.nio.channels.ReadableByteChannel; -import java.nio.channels.WritableByteChannel; - -/** - * Some IO helper functions - */ -public final class IOUtils { - - public static final int DEFAULT_BUFFER_SIZE = 16384; - - public static void close(Closeable closeable) { - try { - closeable.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public static void fastCopy(final InputStream src, final OutputStream dest) throws IOException { - fastCopy(src, dest, DEFAULT_BUFFER_SIZE); - } - - public static void fastCopy(final InputStream src, final OutputStream dest, int bufferSize) throws IOException { - final ReadableByteChannel inputChannel = Channels.newChannel(src); - final WritableByteChannel outputChannel = Channels.newChannel(dest); - fastCopy(inputChannel, outputChannel, bufferSize); - } - - public static void fastCopy(final ReadableByteChannel src, final WritableByteChannel dest, int bufferSize) throws IOException { - final ByteBuffer buffer = ByteBuffer.allocateDirect(bufferSize); - - while (src.read(buffer) != -1) { - buffer.flip(); - dest.write(buffer); - buffer.compact(); - } - - buffer.flip(); - - while (buffer.hasRemaining()) { - dest.write(buffer); - } - } - - public static void copyStream( - java.io.InputStream inputStream, - java.io.OutputStream outputStream) - throws IOException { - copyStream(inputStream, outputStream, DEFAULT_BUFFER_SIZE); - } - - /** - * Read entire input stream and writes all data to output stream - * then closes input and flushed output - */ - public static void copyStream( - java.io.InputStream inputStream, - java.io.OutputStream outputStream, - int bufferSize) - throws IOException { - try { - byte[] writeBuffer = new byte[bufferSize]; - for (int br = inputStream.read(writeBuffer); br != -1; br = inputStream.read(writeBuffer)) { - outputStream.write(writeBuffer, 0, br); - } - outputStream.flush(); - } finally { - // Close input stream - inputStream.close(); - } - } - - /** - * Read entire input stream portion and writes it data to output stream - */ - public static void copyStreamPortion( - java.io.InputStream inputStream, - java.io.OutputStream outputStream, - int portionSize, - int bufferSize) - throws IOException { - if (bufferSize > portionSize) { - bufferSize = portionSize; - } - byte[] writeBuffer = new byte[bufferSize]; - int totalRead = 0; - while (totalRead < portionSize) { - int bytesToRead = bufferSize; - if (bytesToRead > portionSize - totalRead) { - bytesToRead = portionSize - totalRead; - } - int bytesRead = inputStream.read(writeBuffer, 0, bytesToRead); - outputStream.write(writeBuffer, 0, bytesRead); - totalRead += bytesRead; - } - - // Close input stream - outputStream.flush(); - } - - public static String toString(File file, String encoding) throws IOException { - try (InputStream is = new FileInputStream(file)) { - try (Reader reader = new InputStreamReader(is, encoding)) { - StringWriter writer = new StringWriter(); - copyText(reader, writer, DEFAULT_BUFFER_SIZE); - return writer.toString(); - } - } - } - - /** - * Read entire reader content and writes it to writer - * then closes reader and flushed output. - */ - public static void copyText( - java.io.Reader reader, - java.io.Writer writer, - int bufferSize) - throws IOException { - char[] writeBuffer = new char[bufferSize]; - for (int br = reader.read(writeBuffer); br != -1; br = reader.read(writeBuffer)) { - writer.write(writeBuffer, 0, br); - } - writer.flush(); - } - - public static void copyText( - java.io.Reader reader, - java.io.Writer writer) - throws IOException { - copyText(reader, writer, DEFAULT_BUFFER_SIZE); - } - - public static byte[] readFileToBuffer(File file) throws IOException { - byte[] buffer = new byte[(int) file.length()]; - try (InputStream is = new FileInputStream(file)) { - readStreamToBuffer(is, buffer); - } - return buffer; - } - - public static int readStreamToBuffer( - java.io.InputStream inputStream, - byte[] buffer) - throws IOException { - int totalRead = 0; - while (totalRead != buffer.length) { - int br = inputStream.read(buffer, totalRead, buffer.length - totalRead); - if (br == -1) { - break; - } - totalRead += br; - } - return totalRead; - } - - public static String readLine(java.io.InputStream input) - throws IOException { - StringBuilder linebuf = new StringBuilder(); - for (int b = input.read(); b != '\n'; b = input.read()) { - if (b == -1) { - if (linebuf.length() == 0) { - return null; - } else { - break; - } - } - if (b != '\r') { - linebuf.append((char) b); - } - } - return linebuf.toString(); - } - - public static String readFullLine(java.io.InputStream input) - throws IOException { - StringBuilder linebuf = new StringBuilder(); - for (int b = input.read(); ; b = input.read()) { - if (b == -1) { - if (linebuf.length() == 0) { - return null; - } else { - break; - } - } - linebuf.append((char) b); - if (b == '\n') { - break; - } - } - return linebuf.toString(); - } - - public static int findFreePort(int minPort, int maxPort) { - int portRange = Math.abs(maxPort - minPort); - while (true) { - int portNum = minPort + SecurityUtils.getRandom().nextInt(portRange); - try { - ServerSocket socket = new ServerSocket(portNum); - try { - socket.close(); - } catch (IOException e) { - // just skip - } - return portNum; - } catch (IOException e) { - // Port is busy - } - } - } - - public static String readToString(Reader is) throws IOException { - StringBuilder result = new StringBuilder(4000); - char[] buffer = new char[4000]; - for (; ; ) { - int count = is.read(buffer); - if (count <= 0) { - break; - } - result.append(buffer, 0, count); - } - return result.toString(); - } -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/IntKeyMap.java b/modules/org.jkiss.utils/src/org/jkiss/utils/IntKeyMap.java deleted file mode 100644 index 00f6569c42..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/IntKeyMap.java +++ /dev/null @@ -1,807 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.utils; - -import java.util.*; - -/** - Map with int key. -*/ -@SuppressWarnings("unchecked") -public class IntKeyMap implements Map { - /** - * The default initial capacity - MUST be a power of two. - */ - static final int DEFAULT_INITIAL_CAPACITY = 16; - - /** - * The maximum capacity, used if a higher value is implicitly specified - * by either of the constructors with arguments. - * MUST be a power of two <= 1<<30. - */ - static final int MAXIMUM_CAPACITY = 1 << 30; - - /** - * The load fast used when none specified in constructor. - **/ - static final float DEFAULT_LOAD_FACTOR = 0.75f; - - /** - * The table, resized as necessary. Length MUST Always be a power of two. - */ - transient IntEntry[] table; - - /** - * The number of key-value mappings contained in this identity hash map. - */ - transient int size; - - /** - * The next size value at which to resize (capacity * load factor). - * @serial - */ - int threshold; - - /** - * The load factor for the hash table. - * - * @serial - */ - final float loadFactor; - - /** - * The number of times this IntKeyMap has been structurally modified - */ - transient volatile int modCount; - - /** - * Constructs an empty IntKeyMap with the specified initial - * capacity and load factor. - * - * @param initialCapacity The initial capacity. - * @param loadFactor The load factor. - * @throws IllegalArgumentException if the initial capacity is negative - * or the load factor is nonpositive. - */ - public IntKeyMap(int initialCapacity, float loadFactor) { - if (initialCapacity < 0) - throw new IllegalArgumentException("Illegal initial capacity: " + - initialCapacity); - if (initialCapacity > MAXIMUM_CAPACITY) - initialCapacity = MAXIMUM_CAPACITY; - if (loadFactor <= 0 || Float.isNaN(loadFactor)) - throw new IllegalArgumentException("Illegal load factor: " + - loadFactor); - - // Find a power of 2 >= initialCapacity - int capacity = 1; - while (capacity < initialCapacity) - capacity <<= 1; - - this.loadFactor = loadFactor; - threshold = (int)(capacity * loadFactor); - table = new IntEntry[capacity]; - } - - /** - * Constructs an empty IntKeyMap with the specified initial - * capacity and the default load factor (0.75). - * - * @param initialCapacity the initial capacity. - * @throws IllegalArgumentException if the initial capacity is negative. - */ - public IntKeyMap(int initialCapacity) { - this(initialCapacity, DEFAULT_LOAD_FACTOR); - } - - /** - * Constructs an empty IntKeyMap with the default initial capacity - * (16) and the default load factor (0.75). - */ - public IntKeyMap() { - this.loadFactor = DEFAULT_LOAD_FACTOR; - threshold = DEFAULT_INITIAL_CAPACITY; - table = new IntEntry[DEFAULT_INITIAL_CAPACITY]; - } - - static int hash(long x) { - int h = (int)(x ^ (x >>> 32)); - h += ~(h << 9); - h ^= (h >>> 14); - h += (h << 4); - h ^= (h >>> 10); - return h; - } - - /** - * Returns index for hash code h. - */ - static int indexFor(int h, int length) { - return h & (length-1); - } - - /** - * Returns the number of key-value mappings in this map. - * - * @return the number of key-value mappings in this map. - */ - @Override - public int size() { - return size; - } - - /** - * Returns true if this map contains no key-value mappings. - * - * @return true if this map contains no key-value mappings. - */ - @Override - public boolean isEmpty() - { - return size == 0; - } - - @Override - public boolean containsKey(Object key) - { - return containsKey(((Number)key).intValue()); - } - - /** - * Returns the value to which the specified key is mapped in this identity - * hash map, or null if the map contains no mapping for this key. - * A return value of null does not necessarily indicate - * that the map contains no mapping for the key; it is also possible that - * the map explicitly maps the key to null. The - * containsKey method may be used to distinguish these two cases. - * - * @param key the key whose associated value is to be returned. - * @return the value to which this map maps the specified key, or - * null if the map contains no mapping for this key. - * @see #put(int, Object) - */ - public VALUE get(int key) { - int hash = hash(key); - int i = indexFor(hash, table.length); - IntEntry e = table[i]; - while (true) { - if (e == null) - return null; - if (e.hash == hash && key == e.key) - return e.value; - e = e.next; - } - } - - /** - * Returns true if this map contains a mapping for the - * specified key. - */ - public boolean containsKey(int key) - { - int hash = hash(key); - int i = indexFor(hash, table.length); - IntEntry e = table[i]; - while (e != null) { - if (e.hash == hash && key == e.key) - return true; - e = e.next; - } - return false; - } - - /** - * Returns the entry associated with the specified key in the - * IntKeyMap. Returns null if the IntKeyMap contains no mapping - * for this key. - */ - IntEntry getEntry(int key) { - int hash = hash(key); - int i = indexFor(hash, table.length); - IntEntry e = table[i]; - while (e != null && !(e.hash == hash && key == e.key)) - e = e.next; - return e; - } - - /** - * Associates the specified value with the specified key in this map. - * If the map previously contained a mapping for this key, the old - * value is replaced. - * - * @param key key with which the specified value is to be associated. - * @param value value to be associated with the specified key. - * @return previous value associated with specified key, or null - * if there was no mapping for key. A null return can - * also indicate that the IntKeyMap previously associated - * null with the specified key. - */ - public VALUE put(int key, VALUE value) { - int hash = hash(key); - int i = indexFor(hash, table.length); - - for (IntEntry e = table[i]; e != null; e = e.next) { - if (e.hash == hash && key == e.key) { - VALUE oldValue = e.value; - e.value = value; - return oldValue; - } - } - - modCount++; - addEntry(hash, key, value, i); - return null; - } - - /** - * This method is used instead of put by constructors and - * pseudoconstructors (clone, readObject). It does not resize the table, - * check for comodification, etc. It calls createEntry rather than - * addEntry. - */ - private void putForCreate(int key, VALUE value) { - int hash = hash(key); - int i = indexFor(hash, table.length); - - /** - * Look for preexisting entry for key. This will never happen for - * clone or deserialize. It will only happen for construction if the - * input Map is a sorted map whose ordering is inconsistent w/ equals. - */ - for (IntEntry e = table[i]; e != null; e = e.next) { - if (e.hash == hash && key == e.key) { - e.value = value; - return; - } - } - - createEntry(hash, key, value, i); - } - - void putAllForCreate(IntKeyMap m) { - for (Iterator i = m.entrySet().iterator(); i.hasNext(); ) { - IntEntry e = (IntEntry) i.next(); - putForCreate(e.key, e.value); - } - } - - /** - * Rehashes the contents of this map into a new IntKeyMap instance - * with a larger capacity. This method is called automatically when the - * number of keys in this map exceeds its capacity and load factor. - * - * @param newCapacity the new capacity, MUST be a power of two. - */ - void resize(int newCapacity) { - // assert (newCapacity & -newCapacity) == newCapacity; // power of 2 - IntEntry[] oldTable = table; - int oldCapacity = oldTable.length; - - // check if needed - if (size < threshold || oldCapacity > newCapacity) - return; - - IntEntry[] newTable = new IntEntry[newCapacity]; - transfer(newTable); - table = newTable; - threshold = (int)(newCapacity * loadFactor); - } - - /** - * Transfer all entries from current table to newTable. - */ - void transfer(IntEntry[] newTable) { - IntEntry[] src = table; - int newCapacity = newTable.length; - for (int j = 0; j < src.length; j++) { - IntEntry e = src[j]; - if (e != null) { - src[j] = null; - do { - IntEntry next = e.next; - int i = indexFor(e.hash, newCapacity); - e.next = newTable[i]; - newTable[i] = e; - e = next; - } while (e != null); - } - } - } - - /** - * Copies all of the mappings from the specified map to this map - * These mappings will replace any mappings that - * this map had for any of the keys currently in the specified map. - * - * @param t mappings to be stored in this map. - * @throws NullPointerException if the specified map is null. - */ - public void putAll(IntKeyMap t) { - // Expand enough to hold t's elements without resizing. - int n = t.size(); - if (n == 0) - return; - if (n >= threshold) { - n = (int)(n / loadFactor + 1); - if (n > MAXIMUM_CAPACITY) - n = MAXIMUM_CAPACITY; - int capacity = table.length; - while (capacity < n) - capacity <<= 1; - resize(capacity); - } - - for (Iterator i = t.entrySet().iterator(); i.hasNext(); ) { - IntEntry e = (IntEntry) i.next(); - put(e.key, e.value); - } - } - - /** - * Removes the mapping for this key from this map if present. - * - * @param key key whose mapping is to be removed from the map. - * @return previous value associated with specified key, or null - * if there was no mapping for key. A null return can - * also indicate that the map previously associated null - * with the specified key. - */ - public VALUE remove(int key) { - IntEntry e = removeEntryForKey(key); - return (e == null ? null : e.value); - } - - /** - * Removes and returns the entry associated with the specified key - * in the IntKeyMap. Returns null if the IntKeyMap contains no mapping - * for this key. - */ - IntEntry removeEntryForKey(int key) { - int hash = hash(key); - int i = indexFor(hash, table.length); - IntEntry prev = table[i]; - IntEntry e = prev; - - while (e != null) { - IntEntry next = e.next; - if (e.hash == hash && key == e.key) { - modCount++; - size--; - if (prev == e) - table[i] = next; - else - prev.next = next; - return e; - } - prev = e; - e = next; - } - - return e; - } - - /** - * Special version of remove for EntrySet. - */ - IntEntry removeMapping(Object o) { - if (!(o instanceof IntEntry)) - return null; - - IntEntry entry = (IntEntry)o; - int hash = hash(entry.key); - int i = indexFor(hash, table.length); - IntEntry prev = table[i]; - IntEntry e = prev; - - while (e != null) { - IntEntry next = e.next; - if (e.hash == hash && e.equals(entry)) { - modCount++; - size--; - if (prev == e) - table[i] = next; - else - prev.next = next; - return e; - } - prev = e; - e = next; - } - - return e; - } - - /** - * Removes all mappings from this map. - */ - @Override - public void clear() { - modCount++; - IntEntry tab[] = table; - for (int i = 0; i < tab.length; i++) - tab[i] = null; - size = 0; - } - - /** - * Returns true if this map maps one or more keys to the - * specified value. - * - * @param value value whose presence in this map is to be tested. - * @return true if this map maps one or more keys to the - * specified value. - */ - @Override - public boolean containsValue(Object value) - { - if (value == null) - return containsNullValue(); - - IntEntry tab[] = table; - for (int i = 0; i < tab.length ; i++) - for (IntEntry e = tab[i] ; e != null ; e = e.next) - if (value.equals(e.value)) - return true; - return false; - } - - @Override - public VALUE get(Object key) - { - return get(((Number)key).intValue()); - } - - @Override - public VALUE put(Integer key, VALUE value) - { - return put(key.intValue(), value); - } - - @Override - public VALUE remove(Object key) - { - return remove(((Number)key).intValue()); - } - - @Override - public void putAll(Map t) - { - throw new UnsupportedOperationException(); - } - - /** - * Special-case code for containsValue with null argument - **/ - private boolean containsNullValue() - { - IntEntry tab[] = table; - for (int i = 0; i < tab.length ; i++) - for (IntEntry e = tab[i] ; e != null ; e = e.next) - if (e.value == null) - return true; - return false; - } - - public static class IntEntry implements Entry { - final int key; - VALUE value; - final int hash; - IntEntry next; - - /** - * Create new entry. - */ - IntEntry(int h, int k, VALUE v, IntEntry n) { - value = v; - next = n; - key = k; - hash = h; - } - - public int getInt() { - return key; - } - - @Override - public Integer getKey() - { - return key; - } - - @Override - public VALUE getValue() { - return value; - } - - @Override - public VALUE setValue(VALUE newValue) { - VALUE oldValue = value; - value = newValue; - return oldValue; - } - - public boolean equals(Object o) { - if (!(o instanceof IntEntry)) - return false; - IntEntry e = (IntEntry)o; - if (key == e.key) { - VALUE v1 = getValue(); - VALUE v2 = e.getValue(); - if (v1 == v2 || (v1 != null && v1.equals(v2))) - return true; - } - return false; - } - - public int hashCode() { - return hash(key) ^ (value==null ? 0 : value.hashCode()); - } - - public String toString() { - return String.valueOf(key) + "=" + getValue(); - } - - } - - /** - * Add a new entry with the specified key, value and hash code to - * the specified bucket. It is the responsibility of this - * method to resize the table if appropriate. - * - * Subclass overrides this to alter the behavior of put method. - */ - void addEntry(int hash, int key, VALUE value, int bucketIndex) { - table[bucketIndex] = new IntEntry<>(hash, key, value, table[bucketIndex]); - if (size++ >= threshold) - resize(2 * table.length); - } - - /** - * Like addEntry except that this version is used when creating entries - * as part of Map construction or "pseudo-construction" (cloning, - * deserialization). This version needn't worry about resizing the table. - * - * Subclass overrides this to alter the behavior of IntKeyMap(Map), - * clone, and readObject. - */ - void createEntry(int hash, int key, VALUE value, int bucketIndex) { - table[bucketIndex] = new IntEntry<>(hash, key, value, table[bucketIndex]); - size++; - } - - private abstract class HashIterator implements Iterator { - IntEntry next; // next entry to return - int expectedModCount; // For fast-fail - int index; // current slot - IntEntry current; // current entry - - HashIterator() { - expectedModCount = modCount; - IntEntry[] t = table; - int i = t.length; - IntEntry n = null; - if (size != 0) { // advance to first entry - while (i > 0 && (n = t[--i]) == null) - ; - } - next = n; - index = i; - } - - @Override - public boolean hasNext() { - return next != null; - } - - IntEntry nextEntry() { - if (modCount != expectedModCount) - throw new ConcurrentModificationException(); - IntEntry e = next; - if (e == null) - throw new NoSuchElementException(); - - IntEntry n = e.next; - IntEntry[] t = table; - int i = index; - while (n == null && i > 0) - n = t[--i]; - index = i; - next = n; - return current = e; - } - - @Override - public void remove() { - if (current == null) - throw new IllegalStateException(); - if (modCount != expectedModCount) - throw new ConcurrentModificationException(); - int k = current.key; - current = null; - IntKeyMap.this.removeEntryForKey(k); - expectedModCount = modCount; - } - - } - - private class ValueIterator extends HashIterator { - @Override - public VALUE next() { - return nextEntry().value; - } - } - - private class KeyIterator extends HashIterator { - @Override - public Integer next() { - return nextEntry().key; - } - public int nextInt() { - return nextEntry().key; - } - } - - private class EntryIterator extends HashIterator> { - @Override - public IntEntry next() { - return nextEntry(); - } - } - - // Subclass overrides these to alter behavior of views' iterator() method - Iterator newKeyIterator() - { - return new KeyIterator(); - } - Iterator newValueIterator() - { - return new ValueIterator(); - } - Iterator> newEntryIterator() - { - return new EntryIterator(); - } - - - // Views - - private transient Set> entrySet = null; - transient volatile Set keySet = null; - transient volatile Collection values = null; - - /** - * Returns a set view of the keys contained in this map. The set is - * backed by the map, so changes to the map are reflected in the set, and - * vice-versa. The set supports element removal, which removes the - * corresponding mapping from this map, via the Iterator.remove, - * Set.remove, removeAll, retainAll, and - * clear operations. It does not support the add or - * addAll operations. - * - * @return a set view of the keys contained in this map. - */ - @Override - public Set keySet() { - Set ks = keySet; - return (ks != null ? ks : (keySet = new KeySet())); - } - - private class KeySet extends AbstractSet { - @Override - public Iterator iterator() { - return newKeyIterator(); - } - @Override - public int size() { - return size; - } - @Override - public boolean contains(Object o) { - if (o instanceof Number) { - return containsKey(((Number)o).intValue()); - } else { - return false; - } - } - @Override - public boolean remove(Object o) { - if (o instanceof Number) { - return IntKeyMap.this.removeEntryForKey(((Number)o).intValue()) != null; - } else { - return false; - } - } - @Override - public void clear() { - IntKeyMap.this.clear(); - } - } - - /** - * Returns a collection view of the values contained in this map. The - * collection is backed by the map, so changes to the map are reflected in - * the collection, and vice-versa. The collection supports element - * removal, which removes the corresponding mapping from this map, via the - * Iterator.remove, Collection.remove, - * removeAll, retainAll, and clear operations. - * It does not support the add or addAll operations. - * - * @return a collection view of the values contained in this map. - */ - @Override - public Collection values() { - Collection vs = values; - return (vs != null ? vs : (values = new Values())); - } - - private class Values extends AbstractCollection { - @Override - public Iterator iterator() { - return newValueIterator(); - } - @Override - public int size() { - return size; - } - @Override - public boolean contains(Object o) { - return containsValue(o); - } - @Override - public void clear() { - IntKeyMap.this.clear(); - } - } - - @Override - public Set entrySet() - { - Set> es = entrySet; - return (es != null ? es : (entrySet = new EntrySet())); - } - - private class EntrySet extends AbstractSet> { - @Override - public Iterator> iterator() { - return newEntryIterator(); - } - @Override - public boolean contains(Object o) { - if (!(o instanceof IntEntry)) - return false; - IntEntry e = (IntEntry)o; - IntEntry candidate = getEntry(e.key); - return candidate != null && candidate.equals(e); - } - @Override - public boolean remove(Object o) { - return removeMapping(o) != null; - } - @Override - public int size() { - return size; - } - @Override - public void clear() { - IntKeyMap.this.clear(); - } - } - - // These methods are used when serializing HashSets - int capacity() { return table.length; } - float loadFactor() { return loadFactor; } -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/LongKeyMap.java b/modules/org.jkiss.utils/src/org/jkiss/utils/LongKeyMap.java deleted file mode 100644 index 74478f5ce7..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/LongKeyMap.java +++ /dev/null @@ -1,806 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.utils; - -import java.util.*; - -/** - Map with long key. -*/ -public class LongKeyMap implements Map { - /** - * The default initial capacity - MUST be a power of two. - */ - static final int DEFAULT_INITIAL_CAPACITY = 16; - - /** - * The maximum capacity, used if a higher value is implicitly specified - * by either of the constructors with arguments. - * MUST be a power of two <= 1<<30. - */ - static final int MAXIMUM_CAPACITY = 1 << 30; - - /** - * The load fast used when none specified in constructor. - **/ - static final float DEFAULT_LOAD_FACTOR = 0.75f; - - /** - * The table, resized as necessary. Length MUST Always be a power of two. - */ - transient LongEntry[] table; - - /** - * The number of key-value mappings contained in this identity hash map. - */ - transient int size; - - /** - * The next size value at which to resize (capacity * load factor). - * @serial - */ - int threshold; - - /** - * The load factor for the hash table. - * - * @serial - */ - final float loadFactor; - - /** - * The number of times this LongKeyMap has been structurally modified - */ - transient volatile int modCount; - - /** - * Constructs an empty LongKeyMap with the specified initial - * capacity and load factor. - * - * @param initialCapacity The initial capacity. - * @param loadFactor The load factor. - * @throws IllegalArgumentException if the initial capacity is negative - * or the load factor is nonpositive. - */ - public LongKeyMap(int initialCapacity, float loadFactor) { - if (initialCapacity < 0) - throw new IllegalArgumentException("Illegal initial capacity: " + - initialCapacity); - if (initialCapacity > MAXIMUM_CAPACITY) - initialCapacity = MAXIMUM_CAPACITY; - if (loadFactor <= 0 || Float.isNaN(loadFactor)) - throw new IllegalArgumentException("Illegal load factor: " + - loadFactor); - - // Find a power of 2 >= initialCapacity - int capacity = 1; - while (capacity < initialCapacity) - capacity <<= 1; - - this.loadFactor = loadFactor; - threshold = (int)(capacity * loadFactor); - table = new LongEntry[capacity]; - } - - /** - * Constructs an empty LongKeyMap with the specified initial - * capacity and the default load factor (0.75). - * - * @param initialCapacity the initial capacity. - * @throws IllegalArgumentException if the initial capacity is negative. - */ - public LongKeyMap(int initialCapacity) { - this(initialCapacity, DEFAULT_LOAD_FACTOR); - } - - /** - * Constructs an empty LongKeyMap with the default initial capacity - * (16) and the default load factor (0.75). - */ - public LongKeyMap() { - this.loadFactor = DEFAULT_LOAD_FACTOR; - threshold = DEFAULT_INITIAL_CAPACITY; - table = new LongEntry[DEFAULT_INITIAL_CAPACITY]; - } - - static int hash(long x) { - int h = (int)(x ^ (x >>> 32)); - h += ~(h << 9); - h ^= (h >>> 14); - h += (h << 4); - h ^= (h >>> 10); - return h; - } - - /** - * Returns index for hash code h. - */ - static int indexFor(int h, int length) { - return h & (length-1); - } - - /** - * Returns the number of key-value mappings in this map. - * - * @return the number of key-value mappings in this map. - */ - @Override - public int size() { - return size; - } - - /** - * Returns true if this map contains no key-value mappings. - * - * @return true if this map contains no key-value mappings. - */ - @Override - public boolean isEmpty() - { - return size == 0; - } - - @Override - public boolean containsKey(Object key) - { - return containsKey(((Number)key).longValue()); - } - - /** - * Returns the value to which the specified key is mapped in this identity - * hash map, or null if the map contains no mapping for this key. - * A return value of null does not necessarily indicate - * that the map contains no mapping for the key; it is also possible that - * the map explicitly maps the key to null. The - * containsKey method may be used to distinguish these two cases. - * - * @param key the key whose associated value is to be returned. - * @return the value to which this map maps the specified key, or - * null if the map contains no mapping for this key. - * @see #put(long, Object) - */ - public VALUE get(long key) { - int hash = hash(key); - int i = indexFor(hash, table.length); - LongEntry e = table[i]; - while (true) { - if (e == null) - return null; - if (e.hash == hash && key == e.key) - return e.value; - e = e.next; - } - } - - /** - * Returns true if this map contains a mapping for the - * specified key. - */ - public boolean containsKey(long key) - { - int hash = hash(key); - int i = indexFor(hash, table.length); - LongEntry e = table[i]; - while (e != null) { - if (e.hash == hash && key == e.key) - return true; - e = e.next; - } - return false; - } - - /** - * Returns the entry associated with the specified key in the - * LongKeyMap. Returns null if the LongKeyMap contains no mapping - * for this key. - */ - LongEntry getEntry(long key) { - int hash = hash(key); - int i = indexFor(hash, table.length); - LongEntry e = table[i]; - while (e != null && !(e.hash == hash && key == e.key)) - e = e.next; - return e; - } - - /** - * Associates the specified value with the specified key in this map. - * If the map previously contained a mapping for this key, the old - * value is replaced. - * - * @param key key with which the specified value is to be associated. - * @param value value to be associated with the specified key. - * @return previous value associated with specified key, or null - * if there was no mapping for key. A null return can - * also indicate that the LongKeyMap previously associated - * null with the specified key. - */ - public VALUE put(long key, VALUE value) { - int hash = hash(key); - int i = indexFor(hash, table.length); - - for (LongEntry e = table[i]; e != null; e = e.next) { - if (e.hash == hash && key == e.key) { - VALUE oldValue = e.value; - e.value = value; - return oldValue; - } - } - - modCount++; - addEntry(hash, key, value, i); - return null; - } - - /** - * This method is used instead of put by constructors and - * pseudoconstructors (clone, readObject). It does not resize the table, - * check for comodification, etc. It calls createEntry rather than - * addEntry. - */ - private void putForCreate(long key, VALUE value) { - int hash = hash(key); - int i = indexFor(hash, table.length); - - /** - * Look for preexisting entry for key. This will never happen for - * clone or deserialize. It will only happen for construction if the - * input Map is a sorted map whose ordering is inconsistent w/ equals. - */ - for (LongEntry e = table[i]; e != null; e = e.next) { - if (e.hash == hash && key == e.key) { - e.value = value; - return; - } - } - - createEntry(hash, key, value, i); - } - - void putAllForCreate(LongKeyMap m) { - for (Iterator> i = m.entrySet().iterator(); i.hasNext(); ) { - LongEntry e = i.next(); - putForCreate(e.key, e.value); - } - } - - /** - * Rehashes the contents of this map into a new LongKeyMap instance - * with a larger capacity. This method is called automatically when the - * number of keys in this map exceeds its capacity and load factor. - * - * @param newCapacity the new capacity, MUST be a power of two. - */ - void resize(int newCapacity) { - // assert (newCapacity & -newCapacity) == newCapacity; // power of 2 - LongEntry[] oldTable = table; - int oldCapacity = oldTable.length; - - // check if needed - if (size < threshold || oldCapacity > newCapacity) - return; - - LongEntry[] newTable = new LongEntry[newCapacity]; - transfer(newTable); - table = newTable; - threshold = (int)(newCapacity * loadFactor); - } - - /** - * Transfer all entries from current table to newTable. - */ - void transfer(LongEntry[] newTable) { - LongEntry[] src = table; - int newCapacity = newTable.length; - for (int j = 0; j < src.length; j++) { - LongEntry e = src[j]; - if (e != null) { - src[j] = null; - do { - LongEntry next = e.next; - int i = indexFor(e.hash, newCapacity); - e.next = newTable[i]; - newTable[i] = e; - e = next; - } while (e != null); - } - } - } - - /** - * Copies all of the mappings from the specified map to this map - * These mappings will replace any mappings that - * this map had for any of the keys currently in the specified map. - * - * @param t mappings to be stored in this map. - * @throws NullPointerException if the specified map is null. - */ - public void putAll(LongKeyMap t) { - // Expand enough to hold t's elements without resizing. - int n = t.size(); - if (n == 0) - return; - if (n >= threshold) { - n = (int)(n / loadFactor + 1); - if (n > MAXIMUM_CAPACITY) - n = MAXIMUM_CAPACITY; - int capacity = table.length; - while (capacity < n) - capacity <<= 1; - resize(capacity); - } - - for (Iterator> i = t.entrySet().iterator(); i.hasNext(); ) { - LongEntry e = i.next(); - put(e.key, e.value); - } - } - - /** - * Removes the mapping for this key from this map if present. - * - * @param key key whose mapping is to be removed from the map. - * @return previous value associated with specified key, or null - * if there was no mapping for key. A null return can - * also indicate that the map previously associated null - * with the specified key. - */ - public VALUE remove(long key) { - LongEntry e = removeEntryForKey(key); - return (e == null ? null : e.value); - } - - /** - * Removes and returns the entry associated with the specified key - * in the LongKeyMap. Returns null if the LongKeyMap contains no mapping - * for this key. - */ - LongEntry removeEntryForKey(long key) { - int hash = hash(key); - int i = indexFor(hash, table.length); - LongEntry prev = table[i]; - LongEntry e = prev; - - while (e != null) { - LongEntry next = e.next; - if (e.hash == hash && key == e.key) { - modCount++; - size--; - if (prev == e) - table[i] = next; - else - prev.next = next; - return e; - } - prev = e; - e = next; - } - - return e; - } - - /** - * Special version of remove for EntrySet. - */ - LongEntry removeMapping(Object o) { - if (!(o instanceof LongEntry)) - return null; - - LongEntry entry = (LongEntry)o; - int hash = hash(entry.key); - int i = indexFor(hash, table.length); - LongEntry prev = table[i]; - LongEntry e = prev; - - while (e != null) { - LongEntry next = e.next; - if (e.hash == hash && e.equals(entry)) { - modCount++; - size--; - if (prev == e) - table[i] = next; - else - prev.next = next; - return e; - } - prev = e; - e = next; - } - - return e; - } - - /** - * Removes all mappings from this map. - */ - @Override - public void clear() { - modCount++; - LongEntry tab[] = table; - for (int i = 0; i < tab.length; i++) - tab[i] = null; - size = 0; - } - - /** - * Returns true if this map maps one or more keys to the - * specified value. - * - * @param value value whose presence in this map is to be tested. - * @return true if this map maps one or more keys to the - * specified value. - */ - @Override - public boolean containsValue(Object value) - { - if (value == null) - return containsNullValue(); - - LongEntry tab[] = table; - for (int i = 0; i < tab.length ; i++) - for (LongEntry e = tab[i] ; e != null ; e = e.next) - if (value.equals(e.value)) - return true; - return false; - } - - @Override - public VALUE get(Object key) - { - return get(((Number)key).longValue()); - } - - @Override - public VALUE put(Long key, VALUE value) - { - return put(key.longValue(), value); - } - - @Override - public VALUE remove(Object key) - { - return remove(((Number)key).longValue()); - } - - @Override - public void putAll(Map t) - { - throw new UnsupportedOperationException(); - } - - /** - * Special-case code for containsValue with null argument - **/ - private boolean containsNullValue() - { - LongEntry tab[] = table; - for (int i = 0; i < tab.length ; i++) - for (LongEntry e = tab[i] ; e != null ; e = e.next) - if (e.value == null) - return true; - return false; - } - - public static class LongEntry implements Entry { - final long key; - VALUE value; - final int hash; - LongEntry next; - - /** - * Create new entry. - */ - LongEntry(int h, long k, VALUE v, LongEntry n) { - value = v; - next = n; - key = k; - hash = h; - } - - public long getLong() { - return key; - } - - @Override - public Long getKey() - { - return key; - } - - @Override - public VALUE getValue() { - return value; - } - - @Override - public VALUE setValue(VALUE newValue) { - VALUE oldValue = value; - value = newValue; - return oldValue; - } - - public boolean equals(Object o) { - if (!(o instanceof LongEntry)) - return false; - LongEntry e = (LongEntry)o; - if (key == e.key) { - VALUE v1 = getValue(); - VALUE v2 = e.getValue(); - if (v1 == v2 || (v1 != null && v1.equals(v2))) - return true; - } - return false; - } - - public int hashCode() { - return hash(key) ^ (value==null ? 0 : value.hashCode()); - } - - public String toString() { - return String.valueOf(key) + "=" + getValue(); - } - - } - - /** - * Add a new entry with the specified key, value and hash code to - * the specified bucket. It is the responsibility of this - * method to resize the table if appropriate. - * - * Subclass overrides this to alter the behavior of put method. - */ - void addEntry(int hash, long key, VALUE value, int bucketIndex) { - table[bucketIndex] = new LongEntry<>(hash, key, value, table[bucketIndex]); - if (size++ >= threshold) - resize(2 * table.length); - } - - /** - * Like addEntry except that this version is used when creating entries - * as part of Map construction or "pseudo-construction" (cloning, - * deserialization). This version needn't worry about resizing the table. - * - * Subclass overrides this to alter the behavior of LongKeyMap(Map), - * clone, and readObject. - */ - void createEntry(int hash, long key, VALUE value, int bucketIndex) { - table[bucketIndex] = new LongEntry<>(hash, key, value, table[bucketIndex]); - size++; - } - - private abstract class HashIterator implements Iterator { - LongEntry next; // next entry to return - int expectedModCount; // For fast-fail - int index; // current slot - LongEntry current; // current entry - - HashIterator() { - expectedModCount = modCount; - LongEntry[] t = table; - int i = t.length; - LongEntry n = null; - if (size != 0) { // advance to first entry - while (i > 0 && (n = t[--i]) == null) - ; - } - next = n; - index = i; - } - - @Override - public boolean hasNext() { - return next != null; - } - - LongEntry nextEntry() { - if (modCount != expectedModCount) - throw new ConcurrentModificationException(); - LongEntry e = next; - if (e == null) - throw new NoSuchElementException(); - - LongEntry n = e.next; - LongEntry[] t = table; - int i = index; - while (n == null && i > 0) - n = t[--i]; - index = i; - next = n; - return current = e; - } - - @Override - public void remove() { - if (current == null) - throw new IllegalStateException(); - if (modCount != expectedModCount) - throw new ConcurrentModificationException(); - long k = current.key; - current = null; - LongKeyMap.this.removeEntryForKey(k); - expectedModCount = modCount; - } - - } - - private class ValueIterator extends HashIterator { - @Override - public VALUE next() { - return nextEntry().value; - } - } - - private class KeyIterator extends HashIterator { - @Override - public Long next() { - return nextEntry().key; - } - public long nextLong() { - return nextEntry().key; - } - } - - private class EntryIterator extends HashIterator> { - @Override - public LongEntry next() { - return nextEntry(); - } - } - - // Subclass overrides these to alter behavior of views' iterator() method - Iterator newKeyIterator() - { - return new KeyIterator(); - } - Iterator newValueIterator() - { - return new ValueIterator(); - } - Iterator> newEntryIterator() - { - return new EntryIterator(); - } - - - // Views - - private transient Set> entrySet = null; - transient volatile Set keySet = null; - transient volatile Collection values = null; - - /** - * Returns a set view of the keys contained in this map. The set is - * backed by the map, so changes to the map are reflected in the set, and - * vice-versa. The set supports element removal, which removes the - * corresponding mapping from this map, via the Iterator.remove, - * Set.remove, removeAll, retainAll, and - * clear operations. It does not support the add or - * addAll operations. - * - * @return a set view of the keys contained in this map. - */ - @Override - public Set keySet() { - Set ks = keySet; - return (ks != null ? ks : (keySet = new KeySet())); - } - - private class KeySet extends AbstractSet { - @Override - public Iterator iterator() { - return newKeyIterator(); - } - @Override - public int size() { - return size; - } - @Override - public boolean contains(Object o) { - if (o instanceof Number) { - return containsKey(((Number)o).longValue()); - } else { - return false; - } - } - @Override - public boolean remove(Object o) { - if (o instanceof Number) { - return LongKeyMap.this.removeEntryForKey(((Number)o).longValue()) != null; - } else { - return false; - } - } - @Override - public void clear() { - LongKeyMap.this.clear(); - } - } - - /** - * Returns a collection view of the values contained in this map. The - * collection is backed by the map, so changes to the map are reflected in - * the collection, and vice-versa. The collection supports element - * removal, which removes the corresponding mapping from this map, via the - * Iterator.remove, Collection.remove, - * removeAll, retainAll, and clear operations. - * It does not support the add or addAll operations. - * - * @return a collection view of the values contained in this map. - */ - @Override - public Collection values() { - Collection vs = values; - return (vs != null ? vs : (values = new Values())); - } - - private class Values extends AbstractCollection { - @Override - public Iterator iterator() { - return newValueIterator(); - } - @Override - public int size() { - return size; - } - @Override - public boolean contains(Object o) { - return containsValue(o); - } - @Override - public void clear() { - LongKeyMap.this.clear(); - } - } - - @Override - public Set entrySet() - { - Set> es = entrySet; - return (es != null ? es : (entrySet = new EntrySet())); - } - - private class EntrySet extends AbstractSet> { - @Override - public Iterator> iterator() { - return newEntryIterator(); - } - @Override - public boolean contains(Object o) { - if (!(o instanceof LongEntry)) - return false; - LongEntry e = (LongEntry)o; - LongEntry candidate = getEntry(e.key); - return candidate != null && candidate.equals(e); - } - @Override - public boolean remove(Object o) { - return removeMapping(o) != null; - } - @Override - public int size() { - return size; - } - @Override - public void clear() { - LongKeyMap.this.clear(); - } - } - - // These methods are used when serializing HashSets - int capacity() { return table.length; } - float loadFactor() { return loadFactor; } -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/MimeType.java b/modules/org.jkiss.utils/src/org/jkiss/utils/MimeType.java deleted file mode 100644 index 080754da7d..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/MimeType.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.utils; - -import java.util.Locale; - -/** - * MIME type parser - */ -public class MimeType { - - private String primaryType; - private String subType; - - public MimeType() { - primaryType = "application"; - subType = "*"; - } - - public MimeType(String rawdata) throws IllegalArgumentException { - parse(rawdata); - } - - public MimeType(String primary, String sub) { - primaryType = primary.toLowerCase(Locale.ENGLISH); - subType = sub.toLowerCase(Locale.ENGLISH); - } - - private void parse(String rawdata) throws IllegalArgumentException { - int slashIndex = rawdata.indexOf('/'); - int semIndex = rawdata.indexOf(';'); - if ((slashIndex < 0) && (semIndex < 0)) { - primaryType = rawdata; - subType = "*"; - } else if ((slashIndex < 0) && (semIndex >= 0)) { - primaryType = rawdata.substring(0, semIndex); - subType = "*"; - } else if ((slashIndex >= 0) && (semIndex < 0)) { - primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase(Locale.ENGLISH); - subType = rawdata.substring(slashIndex + 1).trim().toLowerCase(Locale.ENGLISH); - } else if (slashIndex < semIndex) { - primaryType = rawdata.substring(0, slashIndex).trim().toLowerCase(Locale.ENGLISH); - subType = rawdata.substring(slashIndex + 1, semIndex).trim().toLowerCase(Locale.ENGLISH); - } else { - // we have a ';' lexically before a '/' which means we - // have a primary type and a parameter list but no sub type - throw new IllegalArgumentException("Unable to find a sub type."); - } - } - - public String getPrimaryType() { - return primaryType; - } - - public String getSubType() { - return subType; - } - - public String toString() { - return getBaseType(); - } - - public String getBaseType() { - return primaryType + "/" + subType; - } - - public boolean match(MimeType type) { - return primaryType.equals(type.getPrimaryType()) && - (subType.equals("*") || type.getSubType().equals("*") || (subType.equals(type.getSubType()))); - } - - public boolean match(String rawdata) throws IllegalArgumentException { - return match(new MimeType(rawdata)); - } - -} \ No newline at end of file diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/Pair.java b/modules/org.jkiss.utils/src/org/jkiss/utils/Pair.java deleted file mode 100644 index 92b290498c..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/Pair.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.jkiss.utils; - -/** - * Pair - */ -public class Pair { - private T1 first; - private T2 second; - - public Pair(T1 first, T2 second) - { - this.first = first; - this.second = second; - } - - public T1 getFirst() - { - return first; - } - - public void setFirst(T1 first) { - this.first = first; - } - - public T2 getSecond() - { - return second; - } - - public void setSecond(T2 second) { - this.second = second; - } - - @Override - public String toString() { - return first + "=" + second; - } -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/SecurityUtils.java b/modules/org.jkiss.utils/src/org/jkiss/utils/SecurityUtils.java deleted file mode 100644 index 6545fa5493..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/SecurityUtils.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.utils; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.util.Random; - -/** - * Come security-related functions. - */ -public class SecurityUtils { - - public static String ECRYPTION_ALGORYTHM = "MD5"; - - private static java.util.Random random; - private static java.util.Random secureRand; - - static { - secureRand = new java.util.Random(System.currentTimeMillis()); - long secureInitializer = secureRand.nextLong(); - random = new java.util.Random(secureInitializer); - } - - /** - * Generate the random GUID - */ - public static String generateGUID(boolean secure) { - String localHostAddr; - { - java.net.InetAddress id; - try { - id = java.net.InetAddress.getLocalHost(); - localHostAddr = id.toString(); - } catch (java.net.UnknownHostException e) { - localHostAddr = "localhost"; - } - } - - long time = System.currentTimeMillis(); - long rand; - - if (secure) { - rand = secureRand.nextLong(); - } else { - rand = SecurityUtils.random.nextLong(); - } - - // This StringBuilder can be a long as you need; the MD5 - // hash will always return 128 bits. You can change - // the seed to include anything you want here. - // You could even stream a file through the MD5 making - // the odds of guessing it at least as great as that - // of guessing the contents of the file! - StringBuilder sb = new StringBuilder(32); - sb.append(localHostAddr) - .append(":") - .append(Long.toString(time)) - .append(":") - .append(Long.toString(rand)); - - - byte[] array; - try { - MessageDigest md5 = MessageDigest.getInstance(ECRYPTION_ALGORYTHM); - md5.update(sb.toString().getBytes()); - array = md5.digest(); - } catch (NoSuchAlgorithmException e) { - // Too bad. Lets get simple random numbers - array = new byte[16]; - random.nextBytes(array); - } - sb.setLength(0); - for (int j = 0; j < array.length; ++j) { - int b = array[j] & 0xFF; - if (b < 0x10) { - sb.append('0'); - } - sb.append(Integer.toHexString(b)); - } - - String raw = sb.toString().toUpperCase(); - sb.setLength(0); - sb.append(raw.substring(0, 8)); - sb.append("-"); - sb.append(raw.substring(8, 12)); - sb.append("-"); - sb.append(raw.substring(12, 16)); - sb.append("-"); - sb.append(raw.substring(16, 20)); - sb.append("-"); - sb.append(raw.substring(20)); - - return sb.toString(); - } - - public static String generateUniqueId() { - long curTime = System.currentTimeMillis(); - int random = secureRand.nextInt(); - if (random < 0) { - random = -random; - } - - return - Long.toString(curTime, Character.MAX_RADIX) + - Integer.toString(random, Character.MAX_RADIX); - } - - public static String makeDigest( - String userAlias, - String userPassword) { - try { - if (userPassword == null) { - userPassword = ""; - } - MessageDigest md5 = - MessageDigest.getInstance(ECRYPTION_ALGORYTHM); - md5.update(userAlias.getBytes()); - - return Base64.encode(md5.digest(userPassword.getBytes())); - } catch (NoSuchAlgorithmException toCatch) { - return "*"; - } - } - - public static String makeDigest( - String userPassword) { - try { - MessageDigest md5 = - MessageDigest.getInstance(ECRYPTION_ALGORYTHM); - - return Base64.encode(md5.digest(userPassword.getBytes())); - } catch (NoSuchAlgorithmException toCatch) { - return "*"; - } - } - - /** - * Generate a random password of the given length. - */ - public static String generatePassword(int length) { - SecureRandom random = new SecureRandom(); - StringBuilder pass = new StringBuilder(length); - for (int i = 0; i < length; i++) { - pass.append( - PASSWORD_ALPHABET[random.nextInt(PASSWORD_ALPHABET.length)] - ); - } - return (pass.toString()); - } - - /** - * Generate a random password of the default length (8). - */ - public static String generatePassword() { - return generatePassword(DEFAULT_PASSWORD_LENGTH); - } - - public static Random getRandom() { - return random; - } - - /** - * Default length for passwords - */ - public static final int DEFAULT_PASSWORD_LENGTH = 8; - - /** - * Alphabet consisting of upper and lowercase letters A-Z and - * the digits 0-9. - */ - public static final char[] PASSWORD_ALPHABET = { - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', - 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', - 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', - 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', - 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', - 'w', 'x', 'y', 'z', '0', '1', '2', '3', - '4', '5', '6', '7', '8', '9', - }; - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/StandardConstants.java b/modules/org.jkiss.utils/src/org/jkiss/utils/StandardConstants.java deleted file mode 100644 index 725bab12d0..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/StandardConstants.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2001-2010, JavaPLT group at Rice University (drjava@rice.edu) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the names of DrJava, the JavaPLT group, Rice University, nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This software is Open Source Initiative approved Open Source Software. - * Open Source Initative Approved is a trademark of the Open Source Initiative. - * - * This file is part of DrJava. Download the current version of this project - * from http://www.drjava.org/ or http://sourceforge.net/projects/drjava/ - */ - -package org.jkiss.utils; - -/** - * Standard Java constants - */ -public abstract class StandardConstants { - - public static final String ENV_LINE_SEPARATOR = "line.separator"; - public static final String ENV_PATH_SEPARATOR = "path.separator"; - - public static final String ENV_TMP_DIR = "java.io.tmpdir"; - public static final String ENV_FILE_ENCODING = "file.encoding"; - public static final String ENV_CONSOLE_ENCODING = "console.encoding"; - - public static final String ENV_USER_HOME = "user.home"; - public static final String ENV_USER_NAME = "user.name"; - public static final String ENV_OS_NAME = "os.name"; - - public static final String ENV_JAVA_VERSION = "java.version"; - public static final String ENV_JAVA_CLASSPATH = "java.class.path"; -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/time/ExtendedDateFormat.java b/modules/org.jkiss.utils/src/org/jkiss/utils/time/ExtendedDateFormat.java deleted file mode 100644 index 26e32a8188..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/time/ExtendedDateFormat.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.utils.time; - -import java.sql.Timestamp; -import java.text.FieldPosition; -import java.text.ParsePosition; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; - -/** - * Formatter adapted to support nanoseconds from java.sql.Timestanp. - */ -public class ExtendedDateFormat extends SimpleDateFormat { - - private static final String NINE_ZEROES = "000000000"; - public static final int MAX_NANO_LENGTH = 8; - - int nanoStart = -1, nanoLength; - boolean nanoOptional; - String nanoPrefix, nanoPostfix; - - public ExtendedDateFormat(String pattern) - { - this(pattern, Locale.getDefault()); - } - - public ExtendedDateFormat(String pattern, Locale locale) - { - super(stripNanos(pattern), locale); - - int quoteCount = 0; - for (int i = 0; i < pattern.length(); i++) { - char c = pattern.charAt(i); - if (c == '\'') { - quoteCount++; - for (int k = i + 1; k < pattern.length(); k++) { - if (pattern.charAt(k) == '\'') { - if (k != i + 1) { - quoteCount++; - } - i = k; - break; - } - } - } else if (c == '[') { - nanoStart = i; - nanoOptional = true; - for (int k = i + 1; k < pattern.length(); k++) { - if (pattern.charAt(k) == 'f') { - nanoLength++; - if (nanoPrefix == null) { - nanoPrefix = pattern.substring(i + 1, k); - } - } - if (pattern.charAt(k) == ']') { - nanoPostfix = pattern.substring(i + 1 + nanoPrefix.length() + nanoLength, k); - i = k + 1; - break; - } - } - } else if (c == 'f') { - nanoStart = i - quoteCount; - nanoOptional = false; - for (int k = i + 1; k < pattern.length(); k++) { - if (pattern.charAt(k) != 'f') { - break; - } - nanoLength++; - } - nanoLength++; - i = i + nanoLength; - } - } - } - - @Override - public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos) - { - StringBuffer result = super.format(date, toAppendTo, pos); - if (nanoStart >= 0) { - long nanos = 0; - if (date instanceof Timestamp) { - nanos = ((Timestamp) date).getNanos(); - } - if (!nanoOptional || nanos > 0) { - StringBuilder nanosRes = new StringBuilder(nanoLength); - // Append nanos value in the end - if (nanoPrefix != null) { - nanosRes.append(nanoPrefix); - } - String nanoStr = String.valueOf(nanos); - - // nanoStr must be a string of exactly 9 chars in length. Pad with leading "0" if not - int nbZeroesToPad = 9 - nanoStr.length(); - if (nbZeroesToPad > 0) { - nanoStr = NINE_ZEROES.substring(0, nbZeroesToPad) + nanoStr; - } - - if (nanoLength < nanoStr.length()) { - // Truncate nanos string to fit in the pattern - nanoStr = nanoStr.substring(0, nanoLength); - } else { - // Pad with 0s - for (int i = 0; i < nanoLength - nanoStr.length(); i++) { - nanosRes.append("0"); - } - } - nanosRes.append(nanoStr); - if (nanoPostfix != null) { - nanosRes.append(nanoPostfix); - } - result.insert(nanoStart, nanosRes.toString()); - } - } - return result; - } - - @Override - public Date parse(String text, ParsePosition pos) - { - Date date = super.parse(text, pos); - int index = pos.getIndex(); - if (index < text.length() && nanoStart > 0) { - long nanos = 0; - for (int i = 0; i < nanoLength; i++) { - int digitPos = index + i; - if (digitPos == text.length()) { - break; - } - char c = text.charAt(digitPos); - if (!Character.isDigit(c)) { - pos.setErrorIndex(index); - pos.setIndex(index); - //throw new ParseException("Invalid nanosecond character at pos " + digitPos + ": " + c, index); - return null; - } - long digit = ((int)c - (int)'0'); - for (int k = MAX_NANO_LENGTH - i; k > 0; k--) { - digit *= 10; - } - nanos += digit; - } - if (nanos > 0) { - Timestamp ts = new Timestamp(date.getTime()); - ts.setNanos((int)nanos); - return ts; - } - } - return date; - } - - private static String stripNanos(String pattern) - { - for (int i = 0; i < pattern.length(); i++) { - char c = pattern.charAt(i); - if (c == '\'') { - for (int k = i + 1; k < pattern.length(); k++) { - if (pattern.charAt(k) == '\'') { - i = k; - break; - } - } - } else if (c == '[') { - for (int k = i + 1; k < pattern.length(); k++) { - if (pattern.charAt(k) == ']') { - return pattern.substring(0, i) + pattern.substring(k + 1); - } - } - } else if (c == 'f') { - for (int k = i + 1; k < pattern.length(); k++) { - if (pattern.charAt(k) != 'f') { - return pattern.substring(0, i) + pattern.substring(k); - } - } - return pattern.substring(0, i); - } - } - return pattern; - } - - public static void main(String[] args) - { - test("'TIMESTAMP '''yyyy-MM-dd HH:mm:ss.ffffff''"); - test("yyyy-MM-dd Z hh:mm:ss[.fffffffff]"); - test("yyyy-MM-dd Z hh:mm:ss.fffffffff"); - test("yyyy-MM-dd Z hh:mm:ss"); - test("yyyy-MM-dd Z hh:mm:ss[.fffffffff nanos]"); - test("yyyy-MM-dd Z hh:mm:ss[.ffffff micros]"); - test("yyyy-MM-dd Z hh:mm:ss.ffffff"); - test("yyyy-MM-dd Z hh:mm:ss.f"); // 1/10 secs = 'S' - } - - private static void test(String pattern) - { - ExtendedDateFormat edf = new ExtendedDateFormat(pattern); - Timestamp date = new Timestamp(System.currentTimeMillis()); - System.out.println(edf.format(date)); - date.setNanos(0); - System.out.println(edf.format(date)); - } - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/SAXListener.java b/modules/org.jkiss.utils/src/org/jkiss/utils/xml/SAXListener.java deleted file mode 100644 index b03ee89971..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/SAXListener.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils.xml; - -import org.xml.sax.Attributes; - -/** - SAX document listener -*/ -public interface SAXListener { - - void saxStartElement( - SAXReader reader, - String namespaceURI, - String localName, - org.xml.sax.Attributes atts) - throws XMLException; - - void saxText( - SAXReader reader, - String data) - throws XMLException; - - void saxEndElement( - SAXReader reader, - String namespaceURI, - String localName) - throws XMLException; - - - /** - * Empty listener supposed to skip element subtrees - */ - class BaseListener implements SAXListener { - - @Override - public void saxStartElement(SAXReader reader, String namespaceURI, String localName, Attributes atts) throws XMLException { - } - - @Override - public void saxText(SAXReader reader, String data) throws XMLException { - } - - @Override - public void saxEndElement(SAXReader reader, String namespaceURI, String localName) throws XMLException { - } - } - SAXListener EMPTY_LISTENER = new BaseListener(); - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/SAXReader.java b/modules/org.jkiss.utils/src/org/jkiss/utils/xml/SAXReader.java deleted file mode 100644 index b5f50200e7..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/SAXReader.java +++ /dev/null @@ -1,380 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.utils.xml; - -import org.xml.sax.*; - -import javax.xml.parsers.FactoryConfigurationError; -import javax.xml.parsers.ParserConfigurationException; -import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * SAX document reader - */ -public final class SAXReader implements ContentHandler, EntityResolver, DTDHandler { - - public static final int DEFAULT_POOL_SIZE = 10; - - private static javax.xml.parsers.SAXParserFactory saxParserFactory = null; - private static List parsersPool = new ArrayList<>(); - - private org.xml.sax.InputSource inputSource; - private Locator locator; - - private Map attributes = new HashMap<>(); - private List elementLayers = new ArrayList<>(); - private SAXListener curListener; - private StringBuilder textValue = new StringBuilder(); - private int depth = 0; - private boolean handleWhiteSpaces = false; - - /** - * Private constructor. - * Initialize parser. - */ - private SAXReader() { - } - - /** - * Standard constructor. - * Initialize parser and prepare input stream for reading. - */ - public SAXReader(InputStream stream) { - this(); - inputSource = new org.xml.sax.InputSource(stream); - } - - /** - * Standard constructor. - * Initialize parser and prepare input stream for reading. - */ - public SAXReader(Reader reader) { - this(); - inputSource = new org.xml.sax.InputSource(reader); - } - - public boolean isHandleWhiteSpaces() { - return handleWhiteSpaces; - } - - public void setHandleWhiteSpaces( - boolean flag) { - handleWhiteSpaces = flag; - } - - public Locator getLocator() { - return locator; - } - - /** - * Parse input stream and handle XML tags. - */ - public void parse(SAXListener listener) - throws IOException, XMLException { - // Initialize SAX parser - Parser parser = acquireParser(); - - // Get reader and parse using SAX2 API - try { - XMLReader saxReader = parser.getSAXParser().getXMLReader(); - saxReader.setErrorHandler(new ParseErrorHandler()); - saxReader.setContentHandler(this); - saxReader.setEntityResolver(this); - saxReader.setDTDHandler(this); - - curListener = listener; - - elementLayers.add(listener); - - saxReader.parse(inputSource); - } catch (SAXParseException toCatch) { - throw new XMLException( - "Document parse error (line " + toCatch.getLineNumber() + ", pos " + toCatch.getColumnNumber(), - toCatch); - } catch (SAXException toCatch) { - throw new XMLException( - "Document reading SAX exception", - XMLUtils.adaptSAXException(toCatch)); - } finally { - parser.close(); - } - } - - public synchronized static Parser acquireParser() throws XMLException { - try { - if (saxParserFactory == null) { - try { - saxParserFactory = javax.xml.parsers.SAXParserFactory.newInstance(); - saxParserFactory.setNamespaceAware(true); - saxParserFactory.setValidating(false); - } catch (FactoryConfigurationError toCatch) { - throw new XMLException( - "SAX factory configuration error", - toCatch); - } - } - - for (int i = 0; i < parsersPool.size(); i++) { - Parser parser = parsersPool.get(i); - if (parser != null) { - if (!parser.isAcquired()) { - parser.acquire(); - return parser; - } - } else { - parsersPool.remove(i); - parser = new Parser(saxParserFactory.newSAXParser(), true); - parsersPool.add(parser); - return parser; - } - } - if (parsersPool.size() == DEFAULT_POOL_SIZE) { - throw new XMLException( - "Maximum SAX Parsers Number Exceeded (" + DEFAULT_POOL_SIZE + ")"); - } - Parser parser = new Parser(saxParserFactory.newSAXParser(), true); - parsersPool.add(parser); - return parser; - } catch (ParserConfigurationException toCatch) { - throw new XMLException( - "SAX Parser Configuration error", - toCatch); - } catch (SAXException toCatch) { - throw new XMLException( - "SAX Parser error", - toCatch); - } - } - - /** - * Closes parser and frees all resources. - */ - public void close() { - if (elementLayers != null) { - elementLayers.clear(); - elementLayers = null; - } - inputSource = null; - curListener = null; - } - - /** - * Set listener for next event. - */ - public void setListener( - SAXListener listener) { - curListener = listener; - } - - public boolean hasAttribute( - String name) { - return attributes.get(name) != null; - } - - public Object getAttribute( - String name) { - return attributes.get(name); - } - - public void setAttribute( - String name, - Object value) { - attributes.put(name, value); - } - - public Object removeAttribute( - String name) { - return attributes.remove(name); - } - - private void handleText() - throws SAXException { - curListener = elementLayers.get(elementLayers.size() - 1); - try { - String value = textValue.toString(); - - curListener.saxText(this, value); - } catch (Exception toCatch) { - throw new SAXException(toCatch); - } finally { - textValue.setLength(0); - } - } - - /////////////////////////////////////////////////////////////// - // SAX Context Handler overrides - /////////////////////////////////////////////////////////////// - - @Override - public void startDocument() { - // just do-nothing - } - - @Override - public void endDocument() { - this.close(); - } - - @Override - public void startElement( - String namespaceURI, - String localName, - String qName, - org.xml.sax.Attributes attributes) - throws SAXException { - if (depth++ > 0) { - this.handleText(); - } - - curListener = elementLayers.get(elementLayers.size() - 1); - - try { - curListener.saxStartElement(this, namespaceURI, localName, attributes); - } catch (XMLException toCatch) { - throw new SAXException(toCatch); - } - - elementLayers.add(curListener); - } - - @Override - public void endElement( - String namespaceURI, - String localName, - String qName) - throws SAXException { - this.handleText(); - - elementLayers.remove(elementLayers.size() - 1); - - curListener = elementLayers.get(elementLayers.size() - 1); - try { - curListener.saxEndElement(this, namespaceURI, localName); - } catch (XMLException toCatch) { - throw new SAXException(toCatch); - } - depth--; - } - - @Override - public void startPrefixMapping(String prefix, String uri) { - // just do-nothing - } - - @Override - public void endPrefixMapping(String prefix) { - // just do-nothing - } - - @Override - public void characters(char[] ch, int start, int length) { - textValue.append(ch, start, length); - } - - @Override - public void ignorableWhitespace(char[] ch, int start, int length) { - if (handleWhiteSpaces) { - textValue.append(ch, start, length); - } - } - - @Override - public void processingInstruction(String target, String data) { - // just do-nothing - } - - @Override - public void setDocumentLocator(Locator locator) { - this.locator = locator; - } - - @Override - public void skippedEntity(String name) { - // just do-nothing - } - - @Override - public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { - // Return empty stream - we don't need entities by default - return new InputSource(new StringReader("")); - } - - @Override - public void notationDecl(String name, String publicId, String systemId) throws SAXException { - // do nothing - } - - @Override - public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXException { - // do nothing - } - - static public class Parser { - private javax.xml.parsers.SAXParser saxParser; - private boolean isAcquired; - - public Parser(javax.xml.parsers.SAXParser saxParser, boolean isAcquired) { - this.saxParser = saxParser; - this.isAcquired = isAcquired; - } - - public void setSAXParser(javax.xml.parsers.SAXParser saxParser) { - this.saxParser = saxParser; - } - - public void acquire() { - isAcquired = true; - } - - public void close() { - isAcquired = false; - } - - public javax.xml.parsers.SAXParser getSAXParser() { - return saxParser; - } - - public boolean isAcquired() { - return isAcquired; - } - } - - static class ParseErrorHandler implements org.xml.sax.ErrorHandler { - - @Override - public void error(SAXParseException exception) { - - } - - @Override - public void fatalError(SAXParseException exception) { - - } - - @Override - public void warning(SAXParseException exception) { - - } - - } - - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLBuilder.java b/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLBuilder.java deleted file mode 100644 index db236e97b7..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLBuilder.java +++ /dev/null @@ -1,634 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils.xml; - -import org.jkiss.utils.Base64; - -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Stream oriented XML document builder. - */ -public class XMLBuilder -{ - - public final class Element implements AutoCloseable - { - - private Element parent; - private String name; - private Map nsStack = null; - private int level; - - Element( - Element parent, - String name) - { - this.init(parent, name); - } - - void init( - Element parent, - String name) - { - this.parent = parent; - this.name = name; - this.nsStack = null; - this.level = parent == null ? 0 : parent.level + 1; - } - - public String getName() - { - return name; - } - - public int getLevel() - { - return level; - } - - public void addNamespace(String nsURI, String nsPrefix) - { - if (nsStack == null) { - nsStack = new HashMap<>(); - } - nsStack.put(nsURI, nsPrefix); - } - - public String getNamespacePrefix(String nsURI) - { - if (nsURI.equals(XMLConstants.NS_XML)) { - return XMLConstants.PREFIX_XML; - } - String prefix = (nsStack == null ? null : nsStack.get(nsURI)); - return prefix != null ? - prefix : - (parent != null ? parent.getNamespacePrefix(nsURI) : null); - } - - @Override - public void close() throws IOException { - XMLBuilder.this.endElement(); - } - } - - // At the beginning and after tag closing - private static final int STATE_NOTHING = 0; - // After tag opening - private static final int STATE_ELEM_OPENED = 1; - // After text added - private static final int STATE_TEXT_ADDED = 2; - - private static final int IO_BUFFER_SIZE = 8192; - - private java.io.Writer writer; - - private int state = STATE_NOTHING; - - private Element element = null; - private boolean butify = false; - - private List trashElements = new java.util.ArrayList<>(); - - public XMLBuilder( - java.io.OutputStream stream, - String documentEncoding) - throws java.io.IOException - { - this(stream, documentEncoding, true); - } - - public XMLBuilder( - java.io.OutputStream stream, - String documentEncoding, - boolean printHeader) - throws java.io.IOException - { - if (documentEncoding == null) { - this.init(new java.io.OutputStreamWriter(stream), null, printHeader); - } else { - this.init( - new java.io.OutputStreamWriter(stream, documentEncoding), - documentEncoding, - printHeader); - } - } - - public XMLBuilder( - java.io.Writer writer, - String documentEncoding) - throws java.io.IOException - { - this(writer, documentEncoding, true); - } - - public XMLBuilder( - java.io.Writer writer, - String documentEncoding, - boolean printHeader) - throws java.io.IOException - { - this.init(writer, documentEncoding, printHeader); - } - - private Element createElement( - Element parent, - String name) - { - if (trashElements.isEmpty()) { - return new Element(parent, name); - } else { - Element element = trashElements.remove(trashElements.size() - 1); - element.init(parent, name); - return element; - } - } - - private void deleteElement( - Element element) - { - trashElements.add(element); - } - - private void init( - java.io.Writer writer, - String documentEncoding, - boolean printHeader) - throws java.io.IOException - { - this.writer = new java.io.BufferedWriter(writer, IO_BUFFER_SIZE); - - if (printHeader) { - if (documentEncoding != null) { - this.writer.write(XMLConstants.XML_HEADER(documentEncoding)); - } else { - this.writer.write(XMLConstants.XML_HEADER()); - } - } - } - - public boolean isButify() - { - return butify; - } - - public void setButify(boolean butify) - { - this.butify = butify; - } - - public Element startElement( - String elementName) - throws java.io.IOException - { - return this.startElement(null, null, elementName); - } - - public Element startElement( - String nsURI, - String elementName) - throws java.io.IOException - { - return this.startElement(nsURI, null, elementName); - } - - /* - NS prefix will be used in element name if its directly specified - as nsPrefix parameter or if nsURI has been declared above - */ - public Element startElement( - String nsURI, - String nsPrefix, - String elementName) - throws java.io.IOException - { - switch (state) { - case STATE_ELEM_OPENED: - writer.write('>'); - case STATE_NOTHING: - if (butify) { - writer.write('\n'); - } - break; - default: - break; - } - if (butify) { - if (element != null) { - for (int i = 0; i <= element.getLevel(); i++) { - writer.write('\t'); - } - } - } - writer.write('<'); - - boolean addNamespace = (nsURI != null); - - // If old nsURI specified - use prefix - if (nsURI != null) { - if (nsPrefix == null && element != null) { - nsPrefix = element.getNamespacePrefix(nsURI); - if (nsPrefix != null) { - // Do not add NS declaration - it was declared somewhere above - addNamespace = false; - } - } - } - - // If we have prefix - use it in tag name - if (nsPrefix != null) { - elementName = nsPrefix + ':' + elementName; - } - - writer.write(elementName); - state = STATE_ELEM_OPENED; - - element = this.createElement(element, elementName); - - if (addNamespace) { - this.addNamespace(nsURI, nsPrefix); - element.addNamespace(nsURI, nsPrefix); - } - - return element; - } - - public XMLBuilder endElement() - throws java.io.IOException, IllegalStateException - { - if (element == null) { - throw new IllegalStateException("Close tag without open"); - } - - switch (state) { - case STATE_ELEM_OPENED: - writer.write("/>"); - break; - case STATE_NOTHING: - if (butify) { - writer.write('\n'); - for (int i = 0; i < element.getLevel(); i++) { - writer.write('\t'); - } - } - case STATE_TEXT_ADDED: - writer.write("'); - default: - break; - } - - this.deleteElement(element); - element = element.parent; - state = STATE_NOTHING; - - return this; - } - - public XMLBuilder addNamespace(String nsURI) - throws java.io.IOException - { - return this.addNamespace(nsURI, null); - } - - public XMLBuilder addNamespace( - String nsURI, - String nsPrefix) - throws java.io.IOException, IllegalStateException - { - if (element == null) { - throw new IllegalStateException("Namespace outside of element"); - } - String attrName = XMLConstants.XMLNS; - if (nsPrefix != null) { - attrName = attrName + ':' + nsPrefix; - element.addNamespace(nsURI, nsPrefix); - } - this.addAttribute(null, attrName, nsURI, true); - - return this; - } - - public XMLBuilder addAttribute( - String attributeName, - String attributeValue) - throws java.io.IOException - { - return this.addAttribute(null, attributeName, attributeValue, true); - } - - public XMLBuilder addAttribute( - String attributeName, - int attributeValue) - throws java.io.IOException - { - return this.addAttribute(null, attributeName, String.valueOf(attributeValue), false); - } - - public XMLBuilder addAttribute( - String attributeName, - long attributeValue) - throws java.io.IOException - { - return this.addAttribute(null, attributeName, String.valueOf(attributeValue), false); - } - - public XMLBuilder addAttribute( - String attributeName, - boolean attributeValue) - throws java.io.IOException - { - return this.addAttribute(null, attributeName, String.valueOf(attributeValue), false); - } - - public XMLBuilder addAttribute( - String attributeName, - float attributeValue) - throws java.io.IOException - { - return this.addAttribute(null, attributeName, String.valueOf(attributeValue), false); - } - - public XMLBuilder addAttribute( - String attributeName, - double attributeValue) - throws java.io.IOException - { - return this.addAttribute(null, attributeName, String.valueOf(attributeValue), false); - } - - public XMLBuilder addAttribute( - String nsURI, - String attributeName, - String attributeValue) - throws java.io.IOException - { - return this.addAttribute(nsURI, attributeName, attributeValue, true); - } - - private XMLBuilder addAttribute( - String nsURI, - String attributeName, - String attributeValue, - boolean escape) - throws java.io.IOException, IllegalStateException - { - switch (state) { - case STATE_ELEM_OPENED: { - if (nsURI != null) { - String nsPrefix = element.getNamespacePrefix(nsURI); - if (nsPrefix == null) { - throw new IllegalStateException( - "Unknown attribute '" + attributeName + "' namespace URI '" + nsURI + "' in element '" + element.getName() + "'"); - } - attributeName = nsPrefix + ':' + attributeName; - } - writer.write(' '); - writer.write(attributeName); - writer.write("=\""); - writer.write(escape ? XMLUtils.escapeXml(attributeValue) : attributeValue); - writer.write('"'); - break; - } - case STATE_TEXT_ADDED: - case STATE_NOTHING: - throw new IllegalStateException( - "Attribute ouside of element"); - default: - break; - } - - return this; - } - - public XMLBuilder addText( - CharSequence textValue) - throws java.io.IOException - { - return addText(textValue, true); - } - - public XMLBuilder addText( - CharSequence textValue, - boolean escape) - throws java.io.IOException - { - switch (state) { - case STATE_ELEM_OPENED: - writer.write('>'); - case STATE_TEXT_ADDED: - case STATE_NOTHING: - break; - default: - break; - } - this.writeText(textValue, escape); - - state = STATE_TEXT_ADDED; - - return this; - } - - /** - * Adds entire content of specified reader as text - * - * @param reader text reader - * @return self reference - * @throws java.io.IOException on IO error - */ - public XMLBuilder addText( - java.io.Reader reader) - throws java.io.IOException - { - switch (state) { - case STATE_ELEM_OPENED: - writer.write('>'); - case STATE_TEXT_ADDED: - case STATE_NOTHING: - break; - default: - break; - } - - writer.write(""); - - state = STATE_TEXT_ADDED; - - return this; - } - - public XMLBuilder addTextData( - String text) - throws java.io.IOException - { - switch (state) { - case STATE_ELEM_OPENED: - writer.write('>'); - case STATE_TEXT_ADDED: - case STATE_NOTHING: - break; - default: - break; - } - - writer.write(""); - - state = STATE_TEXT_ADDED; - - return this; - } - - /** - * Adds content of specified stream as Base64 encoded text - * - * @param stream Input content stream - * @param length Content length (this parameter must be correctly specified) - * @return self reference - * @throws java.io.IOException on IO error - */ - public XMLBuilder addBinary( - java.io.InputStream stream, - int length) - throws java.io.IOException - { - switch (state) { - case STATE_ELEM_OPENED: - writer.write('>'); - case STATE_TEXT_ADDED: - case STATE_NOTHING: - break; - default: - break; - } - - Base64.encode(stream, length, writer); - state = STATE_TEXT_ADDED; - - return this; - } - - public XMLBuilder addBinary( - byte[] buffer) - throws java.io.IOException - { - switch (state) { - case STATE_ELEM_OPENED: - writer.write('>'); - case STATE_TEXT_ADDED: - case STATE_NOTHING: - break; - default: - break; - } - - Base64.encode(buffer, 0, buffer.length, writer); - state = STATE_TEXT_ADDED; - - return this; - } - - /** - * Adds character content as is without any escaping or validation - * @param textValue content - * @return self reference - * @throws java.io.IOException - */ - public XMLBuilder addContent( - CharSequence textValue) - throws java.io.IOException - { - writer.write(textValue.toString()); - return this; - } - - public XMLBuilder addComment( - String commentValue) - throws java.io.IOException - { - switch (state) { - case STATE_ELEM_OPENED: - writer.write('>'); - case STATE_NOTHING: - if (butify) { - writer.write('\n'); - } - break; - default: - break; - } - writer.write(""); - if (butify) { - writer.write('\n'); - } - state = STATE_TEXT_ADDED; - - return this; - } - - public XMLBuilder addElement( - String elementName, - String elementValue) - throws java.io.IOException - { - this.startElement(elementName); - this.addText(elementValue); - this.endElement(); - return this; - } - - public XMLBuilder addElementText( - String elementName, - String elementValue) - throws java.io.IOException - { - this.startElement(elementName); - this.addTextData(elementValue); - this.endElement(); - return this; - } - - public XMLBuilder flush() - throws java.io.IOException - { - writer.flush(); - return this; - } - - private XMLBuilder writeText(CharSequence textValue, boolean escape) - throws java.io.IOException - { - if (textValue != null) { - writer.write(escape ? XMLUtils.escapeXml(textValue) : textValue.toString()); - } - return this; - } - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLConstants.java b/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLConstants.java deleted file mode 100644 index 8ad7a0ab3f..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLConstants.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils.xml; - -/** - XML Constants -*/ -public class XMLConstants { - - public static final String XMLNS = "xmlns"; - public static final String NS_XML = "http://www.w3.org/TR/REC-xml"; - public static final String PREFIX_XML = "xml"; - public static final String ATTR_LANG = "lang"; - - public static String XML_HEADER() - { - return ""; - } - - public static String XML_HEADER(String encoding) - { - return ""; - } - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLException.java b/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLException.java deleted file mode 100644 index 17f69a4f69..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLException.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils.xml; - -/** - * XMLException - */ -public class XMLException extends Exception -{ - public XMLException(String message) - { - super(message); - } - - public XMLException(String message, Throwable cause) - { - super(message, cause); - } - -} diff --git a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLUtils.java b/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLUtils.java deleted file mode 100644 index ad6bab69ac..0000000000 --- a/modules/org.jkiss.utils/src/org/jkiss/utils/xml/XMLUtils.java +++ /dev/null @@ -1,285 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.utils.xml; - -import org.jkiss.code.NotNull; -import org.jkiss.code.Nullable; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.xml.sax.InputSource; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * Common XML utils - */ -public class XMLUtils { - - public static Document parseDocument(String fileName) - throws XMLException { - return parseDocument(new java.io.File(fileName)); - } - - public static Document parseDocument(java.io.File file) throws XMLException { - try (InputStream is = new FileInputStream(file)) { - return parseDocument(new InputSource(is)); - } catch (IOException e) { - throw new XMLException("Error opening file '" + file + "'", e); - } - } - - public static Document parseDocument(java.io.InputStream is) throws XMLException { - return parseDocument(new InputSource(is)); - } - - public static Document parseDocument(java.io.Reader is) throws XMLException { - return parseDocument(new InputSource(is)); - } - - public static Document parseDocument(InputSource source) throws XMLException { - try { - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - DocumentBuilder xmlBuilder = dbf.newDocumentBuilder(); - return xmlBuilder.parse(source); - } catch (Exception er) { - throw new XMLException("Error parsing XML document", er); - } - } - - public static Document createDocument() - throws XMLException { - try { - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - DocumentBuilder xmlBuilder = dbf.newDocumentBuilder(); - return xmlBuilder.newDocument(); - } catch (Exception er) { - throw new XMLException("Error creating XML document", er); - } - } - - public static Element getChildElement(Element element, - String childName) { - for (org.w3c.dom.Node node = element.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && - ((Element) node).getTagName().equals(childName)) { - return (Element) node; - } - } - return null; - } - - @Nullable - public static String getChildElementBody(Element element, - String childName) { - for (org.w3c.dom.Node node = element.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && - ((Element) node).getTagName().equals(childName)) { - return getElementBody((Element) node); - } - } - return null; - } - - @Nullable - public static String getElementBody(Element element) { - org.w3c.dom.Node valueNode = element.getFirstChild(); - if (valueNode == null) { - return null; - } - if (valueNode.getNodeType() == org.w3c.dom.Node.TEXT_NODE) { - return valueNode.getNodeValue(); - } else { - return null; - } - } - - // Get list of all child elements of specified node - @NotNull - public static List getChildElementList( - Element parent, - String nodeName) { - List list = new ArrayList<>(); - for (org.w3c.dom.Node node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && - nodeName.equals(node.getNodeName())) { - list.add((Element) node); - } - } - return list; - } - - // Get list of all child elements of specified node - @NotNull - public static Collection getChildElementListNS( - Element parent, - String nsURI) { - List list = new ArrayList<>(); - for (org.w3c.dom.Node node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && - node.getNamespaceURI().equals(nsURI)) { - list.add((Element) node); - } - } - return list; - } - - // Get list of all child elements of specified node - public static Collection getChildElementListNS( - Element parent, - String nodeName, - String nsURI) { - List list = new ArrayList<>(); - for (org.w3c.dom.Node node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && - node.getLocalName().equals(nodeName) && - node.getNamespaceURI().equals(nsURI)) { - list.add((Element) node); - } - } - return list; - } - - // Get list of all child elements of specified node - @NotNull - public static Collection getChildElementList( - Element parent, - String[] nodeNameList) { - List list = new ArrayList<>(); - for (org.w3c.dom.Node node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) { - for (int i = 0; i < nodeNameList.length; i++) { - if (node.getNodeName().equals(nodeNameList[i])) { - list.add((Element) node); - } - } - } - } - return list; - } - - // Find one child element with specified name - @Nullable - public static Element findChildElement( - Element parent) { - for (org.w3c.dom.Node node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) { - return (Element) node; - } - } - return null; - } - - public static Object escapeXml(Object obj) { - if (obj == null) { - return null; - } else if (obj instanceof CharSequence) { - return escapeXml((CharSequence) obj); - } else { - return obj; - } - } - - public static String escapeXml(CharSequence str) { - if (str == null) { - return null; - } - StringBuilder res = null; - int strLength = str.length(); - for (int i = 0; i < strLength; i++) { - char c = str.charAt(i); - String repl = encodeXMLChar(c); - if (repl == null) { - if (res != null) { - res.append(c); - } - } else { - if (res == null) { - res = new StringBuilder(str.length() + 5); - for (int k = 0; k < i; k++) { - res.append(str.charAt(k)); - } - } - res.append(repl); - } - } - return res == null ? str.toString() : res.toString(); - } - - public static boolean isValidXMLChar(char c) { - return (c >= 32 || c == '\n' || c == '\r' || c == '\t'); - } - - /** - * Encodes a char to XML-valid form replacing &,',",<,> with special XML encoding. - * - * @param ch char to convert - * @return XML-encoded text - */ - public static String encodeXMLChar(char ch) { - switch (ch) { - case '&': - return "&"; - case '\"': - return """; - case '\'': - return "'"; - case '<': - return "<"; - case '>': - return ">"; - default: - return null; - } - } - - public static XMLException adaptSAXException(Exception toCatch) { - if (toCatch instanceof XMLException) { - return (XMLException) toCatch; - } else if (toCatch instanceof org.xml.sax.SAXException) { - String message = toCatch.getMessage(); - Exception embedded = ((org.xml.sax.SAXException) toCatch).getException(); - if (embedded != null && embedded.getMessage() != null && embedded.getMessage().equals(message)) { - // Just SAX wrapper - skip it - return adaptSAXException(embedded); - } else { - return new XMLException( - message, - embedded != null ? adaptSAXException(embedded) : null); - } - } else { - return new XMLException(toCatch.getMessage(), toCatch); - } - } - - public static Collection getChildElementList(Element element) { - List children = new ArrayList<>(); - for (org.w3c.dom.Node node = element.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) { - children.add((Element) node); - } - } - return children; - } -} diff --git a/modules/org.jkiss.wmi/.classpath b/modules/org.jkiss.wmi/.classpath deleted file mode 100644 index 9131793b8a..0000000000 --- a/modules/org.jkiss.wmi/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/modules/org.jkiss.wmi/.project b/modules/org.jkiss.wmi/.project deleted file mode 100644 index ebead11bc7..0000000000 --- a/modules/org.jkiss.wmi/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.jkiss.wmi - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/modules/org.jkiss.wmi/.settings/org.eclipse.jdt.core.prefs b/modules/org.jkiss.wmi/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 9a101d9ec1..0000000000 --- a/modules/org.jkiss.wmi/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -#Fri Dec 30 22:00:36 MSK 2011 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/modules/org.jkiss.wmi/META-INF/MANIFEST.MF b/modules/org.jkiss.wmi/META-INF/MANIFEST.MF deleted file mode 100644 index bac835e2f8..0000000000 --- a/modules/org.jkiss.wmi/META-INF/MANIFEST.MF +++ /dev/null @@ -1,9 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %Bundle-Name -Bundle-SymbolicName: org.jkiss.wmi -Bundle-Version: 2.0.61 -Bundle-Release-Date: 20171030 -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Bundle-Vendor: %Bundle-Vendor -Export-Package: org.jkiss.wmi.service diff --git a/modules/org.jkiss.wmi/OSGI-INF/l10n/bundle.properties b/modules/org.jkiss.wmi/OSGI-INF/l10n/bundle.properties deleted file mode 100644 index b5aa18266d..0000000000 --- a/modules/org.jkiss.wmi/OSGI-INF/l10n/bundle.properties +++ /dev/null @@ -1,3 +0,0 @@ -#Properties file for org.jkiss.wmi -Bundle-Vendor = JKISS -Bundle-Name = JKISS WMI native interface diff --git a/modules/org.jkiss.wmi/build.properties b/modules/org.jkiss.wmi/build.properties deleted file mode 100644 index 8499873071..0000000000 --- a/modules/org.jkiss.wmi/build.properties +++ /dev/null @@ -1,6 +0,0 @@ -source.. = src/java -output.. = bin/ -bin.includes = META-INF/,\ - .,\ - native/,\ - OSGI-INF/ diff --git a/modules/org.jkiss.wmi/copy_contrib.cmd b/modules/org.jkiss.wmi/copy_contrib.cmd deleted file mode 100644 index 552a4d1b6f..0000000000 --- a/modules/org.jkiss.wmi/copy_contrib.cmd +++ /dev/null @@ -1,2 +0,0 @@ -copy .\lib\jkiss_wmi_x86.dll ..\..\contrib\drivers\wmi\x86\jkiss_wmi.dll -copy .\lib\jkiss_wmi_x64.dll ..\..\contrib\drivers\wmi\x64\jkiss_wmi.dll \ No newline at end of file diff --git a/modules/org.jkiss.wmi/native/x64/jkiss_wmi.dll b/modules/org.jkiss.wmi/native/x64/jkiss_wmi.dll deleted file mode 100644 index cdb6bd46e50e7dd28a5b0e72c1da793f783b0043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220672 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 UzbwDhz%MoMOAY)|1D5rF0C!SzH2?qr diff --git a/modules/org.jkiss.wmi/native/x86/jkiss_wmi.dll b/modules/org.jkiss.wmi/native/x86/jkiss_wmi.dll deleted file mode 100644 index 44ef5b99bc06682ce1e6af07e9bae4a080dd517f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159744 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

?G&*Q=Md^G~}r5 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 a)<9STVGV>e5Y|9g17Qt>HSm9!2L2bWcfSMx diff --git a/modules/org.jkiss.wmi/pom.xml b/modules/org.jkiss.wmi/pom.xml deleted file mode 100644 index 9e9cc39ae8..0000000000 --- a/modules/org.jkiss.wmi/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - 4.0.0 - - org.jkiss.dbeaver - dbeaver - 1.0.0 - ../../ - - org.jkiss.wmi - 2.0.61 - eclipse-plugin - diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIConstants.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIConstants.java deleted file mode 100644 index ff7141b53e..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIConstants.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.wmi.service; - -/** - * WMI constants - */ -public class WMIConstants { - - public static final int CIM_ILLEGAL = 4095; // 0xFFF - public static final int CIM_EMPTY = 0; // 0x0 - public static final int CIM_SINT8 = 16; // 0x10 - public static final int CIM_UINT8 = 17; // 0x11 - public static final int CIM_SINT16 = 2; // 0x2 - public static final int CIM_UINT16 = 18; // 0x12 - public static final int CIM_SINT32 = 3; // 0x3 - public static final int CIM_UINT32 = 19; // 0x13 - public static final int CIM_SINT64 = 20; // 0x14 - public static final int CIM_UINT64 = 21; // 0x15 - public static final int CIM_REAL32 = 4; // 0x4 - public static final int CIM_REAL64 = 5; // 0x5 - public static final int CIM_BOOLEAN = 11; // 0xB - public static final int CIM_STRING = 8; // 0x8 - public static final int CIM_DATETIME = 101; // 0x65 - public static final int CIM_REFERENCE = 102; // 0x66 - public static final int CIM_CHAR16 = 103; // 0x67 - public static final int CIM_OBJECT = 13; // 0xD - public static final int CIM_FLAG_ARRAY = 8192; // 0x2000 - - public static final long WBEM_FLAG_RETURN_IMMEDIATELY = 0x10; - public static final long WBEM_FLAG_RETURN_WBEM_COMPLETE = 0; - public static final long WBEM_FLAG_BIDIRECTIONAL = 0; - public static final long WBEM_FLAG_FORWARD_ONLY = 0x20; - public static final long WBEM_FLAG_NO_ERROR_OBJECT = 0x40; - public static final long WBEM_FLAG_RETURN_ERROR_OBJECT = 0; - public static final long WBEM_FLAG_SEND_STATUS = 0x80; - public static final long WBEM_FLAG_DONT_SEND_STATUS = 0; - public static final long WBEM_FLAG_ENSURE_LOCATABLE = 0x100; - public static final long WBEM_FLAG_DIRECT_READ = 0x200; - public static final long WBEM_FLAG_SEND_ONLY_SELECTED = 0; - public static final long WBEM_RETURN_WHEN_COMPLETE = 0; - public static final long WBEM_RETURN_IMMEDIATELY = 0x10; - public static final long WBEM_MASK_RESERVED_FLAGS = 0x1f000; - public static final long WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000; - public static final long WBEM_FLAG_STRONG_VALIDATION = 0x100000; - - - public static final long WBEM_FLAG_DEEP = 0; - public static final long WBEM_FLAG_SHALLOW = 1; - public static final long WBEM_FLAG_PROTOTYPE = 2; - - // Condition flags - public static final long WBEM_FLAG_ALWAYS = 0; - public static final long WBEM_FLAG_ONLY_IF_TRUE = 0x1; - public static final long WBEM_FLAG_ONLY_IF_FALSE = 0x2; - public static final long WBEM_FLAG_ONLY_IF_IDENTICAL = 0x3; - public static final long WBEM_MASK_PRIMARY_CONDITION = 0x3; - public static final long WBEM_FLAG_KEYS_ONLY = 0x4; - public static final long WBEM_FLAG_REFS_ONLY = 0x8; - public static final long WBEM_FLAG_LOCAL_ONLY = 0x10; - public static final long WBEM_FLAG_PROPAGATED_ONLY = 0x20; - public static final long WBEM_FLAG_SYSTEM_ONLY = 0x30; - public static final long WBEM_FLAG_NONSYSTEM_ONLY = 0x40; - public static final long WBEM_MASK_CONDITION_ORIGIN = 0x70; - public static final long WBEM_FLAG_CLASS_OVERRIDES_ONLY = 0x100; - public static final long WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES = 0x200; - public static final long WBEM_MASK_CLASS_CONDITION = 0x300; - - // Flavor types - public static final long WBEM_FLAVOR_DONT_PROPAGATE = 0; - public static final long WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE = 0x1; - public static final long WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS = 0x2; - public static final long WBEM_FLAVOR_MASK_PROPAGATION = 0xf; - public static final long WBEM_FLAVOR_OVERRIDABLE = 0; - public static final long WBEM_FLAVOR_NOT_OVERRIDABLE = 0x10; - public static final long WBEM_FLAVOR_MASK_PERMISSIONS = 0x10; - public static final long WBEM_FLAVOR_ORIGIN_LOCAL = 0; - public static final long WBEM_FLAVOR_ORIGIN_PROPAGATED = 0x20; - public static final long WBEM_FLAVOR_ORIGIN_SYSTEM = 0x40; - public static final long WBEM_FLAVOR_MASK_ORIGIN = 0x60; - public static final long WBEM_FLAVOR_NOT_AMENDED = 0; - public static final long WBEM_FLAVOR_AMENDED = 0x80; - public static final long WBEM_FLAVOR_MASK_AMENDED = 0x80; - - // Class properties - - public static final String CLASS_PROP_CLASS_NAME = "__CLASS"; - public static final String CLASS_PROP_SUPER_CLASS = "__SUPERCLASS"; - public static final String CLASS_PROP_PATH = "__PATH"; - - // Standard qualifiers - - public static final String Q_Abstract = "Abstract"; - public static final String Q_Aggregate = "Aggregate"; - public static final String Q_Aggregation = "Aggregation"; - public static final String Q_Association = "Association"; - public static final String Q_Alias = "Alias"; - public static final String Q_ArrayType = "ArrayType"; - public static final String Q_BitMap = "BitMap"; - public static final String Q_BitValues = "BitValues"; - public static final String Q_Constructor = "Constructor"; - public static final String Q_CreateBy = "CreateBy"; - public static final String Q_DeleteBy = "DeleteBy"; - public static final String Q_Description = "Description"; - public static final String Q_Destructor = "Destructor"; - public static final String Q_DisplayName = "DisplayName"; - public static final String Q_Gauge = "Gauge"; - public static final String Q_In = "In"; - public static final String Q_InOut = "In, Out"; - public static final String Q_Key = "Key"; - public static final String Q_Lazy = "Lazy"; - public static final String Q_MappingStrings = "MappingStrings"; - public static final String Q_Max = "Max"; - public static final String Q_MaxLen = "MaxLen"; - public static final String Q_MaxValue = "MaxValue"; - public static final String Q_Min = "Min"; - public static final String Q_MinValue = "MinValue"; - public static final String Q_ModelCorrespondence = "ModelCorrespondence"; - public static final String Q_Nonlocal = "Nonlocal"; - public static final String Q_NonlocalType = "NonlocalType"; - public static final String Q_NullValue = "NullValue"; - public static final String Q_Out = "Out"; - public static final String Q_Override = "Override"; - public static final String Q_Propagated = "Propagated"; - public static final String Q_Read = "Read"; - public static final String Q_Required = "Required"; - public static final String Q_Revision = "Revision"; - public static final String Q_Schema = "Schema"; - public static final String Q_Source = "Source"; - public static final String Q_SourceType = "SourceType"; - public static final String Q_SupportsCreate = "SupportsCreate"; - public static final String Q_SupportsDelete = "SupportsDelete"; - public static final String Q_SupportsUpdate = "SupportsUpdate"; - public static final String Q_Terminal = "Terminal"; - public static final String Q_Units = "Units"; - public static final String Q_ValueMap = "ValueMap"; - public static final String Q_Values = "Values"; - public static final String Q_Version = "Version"; - public static final String Q_Weak = "Weak"; - public static final String Q_Write = "Write"; - public static final String Q_WriteAtCreate = "WriteAtCreate"; - public static final String Q_WriteAtUpdate = "WriteAtUpdate"; - - - public static final String Q_CIMTYPE = "CIMTYPE"; - public static final String Q_CIM_Key = "CIM_Key"; - -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIDataType.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIDataType.java deleted file mode 100644 index fd0d72e85a..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIDataType.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.wmi.service; - -/** - * WMI data type - */ -public enum WMIDataType { -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIException.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIException.java deleted file mode 100644 index 240b79cdb0..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIException.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.wmi.service; - -/** - * WMIException - */ -public class WMIException extends Exception { - - public WMIException(String message) { - super(message); - } - -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObject.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObject.java deleted file mode 100644 index 32ce7ee217..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObject.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.wmi.service; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * WQL ResultSet - */ -public class WMIObject extends WMIQualifiedObject { - - private long objectHandle; - - public WMIObject() { - } - - public String getObjectText() - throws WMIException - { - return readObjectText(); - } - - public Object getValue(String name) throws WMIException - { - return readAttributeValue(name); - } - - public void setValue(String name, Object value) throws WMIException - { - writeAttributeValue(name, value); - } - - public Collection getAttributes(long flags) throws WMIException - { - List attributes = new ArrayList<>(); - readAttributes(flags, attributes); - return attributes; - } - - public Collection getMethods(long flags) throws WMIException - { - List methods = new ArrayList<>(); - readMethods(flags, methods); - return methods; - } - - public void release() - { - releaseObject(); - } - - @Override - protected void finalize() throws Throwable - { - releaseObject(); - super.finalize(); - } - - @Override - protected void readObjectQualifiers(List qualifiers) - throws WMIException - { - readQualifiers(false, null, qualifiers); - } - - @Override - public String toString() - { - return "WMIObject:" + objectHandle; - } - - private native String readObjectText() - throws WMIException; - - private native Object readAttributeValue(String name) - throws WMIException; - - private native void writeAttributeValue(String name, Object value) - throws WMIException; - - private native void readAttributes(long flags, List attributes) - throws WMIException; - - private native void readMethods(long flags, List method) - throws WMIException; - - native void readQualifiers(boolean isAttribute, String attrName, List qualifiers) - throws WMIException; - - native void releaseObject(); - -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectAttribute.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectAttribute.java deleted file mode 100644 index 42d8043b15..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectAttribute.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.wmi.service; - -/** - * WMI object property - */ -public class WMIObjectAttribute extends WMIObjectElement -{ - - private int type; - private int flavor; - private Object value; - - public WMIObjectAttribute(WMIObject owner, String name, int type, int flavor, Object value) - { - super(owner, name); - this.type = type; - this.flavor = flavor; - this.value = value; - } - - public int getType() - { - return type; - } - - public int getFlavor() - { - return flavor; - } - - public Object getValue() - { - return value; - } - - public boolean isSystem() - { - return getName().startsWith("__"); - } - - @Override - public String toString() - { - return getName() + "=" + value; - } - - public String getTypeName() - { - int type = getType(); - if ((type & WMIConstants.CIM_FLAG_ARRAY) != 0) { - return getCIMTypeName(type ^ WMIConstants.CIM_FLAG_ARRAY) + "[]"; - } else { - return getCIMTypeName(type); - } - } - - public static String getCIMTypeName(int type) - { - switch (type) { - case WMIConstants.CIM_ILLEGAL: return "Illegal"; - case WMIConstants.CIM_EMPTY: return "Empty"; - case WMIConstants.CIM_SINT8: return "Int8"; - case WMIConstants.CIM_UINT8: return "UInt8"; - case WMIConstants.CIM_SINT16: return "Int16"; - case WMIConstants.CIM_UINT16: return "UInt16"; - case WMIConstants.CIM_SINT32: return "Int32"; - case WMIConstants.CIM_UINT32: return "UInt32"; - case WMIConstants.CIM_SINT64: return "Int64"; - case WMIConstants.CIM_UINT64: return "UInt64"; - case WMIConstants.CIM_REAL32: return "Real32"; - case WMIConstants.CIM_REAL64: return "Real64"; - case WMIConstants.CIM_BOOLEAN: return "Boolean"; - case WMIConstants.CIM_STRING: return "String"; - case WMIConstants.CIM_DATETIME: return "DateTime"; - case WMIConstants.CIM_REFERENCE: return "Reference"; - case WMIConstants.CIM_CHAR16: return "Char"; - case WMIConstants.CIM_OBJECT: return "Object"; - default: return "Unknown (" + type + ")"; - } - } -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectElement.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectElement.java deleted file mode 100644 index 2a26efed77..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectElement.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.wmi.service; - -import java.util.List; - -/** - * Object element (property or method) - */ -public abstract class WMIObjectElement extends WMIQualifiedObject { - - private WMIObject owner; - private String name; - - protected WMIObjectElement(WMIObject owner, String name) - { - this.owner = owner; - this.name = name; - } - - public WMIObject getOwner() - { - return owner; - } - - public String getName() - { - return name; - } - - @Override - protected void readObjectQualifiers(List qualifiers) throws WMIException - { - getOwner().readQualifiers(this instanceof WMIObjectAttribute, getName(), qualifiers); - } - -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectMethod.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectMethod.java deleted file mode 100644 index c2a29debb3..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectMethod.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.wmi.service; - -/** - * WMI object property - */ -public class WMIObjectMethod extends WMIObjectElement -{ - - private WMIObject inParameter; - private WMIObject outParameter; - - public WMIObjectMethod(WMIObject owner, String name, WMIObject inParameter, WMIObject outParameter) - { - super(owner, name); - this.inParameter = inParameter; - this.outParameter = outParameter; - } - - public WMIObject getInParameter() - { - return inParameter; - } - - public WMIObject getOutParameter() - { - return outParameter; - } - - @Override - public String toString() - { - return getName() + "()"; - } -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectSink.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectSink.java deleted file mode 100644 index b91716a057..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectSink.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.wmi.service; - -/** - * Object sink - */ -public interface WMIObjectSink { - - void indicate(WMIObject[] objects); - - void setStatus(WMIObjectSinkStatus status, int result, String param, WMIObject errorObject); - -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectSinkStatus.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectSinkStatus.java deleted file mode 100644 index af4db3cf15..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIObjectSinkStatus.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.wmi.service; - -/** - * Sink status - */ -public enum WMIObjectSinkStatus { - unknown, - complete, - progress, - requirements, - error, -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIQualifiedObject.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIQualifiedObject.java deleted file mode 100644 index 371698a3b7..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIQualifiedObject.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.wmi.service; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * Qualified object - */ -public abstract class WMIQualifiedObject { - - private volatile List qualifiers; - - public Collection getQualifiers() - throws WMIException - { - if (qualifiers == null) { - synchronized (this) { - if (qualifiers == null) { - qualifiers = new ArrayList<>(); - readObjectQualifiers(qualifiers); - } - } - } - return qualifiers; - } - - public Object getQualifier(String name) - throws WMIException - { - for (WMIQualifier q : getQualifiers()) { - if (q.getName().equalsIgnoreCase(name)) { - return q.getValue(); - } - } - return null; - } - - protected abstract void readObjectQualifiers(List qualifiers) throws WMIException; - -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIQualifier.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIQualifier.java deleted file mode 100644 index 956d9b418d..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIQualifier.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.wmi.service; - -/** - * Qualifier - */ -public class WMIQualifier { - - private final String name; - private final Object value; - private final int flavor; - - public WMIQualifier(String name, int flavor, Object value) - { - this.name = name; - this.flavor = flavor; - this.value = value; - } - - public String getName() - { - return name; - } - - public Object getValue() - { - return value; - } - - public int getFlavor() - { - return flavor; - } - - @Override - public String toString() - { - return name + "=" + value; - } -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIService.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIService.java deleted file mode 100644 index 17a9c7e15f..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMIService.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.wmi.service; - -/** - * WMI Service - * Uses native Win32 API access - */ -public class WMIService { - -// static { -// String arch = System.getProperty("os.arch"); -// if (arch != null && arch.indexOf("64") != -1) { -// System.loadLibrary("jkiss_wmi_x86_64"); -// } else { -// System.loadLibrary("jkiss_wmi_x86"); -// } -// } - - public static void linkNative(String libPath) - { - System.load(libPath); - } - - private long serviceHandle = 0l; - - public static native WMIService connect(String domain, String host, String user, String password, String locale, String resource) - throws WMIException; - - public native WMIService openNamespace(String namespace) - throws WMIException; - - public native void executeQuery(String query, WMIObjectSink sink, long flags) - throws WMIException; - - public native void enumClasses(String superClass, WMIObjectSink sink, long flags) - throws WMIException; - - public native void enumInstances(String className, WMIObjectSink sink, long flags) - throws WMIException; - - public native void cancelSink(WMIObjectSink sink) - throws WMIException; - - public native void close(); - -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMISinkStatus.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMISinkStatus.java deleted file mode 100644 index 86ce77c4b9..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/service/WMISinkStatus.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.wmi.service; - -/** - * Sink status - */ -public enum WMISinkStatus { - complete, - progress, - requirements -} diff --git a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/test/TestService.java b/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/test/TestService.java deleted file mode 100644 index 63577e13ab..0000000000 --- a/modules/org.jkiss.wmi/src/java/org/jkiss/wmi/test/TestService.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jkiss.wmi.test; - -import org.jkiss.wmi.service.*; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * WMI Service tester - */ -public class TestService { - - private WMIService service; - private boolean finished = false; - private WMIService nsService; - - public TestService() - { - } - - public static void main(String[] args) - { - new TestService() - .test(); - } - - void test() - { - try { - { - Thread testThread = new Thread() { - @Override - public void run() - { - try { - service = WMIService.connect(null, "localhost", null, null, null, "root"); - ObjectCollectorSink classesSink = new ObjectCollectorSink(); - service.enumClasses(null, classesSink, 0); - classesSink.waitForFinish(); - Thread.sleep(10000); - - } catch (WMIException e) { - e.printStackTrace(); - } catch (InterruptedException e) { - e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. - } - } - }; - testThread.start(); - Thread.sleep(1000); - } - - { - Thread testThread2 = new Thread() { - @Override - public void run() - { - try { - testNamespace(); - } catch (WMIException e) { - e.printStackTrace(); - } - } - }; - testThread2.start(); - testThread2.join(); - } - - } catch (InterruptedException e) { - // do nothing - } finally { - service.close(); - } - - System.gc(); - System.out.println("DONE"); - System.exit(0); - } - - private void testNamespace() - throws WMIException - { - //WMIService.initializeThread(); - - ObjectCollectorSink classesSink; - - nsService = service.openNamespace("cimv2"); - ObjectCollectorSink tmpSink = new ObjectCollectorSink(); - nsService.executeQuery("SELECT * FROM Win32_Process", tmpSink, WMIConstants.WBEM_FLAG_SEND_STATUS); - tmpSink.waitForFinish(); - for (WMIObject o : tmpSink.objectList) { - System.out.println("============="); -// for (WMIObjectAttribute attr : o.getAttributes(WMIConstants.WBEM_FLAG_ALWAYS)) { -// System.out.println(attr.toString()); -// } - System.out.println("Caption=" + o.getValue("Caption")); - System.out.println("CommandLine=" + o.getValue("CommandLine")); - System.out.println("CreationClassName=" + o.getValue("CreationClassName")); - System.out.println("CreationDate=" + o.getValue("CreationDate")); - } - } - - private static void printObject(WMIObject object) - { - try { - System.out.println("====== " + object.getObjectText()); - } catch (WMIException e) { - e.printStackTrace(); - } - } - - private static void examineObject(WMIObject object) throws WMIException - { - final String objectText = object.getObjectText(); - //final Object name = object.getValue("Name"); - - for (WMIObjectAttribute prop : object.getAttributes(WMIConstants.WBEM_FLAG_ALWAYS)) { - Object propValue = prop.getValue(); - if (propValue instanceof Object[]) { - //System.out.print("\t" + prop.getName() + "= { "); - Object[] array = (Object[])propValue; - for (int i = 0; i < array.length; i++) { - //if (i > 0) System.out.print(", "); - //System.out.print("'" + array[i] + "'"); - } - //System.out.println(" }"); - } else if (propValue instanceof byte[]) { - //System.out.println("\t" + prop.getName() + "= { byte array } " + ((byte[])propValue).length); - } else { - //System.out.println("\t" + prop.getName() + "=" + propValue); - } - } - } - - private class ObjectCollectorSink implements WMIObjectSink - { - private final List objectList; - private boolean finished = false; - - public ObjectCollectorSink() - { - this.objectList = new ArrayList<>(); - } - - @Override - public void indicate(WMIObject[] objects) - { - Collections.addAll(objectList, objects); - } - - @Override - public void setStatus(WMIObjectSinkStatus status, int result, String param, WMIObject errorObject) - { - if (status == WMIObjectSinkStatus.complete) { - finished = true; - } - } - - public void waitForFinish() - { - try { - while (!finished) { - Thread.sleep(100); - } - //service.cancelAsyncOperation(wmiObjectSink); - } - catch (InterruptedException e) { - // do nothing - } - } - } -} diff --git a/modules/org.jkiss.wmi/src/native/JNIMetaData.cpp b/modules/org.jkiss.wmi/src/native/JNIMetaData.cpp deleted file mode 100644 index e6ad051605..0000000000 --- a/modules/org.jkiss.wmi/src/native/JNIMetaData.cpp +++ /dev/null @@ -1,164 +0,0 @@ -#include "StdAfx.h" -#include "JNIMetaData.h" -#include "WMIUtils.h" -#include - -//static CComCriticalSection csSinkThreads; - -//typedef std::map MetaDataMap; -//static MetaDataMap s_MetaDataMap; - -JNIMetaData* JNIMetaData::instance = NULL; - -JNIMetaData::JNIMetaData(JNIEnv* pEnv) : pJavaEnv(pEnv) -{ - javaLangObjectClass = FindJavaClass("java/lang/Object"); - javaLangByteClass = FindJavaClass("java/lang/Byte"); - javaLangCharClass = FindJavaClass("java/lang/Character"); - javaLangBooleanClass = FindJavaClass("java/lang/Boolean"); - javaLangShortClass = FindJavaClass("java/lang/Short"); - javaLangIntegerClass = FindJavaClass("java/lang/Integer"); - javaLangLongClass = FindJavaClass("java/lang/Long"); - javaLangFloatClass = FindJavaClass("java/lang/Float"); - javaLangDoubleClass = FindJavaClass("java/lang/Double"); - javaLangStringClass = FindJavaClass("java/lang/String"); - javaUtilDateClass = FindJavaClass("java/util/Date"); - javaUtilListClass = FindJavaClass("java/util/List"); - - javaLangByteConstructor = FindJavaMethod(javaLangByteClass, "", "(B)V"); - javaLangCharConstructor = FindJavaMethod(javaLangCharClass, "", "(C)V"); - javaLangBooleanConstructor = FindJavaMethod(javaLangBooleanClass, "", "(Z)V"); - javaLangShortConstructor = FindJavaMethod(javaLangShortClass, "", "(S)V"); - javaLangIntegerConstructor = FindJavaMethod(javaLangIntegerClass, "", "(I)V"); - javaLangLongConstructor = FindJavaMethod(javaLangLongClass, "", "(J)V"); - javaLangFloatConstructor = FindJavaMethod(javaLangFloatClass, "", "(F)V"); - javaLangDoubleConstructor = FindJavaMethod(javaLangDoubleClass, "", "(D)V"); - javaUtilDateConstructor = FindJavaMethod(javaUtilDateClass, "", "(J)V"); - javaUtilListAddMethod = FindJavaMethod(javaUtilListClass, "add", "(Ljava/lang/Object;)Z"); - javaLangObjectEqualsMethod = FindJavaMethod(javaLangObjectClass, "equals", "(Ljava/lang/Object;)Z"); - - wmiServiceClass = FindJavaClass(CLASS_WMI_SERVICE); - wmiServiceConstructor = FindJavaMethod( - wmiServiceClass, - "", - "()V"); - wmiServiceHandleField = pJavaEnv->GetFieldID(wmiServiceClass, "serviceHandle", "J"); - - wmiObjectClass = FindJavaClass(CLASS_WMI_OBJECT); - wmiObjectConstructor = FindJavaMethod( - wmiObjectClass, - "", - "()V"); - wmiObjectHandleField = pJavaEnv->GetFieldID(wmiObjectClass, "objectHandle", "J"); - - wmiQualifierClass = FindJavaClass(CLASS_WMI_QUALIFIER); - wmiQualifierConstructor = FindJavaMethod( - wmiQualifierClass, - "", - "(Ljava/lang/String;ILjava/lang/Object;)V"); - - wmiObjectSinkClass = FindJavaClass(CLASS_WMI_OBJECT_SINK); - wmiObjectSinkIndicateMethod = FindJavaMethod( - wmiObjectSinkClass, - "indicate", - "([Lorg/jkiss/wmi/service/WMIObject;)V"); - wmiObjectSinkSetStatusMethod = FindJavaMethod( - wmiObjectSinkClass, - "setStatus", - "(Lorg/jkiss/wmi/service/WMIObjectSinkStatus;ILjava/lang/String;Lorg/jkiss/wmi/service/WMIObject;)V"); - - wmiObjectSinkStatusClass = FindJavaClass(CLASS_WMI_OBJECT_SINK_STATUS); - - wmiObjectAttributeClass = FindJavaClass(CLASS_WMI_OBJECT_ATTRIBUTE); - wmiObjectAttributeConstructor = FindJavaMethod( - wmiObjectAttributeClass, - "", - "(Lorg/jkiss/wmi/service/WMIObject;Ljava/lang/String;IILjava/lang/Object;)V"); - - wmiObjectMethodClass = FindJavaClass(CLASS_WMI_OBJECT_METHOD); - wmiObjectMethodConstructor = FindJavaMethod( - wmiObjectMethodClass, - "", - "(Lorg/jkiss/wmi/service/WMIObject;Ljava/lang/String;Lorg/jkiss/wmi/service/WMIObject;Lorg/jkiss/wmi/service/WMIObject;)V"); -} - -JNIMetaData::~JNIMetaData(void) -{ - DeleteClassRef(javaLangObjectClass); - DeleteClassRef(javaLangByteClass); - DeleteClassRef(javaLangCharClass); - DeleteClassRef(javaLangBooleanClass); - DeleteClassRef(javaLangShortClass); - DeleteClassRef(javaLangIntegerClass); - DeleteClassRef(javaLangLongClass); - DeleteClassRef(javaLangFloatClass); - DeleteClassRef(javaLangDoubleClass); - DeleteClassRef(javaLangStringClass); - DeleteClassRef(javaUtilDateClass); - DeleteClassRef(javaUtilListClass); - - DeleteClassRef(wmiServiceClass); - DeleteClassRef(wmiObjectClass); - DeleteClassRef(wmiQualifierClass); - DeleteClassRef(wmiObjectSinkClass); - DeleteClassRef(wmiObjectSinkStatusClass); - DeleteClassRef(wmiObjectAttributeClass); - DeleteClassRef(wmiObjectMethodClass); -} - -JNIMetaData& JNIMetaData::GetMetaData(JNIEnv* pEnv) -{ -/* - JNIMetaData* pMetaData = s_MetaDataMap[pEnv]; - if (pMetaData == NULL) { - pMetaData = new JNIMetaData(pEnv); - s_MetaDataMap[pEnv] = pMetaData; - } - return *pMetaData; -*/ - if (instance == NULL) { - instance = new JNIMetaData(pEnv); - } - return *instance; -} -/* -void JNIMetaData::Destroy() -{ - for (MetaDataMap::iterator iter = s_MetaDataMap.begin(); iter != s_MetaDataMap.end(); iter++) { - delete iter->second; - } - s_MetaDataMap.clear(); -} -*/ -jclass JNIMetaData::FindJavaClass(const char* className) -{ - jclass clazz = pJavaEnv->FindClass(className); - _ASSERT(clazz != NULL); - if (clazz == NULL) { - return NULL; - } - jclass globalRef = (jclass)pJavaEnv->NewGlobalRef(clazz); - DeleteLocalRef(pJavaEnv, clazz); - return globalRef; -} - -jmethodID JNIMetaData::FindJavaMethod(jclass clazz, const char* methodName, const char* methodSig) -{ - if (clazz == NULL) { - return NULL; - } - jmethodID mid = pJavaEnv->GetMethodID( - clazz, - methodName, - methodSig); - _ASSERT(mid != NULL); - return mid; -} - -void JNIMetaData::DeleteClassRef(jclass& clazz) -{ - if (clazz != NULL) { - this->pJavaEnv->DeleteGlobalRef(clazz); - clazz = NULL; - } -} \ No newline at end of file diff --git a/modules/org.jkiss.wmi/src/native/JNIMetaData.h b/modules/org.jkiss.wmi/src/native/JNIMetaData.h deleted file mode 100644 index 36293da214..0000000000 --- a/modules/org.jkiss.wmi/src/native/JNIMetaData.h +++ /dev/null @@ -1,80 +0,0 @@ -#pragma once - -#ifndef _JNI_META_DATA_H_ -#define _JNI_META_DATA_H_ - -#include - -static const char* CLASS_WMI_SERVICE = "org/jkiss/wmi/service/WMIService"; -static const char* CLASS_WMI_OBJECT = "org/jkiss/wmi/service/WMIObject"; -static const char* CLASS_WMI_QUALIFIER = "org/jkiss/wmi/service/WMIQualifier"; -static const char* CLASS_WMI_OBJECT_SINK = "org/jkiss/wmi/service/WMIObjectSink"; -static const char* CLASS_WMI_OBJECT_SINK_STATUS = "org/jkiss/wmi/service/WMIObjectSinkStatus"; -static const char* CLASS_WMI_OBJECT_ATTRIBUTE = "org/jkiss/wmi/service/WMIObjectAttribute"; -static const char* CLASS_WMI_OBJECT_METHOD = "org/jkiss/wmi/service/WMIObjectMethod"; - -class JNIMetaData -{ -public: - JNIMetaData(JNIEnv* pEnv); - ~JNIMetaData(); - - static JNIMetaData& GetMetaData(JNIEnv* pEnv); - //static void Destroy(); - - JNIEnv* pJavaEnv; - - jclass wmiServiceClass; - jmethodID wmiServiceConstructor; - jfieldID wmiServiceHandleField; - - jclass wmiObjectClass; - jmethodID wmiObjectConstructor; - jfieldID wmiObjectHandleField; - - jclass wmiQualifierClass; - jmethodID wmiQualifierConstructor; - - jclass wmiObjectSinkClass; - jmethodID wmiObjectSinkIndicateMethod; - jmethodID wmiObjectSinkSetStatusMethod; - jclass wmiObjectSinkStatusClass; - jclass wmiObjectAttributeClass; - jmethodID wmiObjectAttributeConstructor; - jclass wmiObjectMethodClass; - jmethodID wmiObjectMethodConstructor; - - jclass javaLangObjectClass; - jclass javaLangByteClass; - jclass javaLangCharClass; - jclass javaLangBooleanClass; - jclass javaLangShortClass; - jclass javaLangIntegerClass; - jclass javaLangLongClass; - jclass javaLangFloatClass; - jclass javaLangDoubleClass; - jclass javaLangStringClass; - jclass javaUtilDateClass; - jclass javaUtilListClass; - - jmethodID javaLangByteConstructor; - jmethodID javaLangCharConstructor; - jmethodID javaLangBooleanConstructor; - jmethodID javaLangShortConstructor; - jmethodID javaLangIntegerConstructor; - jmethodID javaLangLongConstructor; - jmethodID javaLangFloatConstructor; - jmethodID javaLangDoubleConstructor; - jmethodID javaUtilDateConstructor; - jmethodID javaUtilListAddMethod; - jmethodID javaLangObjectEqualsMethod; - -private: - jclass FindJavaClass(const char* className); - jmethodID FindJavaMethod(jclass clazz, const char* methodName, const char* methodSig); - void DeleteClassRef(jclass& clazz); - - static JNIMetaData* instance; -}; - -#endif \ No newline at end of file diff --git a/modules/org.jkiss.wmi/src/native/WMIObject.cpp b/modules/org.jkiss.wmi/src/native/WMIObject.cpp deleted file mode 100644 index d1375709b6..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIObject.cpp +++ /dev/null @@ -1,259 +0,0 @@ -// WMISensor.cpp : Defines the entry point for the DLL application. -// - -#include "stdafx.h" -#include "WMIObject.h" -#include "WMIUtils.h" - -WMIObject::WMIObject(JNIEnv * pJavaEnv, jobject javaObject, IWbemClassObject* pClassObject) : - ptrClassObject(pClassObject) -{ - pJavaEnv->SetLongField(javaObject, JNIMetaData::GetMetaData(pJavaEnv).wmiObjectHandleField, (jlong)this); -} - -WMIObject::~WMIObject() -{ - -} - -void WMIObject::Release(JNIEnv* pJavaEnv, jobject javaObject) -{ - if (javaObject != NULL) { - pJavaEnv->SetLongField(javaObject, JNIMetaData::GetMetaData(pJavaEnv).wmiObjectHandleField, 0l); - } - ptrClassObject = NULL; -} - -WMIObject* WMIObject::GetFromObject(JNIEnv* pJavaEnv, jobject javaObject) -{ - jclass objectClass = pJavaEnv->GetObjectClass(javaObject); - jfieldID fid = pJavaEnv->GetFieldID(objectClass, "objectHandle", "J"); - DeleteLocalRef(pJavaEnv, objectClass); - _ASSERT(fid != NULL); - if (fid == NULL) { - return NULL; - } - return (WMIObject*)pJavaEnv->GetLongField(javaObject, fid); -} - -jstring WMIObject::GetObjectText(JNIEnv* pJavaEnv) -{ - CComBSTR bstrObjectText; - ptrClassObject->GetObjectText(0, &bstrObjectText); - if (pJavaEnv->ExceptionCheck()) { - return NULL; - } - return MakeJavaString(pJavaEnv, bstrObjectText); -} - -jobject WMIObject::GetAttributeValue(JNIEnv* pJavaEnv, jstring propName) -{ - CComBSTR bstrPropName; - ::GetJavaString(pJavaEnv, propName, &bstrPropName); - - CComVariant propValue; - CIMTYPE cimType; // CIMTYPE_ENUMERATION - LONG flavor; - HRESULT hres = ptrClassObject->Get(bstrPropName, 0, &propValue, &cimType, &flavor); - if (FAILED(hres)) { - THROW_COMMON_ERROR((_bstr_t(L"Can't read attribute '") + (BSTR)bstrPropName) + L"' value", hres); - return NULL; - } - return ::MakeJavaFromVariant(pJavaEnv, propValue, cimType); -} - -void WMIObject::ReadAttributes(JNIEnv* pJavaEnv, jobject javaObject, LONG lFlags, jobject propList) -{ - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - - // Fill class object properties - HRESULT hres = ptrClassObject->BeginEnumeration(lFlags); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't start class object attributes enumeration", hres); - return; - } - - for (;;) { - CComBSTR propName; - CComVariant propValue; - CIMTYPE cimType; // CIMTYPE_ENUMERATION - LONG flavor; - hres = ptrClassObject->Next(0, &propName, &propValue, &cimType, &flavor); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't obtain next attribute from enumeration", hres); - break; - } - if (hres == WBEM_S_NO_MORE_DATA) { - break; - } - //wchar_t* propNameBSTR = propName; - jstring javaPropName = ::MakeJavaString(pJavaEnv, propName); - _ASSERT(javaPropName != NULL); - if (javaPropName == NULL) { - continue; - } - jobject javaPropValue = ::MakeJavaFromVariant(pJavaEnv, propValue, cimType); - if (!pJavaEnv->ExceptionCheck()) { - jobject javaPropObject = pJavaEnv->NewObject( - jniMeta.wmiObjectAttributeClass, - jniMeta.wmiObjectAttributeConstructor, - javaObject, - javaPropName, - (jint)cimType, - (jint)flavor, - javaPropValue); - if (pJavaEnv->ExceptionCheck()) { - break; - } - pJavaEnv->CallVoidMethod(propList, jniMeta.javaUtilListAddMethod, javaPropObject); - DeleteLocalRef(pJavaEnv, javaPropObject); - } - DeleteLocalRef(pJavaEnv, javaPropName); - DeleteLocalRef(pJavaEnv, javaPropValue); - if (pJavaEnv->ExceptionCheck()) { - break; - } - } - - hres = ptrClassObject->EndEnumeration(); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't finish class object enumeration", hres); - } -} - -void WMIObject::ReadMethods(JNIEnv* pJavaEnv, jobject javaObject, LONG lFlags, jobject methodList) -{ - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - - // Fill class object properties - HRESULT hres = ptrClassObject->BeginMethodEnumeration(lFlags); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't start class object methods enumeration", hres); - return; - } - - for (;;) { - CComBSTR methodName; - CComPtr ptrInSignature; - CComPtr ptrOutSignature; - hres = ptrClassObject->NextMethod(0, &methodName, &ptrInSignature, &ptrOutSignature); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't obtain next method from enumeration", hres); - break; - } - if (hres == WBEM_S_NO_MORE_DATA) { - break; - } - //wchar_t* propNameBSTR = propName; - jstring javaMethodName = ::MakeJavaString(pJavaEnv, methodName); - _ASSERT(javaMethodName != NULL); - if (javaMethodName == NULL) { - continue; - } - jobject javaInSignature = ptrInSignature == NULL ? NULL : WMIService::MakeWMIObject(pJavaEnv, ptrInSignature); - jobject javaOutSignature = ptrOutSignature == NULL ? NULL : WMIService::MakeWMIObject(pJavaEnv, ptrOutSignature); - if (!pJavaEnv->ExceptionCheck()) { - jobject javaMethodObject = pJavaEnv->NewObject( - jniMeta.wmiObjectMethodClass, - jniMeta.wmiObjectMethodConstructor, - javaObject, - javaMethodName, - javaInSignature, - javaOutSignature); - if (pJavaEnv->ExceptionCheck()) { - break; - } - pJavaEnv->CallVoidMethod(methodList, jniMeta.javaUtilListAddMethod, javaMethodObject); - DeleteLocalRef(pJavaEnv, javaMethodObject); - } - DeleteLocalRef(pJavaEnv, javaMethodName); - if (javaInSignature != NULL) { - DeleteLocalRef(pJavaEnv, javaInSignature); - } - if (javaOutSignature != NULL) { - DeleteLocalRef(pJavaEnv, javaOutSignature); - } - if (pJavaEnv->ExceptionCheck()) { - break; - } - } - - hres = ptrClassObject->EndMethodEnumeration(); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't finish class object enumeration", hres); - } -} - -void WMIObject::ReadQualifiers(JNIEnv* pJavaEnv, jobject javaObject, bool isAttribute, jstring propName, jobject qfList) -{ - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - - CComBSTR bstrPropName; - if (propName != NULL) { - ::GetJavaString(pJavaEnv, propName, &bstrPropName); - } - CComPtr ptrQFSet; - HRESULT hres = S_OK; - if (bstrPropName == NULL) { - hres = ptrClassObject->GetQualifierSet(&ptrQFSet); - } else if (isAttribute) { - hres = ptrClassObject->GetPropertyQualifierSet(bstrPropName, &ptrQFSet); - } else { - hres = ptrClassObject->GetMethodQualifierSet(bstrPropName, &ptrQFSet); - } - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't create qualifiers enumeration", hres); - return; - } - - // Fill class object properties - hres = ptrQFSet->BeginEnumeration(0); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't begin qualifiers enumeration", hres); - return; - } - - for (;;) { - CComBSTR qfName; - CComVariant qfValue; - LONG flavor; - hres = ptrQFSet->Next(0, &qfName, &qfValue, &flavor); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't obtain next qualifier from enumeration", hres); - break; - } - if (hres == WBEM_S_NO_MORE_DATA) { - break; - } - //wchar_t* propNameBSTR = propName; - jstring javaQFName = ::MakeJavaString(pJavaEnv, qfName); - _ASSERT(javaQFName != NULL); - if (javaQFName == NULL) { - continue; - } - jobject javaQFValue = ::MakeJavaFromVariant(pJavaEnv, qfValue, CIM_EMPTY); - if (!pJavaEnv->ExceptionCheck()) { - jobject javaPropObject = pJavaEnv->NewObject( - jniMeta.wmiQualifierClass, - jniMeta.wmiQualifierConstructor, - javaQFName, - (jint)flavor, - javaQFValue); - if (pJavaEnv->ExceptionCheck()) { - break; - } - pJavaEnv->CallVoidMethod(qfList, jniMeta.javaUtilListAddMethod, javaPropObject); - DeleteLocalRef(pJavaEnv, javaPropObject); - } - DeleteLocalRef(pJavaEnv, javaQFName); - DeleteLocalRef(pJavaEnv, javaQFValue); - if (pJavaEnv->ExceptionCheck()) { - break; - } - } - - hres = ptrQFSet->EndEnumeration(); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't finish qualifiers enumeration", hres); - } -} diff --git a/modules/org.jkiss.wmi/src/native/WMIObject.h b/modules/org.jkiss.wmi/src/native/WMIObject.h deleted file mode 100644 index c79e50c643..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIObject.h +++ /dev/null @@ -1,29 +0,0 @@ -#include - -#ifndef _WMI_Object -#define _WMI_Object - -#include -#include "WMIService.h" - -class WMIObject { -public: - WMIObject(JNIEnv* pJavaEnv, jobject javaObject, IWbemClassObject* pClassObject); - ~WMIObject(); - - void Release(JNIEnv* pJavaEnv, jobject javaObject); - jstring GetObjectText(JNIEnv* pJavaEnv); - jobject GetAttributeValue(JNIEnv* pJavaEnv, jstring propName); - void ReadAttributes(JNIEnv* pJavaEnv, jobject javaObject, LONG lFlags, jobject propList); - void ReadMethods(JNIEnv* pJavaEnv, jobject javaObject, LONG lFlags, jobject methodList); - void ReadQualifiers(JNIEnv* pJavaEnv, jobject javaObject, bool isAttribute, jstring propName, jobject qfList); - - static WMIObject* GetFromObject(JNIEnv* pJavaEnv, jobject javaObject); -private: - // Private vars - CComPtr ptrClassObject; - -public: -}; - -#endif diff --git a/modules/org.jkiss.wmi/src/native/WMIObjectJNI.cpp b/modules/org.jkiss.wmi/src/native/WMIObjectJNI.cpp deleted file mode 100644 index 17f7bdbbcc..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIObjectJNI.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// WMISensor.cpp : Defines the entry point for the DLL application. -// - -#include "stdafx.h" -#include "WMIObjectJNI.h" -#include "WMIObject.h" -#include "WMIUtils.h" - -static const wchar_t* ERROR_NOT_INITIALIZED = L"WMI object was not initialized or was disposed"; - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readObjectText - * Signature: ()Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_org_jkiss_wmi_service_WMIObject_readObjectText(JNIEnv* pJavaEnv, jobject object) -{ - WMIObject* pObject = WMIObject::GetFromObject(pJavaEnv, object); - if (pObject == NULL) { - THROW_COMMON_EXCEPTION(ERROR_NOT_INITIALIZED); - return NULL; - } - return pObject->GetObjectText(pJavaEnv); -} - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readAttributeValue - * Signature: (Ljava/lang/String;)Ljava/lang/Object; - */ -JNIEXPORT jobject JNICALL Java_org_jkiss_wmi_service_WMIObject_readAttributeValue(JNIEnv* pJavaEnv, jobject object, jstring propName) -{ - try { - WMIObject* pObject = WMIObject::GetFromObject(pJavaEnv, object); - if (pObject == NULL) { - THROW_COMMON_EXCEPTION(ERROR_NOT_INITIALIZED); - return NULL; - } - return pObject->GetAttributeValue(pJavaEnv, propName); - } - catch (...) { - THROW_COMMON_EXCEPTION(L"Internal error while reading attribute"); - return NULL; - } -} - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: writeAttributeValue - * Signature: (Ljava/lang/String;Ljava/lang/Object;)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_writeAttributeValue(JNIEnv* pJavaEnv, jobject object, jstring propName, jobject propValue) -{ - WMIObject* pObject = WMIObject::GetFromObject(pJavaEnv, object); - if (pObject == NULL) { - THROW_COMMON_EXCEPTION(ERROR_NOT_INITIALIZED); - return; - } - - return; -} - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readAttributes - * Signature: (Ljava/util/List;)Ljava/util/List; - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_readAttributes(JNIEnv* pJavaEnv, jobject object, jlong lFlags, jobject propList) -{ - WMIObject* pObject = WMIObject::GetFromObject(pJavaEnv, object); - if (pObject == NULL) { - THROW_COMMON_EXCEPTION(ERROR_NOT_INITIALIZED); - return; - } - - pObject->ReadAttributes(pJavaEnv, object, (LONG)lFlags, propList); -} - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readMethod - * Signature: (Ljava/util/List;)Ljava/util/List; - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_readMethods(JNIEnv* pJavaEnv, jobject object, jlong lFlags, jobject methodList) -{ - WMIObject* pObject = WMIObject::GetFromObject(pJavaEnv, object); - if (pObject == NULL) { - THROW_COMMON_EXCEPTION(ERROR_NOT_INITIALIZED); - return; - } - pObject->ReadMethods(pJavaEnv, object, (LONG)lFlags, methodList); -} - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readQualifiers - * Signature: (ZLjava/lang/String;Ljava/util/List;)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_readQualifiers(JNIEnv* pJavaEnv, jobject object, jboolean isAttribute, jstring propName, jobject qfList) -{ - WMIObject* pObject = WMIObject::GetFromObject(pJavaEnv, object); - if (pObject == NULL) { - THROW_COMMON_EXCEPTION(ERROR_NOT_INITIALIZED); - return; - } - pObject->ReadQualifiers(pJavaEnv, object, isAttribute != 0, propName, qfList); -} - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: releaseObject - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_releaseObject(JNIEnv* pJavaEnv, jobject object) -{ - WMIObject* pObject = WMIObject::GetFromObject(pJavaEnv, object); - if (pObject == NULL) { - THROW_COMMON_EXCEPTION(ERROR_NOT_INITIALIZED); - return; - } - pObject->Release(pJavaEnv, object); - delete pObject; -} diff --git a/modules/org.jkiss.wmi/src/native/WMIObjectJNI.h b/modules/org.jkiss.wmi/src/native/WMIObjectJNI.h deleted file mode 100644 index 790763e2a2..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIObjectJNI.h +++ /dev/null @@ -1,69 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class org_jkiss_wmi_service_WMIObject */ - -#ifndef _Included_org_jkiss_wmi_service_WMIObject -#define _Included_org_jkiss_wmi_service_WMIObject -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readObjectText - * Signature: ()Ljava/lang/String; - */ -JNIEXPORT jstring JNICALL Java_org_jkiss_wmi_service_WMIObject_readObjectText - (JNIEnv *, jobject); - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readAttributeValue - * Signature: (Ljava/lang/String;)Ljava/lang/Object; - */ -JNIEXPORT jobject JNICALL Java_org_jkiss_wmi_service_WMIObject_readAttributeValue - (JNIEnv *, jobject, jstring); - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: writeAttributeValue - * Signature: (Ljava/lang/String;Ljava/lang/Object;)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_writeAttributeValue - (JNIEnv *, jobject, jstring, jobject); - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readAttributes - * Signature: (JLjava/util/List;)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_readAttributes - (JNIEnv *, jobject, jlong, jobject); - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readMethods - * Signature: (JLjava/util/List;)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_readMethods - (JNIEnv *, jobject, jlong, jobject); - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: readQualifiers - * Signature: (ZLjava/lang/String;Ljava/util/List;)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_readQualifiers - (JNIEnv *, jobject, jboolean, jstring, jobject); - -/* - * Class: org_jkiss_wmi_service_WMIObject - * Method: releaseObject - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIObject_releaseObject - (JNIEnv *, jobject); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/modules/org.jkiss.wmi/src/native/WMIObjectSink.cpp b/modules/org.jkiss.wmi/src/native/WMIObjectSink.cpp deleted file mode 100644 index 291e32d7aa..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIObjectSink.cpp +++ /dev/null @@ -1,185 +0,0 @@ -#include "StdAfx.h" -#include "WMIObjectSink.h" -#include "WMIUtils.h" - -static const long MAX_CACHE_SIZE = 1000; - -WMIObjectSink::WMIObjectSink() : - pService(NULL), - javaSinkObject(NULL) -{ -} - -void WMIObjectSink::InitSink(WMIService* pSvc, JNIEnv* pJavaEnv, jobject javaObject) -{ - _ASSERT(pSvc != NULL); - _ASSERT(javaObject != NULL); - - pService = pSvc; - javaSinkObject = pJavaEnv->NewGlobalRef(javaObject); -} - -void WMIObjectSink::TermSink(JNIEnv* pJavaEnv) -{ - if (javaSinkObject != NULL) { - pJavaEnv->DeleteGlobalRef(javaSinkObject); - javaSinkObject = NULL; - } -} - -WMIObjectSink::~WMIObjectSink(void) -{ -} -/* -void WMIObjectSink::AttachThread() -{ - if (hThread == NULL) { - hThread = ::GetCurrentThreadId(); - } else { - DWORD hCurThread = ::GetCurrentThreadId(); - _ASSERT(hThread == hCurThread); - } - - _ASSERT(pJavaVM != NULL); - if (pJavaVM != NULL && pJavaEnv == NULL) { - pJavaVM->AttachCurrentThread((void**)&pJavaEnv, NULL); - _ASSERT(pJavaEnv != NULL); - } -} - -*/ - -void WMIObjectSink::FlushObjectsCache(JNIEnv* pJavaEnv) -{ - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - JavaObjectVector objects; - for (size_t i = 0; i < objectsCache.size(); i++) { - objects.push_back(pService->MakeWMIObject(pJavaEnv, objectsCache[i])); - } - objectsCache.clear(); - jobjectArray javaArray = ::MakeJavaArrayFromVector(pJavaEnv, jniMeta.wmiObjectClass, objects); - - pJavaEnv->CallVoidMethod( - javaSinkObject, - jniMeta.wmiObjectSinkIndicateMethod, - javaArray); - - DeleteLocalRef(pJavaEnv, javaArray); - - if (pJavaEnv->ExceptionCheck()) { - //pService->WriteLog(pJavaEnv, LT_ERROR, L"Can't call indicate for object sink"); - pJavaEnv->ExceptionClear(); - } -} - -HRESULT WMIObjectSink::Indicate( - long lObjectCount, - IWbemClassObject **ppClassObject) -{ - if (lObjectCount <= 0) { - return WBEM_S_NO_ERROR; - } - for (long i = 0; i < lObjectCount; i++) { - objectsCache.push_back(ppClassObject[i]); - } - if (objectsCache.size() >= MAX_CACHE_SIZE) { - JNIEnv* pJavaEnv = NULL; - WMIService::GetJavaVM()->AttachCurrentThread((void**)&pJavaEnv, NULL); - _ASSERT(pJavaEnv != NULL); - if (pJavaEnv != NULL) { - FlushObjectsCache(pJavaEnv); - WMIService::GetJavaVM()->DetachCurrentThread(); - } - } - - return WBEM_S_NO_ERROR; -} - -HRESULT WMIObjectSink::SetStatus( - long lFlags, - HRESULT hResult, - BSTR strParam, - IWbemClassObject *pClassObject) -{ - const char* statusName = "unknown"; - if (lFlags == WBEM_STATUS_COMPLETE) { - if (FAILED(hResult)) { - statusName = "error"; - } else { - statusName = "complete"; - } - } else if (lFlags == WBEM_STATUS_PROGRESS) { - statusName = "progress"; - } else if (lFlags == WBEM_STATUS_REQUIREMENTS) { - statusName = "requirements"; - } - - JNIEnv* pJavaEnv = NULL; - WMIService::GetJavaVM()->AttachCurrentThread((void**)&pJavaEnv, NULL); - if (pJavaEnv == NULL) { - return WBEM_E_FAILED; - } - - if (!objectsCache.empty()) { - FlushObjectsCache(pJavaEnv); - } - - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - jfieldID statusEnumID = pJavaEnv->GetStaticFieldID( - jniMeta.wmiObjectSinkStatusClass, - statusName, - "Lorg/jkiss/wmi/service/WMIObjectSinkStatus;"); - _ASSERT(statusEnumID != NULL); - jobject statusEnum = pJavaEnv->GetStaticObjectField( - jniMeta.wmiObjectSinkStatusClass, - statusEnumID); - _ASSERT(statusEnum != NULL); - if (statusEnum == NULL) { - //pService->WriteLog(pJavaEnv, LT_ERROR, L"Can't detect object sink status java object"); - } - - jobject javaClassObject = NULL; - if (pClassObject != NULL) { - javaClassObject = pService->MakeWMIObject(pJavaEnv, pClassObject); - } - - jstring javaParam = NULL; - if (strParam != NULL) { - javaParam = MakeJavaString(pJavaEnv, strParam); - } else if (FAILED(hResult)) { - // Put error to param string - CComBSTR errorMessage; - ::FormatErrorMessage(L"Async error", hResult, &errorMessage); - javaParam = MakeJavaString(pJavaEnv, errorMessage); - } - - pJavaEnv->CallVoidMethod( - javaSinkObject, - jniMeta.wmiObjectSinkSetStatusMethod, - statusEnum, - (jint)hResult, - javaParam, - javaClassObject); - - DeleteLocalRef(pJavaEnv, statusEnum); - DeleteLocalRef(pJavaEnv, javaParam); - DeleteLocalRef(pJavaEnv, javaClassObject); - - if (pJavaEnv->ExceptionCheck()) { - //pJavaEnv->ExceptionDescribe(); - //pService->WriteLog(pJavaEnv, LT_ERROR, L"Can't set status for object sink"); - pJavaEnv->ExceptionClear(); - } - - // Check for end of sink - if (lFlags == WBEM_STATUS_COMPLETE || FAILED(hResult)) { - pService->RemoveObjectSink(pJavaEnv, this); - } - - this->TermSink(pJavaEnv); - - // Detach thread - jint result = WMIService::GetJavaVM()->DetachCurrentThread(); - - return WBEM_S_NO_ERROR; -} diff --git a/modules/org.jkiss.wmi/src/native/WMIObjectSink.h b/modules/org.jkiss.wmi/src/native/WMIObjectSink.h deleted file mode 100644 index 2fc9a4bd4f..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIObjectSink.h +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once - -#ifndef _WMI_OBJECT_SINK_H_ -#define _WMI_OBJECT_SINK_H_ - -#include "WMIService.h" - -class ATL_NO_VTABLE WMIObjectSink : - public CComObjectRootEx, - public IWbemObjectSink -{ -public: - WMIObjectSink(); - virtual ~WMIObjectSink(); - - jobject GetJavaSinkObject() - { - return javaSinkObject; - } - - void InitSink(WMIService* pService, JNIEnv* pJavaEnv, jobject javaObject); - void TermSink(JNIEnv* pJavaEnv); - - virtual HRESULT STDMETHODCALLTYPE Indicate( - long lObjectCount, - IWbemClassObject **ppClassObject); - - virtual HRESULT STDMETHODCALLTYPE SetStatus( - long lFlags, - HRESULT hResult, - BSTR strParam, - IWbemClassObject *pClassObject); - -DECLARE_NO_REGISTRY() -DECLARE_NOT_AGGREGATABLE(WMIObjectSink) -DECLARE_PROTECT_FINAL_CONSTRUCT() - -BEGIN_COM_MAP(WMIObjectSink) - COM_INTERFACE_ENTRY(IWbemObjectSink) -END_COM_MAP() - -private: - void FlushObjectsCache(JNIEnv* pJavaEnv); -private: - WMIService* pService; - jobject javaSinkObject; - - std::vector< CComPtr > objectsCache; - //JavaVM* pJavaVM; - //JNIEnv* pThreadEnv; - //DWORD hThread; - -}; - - -#endif \ No newline at end of file diff --git a/modules/org.jkiss.wmi/src/native/WMIService.cpp b/modules/org.jkiss.wmi/src/native/WMIService.cpp deleted file mode 100644 index 5b509da8b8..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIService.cpp +++ /dev/null @@ -1,424 +0,0 @@ -// WMISensor.cpp : Defines the entry point for the DLL application. -// - -#include "stdafx.h" -#include "WMIService.h" -#include "WMIObject.h" -#include "WMIObjectSink.h" -#include "WMIUtils.h" - -#define FIELD_NAME_SERVICE_HANDLE ("serviceHandle") - -class WMIThreadInfo { -public: - DWORD nThreadId; - JNIEnv* pThreadEnv; - ObjectSinkVector sinks; -}; - -typedef std::vector< WMIThreadInfo* > ThreadInfoVector; - -static CComCriticalSection csSinkThreads; -JavaVM* WMIService::pJavaVM = NULL; -//static ThreadInfoVector threadInfos; - -WMIService::WMIService(JNIEnv* pJavaEnv, jobject javaObject) -{ - serviceJavaObject = pJavaEnv->NewGlobalRef(javaObject); - if (!pJavaEnv->ExceptionCheck()) { - pJavaEnv->SetLongField(serviceJavaObject, JNIMetaData::GetMetaData(pJavaEnv).wmiServiceHandleField, (jlong)this); - } - - { - CComCritSecLock guard(csSinkThreads); - if (pJavaVM == NULL) { - pJavaEnv->GetJavaVM(&pJavaVM); - _ASSERT(pJavaVM != NULL); - } - - } -} - -WMIService::~WMIService() -{ -} - -WMIService* WMIService::GetFromObject(JNIEnv* pJavaEnv, jobject javaObject) -{ - jclass objectClass = pJavaEnv->GetObjectClass(javaObject); - jfieldID fid = pJavaEnv->GetFieldID(objectClass, "serviceHandle", "J"); - DeleteLocalRef(pJavaEnv, objectClass); - _ASSERT(fid != NULL); - if (fid == NULL) { - return NULL; - } - return (WMIService*)pJavaEnv->GetLongField(javaObject, fid); -} -/* -void WMIService::WriteLog(JNIEnv* pLocalEnv, LogType logType, LPCWSTR wcMessage, HRESULT hr) -{ -#ifdef DEBUG - _RPTW1(_CRT_WARN, L"%s\n", wcMessage); -#endif - - // Get log field - const char* cLogMethodName = "debug"; - switch (logType) { - case LT_TRACE: cLogMethodName = "trace"; break; - case LT_DEBUG: cLogMethodName = "debug"; break; - case LT_INFO: cLogMethodName = "info"; break; - case LT_ERROR: cLogMethodName = "error"; break; - case LT_FATAL: cLogMethodName = "fatal"; break; - default: - // Unsuported log type - return; - } - - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pLocalEnv); - jobject logObject = pLocalEnv->GetObjectField(serviceJavaObject, jniMeta.wmiServiceLogField); - _ASSERT(logObject != NULL); - if (logObject != NULL) { - // Get log method - jclass logClass = pLocalEnv->GetObjectClass(logObject); - jmethodID logMethodID = pLocalEnv->GetMethodID(logClass, cLogMethodName, "(Ljava/lang/Object;)V"); - DeleteLocalRef(pLocalEnv, logClass); - _ASSERT(logMethodID != NULL); - if (logMethodID != NULL) { - CComBSTR errorMessage; - if (FAILED(hr)) { - FormatErrorMessage(wcMessage, hr, &errorMessage); - wcMessage = errorMessage; - } - jstring jMessage = MakeJavaString(pLocalEnv, wcMessage); - pLocalEnv->CallVoidMethod(logObject, logMethodID, jMessage); - DeleteLocalRef(pLocalEnv, jMessage); - } - DeleteLocalRef(pLocalEnv, logObject); - } - - // Remove any exceptions occured in this method - if (pLocalEnv->ExceptionCheck()) { - pLocalEnv->ExceptionClear(); - } -} -*/ -/* - * Class: com_symantec_cas_ucf_sensors_wmi_service_WMIService - * Method: connect - * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - */ -void WMIService::Connect( - JNIEnv* pJavaEnv, - LPWSTR domain, - LPWSTR host, - LPWSTR user, - LPWSTR password, - LPWSTR locale, - LPWSTR resource) -{ - if (this->ptrWbemServices != NULL) { - THROW_COMMON_EXCEPTION(L"WMI Locator was already initialized"); - return; - } - - // Step 3: --------------------------------------------------- - // Obtain the initial locator to WMI ------------------------- - - CComPtr ptrWbemLocator; - HRESULT hres = CoCreateInstance( - //CLSID_WbemAdministrativeLocator, - CLSID_WbemLocator, - 0, - CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, - IID_IWbemLocator, - (LPVOID *) &ptrWbemLocator); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Failed to create IWbemLocator object", hres); - return; - } - - // Connect to server - CComBSTR resourceURI; - if (resource != NULL) { - resourceURI.Append(L"\\\\"); - if (host != NULL) { - resourceURI.Append(host); - } else { - resourceURI.Append(L"."); - } - if (resource[0] != '\\') { - resourceURI.Append(L"\\"); - } - resourceURI.Append(resource); - } - CComBSTR resourceDomain; - if (domain != NULL) { - resourceDomain.Append(L"NTLMDOMAIN:"); - resourceDomain.Append(domain); - } - hres = ptrWbemLocator->ConnectServer( - resourceURI, - user, // User name - password, // User password - locale == NULL ? L"MS_409" : locale, // Locale - NULL, // Security flags - resourceDomain, // Authority - 0, // Context object - &ptrWbemServices // IWbemServices proxy - ); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Failed to connect to WMI Service", hres); - return; - } - - // Set security levels on a WMI connection ------------------ - hres = CoSetProxyBlanket( - ptrWbemServices, // Indicates the proxy to set - RPC_C_AUTHN_WINNT, // RPC_C_AUTHN_xxx - RPC_C_AUTHZ_NONE, // RPC_C_AUTHZ_xxx - NULL, // Server principal name - RPC_C_AUTHN_LEVEL_CALL, // RPC_C_AUTHN_LEVEL_xxx - RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx - NULL, // client identity - EOAC_NONE // proxy capabilities - ); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't set proxy blanket", hres); - return; - } - - //WriteLog(pJavaEnv, LT_DEBUG, bstr_t("WMI Service connected to ") + (LPCWSTR)resource); -} - -void WMIService::Release(JNIEnv* pJavaEnv) -{ - ptrWbemServices = NULL; - //WriteLog(pJavaEnv, LT_DEBUG, L"WMI Service closed"); - - if (serviceJavaObject != NULL) { - pJavaEnv->SetLongField(serviceJavaObject, JNIMetaData::GetMetaData(pJavaEnv).wmiServiceHandleField, 0); - pJavaEnv->DeleteGlobalRef(serviceJavaObject); - serviceJavaObject = NULL; - } -} - - -jobject WMIService::OpenNamespace(JNIEnv* pJavaEnv, LPWSTR nsName, LONG lFlags) -{ - CComPtr ptrNamespace; - HRESULT hres = ptrWbemServices->OpenNamespace(nsName, lFlags, NULL, &ptrNamespace, NULL); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't open namespace", hres); - return NULL; - } - hres = CoSetProxyBlanket( - ptrNamespace, // Indicates the proxy to set - RPC_C_AUTHN_WINNT, // RPC_C_AUTHN_xxx - RPC_C_AUTHZ_NONE, // RPC_C_AUTHZ_xxx - NULL, // Server principal name - RPC_C_AUTHN_LEVEL_CALL, // RPC_C_AUTHN_LEVEL_xxx - RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx - NULL, // client identity - EOAC_NONE // proxy capabilities - ); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't set proxy blanket for opened namespace", hres); - return NULL; - } - - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - - jobject newServiceObject = pJavaEnv->NewObject(jniMeta.wmiServiceClass, jniMeta.wmiServiceConstructor); - if (pJavaEnv->ExceptionCheck()) { - return NULL; - } - WMIService* pServiceHandler = new WMIService(pJavaEnv, newServiceObject); - pServiceHandler->ptrWbemServices = ptrNamespace; - - //WriteLog(pJavaEnv, LT_DEBUG, bstr_t("Connected to WMI namespace ") + nsName); - - return newServiceObject; -} - -void WMIService::MakeObjectSink(JNIEnv* pJavaEnv, jobject javaSinkObject, IWbemObjectSink** ppSink) -{ - CComPtr pSink = new CComObject(); - pSink->InitSink(this, pJavaEnv, javaSinkObject); - - CComPtr pSecuredSink; - - // Make unsecured appartments for sink - { - CComPtr pUnsecApp; - HRESULT hr = CoCreateInstance(CLSID_UnsecuredApartment, NULL, - CLSCTX_LOCAL_SERVER, IID_IUnsecuredApartment, - (void**)&pUnsecApp); - if (pUnsecApp != NULL) { - CComPtr pStubUnk; - pUnsecApp->CreateObjectStub( - pSink, - &pStubUnk); - if (pStubUnk != NULL) { - pStubUnk.QueryInterface(&pSecuredSink); - if (pSecuredSink != NULL) { - //this->WriteLog(pJavaEnv, LT_DEBUG, L"Using unsecured appartments for async queries"); - } - } - } - } - - //IEnumWbemClassObject* pEnumerator = NULL; - if (pSecuredSink != NULL) { - *ppSink = pSecuredSink.Detach(); - } else { - *ppSink = pSink.Detach(); - } - - sinkList.push_back(pSink); -} - -void WMIService::ExecuteQueryAsync(JNIEnv* pJavaEnv, LPWSTR queryString, jobject javaSinkObject, LONG lFlags) -{ - if (queryString == NULL) { - THROW_COMMON_EXCEPTION(L"Empty query specified"); - return; - } - if (ptrWbemServices == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return; - } - - CComPtr pActiveSink; - MakeObjectSink(pJavaEnv, javaSinkObject, &pActiveSink); - - // Use the IWbemServices pointer to make requests of WMI ---- - //this->WriteLog(pJavaEnv, LT_DEBUG, bstr_t(L"Async WQL: ") + queryString); - lFlags |= WBEM_FLAG_DIRECT_READ; - //if (sendStatus) lFlags |= WBEM_FLAG_SEND_STATUS; - - HRESULT hres = ptrWbemServices->ExecQueryAsync( - L"WQL", - queryString, - lFlags, - NULL, - pActiveSink); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't execute query", hres); - return; - } -} - -void WMIService::EnumClasses(JNIEnv* pJavaEnv, LPWSTR baseClass, jobject javaSinkObject, LONG lFlags) -{ - if (ptrWbemServices == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return; - } - - CComPtr pActiveSink; - MakeObjectSink(pJavaEnv, javaSinkObject, &pActiveSink); - - HRESULT hres = ptrWbemServices->CreateClassEnumAsync( - baseClass, - lFlags, - NULL, - pActiveSink); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't create classes enumerator", hres); - return; - } -} - -void WMIService::EnumInstances(JNIEnv* pJavaEnv, LPWSTR className, jobject javaSinkObject, LONG lFlags) -{ - if (ptrWbemServices == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return; - } - - CComPtr pActiveSink; - MakeObjectSink(pJavaEnv, javaSinkObject, &pActiveSink); - - HRESULT hres = ptrWbemServices->CreateInstanceEnumAsync( - className, - lFlags, - NULL, - pActiveSink); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Can't create classes enumerator", hres); - return; - } -} - -void WMIService::CancelAsyncOperation(JNIEnv* pJavaEnv, jobject javaSinkObject) -{ - _ASSERT(javaSinkObject != NULL); - if (javaSinkObject == NULL) { - THROW_COMMON_EXCEPTION(L"NULL sink object specified"); - return; - } - if (ptrWbemServices == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return; - } - //WriteLog(pJavaEnv, LT_DEBUG, L"Cancel async call"); - - WMIObjectSink* pSink = NULL; - for (ObjectSinkVector::iterator i = sinkList.begin(); i != sinkList.end(); i++) { - jboolean bEquals = pJavaEnv->CallBooleanMethod( - javaSinkObject, - JNIMetaData::GetMetaData(pJavaEnv).javaLangObjectEqualsMethod, - (*i)->GetJavaSinkObject()); - if (bEquals == JNI_TRUE) { - pSink = (*i); - } - } - if (pSink == NULL) { - THROW_COMMON_EXCEPTION(L"Can't find internal sink for specified object"); - return; - } - - HRESULT hres = ptrWbemServices->CancelAsyncCall(pSink); - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"`Can't cancel async call", hres); - return; - } -} - -bool WMIService::RemoveObjectSink(JNIEnv* pJavaEnv, WMIObjectSink* pSink) -{ - ObjectSinkVector::iterator i = std::find(sinkList.begin(), sinkList.end(), pSink); - if (i != sinkList.end()) { - sinkList.erase(i); - return true; - } - return false; -} - -jobject WMIService::MakeWMIObject(JNIEnv* pJavaEnv, IWbemClassObject *pClassObject) -{ - // Create instance - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - jobject pWmiObject = pJavaEnv->NewObject(jniMeta.wmiObjectClass, jniMeta.wmiObjectConstructor); - if (pWmiObject == NULL) { - return NULL; - } - WMIObject* pObject = new WMIObject(pJavaEnv, pWmiObject, pClassObject); - - if (pJavaEnv->ExceptionCheck()) { - DeleteLocalRef(pJavaEnv, pWmiObject); - return NULL; - } else { - return pWmiObject; - } -} - -void WMIService::InitStaticState() -{ - csSinkThreads.Init(); -} - -void WMIService::TermStaticState() -{ - csSinkThreads.Term(); -} diff --git a/modules/org.jkiss.wmi/src/native/WMIService.h b/modules/org.jkiss.wmi/src/native/WMIService.h deleted file mode 100644 index adc55ab832..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIService.h +++ /dev/null @@ -1,73 +0,0 @@ -#include - -#ifndef _WMI_Service -#define _WMI_Service - -#include -#include "JNIMetaData.h" - - -enum LogType { - LT_TRACE, - LT_DEBUG, - LT_INFO, - LT_WARN, - LT_ERROR, - LT_FATAL, -}; - -class WMIObjectSink; -typedef std::vector< CComPtr > ObjectSinkVector; - - -class WMIService { -public: - WMIService(JNIEnv* pJavaEnv, jobject javaObject); - ~WMIService(); - - void Release(JNIEnv* pJavaEnv); - - void Connect( - JNIEnv* pJavaEnv, - LPWSTR domain, - LPWSTR host, - LPWSTR user, - LPWSTR password, - LPWSTR locale, - LPWSTR resource); - - //jobjectArray ExecuteQuery(JNIEnv* pJavaEnv, LPWSTR query, bool sync); - jobject OpenNamespace(JNIEnv* pJavaEnv, LPWSTR nsName, LONG lFlags); - void ExecuteQueryAsync(JNIEnv* pJavaEnv, LPWSTR query, jobject javaSinkObject, LONG lFlags); - void EnumClasses(JNIEnv* pJavaEnv, LPWSTR superClass, jobject javaSinkObject, LONG lFlags); - void EnumInstances(JNIEnv* pJavaEnv, LPWSTR className, jobject javaSinkObject, LONG lFlags); - void CancelAsyncOperation(JNIEnv* pJavaEnv, jobject javaSinkObject); - - //void WriteLog(JNIEnv* pLocalEnv, LogType logType, LPCWSTR wcMessage, HRESULT hr = S_OK); - - static WMIService* GetFromObject(JNIEnv* pJavaEnv, jobject javaObject); - -public: - static jobject MakeWMIObject (JNIEnv* pJavaEnv, IWbemClassObject *pClassObject); - bool RemoveObjectSink(JNIEnv* pJavaEnv, WMIObjectSink* pSink); - -private: - void MakeObjectSink(JNIEnv* pJavaEnv, jobject javaSinkObject, IWbemObjectSink** ppSink); - -private: - // Private vars - jobject serviceJavaObject; - - //CComPtr ptrWbemLocator; - CComPtr ptrWbemServices; - - ObjectSinkVector sinkList; - static JavaVM* pJavaVM; - -public: - static JavaVM* GetJavaVM() { return pJavaVM; } - static void InitStaticState(); - static void TermStaticState(); -}; - -#endif diff --git a/modules/org.jkiss.wmi/src/native/WMIService.sln b/modules/org.jkiss.wmi/src/native/WMIService.sln deleted file mode 100644 index e0e5f2ec9d..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIService.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WMIService", "WMIService.vcproj", "{00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}.Debug|Win32.ActiveCfg = Debug|Win32 - {00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}.Debug|Win32.Build.0 = Debug|Win32 - {00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}.Debug|x64.ActiveCfg = Debug|x64 - {00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}.Debug|x64.Build.0 = Debug|x64 - {00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}.Release|Win32.ActiveCfg = Release|Win32 - {00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}.Release|Win32.Build.0 = Release|Win32 - {00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}.Release|x64.ActiveCfg = Release|x64 - {00A00D3E-4A58-45C1-91FD-D9ECB48D52F7}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/modules/org.jkiss.wmi/src/native/WMIService.vcproj b/modules/org.jkiss.wmi/src/native/WMIService.vcproj deleted file mode 100644 index 8e7265a9bd..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIService.vcproj +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/org.jkiss.wmi/src/native/WMIServiceJNI.cpp b/modules/org.jkiss.wmi/src/native/WMIServiceJNI.cpp deleted file mode 100644 index 4e10fd528d..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIServiceJNI.cpp +++ /dev/null @@ -1,205 +0,0 @@ -// WMISensor.cpp : Defines the entry point for the DLL application. -// - -#include "stdafx.h" -#include "WMIServiceJNI.h" -#include "WMIService.h" -#include "WMIUtils.h" - - -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: connect - * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - */ -JNIEXPORT jobject JNICALL Java_org_jkiss_wmi_service_WMIService_connect( - JNIEnv* pJavaEnv, - jclass serviceClass, - jstring domain, - jstring host, - jstring user, - jstring password, - jstring locale, - jstring resource) -{ - // Init COM for current thread - if (!WMIInitializeThread(pJavaEnv)) return NULL; - - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - jobject newServiceObject = pJavaEnv->NewObject(jniMeta.wmiServiceClass, jniMeta.wmiServiceConstructor); - if (pJavaEnv->ExceptionCheck()) { - return NULL; - } - //pJavaEnv->SetObjectField(newServiceObject, jniMeta.wmiServiceLogField, logObject); - - WMIService* pService = new WMIService(pJavaEnv, newServiceObject); - - CComBSTR bstrDomain, bstrHost, bstrUser, bstrPassword, bstrLocale, bstrResource; - ::GetJavaString(pJavaEnv, domain, &bstrDomain); - ::GetJavaString(pJavaEnv, host, &bstrHost); - ::GetJavaString(pJavaEnv, user, &bstrUser); - ::GetJavaString(pJavaEnv, password, &bstrPassword); - ::GetJavaString(pJavaEnv, locale, &bstrLocale); - ::GetJavaString(pJavaEnv, resource, &bstrResource); - - pService->Connect(pJavaEnv, bstrDomain, bstrHost, bstrUser, bstrPassword, bstrLocale, bstrResource); - if (pJavaEnv->ExceptionCheck()) { - DeleteLocalRef(pJavaEnv, newServiceObject); - return NULL; - } - - return newServiceObject; -} - -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: disconnect - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_close - (JNIEnv * pJavaEnv, jobject object) -{ - if (!WMIInitializeThread(pJavaEnv)) return; - - WMIService* pService = WMIService::GetFromObject(pJavaEnv, object); - if (pService != NULL) { - pService->Release(pJavaEnv); - delete pService; - } -} - -JNIEXPORT jobject JNICALL Java_org_jkiss_wmi_service_WMIService_openNamespace - (JNIEnv * pJavaEnv, jobject object, jstring nsName) -{ - // Init COM for current thread - if (!WMIInitializeThread(pJavaEnv)) return NULL; - - WMIService* pService = WMIService::GetFromObject(pJavaEnv, object); - if (pService == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return NULL; - } - - CComBSTR bstrNS; - ::GetJavaString(pJavaEnv, nsName, &bstrNS); - return pService->OpenNamespace(pJavaEnv, bstrNS, 0); -} -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: executeQuery - * -JNIEXPORT jobjectArray JNICALL Java_org_jkiss_wmi_service_WMIService_executeQuery( - JNIEnv *pJavaEnv, - jobject object, - jstring query, - jboolean bSync) -{ - WMIService* pService = WMIService::GetFromObject(pJavaEnv, object); - if (pService == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return NULL; - } - if (query == NULL) { - THROW_COMMON_EXCEPTION(L"NULL query specified"); - return NULL; - } - CComBSTR bstrQuery; - ::GetJavaString(pJavaEnv, query, &bstrQuery); - return pService->ExecuteQuery(pJavaEnv, bstrQuery, bSync == JNI_TRUE); -}*/ - -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_executeQuery( - JNIEnv *pJavaEnv, - jobject object, - jstring query, - jobject sinkObject, - jlong lFlags) -{ - // Init COM for current thread - if (!WMIInitializeThread(pJavaEnv)) return; - - WMIService* pService = WMIService::GetFromObject(pJavaEnv, object); - if (pService == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return; - } - if (query == NULL) { - THROW_COMMON_EXCEPTION(L"NULL query specified"); - return; - } - if (sinkObject == NULL) { - THROW_COMMON_EXCEPTION(L"NULL sink object specified"); - return; - } - CComBSTR bstrQuery; - ::GetJavaString(pJavaEnv, query, &bstrQuery); - pService->ExecuteQueryAsync(pJavaEnv, bstrQuery, sinkObject, (LONG)lFlags); -} - -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_enumClasses( - JNIEnv *pJavaEnv, - jobject object, - jstring superClass, - jobject sinkObject, - jlong lFlags) -{ - // Init COM for current thread - if (!WMIInitializeThread(pJavaEnv)) return; - - WMIService* pService = WMIService::GetFromObject(pJavaEnv, object); - if (pService == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return; - } - if (sinkObject == NULL) { - THROW_COMMON_EXCEPTION(L"NULL sink object specified"); - return; - } - CComBSTR bstrSuperClass; - ::GetJavaString(pJavaEnv, superClass, &bstrSuperClass); - pService->EnumClasses(pJavaEnv, bstrSuperClass, sinkObject, (LONG)lFlags); -} - -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_enumInstances( - JNIEnv *pJavaEnv, - jobject object, - jstring className, - jobject sinkObject, - jlong lFlags) -{ - // Init COM for current thread - if (!WMIInitializeThread(pJavaEnv)) return; - - WMIService* pService = WMIService::GetFromObject(pJavaEnv, object); - if (pService == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return; - } - if (sinkObject == NULL) { - THROW_COMMON_EXCEPTION(L"NULL sink object specified"); - return; - } - CComBSTR bstrClassName; - ::GetJavaString(pJavaEnv, className, &bstrClassName); - pService->EnumInstances(pJavaEnv, bstrClassName, sinkObject, (LONG)lFlags); -} - -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_cancelSink( - JNIEnv *pJavaEnv, - jobject object, - jobject sinkObject) -{ - // Init COM for current thread - if (!WMIInitializeThread(pJavaEnv)) return; - - WMIService* pService = WMIService::GetFromObject(pJavaEnv, object); - if (pService == NULL) { - THROW_COMMON_EXCEPTION(L"WMI Service is not initialized"); - return; - } - if (sinkObject == NULL) { - THROW_COMMON_EXCEPTION(L"NULL sink object specified"); - return; - } - pService->CancelAsyncOperation(pJavaEnv, sinkObject); -} diff --git a/modules/org.jkiss.wmi/src/native/WMIServiceJNI.h b/modules/org.jkiss.wmi/src/native/WMIServiceJNI.h deleted file mode 100644 index e04b183a46..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIServiceJNI.h +++ /dev/null @@ -1,69 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class org_jkiss_wmi_service_WMIService */ - -#ifndef _Included_org_jkiss_wmi_service_WMIService -#define _Included_org_jkiss_wmi_service_WMIService -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: connect - * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jkiss/wmi/service/WMIService; - */ -JNIEXPORT jobject JNICALL Java_org_jkiss_wmi_service_WMIService_connect - (JNIEnv *, jclass, jstring, jstring, jstring, jstring, jstring, jstring); - -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: openNamespace - * Signature: (Ljava/lang/String;)Lorg/jkiss/wmi/service/WMIService; - */ -JNIEXPORT jobject JNICALL Java_org_jkiss_wmi_service_WMIService_openNamespace - (JNIEnv *, jobject, jstring); - -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: executeQuery - * Signature: (Ljava/lang/String;Lorg/jkiss/wmi/service/WMIObjectSink;J)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_executeQuery - (JNIEnv *, jobject, jstring, jobject, jlong); - -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: enumClasses - * Signature: (Ljava/lang/String;Lorg/jkiss/wmi/service/WMIObjectSink;J)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_enumClasses - (JNIEnv *, jobject, jstring, jobject, jlong); - -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: enumInstances - * Signature: (Ljava/lang/String;Lorg/jkiss/wmi/service/WMIObjectSink;J)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_enumInstances - (JNIEnv *, jobject, jstring, jobject, jlong); - -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: cancelSink - * Signature: (Lorg/jkiss/wmi/service/WMIObjectSink;)V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_cancelSink - (JNIEnv *, jobject, jobject); - -/* - * Class: org_jkiss_wmi_service_WMIService - * Method: close - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_jkiss_wmi_service_WMIService_close - (JNIEnv *, jobject); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/modules/org.jkiss.wmi/src/native/WMIServiceModule.cpp b/modules/org.jkiss.wmi/src/native/WMIServiceModule.cpp deleted file mode 100644 index b62877e08f..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIServiceModule.cpp +++ /dev/null @@ -1,65 +0,0 @@ -// WMISensor.cpp : Defines the entry point for the DLL application. -// - -#include "stdafx.h" -#include "WMIUtils.h" -#include "WMIService.h" - -CComModule _Module; - -BEGIN_OBJECT_MAP(ObjectMap) -END_OBJECT_MAP() - -BOOL WINAPI DllMain( - HINSTANCE hinstDLL, - DWORD fdwReason, - LPVOID lpvReserved) -{ - if (fdwReason == DLL_PROCESS_ATTACH) { - HRESULT hres = ::CoInitializeEx(0, COINIT_MULTITHREADED); - if (FAILED(hres)) - { - ::printf("Failed to initialize COM library. Error code = %d", hres); - return FALSE; - } - hres = ::CoInitializeSecurity( - NULL, - -1, // COM authentication - NULL, // Authentication services - NULL, // Reserved - RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication - RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation - NULL, // Authentication info - EOAC_NONE, // Additional capabilities - NULL // Reserved - ); - if (FAILED(hres) && hres != RPC_E_TOO_LATE) { - ::printf("Failed to initialize security"); - return FALSE; - } - - _Module.Init(ObjectMap, hinstDLL); - hWMIUtils = ::LoadLibrary(L"wmiutils.dll"); - hWbemCommon = ::LoadLibrary(L"wbemcomn.dll"); - // Init WMI service state - WMIService::InitStaticState(); - } else if (fdwReason == DLL_PROCESS_DETACH) { - // Term WMI service state - WMIService::TermStaticState(); - //JNIMetaData::Destroy(); - - if (hWMIUtils != NULL) { - ::FreeLibrary(hWMIUtils); - hWMIUtils = NULL; - } - if (hWbemCommon != NULL) { - ::FreeLibrary(hWbemCommon); - hWbemCommon = NULL; - } - _Module.Term(); - ::CoUninitialize(); - } - - return TRUE; -} - diff --git a/modules/org.jkiss.wmi/src/native/WMIUtils.cpp b/modules/org.jkiss.wmi/src/native/WMIUtils.cpp deleted file mode 100644 index bd72aee685..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIUtils.cpp +++ /dev/null @@ -1,430 +0,0 @@ -// WMISensor.cpp : Defines the entry point for the DLL application. -// - -#include "stdafx.h" -#include "WMIUtils.h" -#include "JNIMetaData.h" - -HMODULE hWMIUtils; -HMODULE hWbemCommon; - -bool WMIInitializeThread(JNIEnv* pJavaEnv) -{ - HRESULT hres = ::CoInitializeEx(0, COINIT_MULTITHREADED); -// if (hres == RPC_E_CHANGED_MODE) { -// hres = ::CoInitialize(0); -// } - if (FAILED(hres)) { - THROW_COMMON_ERROR(L"Failed to initialize COM library", hres); - return false; - } -// if (hres == S_FALSE) { -// // Already initialized -// return true; -// } - - hres = ::CoInitializeSecurity( - NULL, - -1, // COM authentication - NULL, // Authentication services - NULL, // Reserved - RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication - RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation - NULL, // Authentication info - EOAC_NONE, // Additional capabilities - NULL // Reserved - ); - if (FAILED(hres) && hres != RPC_E_TOO_LATE) { - THROW_COMMON_ERROR(L"Failed to initialize security", hres); - return false; - } - return true; -} - - -void WMIUnInitializeThread() -{ - ::CoUninitialize(); -} - - - -void DeleteLocalRef(JNIEnv *env, jobject object) -{ - if (object != NULL) { - env->DeleteLocalRef(object); - } -} - -jstring MakeJavaString(JNIEnv *env, LPCWSTR string) -{ - return env->NewString((const jchar*)string, (jsize)::wcslen(string)); -} - -void FormatErrorMessage(LPCWSTR message, HRESULT error, BSTR* pBuffer) -{ - if(error == NO_ERROR) { - error = GetLastError(); - } - _bstr_t finalMessage = message; - finalMessage += L" - "; - { - TCHAR systemMessage[1024]; - // Get system message for last error code - DWORD count = ::FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM, - NULL, - error, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - systemMessage, - sizeof(systemMessage) / sizeof(TCHAR) - 1, - NULL - ); - if (count <= 0) { - // Try to get WMI error - if (hWMIUtils != NULL || hWbemCommon != NULL) { - count = ::FormatMessage( - FORMAT_MESSAGE_FROM_HMODULE, - hWMIUtils != NULL ? hWMIUtils : hWbemCommon, - error, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - systemMessage, - sizeof(systemMessage) / sizeof(TCHAR) - 1, - NULL - ); - } - } - if (count > 0) { - finalMessage += systemMessage; - } else { - finalMessage += _T("Unknown Error"); - } - } - - { - char buffer[32]; - ::_ltoa_s(error, buffer, 16); - - finalMessage += _T(" [0x"); - finalMessage += buffer; - finalMessage += _T("]"); - } - for (wchar_t* pos = finalMessage; *pos != NULL; pos++) { - if (*pos == '\r' || *pos == '\n') { - *pos = ' '; - } - } - *pBuffer = finalMessage.Detach(); -} - -// Get last API error -void ThrowJavaException(JNIEnv *env, LPCSTR exceptionName, LPCWSTR message, HRESULT error) { - - CComBSTR bstrMessage; - FormatErrorMessage(message, error, &bstrMessage); - ThrowJavaException(env, exceptionName, bstrMessage); -} - -void ThrowJavaException(JNIEnv *env, LPCSTR exceptionName, LPCWSTR message) { - jclass exceptionClass = env->FindClass(exceptionName); - _ASSERT(exceptionClass != NULL); - if (exceptionClass != NULL) { - jmethodID cid = env->GetMethodID(exceptionClass, "", "(Ljava/lang/String;)V"); - if (cid != NULL) { - jthrowable exceptionObject = (jthrowable)env->NewObject(exceptionClass, cid, MakeJavaString(env, message)); - env->Throw(exceptionObject); - } - DeleteLocalRef(env, exceptionClass); - } -} - -void GetJavaString(JNIEnv *env, jstring string, BSTR* result) -{ - if (string == NULL) { - *result = NULL; - return; - } - const jchar *stringBytes = env->GetStringChars(string, NULL); - *result = CComBSTR(env->GetStringLength(string), (LPCWSTR)stringBytes).Detach(); - env->ReleaseStringChars(string, stringBytes); -} - -jlong ConvertCIMTimeToJavaTime(BSTR cimTime) -{ - struct tm resultTime; - int microSecs = 0; - int tz = 0; - int result = ::swscanf_s(cimTime, L"%04d%02d%02d%02d%02d%02d.%06d%d", - &resultTime.tm_year, - &resultTime.tm_mon, - &resultTime.tm_mday, - &resultTime.tm_hour, - &resultTime.tm_min, - &resultTime.tm_sec, - µSecs, - &tz); - if (result != 8) { - // Invalid CIM time - return 0; - } - resultTime.tm_year -= 1900; - resultTime.tm_mon--; - time_t timeInSeconds = mktime(&resultTime); - return timeInSeconds * 1000 + (microSecs / 1000); -} - -LONG GetSafeArraySize(SAFEARRAY* pSafeArray) -{ - long lBound, uBound; - ::SafeArrayGetUBound(pSafeArray, 1, &uBound); - ::SafeArrayGetLBound(pSafeArray, 1, &lBound); - return uBound >= lBound ? uBound - lBound + 1: 0; -} - -jlong GetCurrentJavaTime() -{ - FILETIME fileTime; - ::GetSystemTimeAsFileTime(&fileTime); - jlong javaTime = ((jlong)fileTime.dwHighDateTime << 32) + fileTime.dwLowDateTime; - return javaTime / 10000; -} - -jobjectArray MakeJavaArrayFromVector(JNIEnv* pJavaEnv, jclass clazz, const JavaObjectVector& objects) -{ - jobjectArray result = pJavaEnv->NewObjectArray((jsize)objects.size(), clazz, NULL); - for (size_t index = 0; index < objects.size(); index++) { - pJavaEnv->SetObjectArrayElement(result, (jsize)index, objects[index]); - DeleteLocalRef(pJavaEnv, objects[index]); - } - return result; -} - -jobject MakeJavaFromVariant(JNIEnv* pJavaEnv, CComVariant& var, CIMTYPE cimType) -{ - JNIMetaData& jniMeta = JNIMetaData::GetMetaData(pJavaEnv); - JavaType javaType; - - VARTYPE varType = var.vt; - bool isArray = (varType & VT_ARRAY) != 0; - if (isArray) { - varType &= ~VT_ARRAY; - } - - switch (varType) { - case VT_EMPTY: - case VT_NULL: - case VT_VOID: - // Null value - return NULL; - - case VT_I1: - case VT_UI1: - javaType = JT_BYTE; - break; - case VT_I2: - case VT_UI2: - javaType = JT_SHORT; - break; - case VT_I4: - case VT_UI4: - case VT_INT: - case VT_UINT: - javaType = JT_INT; - break; - case VT_I8: - case VT_UI8: - javaType = JT_LONG; - break; - case VT_R4: - javaType = JT_FLOAT; - break; - case VT_R8: - javaType = JT_DOUBLE; - break; - case VT_DATE: - javaType = JT_DATE; - break; - case VT_BOOL: - javaType = JT_BOOL; - break; - case VT_BSTR: - javaType = JT_STRING; - break; - - case VT_ARRAY: - case VT_SAFEARRAY: - case VT_DECIMAL: - case VT_VARIANT: - default: - // Unsupported type - THROW_COMMON_EXCEPTION(L"Unsupported VARIANT type"); - return NULL; - } - - if (isArray) { - // Array - // There two kinds of arrays - primitive and object - switch (javaType) { - case JT_BYTE: - return MakeJavaByteArrayFromSafeArray(pJavaEnv, var.parray); - case JT_BOOL: - return MakeJavaBoolArrayFromSafeArray(pJavaEnv, var.parray); - case JT_SHORT: - return MakeJavaShortArrayFromSafeArray(pJavaEnv, var.parray); - case JT_INT: - return MakeJavaIntArrayFromSafeArray(pJavaEnv, var.parray); - case JT_LONG: - return MakeJavaLongArrayFromSafeArray(pJavaEnv, var.parray); - case JT_FLOAT: - return MakeJavaFloatArrayFromSafeArray(pJavaEnv, var.parray); - case JT_DOUBLE: - return MakeJavaDoubleArrayFromSafeArray(pJavaEnv, var.parray); - default: - { - jclass elementClass; - switch (javaType) { - case JT_STRING: elementClass = jniMeta.javaLangStringClass; break; - default: elementClass = jniMeta.javaLangObjectClass; break; - } - return MakeJavaObjectArrayFromSafeVector(pJavaEnv, var.parray, javaType, elementClass); - } - } - } else { - // Single value - switch (javaType) { - case JT_CHAR: - return pJavaEnv->NewObject(jniMeta.javaLangCharClass, jniMeta.javaLangCharConstructor, var.cVal); - case JT_BYTE: - return pJavaEnv->NewObject(jniMeta.javaLangByteClass, jniMeta.javaLangByteConstructor, var.cVal); - case JT_BOOL: - return pJavaEnv->NewObject(jniMeta.javaLangBooleanClass, jniMeta.javaLangBooleanConstructor, var.boolVal == VARIANT_TRUE ? JNI_TRUE : JNI_FALSE); - case JT_SHORT: - return pJavaEnv->NewObject(jniMeta.javaLangShortClass, jniMeta.javaLangShortConstructor, var.iVal); - case JT_INT: - return pJavaEnv->NewObject(jniMeta.javaLangIntegerClass, jniMeta.javaLangIntegerConstructor, var.lVal); - case JT_LONG: - return pJavaEnv->NewObject(jniMeta.javaLangLongClass, jniMeta.javaLangLongConstructor, var.llVal); - case JT_FLOAT: - return pJavaEnv->NewObject(jniMeta.javaLangFloatClass, jniMeta.javaLangFloatConstructor, var.fltVal); - case JT_DOUBLE: - return pJavaEnv->NewObject(jniMeta.javaLangDoubleClass, jniMeta.javaLangDoubleConstructor, var.dblVal); - case JT_DATE: - // TODO: correct date value - return pJavaEnv->NewObject(jniMeta.javaUtilDateClass, jniMeta.javaUtilDateConstructor, (jlong)var.date); - case JT_STRING: - if (cimType == CIM_DATETIME) { - javaType = JT_DATE; - return pJavaEnv->NewObject(jniMeta.javaUtilDateClass, jniMeta.javaUtilDateConstructor, ConvertCIMTimeToJavaTime(var.bstrVal)); - } else { - return MakeJavaString(pJavaEnv, var.bstrVal); - } - default: - // Unsupported type - THROW_COMMON_EXCEPTION(L"Unsupported Java type"); - return NULL; - } - } -} - -jbyteArray MakeJavaByteArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray) -{ - jsize arraySize = ::GetSafeArraySize(pSafeArray); - jbyteArray result = pJavaEnv->NewByteArray(arraySize); - jbyte HUGEP * byteArray; - HRESULT hr = ::SafeArrayAccessData(pSafeArray, (void HUGEP* FAR*)&byteArray); - if (FAILED(hr)) { - THROW_COMMON_ERROR(L"Can't access safe array byte data", hr); - return NULL; - } - pJavaEnv->SetByteArrayRegion(result, 0, arraySize, byteArray); - ::SafeArrayUnaccessData(pSafeArray); - return result; -} - -jbooleanArray MakeJavaBoolArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray) -{ - jsize arraySize = ::GetSafeArraySize(pSafeArray); - jbooleanArray result = pJavaEnv->NewBooleanArray(arraySize); - jboolean HUGEP * boolArray; - HRESULT hr = ::SafeArrayAccessData(pSafeArray, (void HUGEP* FAR*)&boolArray); - if (FAILED(hr)) { - THROW_COMMON_ERROR(L"Can't access safe array bool data", hr); - return NULL; - } - pJavaEnv->SetBooleanArrayRegion(result, 0, arraySize, boolArray); - ::SafeArrayUnaccessData(pSafeArray); - return result; -} - -jshortArray MakeJavaShortArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray) -{ - THROW_COMMON_EXCEPTION(L"Short arrays not implemented"); - return NULL; -} - -jintArray MakeJavaIntArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray) -{ - jsize arraySize = ::GetSafeArraySize(pSafeArray); - jintArray result = pJavaEnv->NewIntArray(arraySize); - jint HUGEP * intArray; - HRESULT hr = ::SafeArrayAccessData(pSafeArray, (void HUGEP* FAR*)&intArray); - if (FAILED(hr)) { - THROW_COMMON_ERROR(L"Can't access safe array int data", hr); - return NULL; - } - pJavaEnv->SetIntArrayRegion(result, 0, arraySize, intArray); - ::SafeArrayUnaccessData(pSafeArray); - return result; -} - -jlongArray MakeJavaLongArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray) -{ - THROW_COMMON_EXCEPTION(L"Long arrays not implemented"); - return NULL; -} - -jfloatArray MakeJavaFloatArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray) -{ - THROW_COMMON_EXCEPTION(L"Float arrays not implemented"); - return NULL; -} - -jdoubleArray MakeJavaDoubleArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray) -{ - THROW_COMMON_EXCEPTION(L"Double arrays not implemented"); - return NULL; -} - -jobjectArray MakeJavaObjectArrayFromSafeVector(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray, JavaType elementType, jclass arrayClass) -{ - jsize arraySize = ::GetSafeArraySize(pSafeArray); - jobjectArray result = pJavaEnv->NewObjectArray(arraySize, arrayClass, NULL); - - if (elementType == JT_STRING) { - BSTR HUGEP * pStrings; - HRESULT hr = ::SafeArrayAccessData(pSafeArray, (void HUGEP* FAR*)&pStrings); - if (FAILED(hr)) { - THROW_COMMON_ERROR(L"Can't access safe array strings data", hr); - return NULL; - } - for (int i = 0; i < arraySize; i++) { - jstring arrString = MakeJavaString(pJavaEnv, pStrings[i]); - pJavaEnv->SetObjectArrayElement(result, i, arrString); - DeleteLocalRef(pJavaEnv, arrString); - } - ::SafeArrayUnaccessData(pSafeArray); - } else { - // Unsupported type - THROW_COMMON_EXCEPTION(L"Unsupported object type of safe array"); - } - - return result; -} - -bstr_t& operator += (bstr_t& str, long arg) -{ - wchar_t buf[20]; - _ltow_s(arg, buf, 20, 10); - str += buf; - return str; -} diff --git a/modules/org.jkiss.wmi/src/native/WMIUtils.h b/modules/org.jkiss.wmi/src/native/WMIUtils.h deleted file mode 100644 index 3b75277354..0000000000 --- a/modules/org.jkiss.wmi/src/native/WMIUtils.h +++ /dev/null @@ -1,63 +0,0 @@ - -#ifndef _WMI_UTILS -#define _WMI_UTILS - -#include - -typedef std::vector JavaObjectVector; - -enum JavaType { - JT_CHAR, - JT_BYTE, - JT_BOOL, - JT_SHORT, - JT_INT, - JT_LONG, - JT_FLOAT, - JT_DOUBLE, - JT_DATE, - JT_STRING, - JT_ARRAY -}; - -extern HMODULE hWMIUtils; -extern HMODULE hWbemCommon; - -bool WMIInitializeThread(JNIEnv* pJavaEnv); -void WMIUnInitializeThread(); - - -void DeleteLocalRef(JNIEnv *env, jobject object); -jstring MakeJavaString(JNIEnv *env, LPCWSTR string); -void FormatErrorMessage(LPCWSTR message, HRESULT error, BSTR* pBuffer); -void ThrowJavaException(JNIEnv *env, LPCSTR exceptionName, LPCWSTR message, HRESULT error); -void ThrowJavaException(JNIEnv *env, LPCSTR exceptionName, LPCWSTR message); -void GetJavaString(JNIEnv *env, jstring string, BSTR* result); -jlong ConvertCIMTimeToJavaTime(BSTR cimTime); -LONG GetSafeArraySize(SAFEARRAY* pSafeArray); -jlong GetCurrentJavaTime(); -jobjectArray MakeJavaArrayFromVector(JNIEnv* pJavaEnv, jclass clazz, const JavaObjectVector& objects); - -jobject MakeJavaFromVariant(JNIEnv* pJavaEnv, CComVariant& var, CIMTYPE cimType = CIM_ILLEGAL); - -jbyteArray MakeJavaByteArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray); -jbooleanArray MakeJavaBoolArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray); -jshortArray MakeJavaShortArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray); -jintArray MakeJavaIntArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray); -jlongArray MakeJavaLongArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray); -jfloatArray MakeJavaFloatArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray); -jdoubleArray MakeJavaDoubleArrayFromSafeArray(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray); -jobjectArray MakeJavaObjectArrayFromSafeVector(JNIEnv* pJavaEnv, SAFEARRAY* pSafeArray, JavaType elementType, jclass arrayClass); - - -#define EXCEPTION_WMI_GENERAL ("org/jkiss/wmi/service/WMIException") - -#define CHECK_JAVA_EXCEPTION() if (pJavaEnv->ExceptionCheck()) return; -#define CHECK_JAVA_EXCEPTION_NULL() if (pJavaEnv->ExceptionCheck()) return NULL; - -#define THROW_COMMON_EXCEPTION(message) ThrowJavaException(pJavaEnv, EXCEPTION_WMI_GENERAL, message) -#define THROW_COMMON_ERROR(message, result) ThrowJavaException(pJavaEnv, EXCEPTION_WMI_GENERAL, message, result) - -bstr_t& operator += (bstr_t& str, long arg); - -#endif diff --git a/modules/org.jkiss.wmi/src/native/gen_headers.cmd b/modules/org.jkiss.wmi/src/native/gen_headers.cmd deleted file mode 100644 index 6313a93f15..0000000000 --- a/modules/org.jkiss.wmi/src/native/gen_headers.cmd +++ /dev/null @@ -1,5 +0,0 @@ -set JAVA_HOME=D:\Java\jdk1.6.0_06 -set PATH=%JAVA_HOME%/bin;%PATH% - -javah -classpath ../../bin;../../../../plugins/org.jkiss.dbeaver.core/bin -o WMIServiceJNI.h org.jkiss.wmi.service.WMIService -javah -classpath ../../bin;../../../../plugins/org.jkiss.dbeaver.core/bin -o WMIObjectJNI.h org.jkiss.wmi.service.WMIObject \ No newline at end of file diff --git a/modules/org.jkiss.wmi/src/native/show_sigs.cmd b/modules/org.jkiss.wmi/src/native/show_sigs.cmd deleted file mode 100644 index ac8e269203..0000000000 --- a/modules/org.jkiss.wmi/src/native/show_sigs.cmd +++ /dev/null @@ -1,4 +0,0 @@ -set JAVA_HOME=D:\Java\jdk1.6.0_06 -set PATH=%JAVA_HOME%/bin;%PATH% - -javap -classpath ../../bin;../../../../plugins/org.jkiss.dbeaver.core/bin -s org.jkiss.wmi.service.WMIService diff --git a/modules/org.jkiss.wmi/src/native/stdafx.cpp b/modules/org.jkiss.wmi/src/native/stdafx.cpp deleted file mode 100644 index dd19502cc9..0000000000 --- a/modules/org.jkiss.wmi/src/native/stdafx.cpp +++ /dev/null @@ -1,3 +0,0 @@ - -#include "stdafx.h" - diff --git a/modules/org.jkiss.wmi/src/native/stdafx.h b/modules/org.jkiss.wmi/src/native/stdafx.h deleted file mode 100644 index f213c0d31a..0000000000 --- a/modules/org.jkiss.wmi/src/native/stdafx.h +++ /dev/null @@ -1,59 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#define _WIN32_DCOM - -// Modify the following defines if you have to target a platform prior to the ones specified below. -// Refer to MSDN for the latest info on corresponding values for different platforms. -#ifndef WINVER // Allow use of features specific to Windows XP or later. -#define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows. -#endif - -#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. -#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. -#endif - -#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later. -#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later. -#endif - -#ifndef _WIN32_IE // Allow use of features specific to IE 6.0 or later. -#define _WIN32_IE 0x0600 // Change this to the appropriate value to target other versions of IE. -#endif - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -// Windows Header Files: -#include - - -#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit - -#include -#include -#include -#include -#include - -#include -//#include -#include -#include - -#include - -#include -# pragma comment(lib, "wbemuuid.lib") -# pragma comment(lib, "credui.lib") -#include -//# pragma comment(lib, "Framedyd.lib") - -#include -#include - -extern CComModule _Module; - -// TODO: reference additional headers your program requires here diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.core.application.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.core.application.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/.project b/nls/bundles/org.jkiss.dbeaver.core.application.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.core.application.nls/.project rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/.project diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.core.application.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.core.application.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_de.properties b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_de.properties similarity index 97% rename from bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_de.properties rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_de.properties index 0f2e5b1437..541c905b8b 100644 --- a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_de.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_de.properties @@ -1,41 +1,41 @@ -# DBeaver - Universal Database Manager -# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) -# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) - -command.org.jkiss.dbeaver.core.object.find.description = Datenbankobjekte suchen -command.org.jkiss.dbeaver.core.object.find.name = Datenkbank suchen - -menu.edit = Bearbeiten -menu.navigate = Navigation - -pref.page.name.binary.editor = Bin\u00E4reditor -pref.page.name.colors.and.fonts = Farben und Schriftart -pref.page.name.confirmations = Best\u00E4tigungen -pref.page.name.connectionTypes = Verbindungstypen -pref.page.name.connections = Verbindungen -pref.page.name.data.formats = Datumsformate -pref.page.name.db.configuration = Datenbank -pref.page.name.db.editors = Editoren -pref.page.name.drivers = Treiber -pref.page.name.entity.editor = Datenbankeditor -pref.page.name.meta = Metadaten -pref.page.name.navigator = Navigation -pref.page.name.query.manager = Abfragemanager -pref.page.name.resources = Ressourcen -pref.page.name.resultset = Ergebnismenge -pref.page.name.resultset.binaries = Bin\u00E4rdaten -pref.page.name.resultset.presentation = Darstellung -pref.page.name.sql.completion = SQL Autovervollst\u00E4ndigen -pref.page.name.sql.editor = SQL-Editor -pref.page.name.sql.execute = SQL Ausf\u00FChrung -pref.page.name.sql.format = SQL Formatierung - -productName = DBeaver - -productSubTitle = Universeller Datenbankmanager - -productTitle = DBeaver - Universeller Datenbankmanager - -view.progress.title = Hintergrundprozesse -view.search.title = Suchen -view.templates.title = Vorlagen +# DBeaver - Universal Database Manager +# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) +# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) + +command.org.jkiss.dbeaver.core.object.find.description = Datenbankobjekte suchen +command.org.jkiss.dbeaver.core.object.find.name = Datenkbank suchen + +menu.edit = Bearbeiten +menu.navigate = Navigation + +pref.page.name.binary.editor = Bin\u00E4reditor +pref.page.name.colors.and.fonts = Farben und Schriftart +pref.page.name.confirmations = Best\u00E4tigungen +pref.page.name.connectionTypes = Verbindungstypen +pref.page.name.connections = Verbindungen +pref.page.name.data.formats = Datumsformate +pref.page.name.db.configuration = Datenbank +pref.page.name.db.editors = Editoren +pref.page.name.drivers = Treiber +pref.page.name.entity.editor = Datenbankeditor +pref.page.name.meta = Metadaten +pref.page.name.navigator = Navigation +pref.page.name.query.manager = Abfragemanager +pref.page.name.resources = Ressourcen +pref.page.name.resultset = Ergebnismenge +pref.page.name.resultset.binaries = Bin\u00E4rdaten +pref.page.name.resultset.presentation = Darstellung +pref.page.name.sql.completion = SQL Autovervollst\u00E4ndigen +pref.page.name.sql.editor = SQL-Editor +pref.page.name.sql.execute = SQL Ausf\u00FChrung +pref.page.name.sql.format = SQL Formatierung + +productName = DBeaver + +productSubTitle = Universeller Datenbankmanager + +productTitle = DBeaver - Universeller Datenbankmanager + +view.progress.title = Hintergrundprozesse +view.search.title = Suchen +view.templates.title = Vorlagen diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_it.properties b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_it.properties similarity index 97% rename from bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_it.properties rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_it.properties index 236a37b1b0..0bef70616e 100644 --- a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_it.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_it.properties @@ -1,19 +1,19 @@ -# Copyright (C) 2012 Roberto Rossi (impiastro@gmail.com) - -pref.page.name.appearance = Aspetto -pref.page.name.binary.editor = Editor Binario -pref.page.name.colors.and.fonts = Colori e Font -pref.page.name.confirmations = Conferme -pref.page.name.data.formats = Formati dei Dati -pref.page.name.db.configuration = Database -pref.page.name.db.editors = Editor -pref.page.name.db.ui = Interfaccia -pref.page.name.drivers = Drivers -pref.page.name.query.manager = Gestore Query -pref.page.name.sql.editor = Editor SQL - -productName = DBeaver - -productSubTitle = Universal Database Manager - -productTitle = DBeaver - Universal Database Manager +# Copyright (C) 2012 Roberto Rossi (impiastro@gmail.com) + +pref.page.name.appearance = Aspetto +pref.page.name.binary.editor = Editor Binario +pref.page.name.colors.and.fonts = Colori e Font +pref.page.name.confirmations = Conferme +pref.page.name.data.formats = Formati dei Dati +pref.page.name.db.configuration = Database +pref.page.name.db.editors = Editor +pref.page.name.db.ui = Interfaccia +pref.page.name.drivers = Drivers +pref.page.name.query.manager = Gestore Query +pref.page.name.sql.editor = Editor SQL + +productName = DBeaver + +productSubTitle = Universal Database Manager + +productTitle = DBeaver - Universal Database Manager diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ko.properties b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ko.properties similarity index 96% rename from bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ko.properties rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ko.properties index 50c952fb65..ce6d76a544 100644 --- a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ko.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ko.properties @@ -1,5 +1,5 @@ - -pref.page.name.confirmations = \uD655\uC778 - -view.search.title = \uAC80\uC0C9 -view.templates.title = \uD15C\uD50C\uB9BF + +pref.page.name.confirmations = \uD655\uC778 + +view.search.title = \uAC80\uC0C9 +view.templates.title = \uD15C\uD50C\uB9BF diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ru.properties index e8126a1e8d..ebc896d007 100644 --- a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ru.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_ru.properties @@ -1,39 +1,39 @@ -# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) -# Copyright (C) 2010-2012 Eugene Fradkin (eugene.fradkin@gmail.com) - -command.org.jkiss.dbeaver.core.object.find.description = \u041D\u0430\u0439\u0442\u0438 \u043E\u0431\u044A\u0435\u043A\u0442 -command.org.jkiss.dbeaver.core.object.find.name = \u041D\u0430\u0439\u0442\u0438 - -menu.edit = \u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 -menu.navigate = \u041D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F - -pref.page.name.appearance = \u0412\u043D\u0435\u0448\u043D\u0438\u0439 \u0432\u0438\u0434 -pref.page.name.binary.editor = \u0414\u0432\u043E\u0438\u0447\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 -pref.page.name.colors.and.fonts = \u0426\u0432\u0435\u0442\u0430 \u0438 \u0448\u0440\u0438\u0444\u0442\u044B -pref.page.name.confirmations = \u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F -pref.page.name.connectionTypes = \u0422\u0438\u043F\u044B \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0439 -pref.page.name.data.formats = \u0424\u043E\u0440\u043C\u0430\u0442\u044B \u0434\u0430\u043D\u043D\u044B\u0445 -pref.page.name.db.configuration = \u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445 -pref.page.name.db.editors = \u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u044B -pref.page.name.db.ui = \u0418\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 -pref.page.name.drivers = \u0414\u0440\u0430\u0439\u0432\u0435\u0440\u044B -pref.page.name.meta = \u041C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435 -pref.page.name.navigator = \u041D\u0430\u0432\u0438\u0433\u0430\u0442\u043E\u0440 -pref.page.name.query.manager = \u041C\u0435\u043D\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 -pref.page.name.resources = \u0420\u0435\u0441\u0443\u0440\u0441\u044B -pref.page.name.resultset = \u0414\u0430\u043D\u043D\u044B\u0435 -pref.page.name.resultset.binaries = \u0414\u0432\u043E\u0438\u0447\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 (LOB) -pref.page.name.resultset.presentation = \u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 -pref.page.name.sql.editor = \u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 SQL -pref.page.name.sql.execute = \u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 -pref.page.name.sql.format = \u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 - -productName = DBeaver - -productSubTitle = \u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440 \u0431\u0430\u0437 \u0434\u0430\u043D\u043D\u044B\u0445 - -productTitle = DBeaver - \u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440 \u0431\u0430\u0437 \u0434\u0430\u043D\u043D\u044B\u0445 - -view.progress.title = \u0424\u043E\u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 -view.search.title = \u041F\u043E\u0438\u0441\u043A -view.templates.title = \u0428\u0430\u0431\u043B\u043E\u043D\u044B +# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) +# Copyright (C) 2010-2012 Eugene Fradkin (eugene.fradkin@gmail.com) + +command.org.jkiss.dbeaver.core.object.find.description = \u041D\u0430\u0439\u0442\u0438 \u043E\u0431\u044A\u0435\u043A\u0442 +command.org.jkiss.dbeaver.core.object.find.name = \u041D\u0430\u0439\u0442\u0438 + +menu.edit = \u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 +menu.navigate = \u041D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F + +pref.page.name.appearance = \u0412\u043D\u0435\u0448\u043D\u0438\u0439 \u0432\u0438\u0434 +pref.page.name.binary.editor = \u0414\u0432\u043E\u0438\u0447\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440 +pref.page.name.colors.and.fonts = \u0426\u0432\u0435\u0442\u0430 \u0438 \u0448\u0440\u0438\u0444\u0442\u044B +pref.page.name.confirmations = \u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F +pref.page.name.connectionTypes = \u0422\u0438\u043F\u044B \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0439 +pref.page.name.data.formats = \u0424\u043E\u0440\u043C\u0430\u0442\u044B \u0434\u0430\u043D\u043D\u044B\u0445 +pref.page.name.db.configuration = \u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445 +pref.page.name.db.editors = \u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u044B +pref.page.name.db.ui = \u0418\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 +pref.page.name.drivers = \u0414\u0440\u0430\u0439\u0432\u0435\u0440\u044B +pref.page.name.meta = \u041C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435 +pref.page.name.navigator = \u041D\u0430\u0432\u0438\u0433\u0430\u0442\u043E\u0440 +pref.page.name.query.manager = \u041C\u0435\u043D\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 +pref.page.name.resources = \u0420\u0435\u0441\u0443\u0440\u0441\u044B +pref.page.name.resultset = \u0414\u0430\u043D\u043D\u044B\u0435 +pref.page.name.resultset.binaries = \u0414\u0432\u043E\u0438\u0447\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 (LOB) +pref.page.name.resultset.presentation = \u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435 +pref.page.name.sql.editor = \u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 SQL +pref.page.name.sql.execute = \u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 +pref.page.name.sql.format = \u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 + +productName = DBeaver + +productSubTitle = \u0423\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440 \u0431\u0430\u0437 \u0434\u0430\u043D\u043D\u044B\u0445 + +productTitle = DBeaver - \u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440 \u0431\u0430\u0437 \u0434\u0430\u043D\u043D\u044B\u0445 + +view.progress.title = \u0424\u043E\u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 +view.search.title = \u041F\u043E\u0438\u0441\u043A +view.templates.title = \u0428\u0430\u0431\u043B\u043E\u043D\u044B diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_zh.properties index 24bf80d65c..0ee604c336 100644 --- a/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.application.nls/OSGI-INF/l10n/bundle_zh.properties @@ -1,92 +1,92 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) -# Copyright (C) 2012 Brook.Tran (Brook.Tran.C@gmail.com) - -Bundle-Vendor = JKISS -Bundle-Name = DBeaver \u5355\u673A - -productName = DBeaver -productTitle = DBeaver - \u901A\u7528\u6570\u636E\u5E93\u7BA1\u7406 -productCopyright = (C) JKISS project, 2017 -productSubTitle = \u901A\u7528\u6570\u636E\u5E93\u7BA1\u7406 -productWebsite = https://dbeaver.jkiss.org/ -productEmail = serge@jkiss.org -aboutText = DBeaver - \u901A\u8FC7\u6570\u636E\u5E93\u7BA1\u7406\u5668 -extension.standalone.name = DBeaver \u5355\u673A - -view.progress.title = \u540E\u53F0\u4EFB\u52A1 -view.search.title = \u641C\u7D22 -view.templates.title = \u6A21\u677F - -menu.edit = \u7F16\u8F91 -menu.navigate = \u5BFC\u822A -menu.navigation = \u5BFC\u822A - -command.org.eclipse.ui.window.customizePerspective.label = \u81EA\u5B9A\u4E49\u900F\u89C6\u56FE - -pref.page.name.binary.editor = \u4E8C\u8FDB\u5236\u7F16\u8F91\u5668 -pref.page.name.confirmations = \u786E\u8BA4 -pref.page.name.connectionTypes = \u8FDE\u63A5\u7C7B\u578B -pref.page.name.connections = \u8FDE\u63A5 -pref.page.name.data.formats = \u6570\u636E\u683C\u5F0F -pref.page.name.db.configuration = \u6570\u636E\u5E93 -pref.page.name.db.editors = \u7F16\u8F91\u5668 -pref.page.name.drivers = \u9A71\u52A8 -pref.page.name.drivers.maven = Maven -pref.page.name.entity.editor = \u6570\u636E\u5E93\u7F16\u8F91\u5668 -pref.page.name.meta = \u5143\u6570\u636E -pref.page.name.navigator = \u5BFC\u822A\u5668 -pref.page.name.query.manager = \u67E5\u8BE2\u7BA1\u7406 -pref.page.name.resources = \u8D44\u6E90 -pref.page.name.resultset = \u7ED3\u679C\u96C6 -pref.page.name.resultset.binaries = \u4E8C\u8FDB\u5236 -pref.page.name.resultset.presentation = \u8868\u793A -pref.page.name.sql.completion = SQL\u8865\u5168 -pref.page.name.sql.editor = SQL\u7F16\u8F91\u5668 -pref.page.name.sql.execute = SQL\u5904\u7406 -pref.page.name.sql.format = SQL\u683C\u5F0F\u5316 -pref.page.name.sql.templates = \u6A21\u677F - -activity.hideE4Activity.name = \u83DC\u5355\u548C\u5DE5\u5177\u680F\u7684\u9690\u85CF\u6D3B\u52A8 - -command.org.jkiss.dbeaver.core.edit.copy.name = \u590D\u5236 -command.org.jkiss.dbeaver.core.edit.copy.special.name = \u7279\u6B8A\u590D\u5236 -command.org.jkiss.dbeaver.core.edit.cut.name = \u526A\u5207 -command.org.jkiss.dbeaver.core.edit.delete.name = \u5220\u9664 -command.org.jkiss.dbeaver.core.edit.findreplace.name = \u67E5\u627E\u66FF\u6362 -command.org.jkiss.dbeaver.core.edit.lowercase.name = \u8F6C\u6362\u4E3A\u5C0F\u5199 -command.org.jkiss.dbeaver.core.edit.multicomment.name = \u5757\u6CE8\u91CA -command.org.jkiss.dbeaver.core.edit.paste.name = \u7C98\u8D34 -command.org.jkiss.dbeaver.core.edit.redo.name = \u91CD\u505A -command.org.jkiss.dbeaver.core.edit.singlecomment.name = \u884C\u6CE8\u91CA -command.org.jkiss.dbeaver.core.edit.togglewordwrap.name = \u81EA\u52A8\u6362\u884C -command.org.jkiss.dbeaver.core.edit.undo.name = \u64A4\u9500 -command.org.jkiss.dbeaver.core.edit.uppercase.name = \u8F6C\u6362\u4E3A\u5927\u5199 -command.org.jkiss.dbeaver.core.file.close.name = \u5173\u95ED -command.org.jkiss.dbeaver.core.file.exit.name = \u9000\u51FA -command.org.jkiss.dbeaver.core.file.export.name = \u5BFC\u51FA -command.org.jkiss.dbeaver.core.file.import.name = \u5BFC\u5165 -command.org.jkiss.dbeaver.core.file.new.name = \u65B0\u5EFA -command.org.jkiss.dbeaver.core.file.print.name = \u6253\u5370 -command.org.jkiss.dbeaver.core.file.properties.name = \u5C5E\u6027 -command.org.jkiss.dbeaver.core.file.property.name = \u5C5E\u6027 -command.org.jkiss.dbeaver.core.file.refresh.name = \u5237\u65B0 -command.org.jkiss.dbeaver.core.file.rename.name = \u91CD\u547D\u540D -command.org.jkiss.dbeaver.core.file.save.name = \u4FDD\u5B58 -command.org.jkiss.dbeaver.core.file.saveas.name = \u53E6\u5B58\u4E3A -command.org.jkiss.dbeaver.core.navigator.backwardHistory.name = \u540E\u9000\u5386\u53F2 -command.org.jkiss.dbeaver.core.navigator.bookmark.add.name = \u6DFB\u52A0 -command.org.jkiss.dbeaver.core.navigator.forwardHistory.name = \u524D\u8FDB\u5386\u53F2 -command.org.jkiss.dbeaver.core.navigator.openSource.name = \u6253\u5F00\u8D44\u6E90 -command.org.jkiss.dbeaver.core.object.find.description = \u641C\u7D22\u6570\u636E\u5E93\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.find.name = \u641C\u7D22\u6570\u636E\u5E93 -command.org.jkiss.dbeaver.core.window.customizePerspective.name = \u81EA\u5B9A\u4E49\u900F\u89C6\u56FE -command.org.jkiss.dbeaver.core.window.navigation.name = \u524D\u5F80 -command.org.jkiss.dbeaver.core.window.navigation.nextEditor.name = \u4E0B\u4E00\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.window.navigation.nextSubTab.name = \u4E0B\u4E00\u5B50\u6807\u7B7E\u9875 -command.org.jkiss.dbeaver.core.window.navigation.nextTab.name = \u4E0B\u4E00\u6807\u7B7E\u9875 -command.org.jkiss.dbeaver.core.window.navigation.previousEditor.name = \u4E0A\u4E00\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.window.navigation.previousSubTab.name = \u4E0A\u4E00\u5B50\u6807\u7B7E\u9875 -command.org.jkiss.dbeaver.core.window.navigation.previousTab.name = \u4E0A\u4E00\u6807\u7B7E\u9875 -command.org.jkiss.dbeaver.core.window.navigation.switchToEditor.name = \u5207\u6362\u5230\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.window.preferences.name = \u504F\u597D -command.org.jkiss.dbeaver.core.window.resetPerspective.name = \u91CD\u7F6E\u900F\u89C6\u56FE +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) +# Copyright (C) 2012 Brook.Tran (Brook.Tran.C@gmail.com) + +Bundle-Vendor = JKISS +Bundle-Name = DBeaver \u5355\u673A + +productName = DBeaver +productTitle = DBeaver - \u901A\u7528\u6570\u636E\u5E93\u7BA1\u7406 +productCopyright = (C) JKISS project, 2017 +productSubTitle = \u901A\u7528\u6570\u636E\u5E93\u7BA1\u7406 +productWebsite = https://dbeaver.jkiss.org/ +productEmail = serge@jkiss.org +aboutText = DBeaver - \u901A\u8FC7\u6570\u636E\u5E93\u7BA1\u7406\u5668 +extension.standalone.name = DBeaver \u5355\u673A + +view.progress.title = \u540E\u53F0\u4EFB\u52A1 +view.search.title = \u641C\u7D22 +view.templates.title = \u6A21\u677F + +menu.edit = \u7F16\u8F91 +menu.navigate = \u5BFC\u822A +menu.navigation = \u5BFC\u822A + +command.org.eclipse.ui.window.customizePerspective.label = \u81EA\u5B9A\u4E49\u900F\u89C6\u56FE + +pref.page.name.binary.editor = \u4E8C\u8FDB\u5236\u7F16\u8F91\u5668 +pref.page.name.confirmations = \u786E\u8BA4 +pref.page.name.connectionTypes = \u8FDE\u63A5\u7C7B\u578B +pref.page.name.connections = \u8FDE\u63A5 +pref.page.name.data.formats = \u6570\u636E\u683C\u5F0F +pref.page.name.db.configuration = \u6570\u636E\u5E93 +pref.page.name.db.editors = \u7F16\u8F91\u5668 +pref.page.name.drivers = \u9A71\u52A8 +pref.page.name.drivers.maven = Maven +pref.page.name.entity.editor = \u6570\u636E\u5E93\u7F16\u8F91\u5668 +pref.page.name.meta = \u5143\u6570\u636E +pref.page.name.navigator = \u5BFC\u822A\u5668 +pref.page.name.query.manager = \u67E5\u8BE2\u7BA1\u7406 +pref.page.name.resources = \u8D44\u6E90 +pref.page.name.resultset = \u7ED3\u679C\u96C6 +pref.page.name.resultset.binaries = \u4E8C\u8FDB\u5236 +pref.page.name.resultset.presentation = \u8868\u793A +pref.page.name.sql.completion = SQL\u8865\u5168 +pref.page.name.sql.editor = SQL\u7F16\u8F91\u5668 +pref.page.name.sql.execute = SQL\u5904\u7406 +pref.page.name.sql.format = SQL\u683C\u5F0F\u5316 +pref.page.name.sql.templates = \u6A21\u677F + +activity.hideE4Activity.name = \u83DC\u5355\u548C\u5DE5\u5177\u680F\u7684\u9690\u85CF\u6D3B\u52A8 + +command.org.jkiss.dbeaver.core.edit.copy.name = \u590D\u5236 +command.org.jkiss.dbeaver.core.edit.copy.special.name = \u7279\u6B8A\u590D\u5236 +command.org.jkiss.dbeaver.core.edit.cut.name = \u526A\u5207 +command.org.jkiss.dbeaver.core.edit.delete.name = \u5220\u9664 +command.org.jkiss.dbeaver.core.edit.findreplace.name = \u67E5\u627E\u66FF\u6362 +command.org.jkiss.dbeaver.core.edit.lowercase.name = \u8F6C\u6362\u4E3A\u5C0F\u5199 +command.org.jkiss.dbeaver.core.edit.multicomment.name = \u5757\u6CE8\u91CA +command.org.jkiss.dbeaver.core.edit.paste.name = \u7C98\u8D34 +command.org.jkiss.dbeaver.core.edit.redo.name = \u91CD\u505A +command.org.jkiss.dbeaver.core.edit.singlecomment.name = \u884C\u6CE8\u91CA +command.org.jkiss.dbeaver.core.edit.togglewordwrap.name = \u81EA\u52A8\u6362\u884C +command.org.jkiss.dbeaver.core.edit.undo.name = \u64A4\u9500 +command.org.jkiss.dbeaver.core.edit.uppercase.name = \u8F6C\u6362\u4E3A\u5927\u5199 +command.org.jkiss.dbeaver.core.file.close.name = \u5173\u95ED +command.org.jkiss.dbeaver.core.file.exit.name = \u9000\u51FA +command.org.jkiss.dbeaver.core.file.export.name = \u5BFC\u51FA +command.org.jkiss.dbeaver.core.file.import.name = \u5BFC\u5165 +command.org.jkiss.dbeaver.core.file.new.name = \u65B0\u5EFA +command.org.jkiss.dbeaver.core.file.print.name = \u6253\u5370 +command.org.jkiss.dbeaver.core.file.properties.name = \u5C5E\u6027 +command.org.jkiss.dbeaver.core.file.property.name = \u5C5E\u6027 +command.org.jkiss.dbeaver.core.file.refresh.name = \u5237\u65B0 +command.org.jkiss.dbeaver.core.file.rename.name = \u91CD\u547D\u540D +command.org.jkiss.dbeaver.core.file.save.name = \u4FDD\u5B58 +command.org.jkiss.dbeaver.core.file.saveas.name = \u53E6\u5B58\u4E3A +command.org.jkiss.dbeaver.core.navigator.backwardHistory.name = \u540E\u9000\u5386\u53F2 +command.org.jkiss.dbeaver.core.navigator.bookmark.add.name = \u6DFB\u52A0 +command.org.jkiss.dbeaver.core.navigator.forwardHistory.name = \u524D\u8FDB\u5386\u53F2 +command.org.jkiss.dbeaver.core.navigator.openSource.name = \u6253\u5F00\u8D44\u6E90 +command.org.jkiss.dbeaver.core.object.find.description = \u641C\u7D22\u6570\u636E\u5E93\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.find.name = \u641C\u7D22\u6570\u636E\u5E93 +command.org.jkiss.dbeaver.core.window.customizePerspective.name = \u81EA\u5B9A\u4E49\u900F\u89C6\u56FE +command.org.jkiss.dbeaver.core.window.navigation.name = \u524D\u5F80 +command.org.jkiss.dbeaver.core.window.navigation.nextEditor.name = \u4E0B\u4E00\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.window.navigation.nextSubTab.name = \u4E0B\u4E00\u5B50\u6807\u7B7E\u9875 +command.org.jkiss.dbeaver.core.window.navigation.nextTab.name = \u4E0B\u4E00\u6807\u7B7E\u9875 +command.org.jkiss.dbeaver.core.window.navigation.previousEditor.name = \u4E0A\u4E00\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.window.navigation.previousSubTab.name = \u4E0A\u4E00\u5B50\u6807\u7B7E\u9875 +command.org.jkiss.dbeaver.core.window.navigation.previousTab.name = \u4E0A\u4E00\u6807\u7B7E\u9875 +command.org.jkiss.dbeaver.core.window.navigation.switchToEditor.name = \u5207\u6362\u5230\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.window.preferences.name = \u504F\u597D +command.org.jkiss.dbeaver.core.window.resetPerspective.name = \u91CD\u7F6E\u900F\u89C6\u56FE diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.core.application.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.core.application.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.core.application.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.core.application.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.core.application.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.core.application.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.core.eclipse.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.core.eclipse.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.core.eclipse.nls/.project b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.core.eclipse.nls/.project rename to nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/.project diff --git a/bundles/org.jkiss.dbeaver.core.eclipse.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.core.eclipse.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_de.properties b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_de.properties similarity index 97% rename from bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_de.properties rename to nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_de.properties index d7afe18bad..2b34366470 100644 --- a/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_de.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_de.properties @@ -1,27 +1,27 @@ -# DBeaver - Universal Database Manager -# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) -# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) - -menu.edit = Bearbeiten -menu.navigate = Navigation - -pref.page.name.binary.editor = Bin\u00E4reditor -pref.page.name.confirmations = Best\u00E4tigungen -pref.page.name.connectionTypes = Verbindungstypen -pref.page.name.data.formats = Datumsformate -pref.page.name.db.configuration = DBeaver -pref.page.name.db.editors = Editoren -pref.page.name.db.ui = Interface -pref.page.name.drivers = Treiber -pref.page.name.meta = Metadaten -pref.page.name.navigator = Navigation -pref.page.name.query.manager = Abfragemanager -pref.page.name.resources = Ressourcen -pref.page.name.resultset = Ergebnismenge -pref.page.name.resultset.binaries = Bin\u00E4rdaten -pref.page.name.resultset.presentation = Darstellung -pref.page.name.sql.completion = SQL-Autovervollst\u00E4ndigen -pref.page.name.sql.editor = SQL-Editor -pref.page.name.sql.execute = SQL Ausf\u00FChrung -pref.page.name.sql.format = SQL Formatieren -pref.page.name.sql.templates = Vorlagen +# DBeaver - Universal Database Manager +# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) +# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) + +menu.edit = Bearbeiten +menu.navigate = Navigation + +pref.page.name.binary.editor = Bin\u00E4reditor +pref.page.name.confirmations = Best\u00E4tigungen +pref.page.name.connectionTypes = Verbindungstypen +pref.page.name.data.formats = Datumsformate +pref.page.name.db.configuration = DBeaver +pref.page.name.db.editors = Editoren +pref.page.name.db.ui = Interface +pref.page.name.drivers = Treiber +pref.page.name.meta = Metadaten +pref.page.name.navigator = Navigation +pref.page.name.query.manager = Abfragemanager +pref.page.name.resources = Ressourcen +pref.page.name.resultset = Ergebnismenge +pref.page.name.resultset.binaries = Bin\u00E4rdaten +pref.page.name.resultset.presentation = Darstellung +pref.page.name.sql.completion = SQL-Autovervollst\u00E4ndigen +pref.page.name.sql.editor = SQL-Editor +pref.page.name.sql.execute = SQL Ausf\u00FChrung +pref.page.name.sql.format = SQL Formatieren +pref.page.name.sql.templates = Vorlagen diff --git a/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 97% rename from bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_zh.properties index 6f1ad88f7f..f7a500acc9 100644 --- a/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/OSGI-INF/l10n/bundle_zh.properties @@ -1,31 +1,31 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) - -Bundle-Vendor = JKISS -Bundle-Name = DBeaver Eclipse Plugin - -menu.edit=\u7F16\u8F91 -menu.navigate=\u5BFC\u822A - -pref.page.name.db.configuration=DBeaver -pref.page.name.data.formats=\u6570\u636E\u683C\u5F0F -pref.page.name.query.manager=\u67E5\u8BE2\u7BA1\u7406\u5668 -pref.page.name.db.editors=\u7F16\u8F91\u5668 -pref.page.name.sql.execute=SQL\u5904\u7406 -pref.page.name.sql.completion=SQL\u8865\u5168 -pref.page.name.sql.format=SQL\u683C\u5F0F\u5316 -pref.page.name.sql.editor=SQL\u7F16\u8F91\u5668 -pref.page.name.sql.templates = \u6A21\u677F -pref.page.name.entity.editor=\u6570\u636E\u5E93\u7F16\u8F91\u5668 -pref.page.name.binary.editor=\u4E8C\u8FDB\u5236\u7F16\u8F91\u5668 -pref.page.name.db.ui=\u63A5\u53E3 -pref.page.name.drivers=\u9A71\u52A8 -pref.page.name.drivers.maven=Maven -pref.page.name.connectionTypes=\u8FDE\u63A5\u7C7B\u578B -pref.page.name.navigator=\u5BFC\u822A\u5668 -pref.page.name.resources=\u8D44\u6E90 -pref.page.name.confirmations=\u786E\u8BA4 -pref.page.name.resultset=\u7ED3\u679C\u96C6 -pref.page.name.resultset.binaries=\u4E8C\u8FDB\u5236 -pref.page.name.resultset.presentation=\u8868\u793A -pref.page.name.meta=\u5143\u6570\u636E -pref.page.name.connections=\u8FDE\u63A5 +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) + +Bundle-Vendor = JKISS +Bundle-Name = DBeaver Eclipse Plugin + +menu.edit=\u7F16\u8F91 +menu.navigate=\u5BFC\u822A + +pref.page.name.db.configuration=DBeaver +pref.page.name.data.formats=\u6570\u636E\u683C\u5F0F +pref.page.name.query.manager=\u67E5\u8BE2\u7BA1\u7406\u5668 +pref.page.name.db.editors=\u7F16\u8F91\u5668 +pref.page.name.sql.execute=SQL\u5904\u7406 +pref.page.name.sql.completion=SQL\u8865\u5168 +pref.page.name.sql.format=SQL\u683C\u5F0F\u5316 +pref.page.name.sql.editor=SQL\u7F16\u8F91\u5668 +pref.page.name.sql.templates = \u6A21\u677F +pref.page.name.entity.editor=\u6570\u636E\u5E93\u7F16\u8F91\u5668 +pref.page.name.binary.editor=\u4E8C\u8FDB\u5236\u7F16\u8F91\u5668 +pref.page.name.db.ui=\u63A5\u53E3 +pref.page.name.drivers=\u9A71\u52A8 +pref.page.name.drivers.maven=Maven +pref.page.name.connectionTypes=\u8FDE\u63A5\u7C7B\u578B +pref.page.name.navigator=\u5BFC\u822A\u5668 +pref.page.name.resources=\u8D44\u6E90 +pref.page.name.confirmations=\u786E\u8BA4 +pref.page.name.resultset=\u7ED3\u679C\u96C6 +pref.page.name.resultset.binaries=\u4E8C\u8FDB\u5236 +pref.page.name.resultset.presentation=\u8868\u793A +pref.page.name.meta=\u5143\u6570\u636E +pref.page.name.connections=\u8FDE\u63A5 diff --git a/bundles/org.jkiss.dbeaver.core.eclipse.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.core.eclipse.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.core.eclipse.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.core.eclipse.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.core.eclipse.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.core.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.core.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.core.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.core.nls/.project b/nls/bundles/org.jkiss.dbeaver.core.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/.project rename to nls/bundles/org.jkiss.dbeaver.core.nls/.project diff --git a/bundles/org.jkiss.dbeaver.core.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.core.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.core.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_de.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_de.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_de.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_de.properties index a8a3e58b00..7b98c85662 100644 --- a/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_de.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_de.properties @@ -1,302 +1,302 @@ -# DBeaver - Universal Database Manager -# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) -# Copyright (C) 2016 Karl Griesser (fullref@gmail.com) -view.database.navigator.title = Database Navigator -view.project.explorer.title = Projektexplorer -view.project.navigator.title = Projekte -view.query.manager.title = Abfrage-Manager -view.shell.process.title = Prozess - - -DateFormatter.date.general.label = Allgemein -DateFormatter.date.general.pattern.description = Datumsmuster -DateFormatter.date.general.pattern.label = Muster -DateFormatter.date.label = Datum -DateFormatter.number.general.grouping.description = Gruppierung wird bei diesem Format verwendet -DateFormatter.number.general.grouping.label = Gruppierung verwenden -DateFormatter.number.general.label = Allgemein -DateFormatter.number.general.maxFractDigits.description = Maximale Anzahl an Nachkommastellen -DateFormatter.number.general.maxFractDigits.label = Maximale Anzahl an Nachkommastellen -DateFormatter.number.general.maxIntDigits.description = Maximale Anzahl an Vorkommastellen -DateFormatter.number.general.maxIntDigits.label = Maximale Anzahl an Vorkommastellen -DateFormatter.number.general.minFractDigits.description = Minimale Anzahl an Nachkommastellen -DateFormatter.number.general.minFractDigits.label = Minimale Anzahl an Nachkommastellen -DateFormatter.number.general.minIntDigits.description = Minimale Anzahl an Vorkommastellen -DateFormatter.number.general.minIntDigits.label = Minimale Anzahl an Vorkommastellen -DateFormatter.number.general.roundingMode.description = Rundungsmodus -DateFormatter.number.general.roundingMode.label = Rundungsmodus -DateFormatter.number.label = Zahlen -DateFormatter.time.general.label = Allgemein -DateFormatter.time.general.pattern.description = Zeitmuster -DateFormatter.time.general.pattern.label = Muster -DateFormatter.time.label = Zeit -DateFormatter.timestamp.general.label = Allgemein -DateFormatter.timestamp.general.pattern.description = Zeitstempelmuster -DateFormatter.timestamp.general.pattern.label = Muster -DateFormatter.timestamp.label = Zeitstempel - -category.dbconnection.description = Datenbankverbindungsbefehle -category.dbconnection.name = Verbindung -category.dbnavigator.description = Datenbanknavigatorbefehle -category.dbnavigator.name = Datenbanknavigator -category.rs.description = Ergebnisbefehle -category.rs.name = Ergebnis -category.sqleditor.description = SQL Editor -category.sqleditor.name = SQL Editor -category.utility.description = Werkzeugebefehle -category.utility.name = Werkzeuge - -command.org.jkiss.dbeaver.core.commit.description = Aktuellen \u00C4nderungen festschreiben -command.org.jkiss.dbeaver.core.commit.name = Commit -command.org.jkiss.dbeaver.core.compare.objects.description = Datenbankobjekte vergleichen -command.org.jkiss.dbeaver.core.compare.objects.name = Vergleichen -command.org.jkiss.dbeaver.core.connect.description = mit der Datenbank verbinden -command.org.jkiss.dbeaver.core.connect.name = Verbinden -command.org.jkiss.dbeaver.core.disconnect.description = Verbindung zur Datenbank trennen -command.org.jkiss.dbeaver.core.disconnect.name = Verbindung trennen -command.org.jkiss.dbeaver.core.disconnectAll.description = Alle offenen Verbindungen trennen -command.org.jkiss.dbeaver.core.disconnectAll.name = Alle Verbindungen trennen -command.org.jkiss.dbeaver.core.driver.manager.description = Treibermanager -command.org.jkiss.dbeaver.core.driver.manager.name = Treibermanager -command.org.jkiss.dbeaver.core.edit.copy.adv_info = Erweiterte Informationen kopieren -command.org.jkiss.dbeaver.core.edit.copy.special.description = Erweitertes Kopieren -command.org.jkiss.dbeaver.core.edit.copy.special.name = Erweitertes Kopieren -command.org.jkiss.dbeaver.core.edit.paste.special.description = Einf\u00FCgen mit speziellen Einstellungen -command.org.jkiss.dbeaver.core.edit.paste.special.name = Erweitertes Einf\u00FCgen -command.org.jkiss.dbeaver.core.export.data.description = Daten in Dateien oder Datenbanktabellen exportieren -command.org.jkiss.dbeaver.core.export.data.name = Daten exportieren -command.org.jkiss.dbeaver.core.import.data.description = Daten aus Datenbanktabellen importieren -command.org.jkiss.dbeaver.core.import.data.name = Daten importieren -command.org.jkiss.dbeaver.core.invalidate.description = Datenbankverbindung invalidieren bzw. neu verbinden -command.org.jkiss.dbeaver.core.invalidate.name = Invalidieren/Neu Verbinden -command.org.jkiss.dbeaver.core.migrate.connection.description = Verbindung auf neuen Treiber migrieren -command.org.jkiss.dbeaver.core.migrate.connection.name = Verbindungen migrieren -command.org.jkiss.dbeaver.core.navigator.bookmark.add.description = Lesezeichen hinuf\u00FCgen -command.org.jkiss.dbeaver.core.navigator.bookmark.add.name = Lesezeichen hinuf\u00FCgen -command.org.jkiss.dbeaver.core.navigator.linkeditor.description = Link auf Editor -command.org.jkiss.dbeaver.core.navigator.linkeditor.name = Link auf Editor -command.org.jkiss.dbeaver.core.navigator.set.active.description = Aktive Objekte festlegen -command.org.jkiss.dbeaver.core.navigator.set.active.name = Aktive Objekte festlegen -command.org.jkiss.dbeaver.core.navigator.view.configure.description = Spaltensichtbarkeit konfigurieren -command.org.jkiss.dbeaver.core.navigator.view.configure.name = Konfigurieren -command.org.jkiss.dbeaver.core.new.connection.description = Assistent f\u00FCr neue Verbindung -command.org.jkiss.dbeaver.core.new.connection.name = Neue Verbindung -command.org.jkiss.dbeaver.core.new.folder.description = Neuen Verbindungsordner erstellen -command.org.jkiss.dbeaver.core.new.folder.name = Neuer Ordner -command.org.jkiss.dbeaver.core.object.create.description = Neues Datenbankobjekt anlegen -command.org.jkiss.dbeaver.core.object.create.name = Objekt anlegen -command.org.jkiss.dbeaver.core.object.delete.description = Datenbankobjekt l\u00F6schen -command.org.jkiss.dbeaver.core.object.delete.name = Objekt l\u00F6schen -command.org.jkiss.dbeaver.core.object.filter.add.exclude.description = markierte Objekte verstecken -command.org.jkiss.dbeaver.core.object.filter.add.exclude.name = markierte Objekte verstecken -command.org.jkiss.dbeaver.core.object.filter.add.include.description = ausschlie\u00DFlich markierte Objekte anzeigen -command.org.jkiss.dbeaver.core.object.filter.add.include.name = nur markierte Objekte anzeigen -command.org.jkiss.dbeaver.core.object.filter.clear.description = Filter zur\u00FCcksetzen -command.org.jkiss.dbeaver.core.object.filter.clear.name = Filter zur\u00FCcksetzen -command.org.jkiss.dbeaver.core.object.filter.config.description = Objektfilter konfigurieren -command.org.jkiss.dbeaver.core.object.filter.config.name = Filter konfigurieren -command.org.jkiss.dbeaver.core.object.filter.toggle.description = Schaltet Filter ein/aus -command.org.jkiss.dbeaver.core.object.filter.toggle.name = Filter ein/ausschalten -command.org.jkiss.dbeaver.core.object.goto.description = Datenbankobjekt im Metadatenbrowser anzeigen -command.org.jkiss.dbeaver.core.object.goto.name = Datenbankobjekt \u00F6ffnen ... -command.org.jkiss.dbeaver.core.object.open.description = Objekteditor \u00F6ffnen -command.org.jkiss.dbeaver.core.object.open.name = Objekt bearbeiten -command.org.jkiss.dbeaver.core.process.stop.description = laufenden Prozess beenden -command.org.jkiss.dbeaver.core.process.stop.name = Prozess beenden -command.org.jkiss.dbeaver.core.project.active.description = aktives Projekt festlegen -command.org.jkiss.dbeaver.core.project.active.name = aktives Projekt festlegen -command.org.jkiss.dbeaver.core.project.create.description = neues Projekt anlegen -command.org.jkiss.dbeaver.core.project.create.name = neues Projekt anlegen -command.org.jkiss.dbeaver.core.project.refresh.description = Workspace aktualisieren -command.org.jkiss.dbeaver.core.project.refresh.name = Projekte aktualisieren -command.org.jkiss.dbeaver.core.project.select.description = aktives Projekt ausw\u00E4hlen -command.org.jkiss.dbeaver.core.project.select.name = aktives Projekt ausw\u00E4hlen -command.org.jkiss.dbeaver.core.qm.clear.description = Abfragemanager Log leeren -command.org.jkiss.dbeaver.core.qm.clear.name = Log leeren -command.org.jkiss.dbeaver.core.qm.filter.description = Abfragemanager Filter setzen -command.org.jkiss.dbeaver.core.qm.filter.name = Filter ... -command.org.jkiss.dbeaver.core.resource.create.folder.description = Neuen Ordner anlegen -command.org.jkiss.dbeaver.core.resource.create.folder.name = Neuen Ordner anlegen -command.org.jkiss.dbeaver.core.resource.link.folder.description = Erstellt eine Verkn\u00FCpfung auf einen Ordner im Dateisystem -command.org.jkiss.dbeaver.core.resource.link.folder.name = Ordnerverkn\u00FCpfung erstellen -command.org.jkiss.dbeaver.core.resultset.applyChanges.description = \u00C4nderungen speichern -command.org.jkiss.dbeaver.core.resultset.applyChanges.name = \u00C4nderungen speichern -command.org.jkiss.dbeaver.core.resultset.cell.reset.description = Alle Zellen auf Ursprungszustand zur\u00FCcksetzen -command.org.jkiss.dbeaver.core.resultset.cell.reset.name = Zell\u00E4nderungen r\u00FCckg\u00E4ngigmachen -command.org.jkiss.dbeaver.core.resultset.cell.save.description = Zellenwert speichern -command.org.jkiss.dbeaver.core.resultset.cell.save.name = Zellenwert speichern -command.org.jkiss.dbeaver.core.resultset.cell.setNull.description = Zelle auf den Wert NULL setzen -command.org.jkiss.dbeaver.core.resultset.cell.setNull.name = Null-Wert setzen -command.org.jkiss.dbeaver.core.resultset.count.description = Gesamtzeilenanzahl ermitteln -command.org.jkiss.dbeaver.core.resultset.count.name = Zeilenanzahl ermitteln -command.org.jkiss.dbeaver.core.resultset.fetch.all.description = Alle Datenzeilen abrufen -command.org.jkiss.dbeaver.core.resultset.fetch.all.name = Alle Datenzeilen abrufen -command.org.jkiss.dbeaver.core.resultset.fetch.page.description = N\u00E4chste Seite des Ergebnisses einlesen -command.org.jkiss.dbeaver.core.resultset.fetch.page.name = N\u00E4chste Seite einlesen -command.org.jkiss.dbeaver.core.resultset.filterMenu.description = Filter-Kontextmen\u00FC -command.org.jkiss.dbeaver.core.resultset.filterMenu.name = Filtermen\u00FC -command.org.jkiss.dbeaver.core.resultset.generateScript.description = \u00C4nderungsskript generieren -command.org.jkiss.dbeaver.core.resultset.generateScript.name = \u00C4nderungsskript generieren -command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.description = Ausgew\u00E4hlte Spaltenname(n) kopieren -command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.name = Spaltenname(n) kopieren -command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.description = Ausgew\u00E4hlte Zeilennummern kopieren -command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.name = Zeilennummern kopieren -command.org.jkiss.dbeaver.core.resultset.grid.togglePreview.description = Ergebnisanzeige aus- bzw einblenden -command.org.jkiss.dbeaver.core.resultset.grid.togglePreview.name = Ergebnisanzeige aus-/einblenden -command.org.jkiss.dbeaver.core.resultset.navigateLink.description = Foreign Key Link folgen -command.org.jkiss.dbeaver.core.resultset.navigateLink.name = Link folgen -command.org.jkiss.dbeaver.core.resultset.rejectChanges.description = \u00C4nderungen verwerfen -command.org.jkiss.dbeaver.core.resultset.rejectChanges.name = \u00C4nderungen verwerfen -command.org.jkiss.dbeaver.core.resultset.row.add.description = Zeile hinzuf\u00FCgen -command.org.jkiss.dbeaver.core.resultset.row.add.name = Zeile hinzuf\u00FCgen -command.org.jkiss.dbeaver.core.resultset.row.copy.description = aktuell ausgew\u00E4hlte Zeile kopieren -command.org.jkiss.dbeaver.core.resultset.row.copy.name = Zeile kopieren -command.org.jkiss.dbeaver.core.resultset.row.delete.description = aktuell ausgew\u00E4hlte Zeile l\u00F6schen -command.org.jkiss.dbeaver.core.resultset.row.delete.name = Zeile l\u00F6schen -command.org.jkiss.dbeaver.core.resultset.row.edit.description = Zelle in seperatem Editor bearbeiten -command.org.jkiss.dbeaver.core.resultset.row.edit.inline.description = Zelle im Inline-Editor bearbeiten -command.org.jkiss.dbeaver.core.resultset.row.edit.inline.name = Inline-Editor -command.org.jkiss.dbeaver.core.resultset.row.edit.name = Zelle editieren -command.org.jkiss.dbeaver.core.resultset.row.first.description = Zur ersten Zeile gehen -command.org.jkiss.dbeaver.core.resultset.row.first.name = Erste Zeile -command.org.jkiss.dbeaver.core.resultset.row.last.description = Zur letzten Zeile gehen -command.org.jkiss.dbeaver.core.resultset.row.last.name = Letzte Zeile -command.org.jkiss.dbeaver.core.resultset.row.next.description = Zur nachfolgenden Zeile gehen -command.org.jkiss.dbeaver.core.resultset.row.next.name = N\u00E4chste Zeile -command.org.jkiss.dbeaver.core.resultset.row.previous.description = Zur vorherigen Zeile gehen -command.org.jkiss.dbeaver.core.resultset.row.previous.name = Vorherige Zeile -command.org.jkiss.dbeaver.core.resultset.switchPresentation.description = Darstellung umschalten -command.org.jkiss.dbeaver.core.resultset.switchPresentation.name = Darstellung umschalten -command.org.jkiss.dbeaver.core.resultset.toggleMode.description = Umschalten zwischen Grid und Textansicht -command.org.jkiss.dbeaver.core.resultset.toggleMode.name = Umschalten zwischen Grid und Textansicht -command.org.jkiss.dbeaver.core.rollback.description = Aktuelle \u00C4nderungen zur\u00FCcknehmen -command.org.jkiss.dbeaver.core.rollback.name = Rollback -command.org.jkiss.dbeaver.core.sql.editor.create.description = neuen SQL Editor \u00F6ffnen -command.org.jkiss.dbeaver.core.sql.editor.create.name = neuer SQL Editor -command.org.jkiss.dbeaver.core.sql.editor.forSelection.description = SQL Console mit Abfrage \u00F6ffnen -command.org.jkiss.dbeaver.core.sql.editor.forSelection.name = Daten in SQL Console abfragen -command.org.jkiss.dbeaver.core.sql.editor.open.description = SQL Editor \u00F6ffnen -command.org.jkiss.dbeaver.core.sql.editor.open.name = SQL Editor -command.org.jkiss.dbeaver.core.sql.editor.recent.description = zuletzt ge\u00F6ffneten SQL Editor \u00F6ffnen -command.org.jkiss.dbeaver.core.sql.editor.recent.name = letzten SQL Editor \u00F6ffnen -command.org.jkiss.dbeaver.core.sql.script.associate.description = ausgew\u00E4hltes Script mit der Datenquelle verkn\u00FCpfen -command.org.jkiss.dbeaver.core.sql.script.associate.name = Mit Datenquelle verkn\u00FCpfen -command.org.jkiss.dbeaver.core.transaction_mode.name = Transaktionsmodus -command.org.jkiss.dbeaver.core.txn.autocommit.description = Automatisches festschreiben aktivieren -command.org.jkiss.dbeaver.core.txn.autocommit.name = Auto-commit -command.org.jkiss.dbeaver.ui.editors.sql.assist.templates.description = Auto-complete Vorlagenname -command.org.jkiss.dbeaver.ui.editors.sql.assist.templates.name = Auto-complete Vorlagenname -command.org.jkiss.dbeaver.ui.editors.sql.comment.multi.description = Zeilenkommentar hinzuf\u00FCgen/entfernen -command.org.jkiss.dbeaver.ui.editors.sql.comment.multi.name = Blockommentar umschalten -command.org.jkiss.dbeaver.ui.editors.sql.comment.single.description = Zeilenkommentar umschalten -command.org.jkiss.dbeaver.ui.editors.sql.comment.single.name = Kommentarzeile ein-/ausblenden -command.org.jkiss.dbeaver.ui.editors.sql.export.data.description = Abfragedaten der aktuellen Abfrage exportieren -command.org.jkiss.dbeaver.ui.editors.sql.export.data.name = Abfragedaten exportieren -command.org.jkiss.dbeaver.ui.editors.sql.navigate.object.description = \u00D6ffnene Defintion des aktuell ausgew\u00E4hlten Objektes -command.org.jkiss.dbeaver.ui.editors.sql.navigate.object.name = Definition \u00F6ffnen -command.org.jkiss.dbeaver.ui.editors.sql.open.file.description = SQL Script aus Datei laden -command.org.jkiss.dbeaver.ui.editors.sql.open.file.name = SQL Script laden -command.org.jkiss.dbeaver.ui.editors.sql.query.next.description = zu n\u00E4chste Abfrage springen -command.org.jkiss.dbeaver.ui.editors.sql.query.next.name = N\u00E4chste Abfrage -command.org.jkiss.dbeaver.ui.editors.sql.query.prev.description = zu vorherige Abfrage springen -command.org.jkiss.dbeaver.ui.editors.sql.query.prev.name = Vorherige Abfrage -command.org.jkiss.dbeaver.ui.editors.sql.run.count.description = Zeilenanzahl f\u00FCr Abfrage unterhalb des Cursors abfragen -command.org.jkiss.dbeaver.ui.editors.sql.run.count.name = Zeilenanzahl abfragen -command.org.jkiss.dbeaver.ui.editors.sql.run.explain.description = Ausf\u00FChrungsplan anzeigen -command.org.jkiss.dbeaver.ui.editors.sql.run.explain.name = Ausf\u00FChrungsplan anzeigen -command.org.jkiss.dbeaver.ui.editors.sql.run.expression.description = SQL Expression abfragen und Wert anzeigen -command.org.jkiss.dbeaver.ui.editors.sql.run.expression.name = SQL Expression auswerten -command.org.jkiss.dbeaver.ui.editors.sql.run.script.description = SQL Script ausf\u00FChren -command.org.jkiss.dbeaver.ui.editors.sql.run.script.name = SQL Script ausf\u00FChren -command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.description = Statements mit eigenen Ergebnisregisterkarten ausf\u00FChren -command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.name = Statements mit seperaten Ergebnis-Tabs ausf\u00FChren -command.org.jkiss.dbeaver.ui.editors.sql.run.statement.description = SQL Statement ausf\u00FChren -command.org.jkiss.dbeaver.ui.editors.sql.run.statement.name = SQL Statement ausf\u00FChren -command.org.jkiss.dbeaver.ui.editors.sql.run.statementNew.description = SQL Statement in einer neuen Registerkarte ausf\u00FChren -command.org.jkiss.dbeaver.ui.editors.sql.run.statementNew.name = SQL Statement in neu Tab ausf\u00FChren -command.org.jkiss.dbeaver.ui.editors.sql.save.file.description = SQL Script in Datei speichern -command.org.jkiss.dbeaver.ui.editors.sql.save.file.name = SQL Script speichern -command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.description = Aktuelles Panel umschalten -command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.name = Aktuelles Panel umschalten -command.org.jkiss.dbeaver.ui.editors.sql.sync.auto.description = Verbindung automatisch mit Navigator synchronisieren -command.org.jkiss.dbeaver.ui.editors.sql.sync.auto.name = Verbindung automatisch mit Navigator synchronisieren -command.org.jkiss.dbeaver.ui.editors.sql.sync.connection.description = Aktuelle Verbindung auf Auswahl des Navigators setzen -command.org.jkiss.dbeaver.ui.editors.sql.sync.connection.name = Aktuelle Verbindung setzen -command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.description = Ergebnisanzeige ein-/ausblenden -command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.name = Ergebnisanzeige ein-/ausblenden -command.org.jkiss.dbeaver.ui.editors.sql.word.wrap.description = Zeilenumbruchen ein- bzw ausschalten -command.org.jkiss.dbeaver.ui.editors.sql.word.wrap.name = Zeilenumbruch umschalten -command.org.jkiss.dbeaver.ui.editors.text.content.format.description = Text formatieren -command.org.jkiss.dbeaver.ui.editors.text.content.format.name = Inhaltsformatierung - -dataTransfer.consumer.database.description = Datenbanktabellen -dataTransfer.consumer.database.name = Datenbank -dataTransfer.consumer.stream.description = Flat-Files -dataTransfer.consumer.stream.name = Dateien -dataTransfer.processor.csv.description = Als CSV-Datei(en) exportieren -dataTransfer.processor.csv.name = CSV -dataTransfer.processor.csv.property.delimiter.description = Spaltentrennzeichen -dataTransfer.processor.csv.property.delimiter.name = Spaltentrennzeichen -dataTransfer.processor.csv.property.escape.description = Zeichenketten-Escapemodus -dataTransfer.processor.csv.property.escape.name = Zeichenketten-Escapemodus -dataTransfer.processor.csv.property.header.description = CSV-\u00DCberschrifteinstellungen -dataTransfer.processor.csv.property.header.name = \u00DCberschrift -dataTransfer.processor.csv.property.quoteChar.description = Zeichenkettentrennzeichen (Leertaste f\u00FCr keine Trennung) -dataTransfer.processor.csv.property.quoteChar.name = Zeichenkettentrennzeichen -dataTransfer.processor.html.description = Als HTML-Datei(en) exportieren -dataTransfer.processor.html.name = HTML -dataTransfer.processor.html.property.images.description = Bilder extrahieren und in Dateien speichern -dataTransfer.processor.html.property.images.name = Bilder -dataTransfer.processor.json.description = Als JSON Datei(en) exportieren -dataTransfer.processor.json.name = JSON -dataTransfer.processor.sql.description = Als SQL-Insertbefehle exportieren -dataTransfer.processor.sql.name = SQL -dataTransfer.processor.sql.property.escape.description = Escape-Zeichen f\u00FCr Einzelanf\u00FChrungszeichen -dataTransfer.processor.sql.property.escape.name = Escape-Zeichen -dataTransfer.processor.sql.property.omitSchema.description = Schemanamen bei Insert Statements weglassen -dataTransfer.processor.sql.property.omitSchema.name = Schemanamen weglassen -dataTransfer.processor.sql.property.rowsInStatement.description = Anzahl der Zeilen je Insert Statement -dataTransfer.processor.sql.property.rowsInStatement.name = Zeilen je Insert Statement -dataTransfer.processor.xml.description = Als XML Datei(en) exportieren -dataTransfer.processor.xml.name = XML -dataTransfer.producer.database.description = Datenbanktabelle(n) -dataTransfer.producer.database.name = Tabelle - -editor.dbdata.description = Tabellendaten -editor.dbdata.name = Daten -editor.entity.name = Entit\u00E4ten Editor -editor.folder.name = Ordner Editor -editor.lob.name = Large Object Editor -editor.sql.name = SQL Editor - -menu.database = &Datenbank -menu.database.sql.generate = SQL generieren -menu.database.tools = Werkzeuge -menu.navigate = Navigieren -menu.sqleditor = &SQL Editor - -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor$ContextInfo.name.name = Kontextname -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.description.name = Beschreibung -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.name.name = Name -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyAddress.name = Addresse -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyConnectTime.name = Verbindungszeit -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyConnectType.name = Verbindungstyp -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDatabase.name = Datenbank -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDriver.name = Treiber -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDriverType.name = Treibertyp -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyServerName.name = Server -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyURL.name = URL -meta.org.jkiss.dbeaver.registry.DriverDescriptor.category.name = Treiberkategorie -meta.org.jkiss.dbeaver.registry.DriverDescriptor.description.name = Beschreibung -meta.org.jkiss.dbeaver.registry.DriverDescriptor.driverClassName.name = Treiberklasse -meta.org.jkiss.dbeaver.registry.DriverDescriptor.name.name = Treibername -meta.org.jkiss.dbeaver.registry.DriverDescriptor.sampleURL.name = URL -meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.columns.name = Spalten -meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.name.name = Name -meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.type.name = Typ -meta.org.jkiss.dbeaver.ui.search.data.SearchDataObject.foundRows.name = Gefundene Zeilen (>=) -meta.org.jkiss.dbeaver.ui.search.data.SearchDataObject.name.name = Name - -search.page.label.db.fulltext = DB Volltextsuche -search.page.label.db.metadata = DB Metadata -command.org.jkiss.dbeaver.core.resultset.export.name=Ergebnis exportieren ... +# DBeaver - Universal Database Manager +# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) +# Copyright (C) 2016 Karl Griesser (fullref@gmail.com) +view.database.navigator.title = Database Navigator +view.project.explorer.title = Projektexplorer +view.project.navigator.title = Projekte +view.query.manager.title = Abfrage-Manager +view.shell.process.title = Prozess + + +DateFormatter.date.general.label = Allgemein +DateFormatter.date.general.pattern.description = Datumsmuster +DateFormatter.date.general.pattern.label = Muster +DateFormatter.date.label = Datum +DateFormatter.number.general.grouping.description = Gruppierung wird bei diesem Format verwendet +DateFormatter.number.general.grouping.label = Gruppierung verwenden +DateFormatter.number.general.label = Allgemein +DateFormatter.number.general.maxFractDigits.description = Maximale Anzahl an Nachkommastellen +DateFormatter.number.general.maxFractDigits.label = Maximale Anzahl an Nachkommastellen +DateFormatter.number.general.maxIntDigits.description = Maximale Anzahl an Vorkommastellen +DateFormatter.number.general.maxIntDigits.label = Maximale Anzahl an Vorkommastellen +DateFormatter.number.general.minFractDigits.description = Minimale Anzahl an Nachkommastellen +DateFormatter.number.general.minFractDigits.label = Minimale Anzahl an Nachkommastellen +DateFormatter.number.general.minIntDigits.description = Minimale Anzahl an Vorkommastellen +DateFormatter.number.general.minIntDigits.label = Minimale Anzahl an Vorkommastellen +DateFormatter.number.general.roundingMode.description = Rundungsmodus +DateFormatter.number.general.roundingMode.label = Rundungsmodus +DateFormatter.number.label = Zahlen +DateFormatter.time.general.label = Allgemein +DateFormatter.time.general.pattern.description = Zeitmuster +DateFormatter.time.general.pattern.label = Muster +DateFormatter.time.label = Zeit +DateFormatter.timestamp.general.label = Allgemein +DateFormatter.timestamp.general.pattern.description = Zeitstempelmuster +DateFormatter.timestamp.general.pattern.label = Muster +DateFormatter.timestamp.label = Zeitstempel + +category.dbconnection.description = Datenbankverbindungsbefehle +category.dbconnection.name = Verbindung +category.dbnavigator.description = Datenbanknavigatorbefehle +category.dbnavigator.name = Datenbanknavigator +category.rs.description = Ergebnisbefehle +category.rs.name = Ergebnis +category.sqleditor.description = SQL Editor +category.sqleditor.name = SQL Editor +category.utility.description = Werkzeugebefehle +category.utility.name = Werkzeuge + +command.org.jkiss.dbeaver.core.commit.description = Aktuellen \u00C4nderungen festschreiben +command.org.jkiss.dbeaver.core.commit.name = Commit +command.org.jkiss.dbeaver.core.compare.objects.description = Datenbankobjekte vergleichen +command.org.jkiss.dbeaver.core.compare.objects.name = Vergleichen +command.org.jkiss.dbeaver.core.connect.description = mit der Datenbank verbinden +command.org.jkiss.dbeaver.core.connect.name = Verbinden +command.org.jkiss.dbeaver.core.disconnect.description = Verbindung zur Datenbank trennen +command.org.jkiss.dbeaver.core.disconnect.name = Verbindung trennen +command.org.jkiss.dbeaver.core.disconnectAll.description = Alle offenen Verbindungen trennen +command.org.jkiss.dbeaver.core.disconnectAll.name = Alle Verbindungen trennen +command.org.jkiss.dbeaver.core.driver.manager.description = Treibermanager +command.org.jkiss.dbeaver.core.driver.manager.name = Treibermanager +command.org.jkiss.dbeaver.core.edit.copy.adv_info = Erweiterte Informationen kopieren +command.org.jkiss.dbeaver.core.edit.copy.special.description = Erweitertes Kopieren +command.org.jkiss.dbeaver.core.edit.copy.special.name = Erweitertes Kopieren +command.org.jkiss.dbeaver.core.edit.paste.special.description = Einf\u00FCgen mit speziellen Einstellungen +command.org.jkiss.dbeaver.core.edit.paste.special.name = Erweitertes Einf\u00FCgen +command.org.jkiss.dbeaver.core.export.data.description = Daten in Dateien oder Datenbanktabellen exportieren +command.org.jkiss.dbeaver.core.export.data.name = Daten exportieren +command.org.jkiss.dbeaver.core.import.data.description = Daten aus Datenbanktabellen importieren +command.org.jkiss.dbeaver.core.import.data.name = Daten importieren +command.org.jkiss.dbeaver.core.invalidate.description = Datenbankverbindung invalidieren bzw. neu verbinden +command.org.jkiss.dbeaver.core.invalidate.name = Invalidieren/Neu Verbinden +command.org.jkiss.dbeaver.core.migrate.connection.description = Verbindung auf neuen Treiber migrieren +command.org.jkiss.dbeaver.core.migrate.connection.name = Verbindungen migrieren +command.org.jkiss.dbeaver.core.navigator.bookmark.add.description = Lesezeichen hinuf\u00FCgen +command.org.jkiss.dbeaver.core.navigator.bookmark.add.name = Lesezeichen hinuf\u00FCgen +command.org.jkiss.dbeaver.core.navigator.linkeditor.description = Link auf Editor +command.org.jkiss.dbeaver.core.navigator.linkeditor.name = Link auf Editor +command.org.jkiss.dbeaver.core.navigator.set.active.description = Aktive Objekte festlegen +command.org.jkiss.dbeaver.core.navigator.set.active.name = Aktive Objekte festlegen +command.org.jkiss.dbeaver.core.navigator.view.configure.description = Spaltensichtbarkeit konfigurieren +command.org.jkiss.dbeaver.core.navigator.view.configure.name = Konfigurieren +command.org.jkiss.dbeaver.core.new.connection.description = Assistent f\u00FCr neue Verbindung +command.org.jkiss.dbeaver.core.new.connection.name = Neue Verbindung +command.org.jkiss.dbeaver.core.new.folder.description = Neuen Verbindungsordner erstellen +command.org.jkiss.dbeaver.core.new.folder.name = Neuer Ordner +command.org.jkiss.dbeaver.core.object.create.description = Neues Datenbankobjekt anlegen +command.org.jkiss.dbeaver.core.object.create.name = Objekt anlegen +command.org.jkiss.dbeaver.core.object.delete.description = Datenbankobjekt l\u00F6schen +command.org.jkiss.dbeaver.core.object.delete.name = Objekt l\u00F6schen +command.org.jkiss.dbeaver.core.object.filter.add.exclude.description = markierte Objekte verstecken +command.org.jkiss.dbeaver.core.object.filter.add.exclude.name = markierte Objekte verstecken +command.org.jkiss.dbeaver.core.object.filter.add.include.description = ausschlie\u00DFlich markierte Objekte anzeigen +command.org.jkiss.dbeaver.core.object.filter.add.include.name = nur markierte Objekte anzeigen +command.org.jkiss.dbeaver.core.object.filter.clear.description = Filter zur\u00FCcksetzen +command.org.jkiss.dbeaver.core.object.filter.clear.name = Filter zur\u00FCcksetzen +command.org.jkiss.dbeaver.core.object.filter.config.description = Objektfilter konfigurieren +command.org.jkiss.dbeaver.core.object.filter.config.name = Filter konfigurieren +command.org.jkiss.dbeaver.core.object.filter.toggle.description = Schaltet Filter ein/aus +command.org.jkiss.dbeaver.core.object.filter.toggle.name = Filter ein/ausschalten +command.org.jkiss.dbeaver.core.object.goto.description = Datenbankobjekt im Metadatenbrowser anzeigen +command.org.jkiss.dbeaver.core.object.goto.name = Datenbankobjekt \u00F6ffnen ... +command.org.jkiss.dbeaver.core.object.open.description = Objekteditor \u00F6ffnen +command.org.jkiss.dbeaver.core.object.open.name = Objekt bearbeiten +command.org.jkiss.dbeaver.core.process.stop.description = laufenden Prozess beenden +command.org.jkiss.dbeaver.core.process.stop.name = Prozess beenden +command.org.jkiss.dbeaver.core.project.active.description = aktives Projekt festlegen +command.org.jkiss.dbeaver.core.project.active.name = aktives Projekt festlegen +command.org.jkiss.dbeaver.core.project.create.description = neues Projekt anlegen +command.org.jkiss.dbeaver.core.project.create.name = neues Projekt anlegen +command.org.jkiss.dbeaver.core.project.refresh.description = Workspace aktualisieren +command.org.jkiss.dbeaver.core.project.refresh.name = Projekte aktualisieren +command.org.jkiss.dbeaver.core.project.select.description = aktives Projekt ausw\u00E4hlen +command.org.jkiss.dbeaver.core.project.select.name = aktives Projekt ausw\u00E4hlen +command.org.jkiss.dbeaver.core.qm.clear.description = Abfragemanager Log leeren +command.org.jkiss.dbeaver.core.qm.clear.name = Log leeren +command.org.jkiss.dbeaver.core.qm.filter.description = Abfragemanager Filter setzen +command.org.jkiss.dbeaver.core.qm.filter.name = Filter ... +command.org.jkiss.dbeaver.core.resource.create.folder.description = Neuen Ordner anlegen +command.org.jkiss.dbeaver.core.resource.create.folder.name = Neuen Ordner anlegen +command.org.jkiss.dbeaver.core.resource.link.folder.description = Erstellt eine Verkn\u00FCpfung auf einen Ordner im Dateisystem +command.org.jkiss.dbeaver.core.resource.link.folder.name = Ordnerverkn\u00FCpfung erstellen +command.org.jkiss.dbeaver.core.resultset.applyChanges.description = \u00C4nderungen speichern +command.org.jkiss.dbeaver.core.resultset.applyChanges.name = \u00C4nderungen speichern +command.org.jkiss.dbeaver.core.resultset.cell.reset.description = Alle Zellen auf Ursprungszustand zur\u00FCcksetzen +command.org.jkiss.dbeaver.core.resultset.cell.reset.name = Zell\u00E4nderungen r\u00FCckg\u00E4ngigmachen +command.org.jkiss.dbeaver.core.resultset.cell.save.description = Zellenwert speichern +command.org.jkiss.dbeaver.core.resultset.cell.save.name = Zellenwert speichern +command.org.jkiss.dbeaver.core.resultset.cell.setNull.description = Zelle auf den Wert NULL setzen +command.org.jkiss.dbeaver.core.resultset.cell.setNull.name = Null-Wert setzen +command.org.jkiss.dbeaver.core.resultset.count.description = Gesamtzeilenanzahl ermitteln +command.org.jkiss.dbeaver.core.resultset.count.name = Zeilenanzahl ermitteln +command.org.jkiss.dbeaver.core.resultset.fetch.all.description = Alle Datenzeilen abrufen +command.org.jkiss.dbeaver.core.resultset.fetch.all.name = Alle Datenzeilen abrufen +command.org.jkiss.dbeaver.core.resultset.fetch.page.description = N\u00E4chste Seite des Ergebnisses einlesen +command.org.jkiss.dbeaver.core.resultset.fetch.page.name = N\u00E4chste Seite einlesen +command.org.jkiss.dbeaver.core.resultset.filterMenu.description = Filter-Kontextmen\u00FC +command.org.jkiss.dbeaver.core.resultset.filterMenu.name = Filtermen\u00FC +command.org.jkiss.dbeaver.core.resultset.generateScript.description = \u00C4nderungsskript generieren +command.org.jkiss.dbeaver.core.resultset.generateScript.name = \u00C4nderungsskript generieren +command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.description = Ausgew\u00E4hlte Spaltenname(n) kopieren +command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.name = Spaltenname(n) kopieren +command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.description = Ausgew\u00E4hlte Zeilennummern kopieren +command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.name = Zeilennummern kopieren +command.org.jkiss.dbeaver.core.resultset.grid.togglePreview.description = Ergebnisanzeige aus- bzw einblenden +command.org.jkiss.dbeaver.core.resultset.grid.togglePreview.name = Ergebnisanzeige aus-/einblenden +command.org.jkiss.dbeaver.core.resultset.navigateLink.description = Foreign Key Link folgen +command.org.jkiss.dbeaver.core.resultset.navigateLink.name = Link folgen +command.org.jkiss.dbeaver.core.resultset.rejectChanges.description = \u00C4nderungen verwerfen +command.org.jkiss.dbeaver.core.resultset.rejectChanges.name = \u00C4nderungen verwerfen +command.org.jkiss.dbeaver.core.resultset.row.add.description = Zeile hinzuf\u00FCgen +command.org.jkiss.dbeaver.core.resultset.row.add.name = Zeile hinzuf\u00FCgen +command.org.jkiss.dbeaver.core.resultset.row.copy.description = aktuell ausgew\u00E4hlte Zeile kopieren +command.org.jkiss.dbeaver.core.resultset.row.copy.name = Zeile kopieren +command.org.jkiss.dbeaver.core.resultset.row.delete.description = aktuell ausgew\u00E4hlte Zeile l\u00F6schen +command.org.jkiss.dbeaver.core.resultset.row.delete.name = Zeile l\u00F6schen +command.org.jkiss.dbeaver.core.resultset.row.edit.description = Zelle in seperatem Editor bearbeiten +command.org.jkiss.dbeaver.core.resultset.row.edit.inline.description = Zelle im Inline-Editor bearbeiten +command.org.jkiss.dbeaver.core.resultset.row.edit.inline.name = Inline-Editor +command.org.jkiss.dbeaver.core.resultset.row.edit.name = Zelle editieren +command.org.jkiss.dbeaver.core.resultset.row.first.description = Zur ersten Zeile gehen +command.org.jkiss.dbeaver.core.resultset.row.first.name = Erste Zeile +command.org.jkiss.dbeaver.core.resultset.row.last.description = Zur letzten Zeile gehen +command.org.jkiss.dbeaver.core.resultset.row.last.name = Letzte Zeile +command.org.jkiss.dbeaver.core.resultset.row.next.description = Zur nachfolgenden Zeile gehen +command.org.jkiss.dbeaver.core.resultset.row.next.name = N\u00E4chste Zeile +command.org.jkiss.dbeaver.core.resultset.row.previous.description = Zur vorherigen Zeile gehen +command.org.jkiss.dbeaver.core.resultset.row.previous.name = Vorherige Zeile +command.org.jkiss.dbeaver.core.resultset.switchPresentation.description = Darstellung umschalten +command.org.jkiss.dbeaver.core.resultset.switchPresentation.name = Darstellung umschalten +command.org.jkiss.dbeaver.core.resultset.toggleMode.description = Umschalten zwischen Grid und Textansicht +command.org.jkiss.dbeaver.core.resultset.toggleMode.name = Umschalten zwischen Grid und Textansicht +command.org.jkiss.dbeaver.core.rollback.description = Aktuelle \u00C4nderungen zur\u00FCcknehmen +command.org.jkiss.dbeaver.core.rollback.name = Rollback +command.org.jkiss.dbeaver.core.sql.editor.create.description = neuen SQL Editor \u00F6ffnen +command.org.jkiss.dbeaver.core.sql.editor.create.name = neuer SQL Editor +command.org.jkiss.dbeaver.core.sql.editor.forSelection.description = SQL Console mit Abfrage \u00F6ffnen +command.org.jkiss.dbeaver.core.sql.editor.forSelection.name = Daten in SQL Console abfragen +command.org.jkiss.dbeaver.core.sql.editor.open.description = SQL Editor \u00F6ffnen +command.org.jkiss.dbeaver.core.sql.editor.open.name = SQL Editor +command.org.jkiss.dbeaver.core.sql.editor.recent.description = zuletzt ge\u00F6ffneten SQL Editor \u00F6ffnen +command.org.jkiss.dbeaver.core.sql.editor.recent.name = letzten SQL Editor \u00F6ffnen +command.org.jkiss.dbeaver.core.sql.script.associate.description = ausgew\u00E4hltes Script mit der Datenquelle verkn\u00FCpfen +command.org.jkiss.dbeaver.core.sql.script.associate.name = Mit Datenquelle verkn\u00FCpfen +command.org.jkiss.dbeaver.core.transaction_mode.name = Transaktionsmodus +command.org.jkiss.dbeaver.core.txn.autocommit.description = Automatisches festschreiben aktivieren +command.org.jkiss.dbeaver.core.txn.autocommit.name = Auto-commit +command.org.jkiss.dbeaver.ui.editors.sql.assist.templates.description = Auto-complete Vorlagenname +command.org.jkiss.dbeaver.ui.editors.sql.assist.templates.name = Auto-complete Vorlagenname +command.org.jkiss.dbeaver.ui.editors.sql.comment.multi.description = Zeilenkommentar hinzuf\u00FCgen/entfernen +command.org.jkiss.dbeaver.ui.editors.sql.comment.multi.name = Blockommentar umschalten +command.org.jkiss.dbeaver.ui.editors.sql.comment.single.description = Zeilenkommentar umschalten +command.org.jkiss.dbeaver.ui.editors.sql.comment.single.name = Kommentarzeile ein-/ausblenden +command.org.jkiss.dbeaver.ui.editors.sql.export.data.description = Abfragedaten der aktuellen Abfrage exportieren +command.org.jkiss.dbeaver.ui.editors.sql.export.data.name = Abfragedaten exportieren +command.org.jkiss.dbeaver.ui.editors.sql.navigate.object.description = \u00D6ffnene Defintion des aktuell ausgew\u00E4hlten Objektes +command.org.jkiss.dbeaver.ui.editors.sql.navigate.object.name = Definition \u00F6ffnen +command.org.jkiss.dbeaver.ui.editors.sql.open.file.description = SQL Script aus Datei laden +command.org.jkiss.dbeaver.ui.editors.sql.open.file.name = SQL Script laden +command.org.jkiss.dbeaver.ui.editors.sql.query.next.description = zu n\u00E4chste Abfrage springen +command.org.jkiss.dbeaver.ui.editors.sql.query.next.name = N\u00E4chste Abfrage +command.org.jkiss.dbeaver.ui.editors.sql.query.prev.description = zu vorherige Abfrage springen +command.org.jkiss.dbeaver.ui.editors.sql.query.prev.name = Vorherige Abfrage +command.org.jkiss.dbeaver.ui.editors.sql.run.count.description = Zeilenanzahl f\u00FCr Abfrage unterhalb des Cursors abfragen +command.org.jkiss.dbeaver.ui.editors.sql.run.count.name = Zeilenanzahl abfragen +command.org.jkiss.dbeaver.ui.editors.sql.run.explain.description = Ausf\u00FChrungsplan anzeigen +command.org.jkiss.dbeaver.ui.editors.sql.run.explain.name = Ausf\u00FChrungsplan anzeigen +command.org.jkiss.dbeaver.ui.editors.sql.run.expression.description = SQL Expression abfragen und Wert anzeigen +command.org.jkiss.dbeaver.ui.editors.sql.run.expression.name = SQL Expression auswerten +command.org.jkiss.dbeaver.ui.editors.sql.run.script.description = SQL Script ausf\u00FChren +command.org.jkiss.dbeaver.ui.editors.sql.run.script.name = SQL Script ausf\u00FChren +command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.description = Statements mit eigenen Ergebnisregisterkarten ausf\u00FChren +command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.name = Statements mit seperaten Ergebnis-Tabs ausf\u00FChren +command.org.jkiss.dbeaver.ui.editors.sql.run.statement.description = SQL Statement ausf\u00FChren +command.org.jkiss.dbeaver.ui.editors.sql.run.statement.name = SQL Statement ausf\u00FChren +command.org.jkiss.dbeaver.ui.editors.sql.run.statementNew.description = SQL Statement in einer neuen Registerkarte ausf\u00FChren +command.org.jkiss.dbeaver.ui.editors.sql.run.statementNew.name = SQL Statement in neu Tab ausf\u00FChren +command.org.jkiss.dbeaver.ui.editors.sql.save.file.description = SQL Script in Datei speichern +command.org.jkiss.dbeaver.ui.editors.sql.save.file.name = SQL Script speichern +command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.description = Aktuelles Panel umschalten +command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.name = Aktuelles Panel umschalten +command.org.jkiss.dbeaver.ui.editors.sql.sync.auto.description = Verbindung automatisch mit Navigator synchronisieren +command.org.jkiss.dbeaver.ui.editors.sql.sync.auto.name = Verbindung automatisch mit Navigator synchronisieren +command.org.jkiss.dbeaver.ui.editors.sql.sync.connection.description = Aktuelle Verbindung auf Auswahl des Navigators setzen +command.org.jkiss.dbeaver.ui.editors.sql.sync.connection.name = Aktuelle Verbindung setzen +command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.description = Ergebnisanzeige ein-/ausblenden +command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.name = Ergebnisanzeige ein-/ausblenden +command.org.jkiss.dbeaver.ui.editors.sql.word.wrap.description = Zeilenumbruchen ein- bzw ausschalten +command.org.jkiss.dbeaver.ui.editors.sql.word.wrap.name = Zeilenumbruch umschalten +command.org.jkiss.dbeaver.ui.editors.text.content.format.description = Text formatieren +command.org.jkiss.dbeaver.ui.editors.text.content.format.name = Inhaltsformatierung + +dataTransfer.consumer.database.description = Datenbanktabellen +dataTransfer.consumer.database.name = Datenbank +dataTransfer.consumer.stream.description = Flat-Files +dataTransfer.consumer.stream.name = Dateien +dataTransfer.processor.csv.description = Als CSV-Datei(en) exportieren +dataTransfer.processor.csv.name = CSV +dataTransfer.processor.csv.property.delimiter.description = Spaltentrennzeichen +dataTransfer.processor.csv.property.delimiter.name = Spaltentrennzeichen +dataTransfer.processor.csv.property.escape.description = Zeichenketten-Escapemodus +dataTransfer.processor.csv.property.escape.name = Zeichenketten-Escapemodus +dataTransfer.processor.csv.property.header.description = CSV-\u00DCberschrifteinstellungen +dataTransfer.processor.csv.property.header.name = \u00DCberschrift +dataTransfer.processor.csv.property.quoteChar.description = Zeichenkettentrennzeichen (Leertaste f\u00FCr keine Trennung) +dataTransfer.processor.csv.property.quoteChar.name = Zeichenkettentrennzeichen +dataTransfer.processor.html.description = Als HTML-Datei(en) exportieren +dataTransfer.processor.html.name = HTML +dataTransfer.processor.html.property.images.description = Bilder extrahieren und in Dateien speichern +dataTransfer.processor.html.property.images.name = Bilder +dataTransfer.processor.json.description = Als JSON Datei(en) exportieren +dataTransfer.processor.json.name = JSON +dataTransfer.processor.sql.description = Als SQL-Insertbefehle exportieren +dataTransfer.processor.sql.name = SQL +dataTransfer.processor.sql.property.escape.description = Escape-Zeichen f\u00FCr Einzelanf\u00FChrungszeichen +dataTransfer.processor.sql.property.escape.name = Escape-Zeichen +dataTransfer.processor.sql.property.omitSchema.description = Schemanamen bei Insert Statements weglassen +dataTransfer.processor.sql.property.omitSchema.name = Schemanamen weglassen +dataTransfer.processor.sql.property.rowsInStatement.description = Anzahl der Zeilen je Insert Statement +dataTransfer.processor.sql.property.rowsInStatement.name = Zeilen je Insert Statement +dataTransfer.processor.xml.description = Als XML Datei(en) exportieren +dataTransfer.processor.xml.name = XML +dataTransfer.producer.database.description = Datenbanktabelle(n) +dataTransfer.producer.database.name = Tabelle + +editor.dbdata.description = Tabellendaten +editor.dbdata.name = Daten +editor.entity.name = Entit\u00E4ten Editor +editor.folder.name = Ordner Editor +editor.lob.name = Large Object Editor +editor.sql.name = SQL Editor + +menu.database = &Datenbank +menu.database.sql.generate = SQL generieren +menu.database.tools = Werkzeuge +menu.navigate = Navigieren +menu.sqleditor = &SQL Editor + +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor$ContextInfo.name.name = Kontextname +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.description.name = Beschreibung +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.name.name = Name +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyAddress.name = Addresse +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyConnectTime.name = Verbindungszeit +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyConnectType.name = Verbindungstyp +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDatabase.name = Datenbank +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDriver.name = Treiber +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDriverType.name = Treibertyp +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyServerName.name = Server +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyURL.name = URL +meta.org.jkiss.dbeaver.registry.DriverDescriptor.category.name = Treiberkategorie +meta.org.jkiss.dbeaver.registry.DriverDescriptor.description.name = Beschreibung +meta.org.jkiss.dbeaver.registry.DriverDescriptor.driverClassName.name = Treiberklasse +meta.org.jkiss.dbeaver.registry.DriverDescriptor.name.name = Treibername +meta.org.jkiss.dbeaver.registry.DriverDescriptor.sampleURL.name = URL +meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.columns.name = Spalten +meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.name.name = Name +meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.type.name = Typ +meta.org.jkiss.dbeaver.ui.search.data.SearchDataObject.foundRows.name = Gefundene Zeilen (>=) +meta.org.jkiss.dbeaver.ui.search.data.SearchDataObject.name.name = Name + +search.page.label.db.fulltext = DB Volltextsuche +search.page.label.db.metadata = DB Metadata +command.org.jkiss.dbeaver.core.resultset.export.name=Ergebnis exportieren ... diff --git a/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_it.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_it.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_it.properties diff --git a/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ko.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ko.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ko.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ko.properties index a4c69124eb..5cc919cd79 100644 --- a/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ko.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ko.properties @@ -1,5 +1,5 @@ - -view.project.explorer.title = \uD504\uB85C\uC81D\uD2B8 \uD0D0\uC0C9\uAE30 -view.project.navigator.title = \uD504\uB85C\uC81D\uD2B8 -view.shell.process.title = \uD504\uB85C\uC138\uC2A4 -command.org.jkiss.dbeaver.core.resultset.export.name=\uACB0\uACFC \uB0B4\uBCF4\uB0B4\uAE30 + +view.project.explorer.title = \uD504\uB85C\uC81D\uD2B8 \uD0D0\uC0C9\uAE30 +view.project.navigator.title = \uD504\uB85C\uC81D\uD2B8 +view.shell.process.title = \uD504\uB85C\uC138\uC2A4 +command.org.jkiss.dbeaver.core.resultset.export.name=\uACB0\uACFC \uB0B4\uBCF4\uB0B4\uAE30 diff --git a/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_zh.properties index 42845185bc..1809dbc00f 100644 --- a/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.nls/OSGI-INF/l10n/bundle_zh.properties @@ -1,536 +1,536 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) -# Copyright (C) 2012 Brook.Tran (Brook.Tran.C@gmail.com) - -Bundle-Vendor = JKISS -Bundle-Name = DBeaver \u6838\u5FC3\u63D2\u4EF6 - -DateFormatter.date.general.label = \u4E00\u822C -DateFormatter.date.general.pattern.description = \u65E5\u671F\u6A21\u5F0F -DateFormatter.date.general.pattern.label = \u6A21\u5F0F -DateFormatter.date.label = \u65E5\u671F -DateFormatter.number.general.grouping.description = \u5728\u8BE5\u683C\u5F0F\u4E2D\u4F7F\u7528\u5206\u7EC4 -DateFormatter.number.general.grouping.label = \u5206\u7EC4 -DateFormatter.number.general.label = \u4E00\u822C -DateFormatter.number.general.maxFractDigits.description = \u6700\u591A\u5C0F\u6570\u4F4D\u6570 -DateFormatter.number.general.maxFractDigits.label = \u6700\u591A\u5C0F\u6570\u4F4D\u6570 -DateFormatter.number.general.maxIntDigits.description = \u6700\u5927\u6574\u6570\u4F4D\u6570 -DateFormatter.number.general.maxIntDigits.label = \u6700\u5927\u6574\u6570\u4F4D\u6570 -DateFormatter.number.general.minFractDigits.description = \u6700\u5C11\u5C0F\u6570\u4F4D\u6570 -DateFormatter.number.general.minFractDigits.label = \u6700\u5C11\u5C0F\u6570\u4F4D\u6570 -DateFormatter.number.general.minIntDigits.description = \u6700\u5C0F\u6574\u6570\u4F4D\u6570 -DateFormatter.number.general.minIntDigits.label = \u6700\u5C0F\u6574\u6570\u4F4D\u6570 -DateFormatter.number.general.roundingMode.description = \u53D6\u6574\u6A21\u5F0F -DateFormatter.number.general.roundingMode.label = \u53D6\u6574\u6A21\u5F0F -DateFormatter.number.label = \u6570\u5B57 -DateFormatter.time.general.label = \u4E00\u822C -DateFormatter.time.general.pattern.description = \u65F6\u95F4\u6A21\u5F0F -DateFormatter.time.general.pattern.label = \u6A21\u5F0F -DateFormatter.time.label = \u65F6\u95F4 -DateFormatter.timestamp.general.label = \u4E00\u822C -DateFormatter.timestamp.general.pattern.description = \u65F6\u95F4\u6233\u6A21\u5F0F -DateFormatter.timestamp.general.pattern.label = \u6A21\u5F0F -DateFormatter.timestamp.label = \u65F6\u95F4\u6233 - -category.dbconnection.description = \u6570\u636E\u5E93\u8FDE\u63A5 -category.dbconnection.name = \u8FDE\u63A5 -category.dbnavigator.description = \u6570\u636E\u5E93\u5BFC\u822A -category.dbnavigator.name = \u6570\u636E\u5E93\u5BFC\u822A -category.org.jkiss.dbeaver.core.category.name = \u6570\u636E\u5E93 -category.org.jkiss.dbeaver.core.export.resources.name = DBeaver -category.org.jkiss.dbeaver.core.import.resources.name = DBeaver -category.org.jkiss.dbeaver.core.new.general.name = DBeaver -category.rs.description = \u7ED3\u679C\u96C6 -category.rs.name = \u7ED3\u679C\u96C6 -category.sqleditor.description = SQL\u7F16\u8F91\u5668 -category.sqleditor.name = SQL\u7F16\u8F91\u5668 -category.utility.description = \u5B9E\u7528\u5DE5\u5177 -category.utility.name = \u5B9E\u7528\u5DE5\u5177 - -colorDefinition.org.jkiss.dbeaver.sql.editor.color.command.foreground.description = \u63A7\u5236\u547D\u4EE4\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.command.foreground.label = SQL \u547D\u4EE4\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.comment.foreground.description = SQL \u6CE8\u91CA\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.comment.foreground.label = SQL \u6CE8\u91CA\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.datatype.foreground.description = SQL \u6570\u636E\u7C7B\u578B\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.datatype.foreground.label = SQL \u6570\u636E\u7C7B\u578B\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.delimiter.foreground.description = SQL \u8BED\u53E5\u5206\u9694\u7B26\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.delimiter.foreground.label = SQL \u5206\u9694\u7B26\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.disabled.background.description = SQL \u6587\u672C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.disabled.background.label = SQL \u7981\u7528\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.keyword.foreground.description = SQL \u5173\u952E\u5B57\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.keyword.foreground.label = SQL \u5173\u952E\u5B57\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.number.foreground.description = SQL \u6570\u5B57\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.number.foreground.label = SQL \u6570\u5B57\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.parameter.foreground.description = SQL \u53C2\u6570 (?, :param, \u7B49) \u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.parameter.foreground.label = SQL \u53C2\u6570\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.string.foreground.description = SQL \u5B57\u7B26\u5DEE\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.string.foreground.label = SQL \u5B57\u7B26\u4E32\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.editor.color.text.background.description = SQL \u6587\u672C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.text.background.label = SQL \u6587\u672C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.text.foreground.description = SQL \u6587\u672C\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.editor.color.text.foreground.label = SQL \u6587\u672C\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.deleted.background.description = \u5220\u9664\u884C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.deleted.background.label = \u5220\u9664\u884C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.matched.background.description = \u65B0\u5EFA\u884C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.matched.background.label = \u5339\u914D\uFF08\u67E5\u627E/\u66FF\u6362\uFF09\u7684\u884C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.modified.background.description = \u4FEE\u6539\u7684\u5355\u5143\u683C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.modified.background.label = \u4FEE\u6539\u7684\u5355\u5143\u683C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.new.background.description = \u65B0\u5EFA\u884C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.new.background.label = \u65B0\u5EFA\u884C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.odd.background.description = \u5947\u6570\u884C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.odd.background.label = \u5947\u6570\u884C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.readonly.background.description = \u53EA\u8BFB\u5355\u5143\u683C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.readonly.background.label = \u53EA\u8BFB\u5355\u5143\u683C\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.background.description = \u7F51\u683C\u5934\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.background.label = \u7F51\u683C\u5934\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.foreground.description = \u7F51\u683C\u5934\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.foreground.label = \u7F51\u683C\u5934\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.selected.background.description = \u7F51\u683C\u5934\u5317\u4EAC -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.selected.background.label = \u7F51\u683C\u9009\u4E2D\u5934\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.lines.normal.description = \u7EBF\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.lines.normal.label = \u7F51\u683C\u7EBF\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.lines.selected.description = \u9009\u4E2D\u7684\u7EBF\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.lines.selected.label = \u7F51\u683C\u9009\u4E2D\u7684\u7EBF\u989C\u8272 -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.null.foreground.description = \u7F51\u683CNULL\u503C\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.null.foreground.label = \u7F51\u683CNULL\u503C\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.preview.background.description = \u6570\u503C\u7F16\u8F91\u5668\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.preview.background.label = \u6570\u503C\u7F16\u8F91\u5668\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.selection.background.description = \u9009\u4E2D\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.selection.background.label = \u9009\u4E2D\u80CC\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.selection.foreground.description = \u9009\u4E2D\u524D\u666F -colorDefinition.org.jkiss.dbeaver.sql.resultset.color.selection.foreground.label = \u9009\u4E2D\u524D\u666F - -column.org.jkiss.dbeaver.ui.editors.columns.script.position.name = \u811A\u672C\u4F4D\u7F6E - -command.org.eclipse.ui.edit.copy.name = \u590D\u5236 -command.org.eclipse.ui.edit.delete.name = \u5220\u9664 -command.org.eclipse.ui.edit.paste.name = \u7C98\u8D34 -command.org.eclipse.ui.edit.rename.name = \u91CD\u547D\u540D -command.org.eclipse.ui.navigate.collapseAll.name = \u5168\u90E8\u6298\u53E0 -command.org.eclipse.ui.navigate.expandAll.name = \u5168\u90E8\u5C55\u5F00 -command.org.eclipse.ui.views.showView.label = \u67E5\u8BE2\u7BA1\u7406\u5668 -command.org.eclipse.ui.views.showView.queryManager = \u67E5\u8BE2\u7BA1\u7406\u5668 -command.org.jkiss.dbeaver.core.commit.description = \u5C06\u66F4\u6539\u4FDD\u5B58\u81F3 SQL Session -command.org.jkiss.dbeaver.core.commit.label = \u63D0\u4EA4 -command.org.jkiss.dbeaver.core.commit.name = \u4FDD\u5B58\u66F4\u6539 -command.org.jkiss.dbeaver.core.compare.objects.description = \u6BD4\u8F83\u6570\u636E\u5E93\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.compare.objects.name = \u6BD4\u8F83 -command.org.jkiss.dbeaver.core.connect.description = \u8FDE\u63A5\u81F3\u6570\u636E\u5E93 -command.org.jkiss.dbeaver.core.connect.name = \u8FDE\u63A5 -command.org.jkiss.dbeaver.core.disconnect.description = \u65AD\u5F00\u6570\u636E\u5E93\u8FDE\u63A5 -command.org.jkiss.dbeaver.core.disconnect.name = \u65AD\u5F00\u8FDE\u63A5 -command.org.jkiss.dbeaver.core.disconnectAll.description = \u5173\u95ED\u6240\u6709\u6253\u5F00\u7684\u8FDE\u63A5 -command.org.jkiss.dbeaver.core.disconnectAll.name = \u65AD\u5F00\u5168\u90E8 -command.org.jkiss.dbeaver.core.driver.manager.description = \u9A71\u52A8\u7BA1\u7406 -command.org.jkiss.dbeaver.core.driver.manager.name = \u9A71\u52A8\u7BA1\u7406 -command.org.jkiss.dbeaver.core.edit.copy.adv_info = \u9AD8\u7EA7\u590D\u5236 -command.org.jkiss.dbeaver.core.edit.copy.special.description = \u590D\u5236\u7279\u5B9A\u4FE1\u606F -command.org.jkiss.dbeaver.core.edit.copy.special.label = \u9AD8\u7EA7\u62F7\u8D1D -command.org.jkiss.dbeaver.core.edit.copy.special.name = \u9AD8\u7EA7\u590D\u5236 -command.org.jkiss.dbeaver.core.edit.paste.special.description = \u7C98\u8D34\u5E76\u4FDD\u7559\u989D\u5916\u8BBE\u7F6E -command.org.jkiss.dbeaver.core.edit.paste.special.name = \u9AD8\u7EA7\u7C98\u8D34 -command.org.jkiss.dbeaver.core.export.data.description = \u5C06\u6570\u636E\u5BFC\u51FA\u81F3\u6587\u4EF6 -command.org.jkiss.dbeaver.core.export.data.name = \u5BFC\u51FA\u6570\u636E -command.org.jkiss.dbeaver.core.import.data.description = \u4ECE\u6570\u636E\u5E93\u8868\u4E2D\u5BFC\u5165\u6570\u636E -command.org.jkiss.dbeaver.core.import.data.name = \u5BFC\u5165\u6570\u636E -command.org.jkiss.dbeaver.core.invalidate.description = \u65AD\u5F00\u6216\u91CD\u65B0\u8FDE\u63A5 -command.org.jkiss.dbeaver.core.invalidate.name = \u65AD\u5F00/\u91CD\u65B0\u8FDE\u63A5 -command.org.jkiss.dbeaver.core.migrate.connection.description = \u8FC1\u79FB(\u8FDE\u63A5)\u81F3\u5176\u5B83\u6570\u636E\u5E93 -command.org.jkiss.dbeaver.core.migrate.connection.name = \u8FC1\u79FB\u8FDE\u63A5 -command.org.jkiss.dbeaver.core.navigator.bookmark.add.description = \u6DFB\u52A0\u4E66\u7B7E -command.org.jkiss.dbeaver.core.navigator.bookmark.add.name = \u6DFB\u52A0\u4E66\u7B7E -command.org.jkiss.dbeaver.core.navigator.linkeditor.description = \u94FE\u63A5\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.navigator.linkeditor.name = \u94FE\u63A5\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.navigator.set.active.description = \u8BBE\u4E3A\u6D3B\u52A8\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.navigator.set.active.name = \u8BBE\u4E3A\u6D3B\u52A8\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.navigator.view.configure.description = \u914D\u7F6E\u5B57\u6BB5\u53EF\u89C1\u6027 -command.org.jkiss.dbeaver.core.navigator.view.configure.name = \u914D\u7F6E\u5B57\u6BB5 -command.org.jkiss.dbeaver.core.new.connection.description = \u65B0\u5EFA\u8FDE\u63A5\u5411\u5BFC -command.org.jkiss.dbeaver.core.new.connection.name = \u65B0\u5EFA\u8FDE\u63A5 -command.org.jkiss.dbeaver.core.new.folder.description = \u521B\u5EFA\u65B0\u8FDE\u63A5\u6587\u4EF6\u5939 -command.org.jkiss.dbeaver.core.new.folder.name = \u65B0\u5EFA\u6587\u4EF6\u5939 -command.org.jkiss.dbeaver.core.object.create.description = \u521B\u5EFA\u65B0\u7684\u6570\u636E\u5E93\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.create.name = \u521B\u5EFA\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.delete.description = \u5220\u9664\u6570\u636E\u5E93\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.delete.name = \u5220\u9664\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.filter.add.exclude.description = \u9690\u85CF\u9009\u4E2D\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.filter.add.exclude.name = \u9690\u85CF\u9009\u4E2D\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.filter.add.include.description = \u4EC5\u663E\u793A\u9009\u4E2D\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.filter.add.include.name = \u4EC5\u663E\u793A\u9009\u4E2D\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.filter.clear.description = \u6E05\u9664\u8FC7\u6EE4\u8BBE\u7F6E -command.org.jkiss.dbeaver.core.object.filter.clear.name = \u6E05\u695A\u8FC7\u6EE4 -command.org.jkiss.dbeaver.core.object.filter.config.description = \u914D\u7F6E\u5BF9\u8C61\u8FC7\u6EE4 -command.org.jkiss.dbeaver.core.object.filter.config.name = \u914D\u7F6E\u8FC7\u6EE4 -command.org.jkiss.dbeaver.core.object.filter.toggle.description = \u5207\u6362(\u542F\u7528/\u7981\u7528)\u5B9A\u4E49\u7684\u8FC7\u6EE4\u5668 -command.org.jkiss.dbeaver.core.object.filter.toggle.name = \u5207\u6362\u8FC7\u6EE4\u5668 -command.org.jkiss.dbeaver.core.object.goto.description = \u6253\u5F00\u6570\u636E\u5E93\u5143\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.goto.name = \u6253\u5F00\u6570\u636E\u5E93\u5BF9\u8C61 ... -command.org.jkiss.dbeaver.core.object.move.down.description = \u4E0B\u79FB\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.move.down.name = \u4E0B\u79FB -command.org.jkiss.dbeaver.core.object.move.up.description = \u4E0A\u79FB\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.object.move.up.name = \u4E0A\u79FB -command.org.jkiss.dbeaver.core.object.open.description = \u6253\u5F00\u5BF9\u8C61\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.object.open.name = \u7F16\u8F91\u5BF9\u8C61 -command.org.jkiss.dbeaver.core.process.stop.description = \u7EC8\u6B62\u6B63\u5728\u8FDB\u884C\u7684\u8FDB\u7A0B -command.org.jkiss.dbeaver.core.process.stop.name = \u7EC8\u6B62\u8FDB\u7A0B -command.org.jkiss.dbeaver.core.project.active.description = \u8BBE\u4E3A\u6D3B\u52A8\u9879\u76EE -command.org.jkiss.dbeaver.core.project.active.name = \u8BBE\u4E3A\u6D3B\u52A8\u9879\u76EE -command.org.jkiss.dbeaver.core.project.create.description = \u65B0\u5EFA\u9879\u76EE -command.org.jkiss.dbeaver.core.project.create.name = \u65B0\u5EFA\u9879\u76EE -command.org.jkiss.dbeaver.core.project.refresh.description = \u5237\u65B0\u6574\u4E2A\u5DE5\u4F5C\u7A7A\u95F4 -command.org.jkiss.dbeaver.core.project.refresh.name = \u5237\u65B0\u9879\u76EE -command.org.jkiss.dbeaver.core.project.select.description = \u9009\u62E9\u6D3B\u52A8\u9879\u76EE -command.org.jkiss.dbeaver.core.project.select.name = \u9009\u62E9\u6D3B\u52A8\u9879\u76EE -command.org.jkiss.dbeaver.core.qm.clear.description = \u6E05\u9664\u67E5\u8BE2\u65E5\u5FD7 -command.org.jkiss.dbeaver.core.qm.clear.name = \u6E05\u9664\u65E5\u5FD7 -command.org.jkiss.dbeaver.core.qm.filter.description = \u8BBE\u7F6E\u8FC7\u6EE4\u5668 -command.org.jkiss.dbeaver.core.qm.filter.name = \u8FC7\u6EE4... -command.org.jkiss.dbeaver.core.resource.create.folder.description = \u65B0\u5EFA\u6587\u4EF6\u5939 -command.org.jkiss.dbeaver.core.resource.create.folder.name = \u65B0\u5EFA\u6587\u4EF6\u5939 -command.org.jkiss.dbeaver.core.resource.link.file.description = \u521B\u5EFA\u6587\u4EF6\u7CFB\u7EDF\u4E2D\u6587\u4EF6\u7684\u94FE\u63A5 -command.org.jkiss.dbeaver.core.resource.link.file.name = \u94FE\u63A5\u6587\u4EF6 -command.org.jkiss.dbeaver.core.resource.link.folder.description = \u521B\u5EFA\u8FDE\u63A5\u81F3\u6587\u4EF6\u7CFB\u7EDF\u7684\u6587\u4EF6\u5939 -command.org.jkiss.dbeaver.core.resource.link.folder.name = \u94FE\u63A5\u6587\u4EF6\u5939 -command.org.jkiss.dbeaver.core.resultset.applyChanges.description = \u4FDD\u5B58\u53D8\u66F4 -command.org.jkiss.dbeaver.core.resultset.applyChanges.name = \u4FDD\u5B58\u53D8\u66F4 -command.org.jkiss.dbeaver.core.resultset.cell.reset.description = \u91CD\u7F6E\u53D8\u66F4 -command.org.jkiss.dbeaver.core.resultset.cell.reset.name = \u91CD\u7F6E\u53D8\u66F4 -command.org.jkiss.dbeaver.core.resultset.cell.save.description = \u4FDD\u5B58\u5355\u5143\u503C -command.org.jkiss.dbeaver.core.resultset.cell.save.name = \u4FDD\u5B58\u5355\u5143\u503C -command.org.jkiss.dbeaver.core.resultset.cell.setNull.description = \u8BBE\u4E3A\u7A7A(NULL) -command.org.jkiss.dbeaver.core.resultset.cell.setNull.name = \u8BBE\u4E3A\u7A7A(NULL) -command.org.jkiss.dbeaver.core.resultset.count.description = \u68C0\u7D22\u603B\u884C\u6570 -command.org.jkiss.dbeaver.core.resultset.count.name = \u884C\u8BA1\u6570 -command.org.jkiss.dbeaver.core.resultset.export.description = \u5BFC\u51FA\u7ED3\u679C\u96C6\u5230\u6587\u4EF6\u6216\u53E6\u4E00\u4E2A\u6570\u636E\u8868 -command.org.jkiss.dbeaver.core.resultset.export.name = \u5BFC\u51FA\u7ED3\u679C\u96C6 ... -command.org.jkiss.dbeaver.core.resultset.fetch.all.description = \u83B7\u53D6\u6240\u6709\u884C -command.org.jkiss.dbeaver.core.resultset.fetch.all.name = \u83B7\u53D6\u6240\u6709\u6570\u636E -command.org.jkiss.dbeaver.core.resultset.fetch.page.description = \u83B7\u53D6\u7ED3\u679C\u7684\u4E0B\u4E00\u9875 -command.org.jkiss.dbeaver.core.resultset.fetch.page.name = \u83B7\u53D6\u4E0B\u4E00\u9875 -command.org.jkiss.dbeaver.core.resultset.filterMenu.description = \u8FC7\u6EE4\u4E0A\u4E0B\u6587\u83DC\u5355 -command.org.jkiss.dbeaver.core.resultset.filterMenu.name = \u8FC7\u6EE4\u83DC\u5355 -command.org.jkiss.dbeaver.core.resultset.focus.filter.description = \u5C06\u7126\u70B9\u8BBE\u7F6E\u5230\u8FC7\u6EE4\u7F16\u8F91\u5668/\u6570\u636E\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.resultset.focus.filter.name = \u6FC0\u6D3B\u8FC7\u6EE4\u5668/\u6570\u636E\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.resultset.generateScript.description = \u751F\u6210\u53D8\u66F4\u811A\u672C -command.org.jkiss.dbeaver.core.resultset.generateScript.name = \u751F\u6210\u811A\u672C -command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.description = \u62F7\u8D1D\u9009\u62E9\u7684\u5B57\u6BB5\u540D\u79F0 -command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.name = \u62F7\u8D1D\u5B57\u6BB5\u540D\u79F0 -command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.description = \u62F7\u8D1D\u9009\u62E9\u7684\u884C\u53F7 -command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.name = \u62F7\u8D1D\u884C\u53F7 -command.org.jkiss.dbeaver.core.resultset.grid.togglePreview.description = \u5207\u6362\u989D\u5916\u7ED3\u679C\u9762\u677F -command.org.jkiss.dbeaver.core.resultset.grid.togglePreview.name = \u5207\u6362\u7ED3\u679C\u9762\u677F -command.org.jkiss.dbeaver.core.resultset.navigateLink.description = \u9075\u5FAA\u5916\u952E\u94FE\u63A5 -command.org.jkiss.dbeaver.core.resultset.navigateLink.name = \u5BFC\u822A\u94FE\u63A5 -command.org.jkiss.dbeaver.core.resultset.rejectChanges.description = \u653E\u5F03\u53D8\u66F4 -command.org.jkiss.dbeaver.core.resultset.rejectChanges.name = \u653E\u5F03\u53D8\u66F4 -command.org.jkiss.dbeaver.core.resultset.row.add.description = \u6DFB\u52A0\u884C -command.org.jkiss.dbeaver.core.resultset.row.add.name = \u6DFB\u52A0\u884C -command.org.jkiss.dbeaver.core.resultset.row.copy.description = \u590D\u5236\u5F53\u524D\u884C -command.org.jkiss.dbeaver.core.resultset.row.copy.name = \u590D\u5236\u884C -command.org.jkiss.dbeaver.core.resultset.row.delete.description = \u5220\u9664\u884C -command.org.jkiss.dbeaver.core.resultset.row.delete.name = \u5220\u9664\u884C -command.org.jkiss.dbeaver.core.resultset.row.edit.description = \u7F16\u8F91\u5355\u5143\u683C -command.org.jkiss.dbeaver.core.resultset.row.edit.inline.description = \u4F7F\u7528\u5185\u5D4C\u7F16\u8F91\u5668\u7F16\u8F91\u5355\u5143\u503C -command.org.jkiss.dbeaver.core.resultset.row.edit.inline.name = \u5185\u5D4C\u7F16\u8F91 -command.org.jkiss.dbeaver.core.resultset.row.edit.name = \u7F16\u8F91\u5355\u5143\u683C -command.org.jkiss.dbeaver.core.resultset.row.first.description = \u79FB\u52A8\u81F3\u9996\u884C -command.org.jkiss.dbeaver.core.resultset.row.first.name = \u9996\u884C -command.org.jkiss.dbeaver.core.resultset.row.last.description = \u672B\u884C -command.org.jkiss.dbeaver.core.resultset.row.last.name = \u672B\u884C -command.org.jkiss.dbeaver.core.resultset.row.next.description = \u4E0B\u4E00\u884C -command.org.jkiss.dbeaver.core.resultset.row.next.name = \u4E0B\u4E00\u884C -command.org.jkiss.dbeaver.core.resultset.row.previous.description = \u4E0A\u4E00\u884C -command.org.jkiss.dbeaver.core.resultset.row.previous.name = \u4E0A\u4E00\u884C -command.org.jkiss.dbeaver.core.resultset.switchPresentation.description = \u5207\u6362\u7ED3\u679C\u8868\u793A -command.org.jkiss.dbeaver.core.resultset.switchPresentation.name = \u5207\u6362\u8868\u793A -command.org.jkiss.dbeaver.core.resultset.toggleMode.description = \u8868\u683C/\u5355\u9879\u89C6\u56FE -command.org.jkiss.dbeaver.core.resultset.toggleMode.name = \u8868\u683C/\u5355\u9879\u89C6\u56FE -command.org.jkiss.dbeaver.core.rollback.description = \u56DE\u6EDA\u66F4\u6539\u81F3 SQL Session -command.org.jkiss.dbeaver.core.rollback.name = \u56DE\u6EDA\u66F4\u6539 -command.org.jkiss.dbeaver.core.rollbacklabel = \u56DE\u6EDA -command.org.jkiss.dbeaver.core.sql.editor.create.description = \u6253\u5F00\u65B0\u7684SQL\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.sql.editor.create.label = \u521B\u5EFASQL\u811A\u672C -command.org.jkiss.dbeaver.core.sql.editor.create.name = \u65B0\u5EFASQL\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.sql.editor.forSelection.description = \u6253\u5F00\u65B0\u7684SQL\u63A7\u5236\u53F0\u5E76\u901A\u8FC7\u67E5\u8BE2\u8BFB\u53D6\u6570\u636E -command.org.jkiss.dbeaver.core.sql.editor.forSelection.name = \u5728SQL\u63A7\u5236\u53F0\u8BFB\u6570\u636E -command.org.jkiss.dbeaver.core.sql.editor.open.description = \u6253\u5F00SQL\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.sql.editor.open.name = SQL\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.sql.editor.recent.description = \u6253\u5F00\u8FD1\u671FSQL\u811A\u672C -command.org.jkiss.dbeaver.core.sql.editor.recent.name = \u8FD1\u671FSQL\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.core.sql.script.associate.description = \u5C06\u9009\u4E2D\u7684\u811A\u672C\u4E0E\u6570\u636E\u6E90\u5173\u8054 -command.org.jkiss.dbeaver.core.sql.script.associate.name = \u5173\u8054\u6570\u636E\u6E90 -command.org.jkiss.dbeaver.core.transaction_mode.name = \u4E8B\u52A1\u6A21\u5F0F -command.org.jkiss.dbeaver.core.txn.autocommit.description = \u66F4\u6539\u6D3B\u52A8session\u7684\u4E8B\u52A1\u6A21\u5F0F -command.org.jkiss.dbeaver.core.txn.autocommit.name = \u81EA\u52A8\u4FDD\u5B58 -command.org.jkiss.dbeaver.core.txn.log.description = \u5F53\u524D\u4E8B\u52A1\u65E5\u5FD7\uFF08\u6267\u884C\u7684\u67E5\u8BE2\uFF09 -command.org.jkiss.dbeaver.core.txn.log.name = \u4E8B\u52A1\u65E5\u5FD7 -command.org.jkiss.dbeaver.core.txn.pending.description = \u6240\u6709\u5F85\u5904\u7406\u4E8B\u52A1\u7684\u5217\u8868 -command.org.jkiss.dbeaver.core.txn.pending.name = \u5F85\u5904\u7406\u4E8B\u52A1 -command.org.jkiss.dbeaver.ui.editors.sql.assist.templates.description = \u81EA\u52A8\u5B8C\u6210\u6A21\u677F\u540D\u79F0 -command.org.jkiss.dbeaver.ui.editors.sql.assist.templates.name = \u5B8C\u6210\u6A21\u677F\u540D\u79F0 -command.org.jkiss.dbeaver.ui.editors.sql.close.tab.description = \u5173\u95ED\u7ED3\u679C\u9009\u9879\u5361 -command.org.jkiss.dbeaver.ui.editors.sql.close.tab.name = \u5173\u95ED\u9009\u9879\u5361 -command.org.jkiss.dbeaver.ui.editors.sql.comment.multi.description = \u6DFB\u52A0\u6216\u5220\u9664\u591A\u884C\u6CE8\u91CA -command.org.jkiss.dbeaver.ui.editors.sql.comment.multi.name = \u5207\u6362\u5757\u6CE8\u91CA -command.org.jkiss.dbeaver.ui.editors.sql.comment.single.description = \u6DFB\u52A0\u6216\u5220\u9664\u5355\u884C\u6CE8\u91CA -command.org.jkiss.dbeaver.ui.editors.sql.comment.single.name = \u5207\u6362\u884C\u6CE8\u91CA -command.org.jkiss.dbeaver.ui.editors.sql.export.data.description = \u5230\u5904\u5F53\u524D\u67E5\u8BE2\u8FD4\u56DE\u7684\u6570\u636E -command.org.jkiss.dbeaver.ui.editors.sql.export.data.name = \u4ECE\u67E5\u8BE2\u4E2D\u5BFC\u51FA -command.org.jkiss.dbeaver.ui.editors.sql.maximize.result.panel.description = \u6700\u5927\u5316/\u6807\u51C6\u5316\u7ED3\u679C\u9762\u677F -command.org.jkiss.dbeaver.ui.editors.sql.maximize.result.panel.name = \u6700\u5927\u5316\u7ED3\u679C\u9762\u677F -command.org.jkiss.dbeaver.ui.editors.sql.morph.delimited.list.description = \u53D8\u5F62\u5E26\u5206\u9694\u7B26\u7684\u5217\u8868 -command.org.jkiss.dbeaver.ui.editors.sql.morph.delimited.list.name = \u53D8\u5F62\u5E26\u5206\u9694\u7B26\u7684\u5217\u8868 -command.org.jkiss.dbeaver.ui.editors.sql.navigate.object.description = \u6253\u5F00\u5F53\u524D(\u9AD8\u4EAE\u7684)\u6570\u636E\u5E93\u5BF9\u8C61\u7684\u7F16\u8F91\u5668 -command.org.jkiss.dbeaver.ui.editors.sql.navigate.object.name = \u6253\u5F00\u58F0\u660E -command.org.jkiss.dbeaver.ui.editors.sql.open.file.description = \u5BFC\u5165SQL\u811A\u672C\u6587\u4EF6 -command.org.jkiss.dbeaver.ui.editors.sql.open.file.name = \u5BFC\u5165SQL\u811A\u672C -command.org.jkiss.dbeaver.ui.editors.sql.query.next.description = \u5207\u6362\u5230\u4E0B\u4E00\u67E5\u8BE2 -command.org.jkiss.dbeaver.ui.editors.sql.query.next.name = \u4E0B\u4E00\u67E5\u8BE2 -command.org.jkiss.dbeaver.ui.editors.sql.query.prev.description = \u5207\u6362\u5230\u4E0A\u4E00\u67E5\u8BE2 -command.org.jkiss.dbeaver.ui.editors.sql.query.prev.name = \u4E0A\u4E00\u67E5\u8BE2 -command.org.jkiss.dbeaver.ui.editors.sql.rename.description = \u91CD\u547D\u540D\u5F53\u524DSQL\u811A\u672C -command.org.jkiss.dbeaver.ui.editors.sql.rename.name = \u91CD\u547D\u540DSQL\u811A\u672C -command.org.jkiss.dbeaver.ui.editors.sql.run.all.rows.description = \u9009\u62E9\u5E76\u663E\u793A\u6240\u6709\u884C(\u6CA1\u6709\u83B7\u53D6\u5927\u5C0F\u9650\u5236) -command.org.jkiss.dbeaver.ui.editors.sql.run.all.rows.name = \u9009\u62E9\u6240\u6709\u884C -command.org.jkiss.dbeaver.ui.editors.sql.run.count.description = \u4E3A\u4E0B\u9762\u7684\u67E5\u8BE2\u9009\u62E9\u884C\u8BA1\u6570 -command.org.jkiss.dbeaver.ui.editors.sql.run.count.name = \u9009\u62E9\u884C\u8BA1\u6570 -command.org.jkiss.dbeaver.ui.editors.sql.run.explain.description = \u89E3\u6790\u6267\u884C\u8BA1\u5212 -command.org.jkiss.dbeaver.ui.editors.sql.run.explain.name = \u89E3\u6790\u6267\u884C\u8BA1\u5212 -command.org.jkiss.dbeaver.ui.editors.sql.run.expression.description = \u9009\u62E9\u9009\u4E2D\u7684SQL\u8868\u8FBE\u5F0F\u7684\u503C -command.org.jkiss.dbeaver.ui.editors.sql.run.expression.name = \u8BC4\u4F30SQL\u8868\u8FBE\u5F0F -command.org.jkiss.dbeaver.ui.editors.sql.run.script.description = \u6267\u884CSQL\u811A\u672C -command.org.jkiss.dbeaver.ui.editors.sql.run.script.name = \u6267\u884CSQL\u811A\u672C -command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.description = \u5728\u5355\u72EC\u7684\u7ED3\u679C\u9009\u9879\u5361\u4E2D\u6267\u884C\u811A\u672C\u7684\u8BED\u53E5 -command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.name = \u5728\u5355\u72EC\u7684\u9009\u9879\u5361\u4E2D\u6267\u884C\u8BED\u53E5 -command.org.jkiss.dbeaver.ui.editors.sql.run.statement.description = \u6267\u884CSQL\u8BED\u53E5 -command.org.jkiss.dbeaver.ui.editors.sql.run.statement.name = \u6267\u884CSQL\u8BED\u53E5 -command.org.jkiss.dbeaver.ui.editors.sql.run.statementNew.description = \u5728\u65B0\u9009\u9879\u5361\u4E2D\u6267\u884CSQL\u8BED\u53E5 -command.org.jkiss.dbeaver.ui.editors.sql.run.statementNew.name = \u5728\u65B0\u9009\u9879\u5361\u4E2D\u6267\u884CSQL\u8BED\u53E5 -command.org.jkiss.dbeaver.ui.editors.sql.save.file.description = \u4FDD\u5B58\u81F3\u6587\u4EF6 -command.org.jkiss.dbeaver.ui.editors.sql.save.file.name = \u4FDD\u5B58SQL\u811A\u672C -command.org.jkiss.dbeaver.ui.editors.sql.show.log.description = \u663E\u793ASQL\u6267\u884C\u65E5\u5FD7 -command.org.jkiss.dbeaver.ui.editors.sql.show.log.name = \u663E\u793A\u6267\u884C\u65E5\u5FD7 -command.org.jkiss.dbeaver.ui.editors.sql.show.output.description = \u663E\u793A\u670D\u52A1\u5668\u63A7\u5236\u53F0\u8F93\u51FA -command.org.jkiss.dbeaver.ui.editors.sql.show.output.name = \u663E\u793A\u670D\u52A1\u5668\u8F93\u51FA -command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.description = \u5207\u6362\u6D3B\u52A8SQL\u7F16\u8F91\u5668\u9762\u677F -command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.name = \u5207\u6362\u6D3B\u52A8\u9762\u677F -command.org.jkiss.dbeaver.ui.editors.sql.sync.auto.description = \u4E0E\u6570\u636E\u5E93\u5BFC\u822A\u5668\u9009\u62E9\u81EA\u52A8\u540C\u6B65\u6D3B\u52A8\u8FDE\u63A5 -command.org.jkiss.dbeaver.ui.editors.sql.sync.auto.name = \u4E0E\u5BFC\u822A\u81EA\u52A8\u540C\u6B65\u8FDE\u63A5 -command.org.jkiss.dbeaver.ui.editors.sql.sync.connection.description = \u4ECE\u6570\u636E\u5E93\u5BFC\u822A\u5668\u9009\u62E9\u4E2D\u8BBE\u7F6E\u6D3B\u52A8\u8FDE\u63A5 -command.org.jkiss.dbeaver.ui.editors.sql.sync.connection.name = \u4ECE\u5BFC\u822A\u8BBE\u7F6E\u8FDE\u63A5 -command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.description = \u663E\u793A/\u9690\u85CF\u7ED3\u679C\u9762\u677F -command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.name = \u5207\u6362\u7ED3\u679C\u9762\u677F -command.org.jkiss.dbeaver.ui.editors.sql.word.wrap.description = \u5207\u6362\u6587\u672C\u7F16\u8F91\u5668\u81EA\u52A8\u6362\u884C -command.org.jkiss.dbeaver.ui.editors.sql.word.wrap.name = \u5207\u6362\u81EA\u52A8\u6362\u884C -command.org.jkiss.dbeaver.ui.editors.text.content.format.description = \u683C\u5F0F\u5316\u6587\u672C -command.org.jkiss.dbeaver.ui.editors.text.content.format.name = \u683C\u5F0F\u5316 -command.org.jkiss.dbeaver.ui.tools.menu.description = \u4F7F\u7528\u6570\u636E\u5E93\u5DE5\u5177\u663E\u793A\u4E0A\u4E0B\u6587\u83DC\u5355 -command.org.jkiss.dbeaver.ui.tools.menu.name = \u4E0A\u4E0B\u6587\u5DE5\u5177 - -commandParameter.org.jkiss.dbeaver.core.resource.link.file.contenttype.name = \u94FE\u63A5\u6587\u4EF6\u7684\u5185\u5BB9\u7C7B\u578B - -content-type.org.jkiss.dbeaver.bookmark.name = \u4E66\u7B7E -content-type.org.jkiss.dbeaver.sql.name = SQL\u811A\u672C - -context.org.jkiss.dbeaver.ui.context.navigator.description = \u6570\u636E\u5E93\u5BFC\u822A\u4E0A\u4E0B\u6587 -context.org.jkiss.dbeaver.ui.context.navigator.name = \u6570\u636E\u5E93\u5BFC\u822A\u4E0A\u4E0B\u6587 -context.org.jkiss.dbeaver.ui.context.resultset.description = \u7ED3\u679C\u67E5\u770B\u5668\u4E0A\u4E0B\u6587 -context.org.jkiss.dbeaver.ui.context.resultset.edit.description = \u7ED3\u679C\u7F16\u8F91\u4E0A\u4E0B\u6587 -context.org.jkiss.dbeaver.ui.context.resultset.edit.name = \u7ED3\u679C\u7F16\u8F91\u4E0A\u4E0B\u6587 -context.org.jkiss.dbeaver.ui.context.resultset.name = \u7ED3\u679C\u67E5\u770B\u5668\u4E0A\u4E0B\u6587 -context.org.jkiss.dbeaver.ui.editors.sql.name = SQL\u7F16\u8F91\u5668\u4E0A\u4E0B\u6587 - -dataTransfer.consumer.database.description = \u6570\u636E\u5E93\u8868 -dataTransfer.consumer.database.name = \u6570\u636E\u5E93 -dataTransfer.consumer.stream.description = \u5E73\u9762\u6587\u4EF6 -dataTransfer.consumer.stream.name = \u6587\u4EF6 -dataTransfer.processor.csv.description = \u5BFC\u51FA\u5230CSV\u6587\u4EF6 -dataTransfer.processor.csv.name = CSV -dataTransfer.processor.csv.property.delimiter.description = \u5B57\u6BB5\u5206\u9694\u7B26 -dataTransfer.processor.csv.property.delimiter.name = \u5206\u9694\u7B26 -dataTransfer.processor.csv.property.escape.description = \u4E0D\u826F\u5B57\u7B26\u9003\u9038\u6A21\u578B\uFF08\u62EC\u53F7\u62EC\u8D77\u6216\u8005\u7528''\u5B57\u7B26\u9003\u9038\uFF09 -dataTransfer.processor.csv.property.escape.name = \u5B57\u7B26\u9003\u9038 -dataTransfer.processor.csv.property.extension.label = \u6587\u4EF6\u6269\u5C55 -dataTransfer.processor.csv.property.header.description = CSV \u8868\u5934\u8BBE\u7F6E -dataTransfer.processor.csv.property.header.name = \u8868\u5934 -dataTransfer.processor.csv.property.nullString.description = \u7528\u6765\u66FF\u6362NULL\u503C\u7684\u5B57\u7B26\u4E32 -dataTransfer.processor.csv.property.nullString.name = NULL\u5B57\u7B26\u4E32 -dataTransfer.processor.csv.property.quoteChar.description = \u7528\u6765\u62EC\u8D77\u5B57\u7B26\u4E32\u7684\u5B57\u7B26\uFF08\u7A7A\u767D\u4EE3\u8868\u4E0D\u62EC\u8D77\uFF09 -dataTransfer.processor.csv.property.quoteChar.name = \u62EC\u8D77\u5B57\u7B26 -dataTransfer.processor.csv.propertyGroup.general.label = \u901A\u7528 -dataTransfer.processor.html.description = \u5BFC\u51FA\u5230HTML\u6587\u4EF6 -dataTransfer.processor.html.name = HTML -dataTransfer.processor.html.property.extension.label = \u6587\u4EF6\u6269\u5C55 -dataTransfer.processor.html.property.images.description = \u63D0\u53D6\u56FE\u7247\u5230\u56FE\u5F62\u6587\u4EF6 -dataTransfer.processor.html.property.images.name = \u56FE\u7247 -dataTransfer.processor.html.propertyGroup.general.label = \u901A\u7528 -dataTransfer.processor.json.description = \u5BFC\u51FA\u5230JSON\u6587\u4EF6 -dataTransfer.processor.json.name = JSON -dataTransfer.processor.json.property.extension.label = \u6587\u4EF6\u6269\u5C55 -dataTransfer.processor.json.property.formatDateISO.label = \u7528 ISO 8601 \u683C\u5F0F\u5316\u6570\u636E -dataTransfer.processor.json.property.printTableName.label = \u6253\u5370\u8868\u540D -dataTransfer.processor.json.propertyGroup.general.label = \u901A\u7528 -dataTransfer.processor.sql.description = \u5BFC\u51FA\u5230SQL INSERT\u8BED\u53E5 -dataTransfer.processor.sql.name = SQL -dataTransfer.processor.sql.property.escape.description = \u9003\u9038\u5355\u5F15\u53F7\u5B57\u7B26\u7684\u5B57\u7B26 -dataTransfer.processor.sql.property.escape.name = \u9003\u9038\u5B57\u7B26 -dataTransfer.processor.sql.property.extension.label = \u6587\u4EF6\u6269\u5C55 -dataTransfer.processor.sql.property.omitSchema.description = \u5728INSERT\u8BED\u53E5\u7701\u53BB\u6A21\u5F0F/\u76EE\u5F55\u540D\u79F0 -dataTransfer.processor.sql.property.omitSchema.name = \u7701\u533A\u6A21\u5F0F\u540D -dataTransfer.processor.sql.property.rowsInStatement.description = \u6BCF\u4E2Ainsert\u8BED\u53E5\u7684\u6570\u636E\u884C\u6570 -dataTransfer.processor.sql.property.rowsInStatement.name = \u6BCF\u4E2A\u8BED\u53E5\u7684\u6570\u636E\u884C\u6570 -dataTransfer.processor.sql.propertyGroup.general.label = \u901A\u7528 -dataTransfer.processor.xml.description = \u5BFC\u51FA\u5230XML\u6587\u4EF6 -dataTransfer.processor.xml.name = XML -dataTransfer.processor.xml.property.extension.label = \u6587\u4EF6\u6269\u5C55 -dataTransfer.processor.xml.property.format.label = \u65E5\u671F/\u6570\u5B57 \u683C\u5F0F -dataTransfer.processor.xml.propertyGroup.general.label = \u901A\u7528 -dataTransfer.producer.database.description = \u6570\u636E\u5E93\u8868 -dataTransfer.producer.database.name = \u8868 - -editor.dbdata.description = \u8868\u683C\u6570\u636E -editor.dbdata.name = \u6570\u636E -editor.entity.name = \u5B9E\u4F53\u7F16\u8F91\u5668 -editor.folder.name = \u6587\u4EF6\u5939\u7F16\u8F91\u5668 -editor.lob.name = \u5927\u578B\u5BF9\u8C61\u7F16\u8F91\u5668 -editor.sql.name = SQL\u7F16\u8F91\u5668 - -extension-point.org.jkiss.dbeaver.aggregateFunction.name = \u805A\u96C6\u51FD\u6570 -extension-point.org.jkiss.dbeaver.dataFormatter.name = \u6570\u636E\u683C\u5F0F\u5668 -extension-point.org.jkiss.dbeaver.dataManager.name = \u6570\u636E\u7BA1\u7406\u5668 -extension-point.org.jkiss.dbeaver.dataSourceProvider.name = \u6570\u636E\u6E90\u63D0\u4F9B\u8005 -extension-point.org.jkiss.dbeaver.dataTransfer.name = \u6570\u636E\u4F20\u8F93\u63D0\u4F9B\u8005 -extension-point.org.jkiss.dbeaver.dataTypeProvider.name = \u6570\u636E\u7C7B\u578B\u63D0\u4F9B\u8005 -extension-point.org.jkiss.dbeaver.databaseEditor.name = \u81EA\u5B9A\u4E49\u5B9E\u4F53\u7F16\u8F91\u5668 -extension-point.org.jkiss.dbeaver.mavenRepository.name = Maven\u5B58\u50A8\u5E93\u914D\u7F6E -extension-point.org.jkiss.dbeaver.networkHandler.name = \u7F51\u7EDC\u5904\u7406\u5668 -extension-point.org.jkiss.dbeaver.pluginService.name = \u63D2\u4EF6\u670D\u52A1 -extension-point.org.jkiss.dbeaver.product.bundles.name = \u4EA7\u54C1\u5305 -extension-point.org.jkiss.dbeaver.resourceHandler.name = \u8D44\u6E90\u5904\u7406\u7A0B\u5E8F -extension-point.org.jkiss.dbeaver.resources.name = \u8D44\u6E90 -extension-point.org.jkiss.dbeaver.resultset.panel.name = \u7ED3\u679C\u96C6\u9762\u677F -extension-point.org.jkiss.dbeaver.resultset.presentation.name = \u7ED3\u679C\u96C6\u8868\u793A -extension-point.org.jkiss.dbeaver.sql.covertname = SQL\u6587\u672C\u8F6C\u6362 -extension-point.org.jkiss.dbeaver.sqlCommand.name = SQL\u811A\u672C\u547D\u4EE4 -extension-point.org.jkiss.dbeaver.tools.name = \u5DE5\u5177 -extension-point.org.jkiss.dbeaver.workbenchHandler.name = \u5DE5\u4F5C\u53F0\u5904\u7406\u7A0B\u5E8F - -extension.org.jkiss.dbeaver.DBeaverNature.name = DBeaver Nature - -fontDefinition.org.jkiss.dbeaver.sql.editor.font.output.description = \u663E\u793ASQL\u8F93\u51FA\u7684\u5B57\u4F53\u3002\u4F18\u9009\u4E00\u79CD\u5355\u7A7A\u95F4\u5B57\u4F53\u3002 -fontDefinition.org.jkiss.dbeaver.sql.editor.font.output.label = SQL \u8F93\u51FA\u5B57\u4F53 -fontDefinition.org.jkiss.dbeaver.sql.resultset.font.description = \u7F51\u683C\u5B57\u4F53\u7528\u4E8E\u7ED3\u679C\u96C6\u5355\u5143\u683C\u3001\u8868\u5934\u548C\u884C\u53F7\u3002\r\n -fontDefinition.org.jkiss.dbeaver.sql.resultset.font.label = \u7ED3\u679C\u7F51\u683C\u5B57\u4F53 - -handler.socks_proxy.description = SOCKS4/SOCKS5 \u4EE3\u7406 -handler.socks_proxy.label = SOCKS \u4EE3\u7406 -handler.ssh_tunnel.description = SSH \u901A\u9053 -handler.ssh_tunnel.label = SSH \u901A\u9053 - -keyword.org.jkiss.dbeaver.core.keyword.pref.db.dataformat.label = \u683C\u5F0F\u5316\u65E5\u671F\u5B57\u7B26\u4E32\u4E3A\u672C\u5730\u5316\u8BED\u8A00 -keyword.org.jkiss.dbeaver.core.keyword.pref.db.general.label = \u81EA\u52A8\u63D0\u4EA4\u6E38\u6807\u56DE\u6EDA\u7ED3\u679C\u96C6lob\u811A\u672C -keyword.org.jkiss.dbeaver.core.keyword.pref.db.qm.label = \u67E5\u8BE2\u65E5\u5FD7ddl\u8BED\u53E5 -keyword.org.jkiss.dbeaver.core.keyword.pref.editor.binary.label = \u4E8C\u8FDB\u5236 \u5341\u516D\u8FDB\u5236 blob -keyword.org.jkiss.dbeaver.core.keyword.pref.editor.content.label = lob blob clob -keyword.org.jkiss.dbeaver.core.keyword.pref.editor.entity.label = \u5BF9\u8C61 \u5B9E\u4F53 \u6A21\u5F0F \u76EE\u5F55 \u8868 \u5305 \u5217 -keyword.org.jkiss.dbeaver.core.keyword.pref.editor.erd.label = erd\u56FE\u8868 -keyword.org.jkiss.dbeaver.core.keyword.pref.editor.sql.label = ql\u811A\u672C\u63D0\u4EA4\u8D85\u65F6 -keyword.org.jkiss.dbeaver.core.keyword.pref.ui.general.label = \u66F4\u65B0http\u4EE3\u7406 - -maven.respository.central = \u6838\u5FC3\u4ED3\u5E93 -maven.respository.central.unsecure = \u6838\u5FC3\u4ED3\u5E93(\u4E0D\u5B89\u5168\u7684) - -menu.database = \u6570\u636E\u5E93 -menu.database.sql.generate = \u751F\u6210SQL -menu.database.tools = \u5DE5\u5177 -menu.filter.label = \u8FC7\u6EE4\u5668 -menu.navigate = \u5BFC\u822A -menu.org.jkiss.dbeaver.core.project.select.label = \u6D3B\u52A8\u9879\u76EE -menu.org.jkiss.dbeaver.ui.editors.sql.SQLEditor.execute.label = \u6267\u884C -menu.org.jkiss.dbeaver.ui.editors.sql.SQLEditor.file.label = \u6587\u4EF6 -menu.org.jkiss.dbeaver.ui.editors.sql.SQLEditor.layout.label = \u5E03\u5C40 -menu.sqleditor = SQL\u7F16\u8F91\u5668 - -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor$ContextInfo.name.name = \u4E0A\u4E0B\u6587\u540D\u79F0 -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.description.name = \u63CF\u8FF0 -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyAddress.name = \u5730\u5740 -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyConnectTime.name = \u8FDE\u63A5\u65F6\u95F4 -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyConnectType.name = \u8FDE\u63A5\u7C7B\u578B -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDatabase.name = \u6570\u636E\u5E93 -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDriver.name = \u9A71\u52A8 -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDriverType.name = \u9A71\u52A8\u7C7B\u578B -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyServerName.name = \u670D\u52A1\u5668 -meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyURL.name = URL -meta.org.jkiss.dbeaver.registry.DriverDescriptor.category.name = \u9A71\u52A8\u76EE\u5F55 -meta.org.jkiss.dbeaver.registry.DriverDescriptor.description.name = \u63CF\u8FF0 -meta.org.jkiss.dbeaver.registry.DriverDescriptor.driverClassName.name = \u9A71\u52A8\u7C7B -meta.org.jkiss.dbeaver.registry.DriverDescriptor.name.name = \u9A71\u52A8\u540D\u79F0 -meta.org.jkiss.dbeaver.registry.DriverDescriptor.sampleURL.name = URL -meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.columns.name = \u5B57\u6BB5 -meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.type.name = \u7C7B\u578B -meta.org.jkiss.dbeaver.ui.search.data.SearchDataObject.foundRows.name = \u627E\u5230\u7684\u884C(>=) -meta.org.jkiss.dbeaver.ui.search.data.SearchDataObject.name.name = \u540D\u79F0 - -page.org.jkiss.dbeaver.preferences.connectionTypes.name = \u8FDE\u63A5\u7C7B\u578B -page.org.jkiss.dbeaver.preferences.main.connections.name = \u8FDE\u63A5 -page.org.jkiss.dbeaver.preferences.main.dataformat.name = \u6570\u636E\u683C\u5F0F -page.org.jkiss.dbeaver.preferences.main.entityeditor.name = \u6570\u636E\u7F16\u8F91\u5668 -page.org.jkiss.dbeaver.preferences.main.meta.name = \u5143\u6570\u636E -page.org.jkiss.dbeaver.preferences.main.qm.name = \u67E5\u8BE2\u7BA1\u7406\u5668 -page.org.jkiss.dbeaver.preferences.main.resultset.binaries.name = \u4E8C\u8FDB\u5236 -page.org.jkiss.dbeaver.preferences.main.resultset.name = \u7ED3\u679C\u96C6 -page.org.jkiss.dbeaver.preferences.main.resultset.presentation.name = \u8868\u793A -page.org.jkiss.dbeaver.preferences.main.sql.completion.name = SQL\u5B8C\u6210/\u6298\u53E0 -page.org.jkiss.dbeaver.preferences.main.sql.format.name = SQL\u683C\u5F0F -page.org.jkiss.dbeaver.preferences.main.sql.templates.name = \u6A21\u677F -page.org.jkiss.dbeaver.preferences.main.sqleditor.name = SQL\u7F16\u8F91\u5668 -page.org.jkiss.dbeaver.preferences.main.sqlexecute.name = SQL\u5904\u7406 -page.org.jkiss.dbeaver.preferences.projectSettings.name = DBeaver \u8BBE\u7F6E - -panel.column-aggregate.label = \u5408\u8BA1\u5217 -panel.results-metadata.label = \u5143\u6570\u636E -panel.value-view.label = \u6570\u503C\u67E5\u770B\u5668 - -presentation.plaintext.label = \u6587\u672C -presentation.spreadsheet.label = \u7F51\u683C - -search.page.label.db.fulltext = \u6570\u636E\u5E93\u5168\u6587\u672C -search.page.label.db.metadata = \u6570\u636E\u5E93\u6E90\u6570\u636E -search.result.view.page.data.result.name = \u6570\u636E\u5E93\u5168\u6587\u672C\u68C0\u7D22\u7ED3\u679C -search.result.view.page.metadata.result.name = \u6570\u636E\u5E93\u5143\u6570\u636E\u68C0\u7D22\u7ED3\u679C - -sql.convert.unformatted.text.description = \u5C06SQL\u6587\u672C\u8F6C\u6362\u4E3A\u65E0\u683C\u5F0F\u7684\u5355\u884C\u666E\u901A\u6587\u672C -sql.convert.unformatted.text.name = \u65E0\u683C\u5F0F\u6587\u672C - -themeElementCategory.org.jkiss.dbeaver.ui.presentation.results.description = SQL\u7F16\u8F91\u5668 -themeElementCategory.org.jkiss.dbeaver.ui.presentation.results.label = \u6570\u636E\u5E93\u67E5\u8BE2\u7ED3\u679C -themeElementCategory.org.jkiss.dbeaver.ui.presentation.sql.description = SQL \u7F16\u8F91\u5668 -themeElementCategory.org.jkiss.dbeaver.ui.presentation.sql.label = SQL \u7F16\u8F91\u5668 - -toolbar.dbeaver-datasource-selector.label = \u6570\u636E\u6E90\u9009\u62E9\u5668 -toolbar.dbeaver-edit.label = \u7F16\u8F91\u52A8\u4F5C -toolbar.dbeaver-general.label = \u6570\u636E\u5E93\u5DE5\u5177\u680F -toolbar.dbeaver-transaction-monitor.label = \u4E8B\u52A1\u76D1\u63A7\u5668 -toolbar.dbeaver-transactions.label = \u4E8B\u52A1 - -view.database.navigator.title = \u6570\u636E\u5E93\u5BFC\u822A -view.database.output.title = \u8F93\u51FA -view.project.explorer.title = \u9879\u76EE\u6D4F\u89C8\u5668 -view.project.navigator.title = \u9879\u76EE -view.query.manager.title = \u67E5\u8BE2\u7BA1\u7406 -view.shell.process.title = \u5904\u7406 -view.sql.results.title = \u6570\u636E - -wizard.org.jkiss.dbeaver.core.wizard.export.project.description = DBeaver \u9879\u76EE -wizard.org.jkiss.dbeaver.core.wizard.export.project.name = \u9879\u76EE -wizard.org.jkiss.dbeaver.core.wizard.export.scripts.description = SQL\u811A\u672C -wizard.org.jkiss.dbeaver.core.wizard.export.scripts.name = \u811A\u672C -wizard.org.jkiss.dbeaver.core.wizard.import.project.description = DBeaver \u9879\u76EE -wizard.org.jkiss.dbeaver.core.wizard.import.project.name = \u9879\u76EE -wizard.org.jkiss.dbeaver.core.wizard.import.scripts.description = SQL \u811A\u672C -wizard.org.jkiss.dbeaver.core.wizard.import.scripts.name = \u811A\u672C -wizard.org.jkiss.dbeaver.core.wizard.new.connection.description = \u6570\u636E\u5E93\u8FDE\u63A5 -wizard.org.jkiss.dbeaver.core.wizard.new.connection.name = \u6570\u636E\u5E93\u8FDE\u63A5 -wizard.org.jkiss.dbeaver.core.wizard.new.project.description = DBeaver \u9879\u76EE -wizard.org.jkiss.dbeaver.core.wizard.new.project.name = \u6570\u636E\u5E93\u9879\u76EE +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) +# Copyright (C) 2012 Brook.Tran (Brook.Tran.C@gmail.com) + +Bundle-Vendor = JKISS +Bundle-Name = DBeaver \u6838\u5FC3\u63D2\u4EF6 + +DateFormatter.date.general.label = \u4E00\u822C +DateFormatter.date.general.pattern.description = \u65E5\u671F\u6A21\u5F0F +DateFormatter.date.general.pattern.label = \u6A21\u5F0F +DateFormatter.date.label = \u65E5\u671F +DateFormatter.number.general.grouping.description = \u5728\u8BE5\u683C\u5F0F\u4E2D\u4F7F\u7528\u5206\u7EC4 +DateFormatter.number.general.grouping.label = \u5206\u7EC4 +DateFormatter.number.general.label = \u4E00\u822C +DateFormatter.number.general.maxFractDigits.description = \u6700\u591A\u5C0F\u6570\u4F4D\u6570 +DateFormatter.number.general.maxFractDigits.label = \u6700\u591A\u5C0F\u6570\u4F4D\u6570 +DateFormatter.number.general.maxIntDigits.description = \u6700\u5927\u6574\u6570\u4F4D\u6570 +DateFormatter.number.general.maxIntDigits.label = \u6700\u5927\u6574\u6570\u4F4D\u6570 +DateFormatter.number.general.minFractDigits.description = \u6700\u5C11\u5C0F\u6570\u4F4D\u6570 +DateFormatter.number.general.minFractDigits.label = \u6700\u5C11\u5C0F\u6570\u4F4D\u6570 +DateFormatter.number.general.minIntDigits.description = \u6700\u5C0F\u6574\u6570\u4F4D\u6570 +DateFormatter.number.general.minIntDigits.label = \u6700\u5C0F\u6574\u6570\u4F4D\u6570 +DateFormatter.number.general.roundingMode.description = \u53D6\u6574\u6A21\u5F0F +DateFormatter.number.general.roundingMode.label = \u53D6\u6574\u6A21\u5F0F +DateFormatter.number.label = \u6570\u5B57 +DateFormatter.time.general.label = \u4E00\u822C +DateFormatter.time.general.pattern.description = \u65F6\u95F4\u6A21\u5F0F +DateFormatter.time.general.pattern.label = \u6A21\u5F0F +DateFormatter.time.label = \u65F6\u95F4 +DateFormatter.timestamp.general.label = \u4E00\u822C +DateFormatter.timestamp.general.pattern.description = \u65F6\u95F4\u6233\u6A21\u5F0F +DateFormatter.timestamp.general.pattern.label = \u6A21\u5F0F +DateFormatter.timestamp.label = \u65F6\u95F4\u6233 + +category.dbconnection.description = \u6570\u636E\u5E93\u8FDE\u63A5 +category.dbconnection.name = \u8FDE\u63A5 +category.dbnavigator.description = \u6570\u636E\u5E93\u5BFC\u822A +category.dbnavigator.name = \u6570\u636E\u5E93\u5BFC\u822A +category.org.jkiss.dbeaver.core.category.name = \u6570\u636E\u5E93 +category.org.jkiss.dbeaver.core.export.resources.name = DBeaver +category.org.jkiss.dbeaver.core.import.resources.name = DBeaver +category.org.jkiss.dbeaver.core.new.general.name = DBeaver +category.rs.description = \u7ED3\u679C\u96C6 +category.rs.name = \u7ED3\u679C\u96C6 +category.sqleditor.description = SQL\u7F16\u8F91\u5668 +category.sqleditor.name = SQL\u7F16\u8F91\u5668 +category.utility.description = \u5B9E\u7528\u5DE5\u5177 +category.utility.name = \u5B9E\u7528\u5DE5\u5177 + +colorDefinition.org.jkiss.dbeaver.sql.editor.color.command.foreground.description = \u63A7\u5236\u547D\u4EE4\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.command.foreground.label = SQL \u547D\u4EE4\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.comment.foreground.description = SQL \u6CE8\u91CA\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.comment.foreground.label = SQL \u6CE8\u91CA\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.datatype.foreground.description = SQL \u6570\u636E\u7C7B\u578B\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.datatype.foreground.label = SQL \u6570\u636E\u7C7B\u578B\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.delimiter.foreground.description = SQL \u8BED\u53E5\u5206\u9694\u7B26\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.delimiter.foreground.label = SQL \u5206\u9694\u7B26\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.disabled.background.description = SQL \u6587\u672C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.disabled.background.label = SQL \u7981\u7528\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.keyword.foreground.description = SQL \u5173\u952E\u5B57\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.keyword.foreground.label = SQL \u5173\u952E\u5B57\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.number.foreground.description = SQL \u6570\u5B57\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.number.foreground.label = SQL \u6570\u5B57\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.parameter.foreground.description = SQL \u53C2\u6570 (?, :param, \u7B49) \u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.parameter.foreground.label = SQL \u53C2\u6570\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.string.foreground.description = SQL \u5B57\u7B26\u5DEE\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.string.foreground.label = SQL \u5B57\u7B26\u4E32\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.editor.color.text.background.description = SQL \u6587\u672C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.text.background.label = SQL \u6587\u672C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.text.foreground.description = SQL \u6587\u672C\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.editor.color.text.foreground.label = SQL \u6587\u672C\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.deleted.background.description = \u5220\u9664\u884C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.deleted.background.label = \u5220\u9664\u884C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.matched.background.description = \u65B0\u5EFA\u884C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.matched.background.label = \u5339\u914D\uFF08\u67E5\u627E/\u66FF\u6362\uFF09\u7684\u884C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.modified.background.description = \u4FEE\u6539\u7684\u5355\u5143\u683C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.modified.background.label = \u4FEE\u6539\u7684\u5355\u5143\u683C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.new.background.description = \u65B0\u5EFA\u884C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.new.background.label = \u65B0\u5EFA\u884C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.odd.background.description = \u5947\u6570\u884C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.odd.background.label = \u5947\u6570\u884C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.readonly.background.description = \u53EA\u8BFB\u5355\u5143\u683C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.cell.readonly.background.label = \u53EA\u8BFB\u5355\u5143\u683C\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.background.description = \u7F51\u683C\u5934\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.background.label = \u7F51\u683C\u5934\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.foreground.description = \u7F51\u683C\u5934\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.foreground.label = \u7F51\u683C\u5934\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.selected.background.description = \u7F51\u683C\u5934\u5317\u4EAC +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.header.selected.background.label = \u7F51\u683C\u9009\u4E2D\u5934\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.lines.normal.description = \u7EBF\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.lines.normal.label = \u7F51\u683C\u7EBF\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.lines.selected.description = \u9009\u4E2D\u7684\u7EBF\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.lines.selected.label = \u7F51\u683C\u9009\u4E2D\u7684\u7EBF\u989C\u8272 +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.null.foreground.description = \u7F51\u683CNULL\u503C\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.null.foreground.label = \u7F51\u683CNULL\u503C\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.preview.background.description = \u6570\u503C\u7F16\u8F91\u5668\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.preview.background.label = \u6570\u503C\u7F16\u8F91\u5668\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.selection.background.description = \u9009\u4E2D\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.selection.background.label = \u9009\u4E2D\u80CC\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.selection.foreground.description = \u9009\u4E2D\u524D\u666F +colorDefinition.org.jkiss.dbeaver.sql.resultset.color.selection.foreground.label = \u9009\u4E2D\u524D\u666F + +column.org.jkiss.dbeaver.ui.editors.columns.script.position.name = \u811A\u672C\u4F4D\u7F6E + +command.org.eclipse.ui.edit.copy.name = \u590D\u5236 +command.org.eclipse.ui.edit.delete.name = \u5220\u9664 +command.org.eclipse.ui.edit.paste.name = \u7C98\u8D34 +command.org.eclipse.ui.edit.rename.name = \u91CD\u547D\u540D +command.org.eclipse.ui.navigate.collapseAll.name = \u5168\u90E8\u6298\u53E0 +command.org.eclipse.ui.navigate.expandAll.name = \u5168\u90E8\u5C55\u5F00 +command.org.eclipse.ui.views.showView.label = \u67E5\u8BE2\u7BA1\u7406\u5668 +command.org.eclipse.ui.views.showView.queryManager = \u67E5\u8BE2\u7BA1\u7406\u5668 +command.org.jkiss.dbeaver.core.commit.description = \u5C06\u66F4\u6539\u4FDD\u5B58\u81F3 SQL Session +command.org.jkiss.dbeaver.core.commit.label = \u63D0\u4EA4 +command.org.jkiss.dbeaver.core.commit.name = \u4FDD\u5B58\u66F4\u6539 +command.org.jkiss.dbeaver.core.compare.objects.description = \u6BD4\u8F83\u6570\u636E\u5E93\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.compare.objects.name = \u6BD4\u8F83 +command.org.jkiss.dbeaver.core.connect.description = \u8FDE\u63A5\u81F3\u6570\u636E\u5E93 +command.org.jkiss.dbeaver.core.connect.name = \u8FDE\u63A5 +command.org.jkiss.dbeaver.core.disconnect.description = \u65AD\u5F00\u6570\u636E\u5E93\u8FDE\u63A5 +command.org.jkiss.dbeaver.core.disconnect.name = \u65AD\u5F00\u8FDE\u63A5 +command.org.jkiss.dbeaver.core.disconnectAll.description = \u5173\u95ED\u6240\u6709\u6253\u5F00\u7684\u8FDE\u63A5 +command.org.jkiss.dbeaver.core.disconnectAll.name = \u65AD\u5F00\u5168\u90E8 +command.org.jkiss.dbeaver.core.driver.manager.description = \u9A71\u52A8\u7BA1\u7406 +command.org.jkiss.dbeaver.core.driver.manager.name = \u9A71\u52A8\u7BA1\u7406 +command.org.jkiss.dbeaver.core.edit.copy.adv_info = \u9AD8\u7EA7\u590D\u5236 +command.org.jkiss.dbeaver.core.edit.copy.special.description = \u590D\u5236\u7279\u5B9A\u4FE1\u606F +command.org.jkiss.dbeaver.core.edit.copy.special.label = \u9AD8\u7EA7\u62F7\u8D1D +command.org.jkiss.dbeaver.core.edit.copy.special.name = \u9AD8\u7EA7\u590D\u5236 +command.org.jkiss.dbeaver.core.edit.paste.special.description = \u7C98\u8D34\u5E76\u4FDD\u7559\u989D\u5916\u8BBE\u7F6E +command.org.jkiss.dbeaver.core.edit.paste.special.name = \u9AD8\u7EA7\u7C98\u8D34 +command.org.jkiss.dbeaver.core.export.data.description = \u5C06\u6570\u636E\u5BFC\u51FA\u81F3\u6587\u4EF6 +command.org.jkiss.dbeaver.core.export.data.name = \u5BFC\u51FA\u6570\u636E +command.org.jkiss.dbeaver.core.import.data.description = \u4ECE\u6570\u636E\u5E93\u8868\u4E2D\u5BFC\u5165\u6570\u636E +command.org.jkiss.dbeaver.core.import.data.name = \u5BFC\u5165\u6570\u636E +command.org.jkiss.dbeaver.core.invalidate.description = \u65AD\u5F00\u6216\u91CD\u65B0\u8FDE\u63A5 +command.org.jkiss.dbeaver.core.invalidate.name = \u65AD\u5F00/\u91CD\u65B0\u8FDE\u63A5 +command.org.jkiss.dbeaver.core.migrate.connection.description = \u8FC1\u79FB(\u8FDE\u63A5)\u81F3\u5176\u5B83\u6570\u636E\u5E93 +command.org.jkiss.dbeaver.core.migrate.connection.name = \u8FC1\u79FB\u8FDE\u63A5 +command.org.jkiss.dbeaver.core.navigator.bookmark.add.description = \u6DFB\u52A0\u4E66\u7B7E +command.org.jkiss.dbeaver.core.navigator.bookmark.add.name = \u6DFB\u52A0\u4E66\u7B7E +command.org.jkiss.dbeaver.core.navigator.linkeditor.description = \u94FE\u63A5\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.navigator.linkeditor.name = \u94FE\u63A5\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.navigator.set.active.description = \u8BBE\u4E3A\u6D3B\u52A8\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.navigator.set.active.name = \u8BBE\u4E3A\u6D3B\u52A8\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.navigator.view.configure.description = \u914D\u7F6E\u5B57\u6BB5\u53EF\u89C1\u6027 +command.org.jkiss.dbeaver.core.navigator.view.configure.name = \u914D\u7F6E\u5B57\u6BB5 +command.org.jkiss.dbeaver.core.new.connection.description = \u65B0\u5EFA\u8FDE\u63A5\u5411\u5BFC +command.org.jkiss.dbeaver.core.new.connection.name = \u65B0\u5EFA\u8FDE\u63A5 +command.org.jkiss.dbeaver.core.new.folder.description = \u521B\u5EFA\u65B0\u8FDE\u63A5\u6587\u4EF6\u5939 +command.org.jkiss.dbeaver.core.new.folder.name = \u65B0\u5EFA\u6587\u4EF6\u5939 +command.org.jkiss.dbeaver.core.object.create.description = \u521B\u5EFA\u65B0\u7684\u6570\u636E\u5E93\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.create.name = \u521B\u5EFA\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.delete.description = \u5220\u9664\u6570\u636E\u5E93\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.delete.name = \u5220\u9664\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.filter.add.exclude.description = \u9690\u85CF\u9009\u4E2D\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.filter.add.exclude.name = \u9690\u85CF\u9009\u4E2D\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.filter.add.include.description = \u4EC5\u663E\u793A\u9009\u4E2D\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.filter.add.include.name = \u4EC5\u663E\u793A\u9009\u4E2D\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.filter.clear.description = \u6E05\u9664\u8FC7\u6EE4\u8BBE\u7F6E +command.org.jkiss.dbeaver.core.object.filter.clear.name = \u6E05\u695A\u8FC7\u6EE4 +command.org.jkiss.dbeaver.core.object.filter.config.description = \u914D\u7F6E\u5BF9\u8C61\u8FC7\u6EE4 +command.org.jkiss.dbeaver.core.object.filter.config.name = \u914D\u7F6E\u8FC7\u6EE4 +command.org.jkiss.dbeaver.core.object.filter.toggle.description = \u5207\u6362(\u542F\u7528/\u7981\u7528)\u5B9A\u4E49\u7684\u8FC7\u6EE4\u5668 +command.org.jkiss.dbeaver.core.object.filter.toggle.name = \u5207\u6362\u8FC7\u6EE4\u5668 +command.org.jkiss.dbeaver.core.object.goto.description = \u6253\u5F00\u6570\u636E\u5E93\u5143\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.goto.name = \u6253\u5F00\u6570\u636E\u5E93\u5BF9\u8C61 ... +command.org.jkiss.dbeaver.core.object.move.down.description = \u4E0B\u79FB\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.move.down.name = \u4E0B\u79FB +command.org.jkiss.dbeaver.core.object.move.up.description = \u4E0A\u79FB\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.object.move.up.name = \u4E0A\u79FB +command.org.jkiss.dbeaver.core.object.open.description = \u6253\u5F00\u5BF9\u8C61\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.object.open.name = \u7F16\u8F91\u5BF9\u8C61 +command.org.jkiss.dbeaver.core.process.stop.description = \u7EC8\u6B62\u6B63\u5728\u8FDB\u884C\u7684\u8FDB\u7A0B +command.org.jkiss.dbeaver.core.process.stop.name = \u7EC8\u6B62\u8FDB\u7A0B +command.org.jkiss.dbeaver.core.project.active.description = \u8BBE\u4E3A\u6D3B\u52A8\u9879\u76EE +command.org.jkiss.dbeaver.core.project.active.name = \u8BBE\u4E3A\u6D3B\u52A8\u9879\u76EE +command.org.jkiss.dbeaver.core.project.create.description = \u65B0\u5EFA\u9879\u76EE +command.org.jkiss.dbeaver.core.project.create.name = \u65B0\u5EFA\u9879\u76EE +command.org.jkiss.dbeaver.core.project.refresh.description = \u5237\u65B0\u6574\u4E2A\u5DE5\u4F5C\u7A7A\u95F4 +command.org.jkiss.dbeaver.core.project.refresh.name = \u5237\u65B0\u9879\u76EE +command.org.jkiss.dbeaver.core.project.select.description = \u9009\u62E9\u6D3B\u52A8\u9879\u76EE +command.org.jkiss.dbeaver.core.project.select.name = \u9009\u62E9\u6D3B\u52A8\u9879\u76EE +command.org.jkiss.dbeaver.core.qm.clear.description = \u6E05\u9664\u67E5\u8BE2\u65E5\u5FD7 +command.org.jkiss.dbeaver.core.qm.clear.name = \u6E05\u9664\u65E5\u5FD7 +command.org.jkiss.dbeaver.core.qm.filter.description = \u8BBE\u7F6E\u8FC7\u6EE4\u5668 +command.org.jkiss.dbeaver.core.qm.filter.name = \u8FC7\u6EE4... +command.org.jkiss.dbeaver.core.resource.create.folder.description = \u65B0\u5EFA\u6587\u4EF6\u5939 +command.org.jkiss.dbeaver.core.resource.create.folder.name = \u65B0\u5EFA\u6587\u4EF6\u5939 +command.org.jkiss.dbeaver.core.resource.link.file.description = \u521B\u5EFA\u6587\u4EF6\u7CFB\u7EDF\u4E2D\u6587\u4EF6\u7684\u94FE\u63A5 +command.org.jkiss.dbeaver.core.resource.link.file.name = \u94FE\u63A5\u6587\u4EF6 +command.org.jkiss.dbeaver.core.resource.link.folder.description = \u521B\u5EFA\u8FDE\u63A5\u81F3\u6587\u4EF6\u7CFB\u7EDF\u7684\u6587\u4EF6\u5939 +command.org.jkiss.dbeaver.core.resource.link.folder.name = \u94FE\u63A5\u6587\u4EF6\u5939 +command.org.jkiss.dbeaver.core.resultset.applyChanges.description = \u4FDD\u5B58\u53D8\u66F4 +command.org.jkiss.dbeaver.core.resultset.applyChanges.name = \u4FDD\u5B58\u53D8\u66F4 +command.org.jkiss.dbeaver.core.resultset.cell.reset.description = \u91CD\u7F6E\u53D8\u66F4 +command.org.jkiss.dbeaver.core.resultset.cell.reset.name = \u91CD\u7F6E\u53D8\u66F4 +command.org.jkiss.dbeaver.core.resultset.cell.save.description = \u4FDD\u5B58\u5355\u5143\u503C +command.org.jkiss.dbeaver.core.resultset.cell.save.name = \u4FDD\u5B58\u5355\u5143\u503C +command.org.jkiss.dbeaver.core.resultset.cell.setNull.description = \u8BBE\u4E3A\u7A7A(NULL) +command.org.jkiss.dbeaver.core.resultset.cell.setNull.name = \u8BBE\u4E3A\u7A7A(NULL) +command.org.jkiss.dbeaver.core.resultset.count.description = \u68C0\u7D22\u603B\u884C\u6570 +command.org.jkiss.dbeaver.core.resultset.count.name = \u884C\u8BA1\u6570 +command.org.jkiss.dbeaver.core.resultset.export.description = \u5BFC\u51FA\u7ED3\u679C\u96C6\u5230\u6587\u4EF6\u6216\u53E6\u4E00\u4E2A\u6570\u636E\u8868 +command.org.jkiss.dbeaver.core.resultset.export.name = \u5BFC\u51FA\u7ED3\u679C\u96C6 ... +command.org.jkiss.dbeaver.core.resultset.fetch.all.description = \u83B7\u53D6\u6240\u6709\u884C +command.org.jkiss.dbeaver.core.resultset.fetch.all.name = \u83B7\u53D6\u6240\u6709\u6570\u636E +command.org.jkiss.dbeaver.core.resultset.fetch.page.description = \u83B7\u53D6\u7ED3\u679C\u7684\u4E0B\u4E00\u9875 +command.org.jkiss.dbeaver.core.resultset.fetch.page.name = \u83B7\u53D6\u4E0B\u4E00\u9875 +command.org.jkiss.dbeaver.core.resultset.filterMenu.description = \u8FC7\u6EE4\u4E0A\u4E0B\u6587\u83DC\u5355 +command.org.jkiss.dbeaver.core.resultset.filterMenu.name = \u8FC7\u6EE4\u83DC\u5355 +command.org.jkiss.dbeaver.core.resultset.focus.filter.description = \u5C06\u7126\u70B9\u8BBE\u7F6E\u5230\u8FC7\u6EE4\u7F16\u8F91\u5668/\u6570\u636E\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.resultset.focus.filter.name = \u6FC0\u6D3B\u8FC7\u6EE4\u5668/\u6570\u636E\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.resultset.generateScript.description = \u751F\u6210\u53D8\u66F4\u811A\u672C +command.org.jkiss.dbeaver.core.resultset.generateScript.name = \u751F\u6210\u811A\u672C +command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.description = \u62F7\u8D1D\u9009\u62E9\u7684\u5B57\u6BB5\u540D\u79F0 +command.org.jkiss.dbeaver.core.resultset.grid.copyColumnNames.name = \u62F7\u8D1D\u5B57\u6BB5\u540D\u79F0 +command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.description = \u62F7\u8D1D\u9009\u62E9\u7684\u884C\u53F7 +command.org.jkiss.dbeaver.core.resultset.grid.copyRowNames.name = \u62F7\u8D1D\u884C\u53F7 +command.org.jkiss.dbeaver.core.resultset.grid.togglePreview.description = \u5207\u6362\u989D\u5916\u7ED3\u679C\u9762\u677F +command.org.jkiss.dbeaver.core.resultset.grid.togglePreview.name = \u5207\u6362\u7ED3\u679C\u9762\u677F +command.org.jkiss.dbeaver.core.resultset.navigateLink.description = \u9075\u5FAA\u5916\u952E\u94FE\u63A5 +command.org.jkiss.dbeaver.core.resultset.navigateLink.name = \u5BFC\u822A\u94FE\u63A5 +command.org.jkiss.dbeaver.core.resultset.rejectChanges.description = \u653E\u5F03\u53D8\u66F4 +command.org.jkiss.dbeaver.core.resultset.rejectChanges.name = \u653E\u5F03\u53D8\u66F4 +command.org.jkiss.dbeaver.core.resultset.row.add.description = \u6DFB\u52A0\u884C +command.org.jkiss.dbeaver.core.resultset.row.add.name = \u6DFB\u52A0\u884C +command.org.jkiss.dbeaver.core.resultset.row.copy.description = \u590D\u5236\u5F53\u524D\u884C +command.org.jkiss.dbeaver.core.resultset.row.copy.name = \u590D\u5236\u884C +command.org.jkiss.dbeaver.core.resultset.row.delete.description = \u5220\u9664\u884C +command.org.jkiss.dbeaver.core.resultset.row.delete.name = \u5220\u9664\u884C +command.org.jkiss.dbeaver.core.resultset.row.edit.description = \u7F16\u8F91\u5355\u5143\u683C +command.org.jkiss.dbeaver.core.resultset.row.edit.inline.description = \u4F7F\u7528\u5185\u5D4C\u7F16\u8F91\u5668\u7F16\u8F91\u5355\u5143\u503C +command.org.jkiss.dbeaver.core.resultset.row.edit.inline.name = \u5185\u5D4C\u7F16\u8F91 +command.org.jkiss.dbeaver.core.resultset.row.edit.name = \u7F16\u8F91\u5355\u5143\u683C +command.org.jkiss.dbeaver.core.resultset.row.first.description = \u79FB\u52A8\u81F3\u9996\u884C +command.org.jkiss.dbeaver.core.resultset.row.first.name = \u9996\u884C +command.org.jkiss.dbeaver.core.resultset.row.last.description = \u672B\u884C +command.org.jkiss.dbeaver.core.resultset.row.last.name = \u672B\u884C +command.org.jkiss.dbeaver.core.resultset.row.next.description = \u4E0B\u4E00\u884C +command.org.jkiss.dbeaver.core.resultset.row.next.name = \u4E0B\u4E00\u884C +command.org.jkiss.dbeaver.core.resultset.row.previous.description = \u4E0A\u4E00\u884C +command.org.jkiss.dbeaver.core.resultset.row.previous.name = \u4E0A\u4E00\u884C +command.org.jkiss.dbeaver.core.resultset.switchPresentation.description = \u5207\u6362\u7ED3\u679C\u8868\u793A +command.org.jkiss.dbeaver.core.resultset.switchPresentation.name = \u5207\u6362\u8868\u793A +command.org.jkiss.dbeaver.core.resultset.toggleMode.description = \u8868\u683C/\u5355\u9879\u89C6\u56FE +command.org.jkiss.dbeaver.core.resultset.toggleMode.name = \u8868\u683C/\u5355\u9879\u89C6\u56FE +command.org.jkiss.dbeaver.core.rollback.description = \u56DE\u6EDA\u66F4\u6539\u81F3 SQL Session +command.org.jkiss.dbeaver.core.rollback.name = \u56DE\u6EDA\u66F4\u6539 +command.org.jkiss.dbeaver.core.rollbacklabel = \u56DE\u6EDA +command.org.jkiss.dbeaver.core.sql.editor.create.description = \u6253\u5F00\u65B0\u7684SQL\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.sql.editor.create.label = \u521B\u5EFASQL\u811A\u672C +command.org.jkiss.dbeaver.core.sql.editor.create.name = \u65B0\u5EFASQL\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.sql.editor.forSelection.description = \u6253\u5F00\u65B0\u7684SQL\u63A7\u5236\u53F0\u5E76\u901A\u8FC7\u67E5\u8BE2\u8BFB\u53D6\u6570\u636E +command.org.jkiss.dbeaver.core.sql.editor.forSelection.name = \u5728SQL\u63A7\u5236\u53F0\u8BFB\u6570\u636E +command.org.jkiss.dbeaver.core.sql.editor.open.description = \u6253\u5F00SQL\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.sql.editor.open.name = SQL\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.sql.editor.recent.description = \u6253\u5F00\u8FD1\u671FSQL\u811A\u672C +command.org.jkiss.dbeaver.core.sql.editor.recent.name = \u8FD1\u671FSQL\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.core.sql.script.associate.description = \u5C06\u9009\u4E2D\u7684\u811A\u672C\u4E0E\u6570\u636E\u6E90\u5173\u8054 +command.org.jkiss.dbeaver.core.sql.script.associate.name = \u5173\u8054\u6570\u636E\u6E90 +command.org.jkiss.dbeaver.core.transaction_mode.name = \u4E8B\u52A1\u6A21\u5F0F +command.org.jkiss.dbeaver.core.txn.autocommit.description = \u66F4\u6539\u6D3B\u52A8session\u7684\u4E8B\u52A1\u6A21\u5F0F +command.org.jkiss.dbeaver.core.txn.autocommit.name = \u81EA\u52A8\u4FDD\u5B58 +command.org.jkiss.dbeaver.core.txn.log.description = \u5F53\u524D\u4E8B\u52A1\u65E5\u5FD7\uFF08\u6267\u884C\u7684\u67E5\u8BE2\uFF09 +command.org.jkiss.dbeaver.core.txn.log.name = \u4E8B\u52A1\u65E5\u5FD7 +command.org.jkiss.dbeaver.core.txn.pending.description = \u6240\u6709\u5F85\u5904\u7406\u4E8B\u52A1\u7684\u5217\u8868 +command.org.jkiss.dbeaver.core.txn.pending.name = \u5F85\u5904\u7406\u4E8B\u52A1 +command.org.jkiss.dbeaver.ui.editors.sql.assist.templates.description = \u81EA\u52A8\u5B8C\u6210\u6A21\u677F\u540D\u79F0 +command.org.jkiss.dbeaver.ui.editors.sql.assist.templates.name = \u5B8C\u6210\u6A21\u677F\u540D\u79F0 +command.org.jkiss.dbeaver.ui.editors.sql.close.tab.description = \u5173\u95ED\u7ED3\u679C\u9009\u9879\u5361 +command.org.jkiss.dbeaver.ui.editors.sql.close.tab.name = \u5173\u95ED\u9009\u9879\u5361 +command.org.jkiss.dbeaver.ui.editors.sql.comment.multi.description = \u6DFB\u52A0\u6216\u5220\u9664\u591A\u884C\u6CE8\u91CA +command.org.jkiss.dbeaver.ui.editors.sql.comment.multi.name = \u5207\u6362\u5757\u6CE8\u91CA +command.org.jkiss.dbeaver.ui.editors.sql.comment.single.description = \u6DFB\u52A0\u6216\u5220\u9664\u5355\u884C\u6CE8\u91CA +command.org.jkiss.dbeaver.ui.editors.sql.comment.single.name = \u5207\u6362\u884C\u6CE8\u91CA +command.org.jkiss.dbeaver.ui.editors.sql.export.data.description = \u5230\u5904\u5F53\u524D\u67E5\u8BE2\u8FD4\u56DE\u7684\u6570\u636E +command.org.jkiss.dbeaver.ui.editors.sql.export.data.name = \u4ECE\u67E5\u8BE2\u4E2D\u5BFC\u51FA +command.org.jkiss.dbeaver.ui.editors.sql.maximize.result.panel.description = \u6700\u5927\u5316/\u6807\u51C6\u5316\u7ED3\u679C\u9762\u677F +command.org.jkiss.dbeaver.ui.editors.sql.maximize.result.panel.name = \u6700\u5927\u5316\u7ED3\u679C\u9762\u677F +command.org.jkiss.dbeaver.ui.editors.sql.morph.delimited.list.description = \u53D8\u5F62\u5E26\u5206\u9694\u7B26\u7684\u5217\u8868 +command.org.jkiss.dbeaver.ui.editors.sql.morph.delimited.list.name = \u53D8\u5F62\u5E26\u5206\u9694\u7B26\u7684\u5217\u8868 +command.org.jkiss.dbeaver.ui.editors.sql.navigate.object.description = \u6253\u5F00\u5F53\u524D(\u9AD8\u4EAE\u7684)\u6570\u636E\u5E93\u5BF9\u8C61\u7684\u7F16\u8F91\u5668 +command.org.jkiss.dbeaver.ui.editors.sql.navigate.object.name = \u6253\u5F00\u58F0\u660E +command.org.jkiss.dbeaver.ui.editors.sql.open.file.description = \u5BFC\u5165SQL\u811A\u672C\u6587\u4EF6 +command.org.jkiss.dbeaver.ui.editors.sql.open.file.name = \u5BFC\u5165SQL\u811A\u672C +command.org.jkiss.dbeaver.ui.editors.sql.query.next.description = \u5207\u6362\u5230\u4E0B\u4E00\u67E5\u8BE2 +command.org.jkiss.dbeaver.ui.editors.sql.query.next.name = \u4E0B\u4E00\u67E5\u8BE2 +command.org.jkiss.dbeaver.ui.editors.sql.query.prev.description = \u5207\u6362\u5230\u4E0A\u4E00\u67E5\u8BE2 +command.org.jkiss.dbeaver.ui.editors.sql.query.prev.name = \u4E0A\u4E00\u67E5\u8BE2 +command.org.jkiss.dbeaver.ui.editors.sql.rename.description = \u91CD\u547D\u540D\u5F53\u524DSQL\u811A\u672C +command.org.jkiss.dbeaver.ui.editors.sql.rename.name = \u91CD\u547D\u540DSQL\u811A\u672C +command.org.jkiss.dbeaver.ui.editors.sql.run.all.rows.description = \u9009\u62E9\u5E76\u663E\u793A\u6240\u6709\u884C(\u6CA1\u6709\u83B7\u53D6\u5927\u5C0F\u9650\u5236) +command.org.jkiss.dbeaver.ui.editors.sql.run.all.rows.name = \u9009\u62E9\u6240\u6709\u884C +command.org.jkiss.dbeaver.ui.editors.sql.run.count.description = \u4E3A\u4E0B\u9762\u7684\u67E5\u8BE2\u9009\u62E9\u884C\u8BA1\u6570 +command.org.jkiss.dbeaver.ui.editors.sql.run.count.name = \u9009\u62E9\u884C\u8BA1\u6570 +command.org.jkiss.dbeaver.ui.editors.sql.run.explain.description = \u89E3\u6790\u6267\u884C\u8BA1\u5212 +command.org.jkiss.dbeaver.ui.editors.sql.run.explain.name = \u89E3\u6790\u6267\u884C\u8BA1\u5212 +command.org.jkiss.dbeaver.ui.editors.sql.run.expression.description = \u9009\u62E9\u9009\u4E2D\u7684SQL\u8868\u8FBE\u5F0F\u7684\u503C +command.org.jkiss.dbeaver.ui.editors.sql.run.expression.name = \u8BC4\u4F30SQL\u8868\u8FBE\u5F0F +command.org.jkiss.dbeaver.ui.editors.sql.run.script.description = \u6267\u884CSQL\u811A\u672C +command.org.jkiss.dbeaver.ui.editors.sql.run.script.name = \u6267\u884CSQL\u811A\u672C +command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.description = \u5728\u5355\u72EC\u7684\u7ED3\u679C\u9009\u9879\u5361\u4E2D\u6267\u884C\u811A\u672C\u7684\u8BED\u53E5 +command.org.jkiss.dbeaver.ui.editors.sql.run.scriptNew.name = \u5728\u5355\u72EC\u7684\u9009\u9879\u5361\u4E2D\u6267\u884C\u8BED\u53E5 +command.org.jkiss.dbeaver.ui.editors.sql.run.statement.description = \u6267\u884CSQL\u8BED\u53E5 +command.org.jkiss.dbeaver.ui.editors.sql.run.statement.name = \u6267\u884CSQL\u8BED\u53E5 +command.org.jkiss.dbeaver.ui.editors.sql.run.statementNew.description = \u5728\u65B0\u9009\u9879\u5361\u4E2D\u6267\u884CSQL\u8BED\u53E5 +command.org.jkiss.dbeaver.ui.editors.sql.run.statementNew.name = \u5728\u65B0\u9009\u9879\u5361\u4E2D\u6267\u884CSQL\u8BED\u53E5 +command.org.jkiss.dbeaver.ui.editors.sql.save.file.description = \u4FDD\u5B58\u81F3\u6587\u4EF6 +command.org.jkiss.dbeaver.ui.editors.sql.save.file.name = \u4FDD\u5B58SQL\u811A\u672C +command.org.jkiss.dbeaver.ui.editors.sql.show.log.description = \u663E\u793ASQL\u6267\u884C\u65E5\u5FD7 +command.org.jkiss.dbeaver.ui.editors.sql.show.log.name = \u663E\u793A\u6267\u884C\u65E5\u5FD7 +command.org.jkiss.dbeaver.ui.editors.sql.show.output.description = \u663E\u793A\u670D\u52A1\u5668\u63A7\u5236\u53F0\u8F93\u51FA +command.org.jkiss.dbeaver.ui.editors.sql.show.output.name = \u663E\u793A\u670D\u52A1\u5668\u8F93\u51FA +command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.description = \u5207\u6362\u6D3B\u52A8SQL\u7F16\u8F91\u5668\u9762\u677F +command.org.jkiss.dbeaver.ui.editors.sql.switch.panel.name = \u5207\u6362\u6D3B\u52A8\u9762\u677F +command.org.jkiss.dbeaver.ui.editors.sql.sync.auto.description = \u4E0E\u6570\u636E\u5E93\u5BFC\u822A\u5668\u9009\u62E9\u81EA\u52A8\u540C\u6B65\u6D3B\u52A8\u8FDE\u63A5 +command.org.jkiss.dbeaver.ui.editors.sql.sync.auto.name = \u4E0E\u5BFC\u822A\u81EA\u52A8\u540C\u6B65\u8FDE\u63A5 +command.org.jkiss.dbeaver.ui.editors.sql.sync.connection.description = \u4ECE\u6570\u636E\u5E93\u5BFC\u822A\u5668\u9009\u62E9\u4E2D\u8BBE\u7F6E\u6D3B\u52A8\u8FDE\u63A5 +command.org.jkiss.dbeaver.ui.editors.sql.sync.connection.name = \u4ECE\u5BFC\u822A\u8BBE\u7F6E\u8FDE\u63A5 +command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.description = \u663E\u793A/\u9690\u85CF\u7ED3\u679C\u9762\u677F +command.org.jkiss.dbeaver.ui.editors.sql.toggle.result.panel.name = \u5207\u6362\u7ED3\u679C\u9762\u677F +command.org.jkiss.dbeaver.ui.editors.sql.word.wrap.description = \u5207\u6362\u6587\u672C\u7F16\u8F91\u5668\u81EA\u52A8\u6362\u884C +command.org.jkiss.dbeaver.ui.editors.sql.word.wrap.name = \u5207\u6362\u81EA\u52A8\u6362\u884C +command.org.jkiss.dbeaver.ui.editors.text.content.format.description = \u683C\u5F0F\u5316\u6587\u672C +command.org.jkiss.dbeaver.ui.editors.text.content.format.name = \u683C\u5F0F\u5316 +command.org.jkiss.dbeaver.ui.tools.menu.description = \u4F7F\u7528\u6570\u636E\u5E93\u5DE5\u5177\u663E\u793A\u4E0A\u4E0B\u6587\u83DC\u5355 +command.org.jkiss.dbeaver.ui.tools.menu.name = \u4E0A\u4E0B\u6587\u5DE5\u5177 + +commandParameter.org.jkiss.dbeaver.core.resource.link.file.contenttype.name = \u94FE\u63A5\u6587\u4EF6\u7684\u5185\u5BB9\u7C7B\u578B + +content-type.org.jkiss.dbeaver.bookmark.name = \u4E66\u7B7E +content-type.org.jkiss.dbeaver.sql.name = SQL\u811A\u672C + +context.org.jkiss.dbeaver.ui.context.navigator.description = \u6570\u636E\u5E93\u5BFC\u822A\u4E0A\u4E0B\u6587 +context.org.jkiss.dbeaver.ui.context.navigator.name = \u6570\u636E\u5E93\u5BFC\u822A\u4E0A\u4E0B\u6587 +context.org.jkiss.dbeaver.ui.context.resultset.description = \u7ED3\u679C\u67E5\u770B\u5668\u4E0A\u4E0B\u6587 +context.org.jkiss.dbeaver.ui.context.resultset.edit.description = \u7ED3\u679C\u7F16\u8F91\u4E0A\u4E0B\u6587 +context.org.jkiss.dbeaver.ui.context.resultset.edit.name = \u7ED3\u679C\u7F16\u8F91\u4E0A\u4E0B\u6587 +context.org.jkiss.dbeaver.ui.context.resultset.name = \u7ED3\u679C\u67E5\u770B\u5668\u4E0A\u4E0B\u6587 +context.org.jkiss.dbeaver.ui.editors.sql.name = SQL\u7F16\u8F91\u5668\u4E0A\u4E0B\u6587 + +dataTransfer.consumer.database.description = \u6570\u636E\u5E93\u8868 +dataTransfer.consumer.database.name = \u6570\u636E\u5E93 +dataTransfer.consumer.stream.description = \u5E73\u9762\u6587\u4EF6 +dataTransfer.consumer.stream.name = \u6587\u4EF6 +dataTransfer.processor.csv.description = \u5BFC\u51FA\u5230CSV\u6587\u4EF6 +dataTransfer.processor.csv.name = CSV +dataTransfer.processor.csv.property.delimiter.description = \u5B57\u6BB5\u5206\u9694\u7B26 +dataTransfer.processor.csv.property.delimiter.name = \u5206\u9694\u7B26 +dataTransfer.processor.csv.property.escape.description = \u4E0D\u826F\u5B57\u7B26\u9003\u9038\u6A21\u578B\uFF08\u62EC\u53F7\u62EC\u8D77\u6216\u8005\u7528''\u5B57\u7B26\u9003\u9038\uFF09 +dataTransfer.processor.csv.property.escape.name = \u5B57\u7B26\u9003\u9038 +dataTransfer.processor.csv.property.extension.label = \u6587\u4EF6\u6269\u5C55 +dataTransfer.processor.csv.property.header.description = CSV \u8868\u5934\u8BBE\u7F6E +dataTransfer.processor.csv.property.header.name = \u8868\u5934 +dataTransfer.processor.csv.property.nullString.description = \u7528\u6765\u66FF\u6362NULL\u503C\u7684\u5B57\u7B26\u4E32 +dataTransfer.processor.csv.property.nullString.name = NULL\u5B57\u7B26\u4E32 +dataTransfer.processor.csv.property.quoteChar.description = \u7528\u6765\u62EC\u8D77\u5B57\u7B26\u4E32\u7684\u5B57\u7B26\uFF08\u7A7A\u767D\u4EE3\u8868\u4E0D\u62EC\u8D77\uFF09 +dataTransfer.processor.csv.property.quoteChar.name = \u62EC\u8D77\u5B57\u7B26 +dataTransfer.processor.csv.propertyGroup.general.label = \u901A\u7528 +dataTransfer.processor.html.description = \u5BFC\u51FA\u5230HTML\u6587\u4EF6 +dataTransfer.processor.html.name = HTML +dataTransfer.processor.html.property.extension.label = \u6587\u4EF6\u6269\u5C55 +dataTransfer.processor.html.property.images.description = \u63D0\u53D6\u56FE\u7247\u5230\u56FE\u5F62\u6587\u4EF6 +dataTransfer.processor.html.property.images.name = \u56FE\u7247 +dataTransfer.processor.html.propertyGroup.general.label = \u901A\u7528 +dataTransfer.processor.json.description = \u5BFC\u51FA\u5230JSON\u6587\u4EF6 +dataTransfer.processor.json.name = JSON +dataTransfer.processor.json.property.extension.label = \u6587\u4EF6\u6269\u5C55 +dataTransfer.processor.json.property.formatDateISO.label = \u7528 ISO 8601 \u683C\u5F0F\u5316\u6570\u636E +dataTransfer.processor.json.property.printTableName.label = \u6253\u5370\u8868\u540D +dataTransfer.processor.json.propertyGroup.general.label = \u901A\u7528 +dataTransfer.processor.sql.description = \u5BFC\u51FA\u5230SQL INSERT\u8BED\u53E5 +dataTransfer.processor.sql.name = SQL +dataTransfer.processor.sql.property.escape.description = \u9003\u9038\u5355\u5F15\u53F7\u5B57\u7B26\u7684\u5B57\u7B26 +dataTransfer.processor.sql.property.escape.name = \u9003\u9038\u5B57\u7B26 +dataTransfer.processor.sql.property.extension.label = \u6587\u4EF6\u6269\u5C55 +dataTransfer.processor.sql.property.omitSchema.description = \u5728INSERT\u8BED\u53E5\u7701\u53BB\u6A21\u5F0F/\u76EE\u5F55\u540D\u79F0 +dataTransfer.processor.sql.property.omitSchema.name = \u7701\u533A\u6A21\u5F0F\u540D +dataTransfer.processor.sql.property.rowsInStatement.description = \u6BCF\u4E2Ainsert\u8BED\u53E5\u7684\u6570\u636E\u884C\u6570 +dataTransfer.processor.sql.property.rowsInStatement.name = \u6BCF\u4E2A\u8BED\u53E5\u7684\u6570\u636E\u884C\u6570 +dataTransfer.processor.sql.propertyGroup.general.label = \u901A\u7528 +dataTransfer.processor.xml.description = \u5BFC\u51FA\u5230XML\u6587\u4EF6 +dataTransfer.processor.xml.name = XML +dataTransfer.processor.xml.property.extension.label = \u6587\u4EF6\u6269\u5C55 +dataTransfer.processor.xml.property.format.label = \u65E5\u671F/\u6570\u5B57 \u683C\u5F0F +dataTransfer.processor.xml.propertyGroup.general.label = \u901A\u7528 +dataTransfer.producer.database.description = \u6570\u636E\u5E93\u8868 +dataTransfer.producer.database.name = \u8868 + +editor.dbdata.description = \u8868\u683C\u6570\u636E +editor.dbdata.name = \u6570\u636E +editor.entity.name = \u5B9E\u4F53\u7F16\u8F91\u5668 +editor.folder.name = \u6587\u4EF6\u5939\u7F16\u8F91\u5668 +editor.lob.name = \u5927\u578B\u5BF9\u8C61\u7F16\u8F91\u5668 +editor.sql.name = SQL\u7F16\u8F91\u5668 + +extension-point.org.jkiss.dbeaver.aggregateFunction.name = \u805A\u96C6\u51FD\u6570 +extension-point.org.jkiss.dbeaver.dataFormatter.name = \u6570\u636E\u683C\u5F0F\u5668 +extension-point.org.jkiss.dbeaver.dataManager.name = \u6570\u636E\u7BA1\u7406\u5668 +extension-point.org.jkiss.dbeaver.dataSourceProvider.name = \u6570\u636E\u6E90\u63D0\u4F9B\u8005 +extension-point.org.jkiss.dbeaver.dataTransfer.name = \u6570\u636E\u4F20\u8F93\u63D0\u4F9B\u8005 +extension-point.org.jkiss.dbeaver.dataTypeProvider.name = \u6570\u636E\u7C7B\u578B\u63D0\u4F9B\u8005 +extension-point.org.jkiss.dbeaver.databaseEditor.name = \u81EA\u5B9A\u4E49\u5B9E\u4F53\u7F16\u8F91\u5668 +extension-point.org.jkiss.dbeaver.mavenRepository.name = Maven\u5B58\u50A8\u5E93\u914D\u7F6E +extension-point.org.jkiss.dbeaver.networkHandler.name = \u7F51\u7EDC\u5904\u7406\u5668 +extension-point.org.jkiss.dbeaver.pluginService.name = \u63D2\u4EF6\u670D\u52A1 +extension-point.org.jkiss.dbeaver.product.bundles.name = \u4EA7\u54C1\u5305 +extension-point.org.jkiss.dbeaver.resourceHandler.name = \u8D44\u6E90\u5904\u7406\u7A0B\u5E8F +extension-point.org.jkiss.dbeaver.resources.name = \u8D44\u6E90 +extension-point.org.jkiss.dbeaver.resultset.panel.name = \u7ED3\u679C\u96C6\u9762\u677F +extension-point.org.jkiss.dbeaver.resultset.presentation.name = \u7ED3\u679C\u96C6\u8868\u793A +extension-point.org.jkiss.dbeaver.sql.covertname = SQL\u6587\u672C\u8F6C\u6362 +extension-point.org.jkiss.dbeaver.sqlCommand.name = SQL\u811A\u672C\u547D\u4EE4 +extension-point.org.jkiss.dbeaver.tools.name = \u5DE5\u5177 +extension-point.org.jkiss.dbeaver.workbenchHandler.name = \u5DE5\u4F5C\u53F0\u5904\u7406\u7A0B\u5E8F + +extension.org.jkiss.dbeaver.DBeaverNature.name = DBeaver Nature + +fontDefinition.org.jkiss.dbeaver.sql.editor.font.output.description = \u663E\u793ASQL\u8F93\u51FA\u7684\u5B57\u4F53\u3002\u4F18\u9009\u4E00\u79CD\u5355\u7A7A\u95F4\u5B57\u4F53\u3002 +fontDefinition.org.jkiss.dbeaver.sql.editor.font.output.label = SQL \u8F93\u51FA\u5B57\u4F53 +fontDefinition.org.jkiss.dbeaver.sql.resultset.font.description = \u7F51\u683C\u5B57\u4F53\u7528\u4E8E\u7ED3\u679C\u96C6\u5355\u5143\u683C\u3001\u8868\u5934\u548C\u884C\u53F7\u3002\r\n +fontDefinition.org.jkiss.dbeaver.sql.resultset.font.label = \u7ED3\u679C\u7F51\u683C\u5B57\u4F53 + +handler.socks_proxy.description = SOCKS4/SOCKS5 \u4EE3\u7406 +handler.socks_proxy.label = SOCKS \u4EE3\u7406 +handler.ssh_tunnel.description = SSH \u901A\u9053 +handler.ssh_tunnel.label = SSH \u901A\u9053 + +keyword.org.jkiss.dbeaver.core.keyword.pref.db.dataformat.label = \u683C\u5F0F\u5316\u65E5\u671F\u5B57\u7B26\u4E32\u4E3A\u672C\u5730\u5316\u8BED\u8A00 +keyword.org.jkiss.dbeaver.core.keyword.pref.db.general.label = \u81EA\u52A8\u63D0\u4EA4\u6E38\u6807\u56DE\u6EDA\u7ED3\u679C\u96C6lob\u811A\u672C +keyword.org.jkiss.dbeaver.core.keyword.pref.db.qm.label = \u67E5\u8BE2\u65E5\u5FD7ddl\u8BED\u53E5 +keyword.org.jkiss.dbeaver.core.keyword.pref.editor.binary.label = \u4E8C\u8FDB\u5236 \u5341\u516D\u8FDB\u5236 blob +keyword.org.jkiss.dbeaver.core.keyword.pref.editor.content.label = lob blob clob +keyword.org.jkiss.dbeaver.core.keyword.pref.editor.entity.label = \u5BF9\u8C61 \u5B9E\u4F53 \u6A21\u5F0F \u76EE\u5F55 \u8868 \u5305 \u5217 +keyword.org.jkiss.dbeaver.core.keyword.pref.editor.erd.label = erd\u56FE\u8868 +keyword.org.jkiss.dbeaver.core.keyword.pref.editor.sql.label = ql\u811A\u672C\u63D0\u4EA4\u8D85\u65F6 +keyword.org.jkiss.dbeaver.core.keyword.pref.ui.general.label = \u66F4\u65B0http\u4EE3\u7406 + +maven.respository.central = \u6838\u5FC3\u4ED3\u5E93 +maven.respository.central.unsecure = \u6838\u5FC3\u4ED3\u5E93(\u4E0D\u5B89\u5168\u7684) + +menu.database = \u6570\u636E\u5E93 +menu.database.sql.generate = \u751F\u6210SQL +menu.database.tools = \u5DE5\u5177 +menu.filter.label = \u8FC7\u6EE4\u5668 +menu.navigate = \u5BFC\u822A +menu.org.jkiss.dbeaver.core.project.select.label = \u6D3B\u52A8\u9879\u76EE +menu.org.jkiss.dbeaver.ui.editors.sql.SQLEditor.execute.label = \u6267\u884C +menu.org.jkiss.dbeaver.ui.editors.sql.SQLEditor.file.label = \u6587\u4EF6 +menu.org.jkiss.dbeaver.ui.editors.sql.SQLEditor.layout.label = \u5E03\u5C40 +menu.sqleditor = SQL\u7F16\u8F91\u5668 + +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor$ContextInfo.name.name = \u4E0A\u4E0B\u6587\u540D\u79F0 +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.description.name = \u63CF\u8FF0 +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyAddress.name = \u5730\u5740 +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyConnectTime.name = \u8FDE\u63A5\u65F6\u95F4 +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyConnectType.name = \u8FDE\u63A5\u7C7B\u578B +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDatabase.name = \u6570\u636E\u5E93 +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDriver.name = \u9A71\u52A8 +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyDriverType.name = \u9A71\u52A8\u7C7B\u578B +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyServerName.name = \u670D\u52A1\u5668 +meta.org.jkiss.dbeaver.registry.DataSourceDescriptor.propertyURL.name = URL +meta.org.jkiss.dbeaver.registry.DriverDescriptor.category.name = \u9A71\u52A8\u76EE\u5F55 +meta.org.jkiss.dbeaver.registry.DriverDescriptor.description.name = \u63CF\u8FF0 +meta.org.jkiss.dbeaver.registry.DriverDescriptor.driverClassName.name = \u9A71\u52A8\u7C7B +meta.org.jkiss.dbeaver.registry.DriverDescriptor.name.name = \u9A71\u52A8\u540D\u79F0 +meta.org.jkiss.dbeaver.registry.DriverDescriptor.sampleURL.name = URL +meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.columns.name = \u5B57\u6BB5 +meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.ui.dialogs.ColumnInfoPanel$CellKeyInfo.type.name = \u7C7B\u578B +meta.org.jkiss.dbeaver.ui.search.data.SearchDataObject.foundRows.name = \u627E\u5230\u7684\u884C(>=) +meta.org.jkiss.dbeaver.ui.search.data.SearchDataObject.name.name = \u540D\u79F0 + +page.org.jkiss.dbeaver.preferences.connectionTypes.name = \u8FDE\u63A5\u7C7B\u578B +page.org.jkiss.dbeaver.preferences.main.connections.name = \u8FDE\u63A5 +page.org.jkiss.dbeaver.preferences.main.dataformat.name = \u6570\u636E\u683C\u5F0F +page.org.jkiss.dbeaver.preferences.main.entityeditor.name = \u6570\u636E\u7F16\u8F91\u5668 +page.org.jkiss.dbeaver.preferences.main.meta.name = \u5143\u6570\u636E +page.org.jkiss.dbeaver.preferences.main.qm.name = \u67E5\u8BE2\u7BA1\u7406\u5668 +page.org.jkiss.dbeaver.preferences.main.resultset.binaries.name = \u4E8C\u8FDB\u5236 +page.org.jkiss.dbeaver.preferences.main.resultset.name = \u7ED3\u679C\u96C6 +page.org.jkiss.dbeaver.preferences.main.resultset.presentation.name = \u8868\u793A +page.org.jkiss.dbeaver.preferences.main.sql.completion.name = SQL\u5B8C\u6210/\u6298\u53E0 +page.org.jkiss.dbeaver.preferences.main.sql.format.name = SQL\u683C\u5F0F +page.org.jkiss.dbeaver.preferences.main.sql.templates.name = \u6A21\u677F +page.org.jkiss.dbeaver.preferences.main.sqleditor.name = SQL\u7F16\u8F91\u5668 +page.org.jkiss.dbeaver.preferences.main.sqlexecute.name = SQL\u5904\u7406 +page.org.jkiss.dbeaver.preferences.projectSettings.name = DBeaver \u8BBE\u7F6E + +panel.column-aggregate.label = \u5408\u8BA1\u5217 +panel.results-metadata.label = \u5143\u6570\u636E +panel.value-view.label = \u6570\u503C\u67E5\u770B\u5668 + +presentation.plaintext.label = \u6587\u672C +presentation.spreadsheet.label = \u7F51\u683C + +search.page.label.db.fulltext = \u6570\u636E\u5E93\u5168\u6587\u672C +search.page.label.db.metadata = \u6570\u636E\u5E93\u6E90\u6570\u636E +search.result.view.page.data.result.name = \u6570\u636E\u5E93\u5168\u6587\u672C\u68C0\u7D22\u7ED3\u679C +search.result.view.page.metadata.result.name = \u6570\u636E\u5E93\u5143\u6570\u636E\u68C0\u7D22\u7ED3\u679C + +sql.convert.unformatted.text.description = \u5C06SQL\u6587\u672C\u8F6C\u6362\u4E3A\u65E0\u683C\u5F0F\u7684\u5355\u884C\u666E\u901A\u6587\u672C +sql.convert.unformatted.text.name = \u65E0\u683C\u5F0F\u6587\u672C + +themeElementCategory.org.jkiss.dbeaver.ui.presentation.results.description = SQL\u7F16\u8F91\u5668 +themeElementCategory.org.jkiss.dbeaver.ui.presentation.results.label = \u6570\u636E\u5E93\u67E5\u8BE2\u7ED3\u679C +themeElementCategory.org.jkiss.dbeaver.ui.presentation.sql.description = SQL \u7F16\u8F91\u5668 +themeElementCategory.org.jkiss.dbeaver.ui.presentation.sql.label = SQL \u7F16\u8F91\u5668 + +toolbar.dbeaver-datasource-selector.label = \u6570\u636E\u6E90\u9009\u62E9\u5668 +toolbar.dbeaver-edit.label = \u7F16\u8F91\u52A8\u4F5C +toolbar.dbeaver-general.label = \u6570\u636E\u5E93\u5DE5\u5177\u680F +toolbar.dbeaver-transaction-monitor.label = \u4E8B\u52A1\u76D1\u63A7\u5668 +toolbar.dbeaver-transactions.label = \u4E8B\u52A1 + +view.database.navigator.title = \u6570\u636E\u5E93\u5BFC\u822A +view.database.output.title = \u8F93\u51FA +view.project.explorer.title = \u9879\u76EE\u6D4F\u89C8\u5668 +view.project.navigator.title = \u9879\u76EE +view.query.manager.title = \u67E5\u8BE2\u7BA1\u7406 +view.shell.process.title = \u5904\u7406 +view.sql.results.title = \u6570\u636E + +wizard.org.jkiss.dbeaver.core.wizard.export.project.description = DBeaver \u9879\u76EE +wizard.org.jkiss.dbeaver.core.wizard.export.project.name = \u9879\u76EE +wizard.org.jkiss.dbeaver.core.wizard.export.scripts.description = SQL\u811A\u672C +wizard.org.jkiss.dbeaver.core.wizard.export.scripts.name = \u811A\u672C +wizard.org.jkiss.dbeaver.core.wizard.import.project.description = DBeaver \u9879\u76EE +wizard.org.jkiss.dbeaver.core.wizard.import.project.name = \u9879\u76EE +wizard.org.jkiss.dbeaver.core.wizard.import.scripts.description = SQL \u811A\u672C +wizard.org.jkiss.dbeaver.core.wizard.import.scripts.name = \u811A\u672C +wizard.org.jkiss.dbeaver.core.wizard.new.connection.description = \u6570\u636E\u5E93\u8FDE\u63A5 +wizard.org.jkiss.dbeaver.core.wizard.new.connection.name = \u6570\u636E\u5E93\u8FDE\u63A5 +wizard.org.jkiss.dbeaver.core.wizard.new.project.description = DBeaver \u9879\u76EE +wizard.org.jkiss.dbeaver.core.wizard.new.project.name = \u6570\u636E\u5E93\u9879\u76EE diff --git a/bundles/org.jkiss.dbeaver.core.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.core.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.core.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.core.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_de.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_de.properties similarity index 97% rename from bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_de.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_de.properties index 4fdd26f8c7..8ff7f2b78e 100644 --- a/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_de.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_de.properties @@ -1,1740 +1,1740 @@ -# DBeaver - Universal Database Manager -# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) -# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) - -## Errors ## -DBeaverCore_error_can_create_temp_dir = Tempor\u00E4res Verzeichnis "{0}" kann nicht erstellt werden - -DBeaverCore_error_can_create_temp_file = Tempor\u00E4re Datei "{0}" in Verzeichnis "{1}" kann nicht erstellt werden - -actions_ContentAssistProposal_description = SQL Assistent - -## Actions ## -actions_ContentAssistProposal_label = SQL Assistent - -actions_ContentAssistProposal_tooltip = SQL Assistent - -actions_ContentAssistTip_description = SQL Vorlagenassistent - -actions_ContentAssistTip_label = SQL Vorlagen - -actions_ContentAssistTip_tooltip = SQL Vorlagenassistent - -actions_ContentFormatProposal_description = Formatierung von SQL-Anweisungen - -actions_ContentFormatProposal_label = SQLs formatieren - -actions_ContentFormatProposal_tooltip = SQLs formatieren - -actions_menu_about = \u00DCber - -actions_menu_check_update = Auf Updates pr\u00FCfen ... - -## Menu items ## -actions_menu_database = Datenbank - -actions_menu_edit = &Bearbeiten - -actions_menu_edit_ContentFormat = Formatierung - -actions_menu_exit_emergency = Notabschaltung - -actions_menu_file = &Datei - -actions_menu_help = &Hilfe - -actions_menu_navigate = &Navigation - -actions_menu_window = &Fenster - -actions_navigator__objects = \ Objekte - -actions_navigator_bookmark_error_message = Lesezeichen kann nicht angelegt werden - -actions_navigator_bookmark_error_title = neues Lesezeichen - -actions_navigator_bookmark_title = Lesezeichenname - -actions_navigator_copy_fqn_title = Vollqualifizierten Bezeichner kopieren - -actions_navigator_copy_fqn_titles = Vollqualifizierten Bezeichner kopieren - -actions_navigator_copy_object_copy_node = Kopieren von {0} - -actions_navigator_copy_object_copy_objects = Objekte kopieren - -actions_navigator_create_folder_error_message = Verzeichnis "{0}" kann nicht angelegt werden - -actions_navigator_create_folder_error_title = Ordner anlegen - -actions_navigator_create_folder_folder_name = Ordnername - -actions_navigator_create_new = Anlegen - -actions_navigator_delete_ = L\u00F6schen - -actions_navigator_delete_objects = Objekte l\u00F6schen - -actions_navigator_delete_script = Skript l\u00F6schen - -actions_navigator_edit = Bearbeiten - -actions_navigator_error_dialog_delete_object_title = Objekt l\u00F6schen - -actions_navigator_error_dialog_open_entity_title = Entit\u00E4t \u00F6ffnen - -actions_navigator_error_dialog_open_resource_title = Ressource \u00F6ffnen - -actions_navigator_open = \u00D6ffnen - -actions_navigator_view = Anzeigen - -actions_navigator_view_script_button = &Skript anzeigen - -actions_spreadsheet_copy_special = Erweitertes Kopieren ... - -common_error_sql = SQL Fehler - -confirm_close_editor_edit_message = "{0}" wurde ge\u00E4ndert. Sollen die \u00C4nderungen gespeichert werden? - -confirm_close_editor_edit_title = Editor-\u00C4nderungen speichern - -confirm_close_editor_edit_toggleMessage = Nicht mehr nachfragen - -confirm_close_entity_edit_message = Objekt "{0}" wurde ge\u00E4ndert. Sollen diese \u00C4nderungen in der Datenbank persistiert werden? - -confirm_close_entity_edit_title = Objekt\u00E4nderunge persistieren - -confirm_close_entity_edit_toggleMessage = Nicht mehr nachfragen - -confirm_close_resultset_edit_message = Ergebnis wurde ver\u00E4ndert. Soll es gespeichert werden? - -confirm_close_resultset_edit_title = Ergebnis Speichern - -confirm_close_resultset_edit_toggleMessage = Nicht mehr nachfragen - -confirm_disconnect_txn_message = Sie wollen die Verbindung zur Datenbank "{0}" trennen.\nSollen alle Transaktionen festgeschrieben werden (commit)? - -confirm_disconnect_txn_title = \u00C4nderungen festschreiben (commit) - -confirm_disconnect_txn_toggleMessage = Nicht mehr nachfragen - -confirm_driver_download_manual_message = JDBC Treiber "{0}" fehlt. Laut Herstellerrichtlinie ist dieser Treiber nicht \u00F6ffentlich verf\u00FCgbar und muss von der offiziellen Herstellerseite heruntergeladen werden.\n\nNachdem der Treiber erfolgreich heruntergeladen wurde, m\u00FCssen die ben\u00F6tigten JAR Files zur DBeaver Library-Liste hinzugef\u00FCgt werden\nTreiber Dateien: {1}.\n\nWollen Sie die Herstellerseite \u00F6ffnen? - -confirm_driver_download_manual_title = Treiber manuell herunterladen - -confirm_driver_download_manual_toggleMessage = Nicht mehr nachfragen - -confirm_driver_download_message = Treiberdateien ({1}) f\u00FCr die Datenbank "{0}" fehlen.\nSollen diese heruntegeladen werden? - -confirm_driver_download_title = Datenbanktreiber herunterladen - -confirm_driver_download_toggleMessage = Nicht mehr nachfragen - -confirm_entity_delete_message = Sind Sie sicher, dass Sie {0} "{1}" l\u00F6schen wollen? - -confirm_entity_delete_title = Objekt l\u00F6schen (drop) - -confirm_entity_reject_message = Alle \u00C4nderungen in "{0}" gehen verloren und das Editor-Fenster wird geschlossen._\nSind Sie sicher, dass alle \u00C4nderungen verworfen werden sollen? - -confirm_entity_reject_title = Objekt verwerfen - -confirm_entity_reject_toggleMessage = Nicht mehr nachfragen - -confirm_entity_revert_message = Alle \u00C4nderungen in "{0}" r\u00FCckg\u00E4ngig machen? - -confirm_entity_revert_title = \u00C4nderungen r\u00FCckg\u00E4ngig machen - -confirm_entity_revert_toggleMessage = Nicht mehr nachfragen - -confirm_exit_message = Sind Sie sicher? - -## Confirmations -confirm_exit_title = DBeaver beenden - -confirm_exit_toggleMessage = Nicht nochmals fragen - -confirm_fetch_all_rows_message = Das Einlesen aller Zeilen kann einige Zeit und viel Hauptspeicher beanspruchen.\n\nWollen Sie wirklich alle Zeilen einlesen? - -confirm_fetch_all_rows_title = Alle Zeilen einlesen - -confirm_fetch_all_rows_toggleMessage = Nicht mehr nachfragen - -confirm_keep_statement_open_message = Per Default schlie\u00DFt DBeaver ein Ergebnis nach der Abfrage. Dies kann Datenbankobjekte sperren und sich negativ auf andere Benutzer auswirken. Diese Option aktivieren? - -confirm_keep_statement_open_title = Cursor offen halten - -confirm_keep_statement_open_toggleMessage = Auswahl merken - -confirm_local_folder_delete_message = Sind Sie sicher, dass Sie {0} "{1}" l\u00F6schen wollen?\n\nDie Verbindungen in diesem Ordner werden NICHT gel\u00F6scht. - -confirm_local_folder_delete_title = Ordner l\u00F6schen - -confirm_order_resultset_message = Das Sortieren von Ergebnissen kann bei gro\u00DFen Tabellen viel Zeit in Anspruch nehmen, sofern kein passender Index vorhanden ist.\nWollen Sie das Ergebnis denoch nach der Spalte {0} sortieren? - -confirm_order_resultset_title = Ergebnis sortieren - -confirm_order_resultset_toggleMessage = Nicht nochmals fragen - -confirm_version_check_message = Neue {0} Version {1} wurde auf {2} ver\u00F6ffentlicht.\nSoll die aktuelle Version aktualisiert werden? - -confirm_version_check_title = Neue Version herunterladen - -confirm_version_check_toggleMessage = Nicht mehr nachfragen - -controls_client_home_selector_browse = Durchsuchen ... - -controls_client_homes_panel_button_add_home = Home hinzf\u00FCgen - -controls_client_homes_panel_button_remove_home = Home entfernen - -controls_client_homes_panel_confirm_remove_home_text = Sind Sie sicher dass sie das Client-Home "{0}" entfernen wollen? - -controls_client_homes_panel_confirm_remove_home_title = Client Home entfernen - -controls_client_homes_panel_dialog_title = Datenbank Client-Homes - -controls_client_homes_panel_group_information = Information - -controls_client_homes_panel_label_id = ID - -controls_client_homes_panel_label_name = Name - -controls_client_homes_panel_label_path = Pfad - -controls_client_homes_panel_label_product_name = Produktname - -controls_client_homes_panel_label_product_version = Produktversion - -controls_column_info_panel_property_key = Key - -controls_connection_properties_action_add_property = Neues Property hinzuf\u00FCgen - -controls_connection_properties_action_remove_property = Property entfernen - -controls_connection_properties_category_user_properties = Benutzer-Properties - -controls_connection_properties_dialog_new_property_title = Property-Name - -controls_driver_tree_column_connections = Verbindungen - -controls_driver_tree_column_name = Name - -controls_imageview_fit_window = an Fenster Anpassen - -controls_imageview_original_size = original Gr\u00F6\u00DFe - -controls_imageview_rotate = Drehen - -controls_imageview_zoom_in = Reinzoomen - -controls_imageview_zoom_out = Rauszoomen - -controls_itemlist_action_copy = Kopieren - -controls_locale_selector_group_locale = L\u00E4ndereinstellung - -controls_locale_selector_label_country = Land - -controls_locale_selector_label_language = Sprache - -controls_locale_selector_label_locale = L\u00E4ndereinstellung - -controls_locale_selector_label_variant = Variante - -controls_object_list_job_props_read = Lazy properties read - -controls_object_list_message_items = {0} items - -controls_object_list_message_no_items = No items - -controls_object_list_monitor_load_lazy_props = Load lazy properties - -controls_object_list_monitor_load_props = Load "{0}" properties - -controls_object_list_status_objects = {0} Objekte - -controls_progress_page_action_close = Suchleiste Schlie\u00DFen - -controls_progress_page_job_search = Suchen - -controls_progress_page_progress_bar_cancel_tooltip = Aktuelle Operation abbrechen - -controls_progress_page_progress_bar_loading_tooltip = Lade - -controls_progress_page_toolbar_title = Suchen - -controls_querylog__ms = \ ms - -controls_querylog_action_clear_log = Log bereinigen - -controls_querylog_action_copy = Kopieren - -controls_querylog_action_copy_all_fields = Alle Felder kopieren - -controls_querylog_action_select_all = Alles ausw\u00E4hlen - -controls_querylog_column_connection_name = Verbindung - -controls_querylog_column_connection_tooltip = Name der Verbindung zu der das Ereignis geh\u00F6rt - -controls_querylog_column_context_name = Verbindung - -controls_querylog_column_context_tooltip = Physische Verbindung, auf der das Ereignis aufgetreten ist - -controls_querylog_column_duration_name = Dauer - -controls_querylog_column_duration_tooltip = Befehlsausf\u00FChrungszeit - -controls_querylog_column_result_name = Ergebnis - -controls_querylog_column_result_tooltip = Ausf\u00FChrungsergebnis - -controls_querylog_column_rows_name = Zeilen - -controls_querylog_column_rows_tooltip = verarbeitete Zeilen des Befehls - -controls_querylog_column_text_name = Text - -controls_querylog_column_text_tooltip = SQL-Befehlstext - -controls_querylog_column_time_name = Zeitpunkt - -controls_querylog_column_time_tooltip = Zeitpunkt zu dem das Statement ausgef\u00FChrt wurde - -controls_querylog_column_type_name = Typ - -controls_querylog_column_type_tooltip = Ereignistyp - -controls_querylog_commit = Festschreiben (Commit) - -controls_querylog_connected_to = Verbinden mit " - -controls_querylog_disconnected_from = Verbindung trennen mit " - -controls_querylog_error = Fehler [ - -controls_querylog_format_minutes = {0} Min {1} Sek - -controls_querylog_job_refresh = QM Ereignisprotokoll neu laden - -controls_querylog_label_result = Ergebnis - -controls_querylog_label_text = Text - -controls_querylog_label_time = Zeit - -controls_querylog_label_type = Typ - -controls_querylog_rollback = Zur\u00FCcksetzen (Rollback) - -controls_querylog_savepoint = Savepoint - -controls_querylog_script = Skript - -controls_querylog_shell_text = Anzeigen - -controls_querylog_success = Erfolg - -controls_querylog_transaction = Transaktion - -controls_resultset_check_autocommit_state = Auto-Commit Einstellung \u00FCberpr\u00FCfen - -controls_resultset_filter_button_reset = Zur\u00FCcksetzen (Reset) - -controls_resultset_filter_column_criteria = Kriterien - -controls_resultset_filter_column_name = Name - -controls_resultset_filter_column_order = Reihenfolge - -controls_resultset_filter_group_columns = Spalten - -controls_resultset_filter_group_custom = Benutzerdefiniert - -controls_resultset_filter_label_orderby = Sortierung - -controls_resultset_filter_label_where = Filter - -controls_resultset_filter_title = Ergebnissortierung/Filtereinstellung - -controls_resultset_filter_warning_custom_order_disabled = Benutzerdefinierte Sortierung oder Filterung - -controls_resultset_viewer_action_custom_filter = Erweitert ... - -controls_resultset_viewer_action_edit = Bearbeiten ... - -controls_resultset_viewer_action_options = Konfigurieren - -controls_resultset_viewer_action_order_filter = Sortieren/Filtern - -controls_resultset_viewer_action_panels = Panel anpassen - -controls_resultset_viewer_action_refresh = Ergebnis aktualisieren - -controls_resultset_viewer_add_new_row_context_name = Zeilenwerte kopieren - -controls_resultset_viewer_dialog_status_title = Status - -controls_resultset_viewer_job_update = Daten aktualisieren - -controls_resultset_viewer_monitor_aply_changes = Ergebnis speichern - -controls_resultset_viewer_status_empty = Leer - -controls_resultset_viewer_status_inserted_ = Eingef\u00FCgt: {0} / Gel\u00F6scht: {1} / Ge\u00E4ndert: {2} - -controls_resultset_viewer_status_no_data = Keine Daten - -controls_resultset_viewer_status_row = Zeile - -controls_resultset_viewer_status_rows = \ Zeile(n) - -controls_resultset_viewer_status_rows_fetched = \ Zeile(n) gelesen - -controls_resultset_viewer_status_rows_size = {0} Zeilen (+{1}) - -controls_resultset_viewer_value = Wert - -controls_rs_pump_job_context_name = Daten aus "{0}" lesen - -controls_rs_pump_job_name = Daten lesen - -controls_time_ms = ms - -data_transfer_wizard_final_column_source = Quelle - -data_transfer_wizard_final_column_target = Ziel - -data_transfer_wizard_final_description = Ergebnisse \u00FCberpr\u00FCfen - -data_transfer_wizard_final_group_tables = Tabellen - -data_transfer_wizard_final_name = Best\u00E4tigen - -data_transfer_wizard_final_title = Best\u00E4tigen - -data_transfer_wizard_init_column_description = Beschreibung - -data_transfer_wizard_init_column_exported = Exporter - -data_transfer_wizard_init_description = Datentransfer Zieltyp und Format konfigurieren - -data_transfer_wizard_init_name = Transfer Ziele - -data_transfer_wizard_init_title = Datentransfer Zieltypen und Formate - -data_transfer_wizard_job_container_name = Daten aus "{0}" exportieren - -data_transfer_wizard_job_name = Datentransfer - -data_transfer_wizard_job_task_export = Datentransfer - -data_transfer_wizard_job_task_export_table_data = Tabellendaten \u00FCbertragen - -data_transfer_wizard_job_task_retrieve = Abgerufene Zeilenanzahl - -data_transfer_wizard_name = Datentransfer - -data_transfer_wizard_output_checkbox_compress = Komprimierung - -data_transfer_wizard_output_checkbox_new_connection = Neue Verbindung(en) \u00F6ffnen - -data_transfer_wizard_output_checkbox_open_folder = Ausgabeordner am Ende \u00F6ffnen - -data_transfer_wizard_output_checkbox_select_row_count = Zeilenanzahl abfragen - -data_transfer_wizard_output_combo_extract_type_item_by_segments = Segmentierung - -data_transfer_wizard_output_combo_extract_type_item_single_query = Einzelabfrage - -data_transfer_wizard_output_description = Export Ausgabeparameter konfigurieren - -data_transfer_wizard_output_dialog_directory_message = Ausgabeverzeichnis f\u00FCr Exportdateien angeben - -data_transfer_wizard_output_dialog_directory_text = Ausgabeverzeichnis - -data_transfer_wizard_output_group_general = Allgemein - -data_transfer_wizard_output_group_progress = Fortschritt - -data_transfer_wizard_output_label_directory = Verzeichnis - -data_transfer_wizard_output_label_encoding = Encoding - -data_transfer_wizard_output_label_extract_type = Extraktionstyp - -data_transfer_wizard_output_label_file_name_pattern = Dateinamensmuster - -data_transfer_wizard_output_label_insert_bom = BOM einf\u00FCgen - -data_transfer_wizard_output_label_insert_bom_tooltip = BOM (Byte-Order-Mark) wird f\u00FCr Unicode Zeichens\u00E4tze verwendet und wird von einige Programmen vorausgesetzt (wie MS Excel). Gleichzeitig wird BOM von vielen Programmen nicht unterst\u00FCtzt. - -data_transfer_wizard_output_label_max_threads = Maximale Anzahl an Threads - -data_transfer_wizard_output_label_segment_size = Segmentgr\u00F6\u00DFe - -data_transfer_wizard_output_name = Ausgabe - -data_transfer_wizard_output_title = Ausgabe - -data_transfer_wizard_settings_binaries_item_inline = Inline - -data_transfer_wizard_settings_binaries_item_save_to_file = In Dateien speichern - -data_transfer_wizard_settings_binaries_item_set_to_null = Set to NULL - -data_transfer_wizard_settings_button_edit = Bearbeiten ... - -data_transfer_wizard_settings_description = Exporteinstellung setzen - -data_transfer_wizard_settings_group_exporter = Exporter Einstellungen - -data_transfer_wizard_settings_group_general = Allgemein - -data_transfer_wizard_settings_label_binaries = Bin\u00E4rdaten - -data_transfer_wizard_settings_label_encoding = Encoding - -data_transfer_wizard_settings_label_formatting = Formatierung - -data_transfer_wizard_settings_listbox_formatting_item_default = - -data_transfer_wizard_settings_name = Einstellungen - -data_transfer_wizard_settings_title = Einstellungen - -dialog_about_font = SansSerif - -dialog_about_label_version = Version - -dialog_about_title = \u00DCber - -dialog_connection_auth_checkbox_save_password = Passwort Speichern - -dialog_connection_auth_group_user_cridentials = Benutzerinformationen: - -dialog_connection_auth_label_password = Passwort: - -dialog_connection_auth_label_username = Benutzername: - -dialog_connection_auth_title = '' Authentifizierung - -dialog_connection_auth_title_for_handler = Passwort f\u00FCr Nutzer {0} angeben - -dialog_connection_button_test = Verbindung &testen ... - -dialog_connection_description = Verbindungseinstellungen - -dialog_connection_driver = Treibername: - -dialog_connection_edit_driver_button = Treibereinstellungen bearbeiten - -dialog_connection_events_checkbox_show_process = Prozess-Panel anzeigen - -dialog_connection_events_checkbox_terminate_at_disconnect = Abbruch bei Verbindungstrennung - -dialog_connection_events_checkbox_wait_finish = Auf Prozessende warten - -dialog_connection_events_label_command = Befehl - -dialog_connection_events_label_event = Ereignis - -dialog_connection_events_title = Verbindungsereignisse bearbeiten - -dialog_connection_message = {0} Verbindungseinstellungen - -dialog_connection_wizard_final_button_events = Ereignisse ... - -dialog_connection_wizard_final_button_test = Verbindung testen ... - -dialog_connection_wizard_final_button_tunneling = Tunneln ... - -dialog_connection_wizard_final_checkbox_auto_commit = Auto-commit - -dialog_connection_wizard_final_checkbox_connection_readonly = Read-only Verbindung - -dialog_connection_wizard_final_checkbox_filter_catalogs = Katalog filtern - -dialog_connection_wizard_final_checkbox_filter_schemas = Schemata filtern - -dialog_connection_wizard_final_checkbox_save_password_locally = Passwort lokal speichern - -dialog_connection_wizard_final_checkbox_show_system_objects = Systemobjekte anzeigen - -dialog_connection_wizard_final_checkbox_show_util_objects = Utility-Objekte anzeigen - -dialog_connection_wizard_final_default_new_connection_name = Neue Verbindung - -dialog_connection_wizard_final_description = Allgemeine Verbindungseinstellungen - -dialog_connection_wizard_final_filter_catalogs = Kataloge - -dialog_connection_wizard_final_filter_link_not_supported_text = {0} (Nitch unterst\u00FCtzt) - -dialog_connection_wizard_final_filter_link_not_supported_tooltip = {0} wird von Treiber {1} nicht unterst\u00FCtzt - -dialog_connection_wizard_final_filter_link_tooltip = Filter f\u00FCr {0} einstellen - -dialog_connection_wizard_final_filter_schemas_users = Schemata / Benutzer - -dialog_connection_wizard_final_filter_tables = Tabellen - -dialog_connection_wizard_final_group_filters = Filter - -dialog_connection_wizard_final_group_misc = Verschiedenes - -dialog_connection_wizard_final_group_security = Sicherheit - -dialog_connection_wizard_final_header = Verbindungsanlage abschlie\u00DFen - -dialog_connection_wizard_final_label_connection_name = Verbindungsname - -dialog_connection_wizard_start_connection_monitor_close = Verbindung schlie\u00DFen - -dialog_connection_wizard_start_connection_monitor_connected = Verbunden ({0} ms) - -dialog_connection_wizard_start_connection_monitor_start = Verbindung herstellen - -dialog_connection_wizard_start_connection_monitor_subtask_test = Verbindung testen - -dialog_connection_wizard_start_connection_monitor_success = Erfolg - -dialog_connection_wizard_start_connection_monitor_thread = Datenquellenverbindung testen - -dialog_connection_wizard_start_dialog_error_message = Datenbank Verbindungsfehler - -dialog_connection_wizard_start_dialog_error_title = Verbindungsfehler - -dialog_connection_wizard_start_dialog_interrupted_message = Test abgebrochen - -dialog_connection_wizard_start_dialog_interrupted_title = abgebrochen - -dialog_connection_wizard_title = Verbindung bearbeiten - -dialog_cursor_view_monitor_rows_fetched = \ Zeilen gelesen - -dialog_data_format_profiles_button_delete_profile = Profil l\u00F6schen - -dialog_data_format_profiles_button_new_profile = Neues Profil - -dialog_data_format_profiles_confirm_delete_message = Sind Sie sicher? - -dialog_data_format_profiles_confirm_delete_title = Profil l\u00F6schen - -dialog_data_format_profiles_dialog_name_chooser_title = Profilname - -dialog_data_format_profiles_error_message = Profil "{0}" existiert bereits - -dialog_data_format_profiles_error_title = Profil anlegen - -dialog_data_format_profiles_title = Datenformatierungsprofile verwalten - -dialog_data_label_value = Wert: - -dialog_driver_manager_button_delete = &L\u00F6schen - -dialog_driver_manager_button_edit = &Bearbeiten ... - -dialog_driver_manager_button_new = &Neu - -dialog_driver_manager_label_unavailable = - Nicht verf\u00FCgbar - -dialog_driver_manager_label_user_defined = - Benutzerdefiniert - -dialog_driver_manager_message_cant_delete_text = Treiber "{0}" kann nicht gel\u00F6scht werden, da er von folgenden Datenquellen verwendet wird: - -dialog_driver_manager_message_cant_delete_title = Treiber kann nicht gel\u00F6scht werden - -dialog_driver_manager_message_delete_driver_text = Sind Sie sicher, dass sie den Treiber l\u00F6schen wollen ''{0}''? - -dialog_driver_manager_message_delete_driver_title = Treiber l\u00F6schen - -dialog_driver_manager_title = Treibermanager - -dialog_edit_driver_button_add_artifact = &Artefakt hinzuf\u00FCgen - -dialog_edit_driver_button_add_file = &Datei hinzuf\u00FCgen - -dialog_edit_driver_button_add_folder = &Ordner hinzuf\u00FCgen - -dialog_edit_driver_button_bind_class = Klasse suchen - -dialog_edit_driver_button_classpath = &Klassenpfad - -dialog_edit_driver_button_delete = &L\u00F6schen - -dialog_edit_driver_button_details = &Information - -dialog_edit_driver_button_down = Nach &Unten - -dialog_edit_driver_button_reset_to_defaults = auf Default zur\u00FCcksetzen - -dialog_edit_driver_button_up = Nach &Oben - -dialog_edit_driver_button_update_version = Download/&Update - -dialog_edit_driver_dialog_driver_error_message = Treiber kann nicht geladen werden - -dialog_edit_driver_dialog_driver_error_title = Treiberfehler - -dialog_edit_driver_dialog_open_driver_directory = Treiberverzeichnis \u00F6ffen - -dialog_edit_driver_dialog_open_driver_library = Treiberbibliothek \u00F6ffnen - -dialog_edit_driver_label_category = Kategorie - -dialog_edit_driver_label_class_name = Klassenname - -dialog_edit_driver_label_default_port = Standard Port - -dialog_edit_driver_label_description = Beschreibung - -dialog_edit_driver_label_driver_class = Treiberklasse - -dialog_edit_driver_label_driver_name = Treibername - -dialog_edit_driver_label_sample_url = URL Vorlage - -dialog_edit_driver_label_website = Webseite - -dialog_edit_driver_tab_name_advanced_parameters = Erweiterte Parameter - -dialog_edit_driver_tab_name_client_homes = nativer Client - -dialog_edit_driver_tab_name_connection_properties = Verbindungseigenschaften - -dialog_edit_driver_tab_name_driver_libraries = Bibliotheken - -dialog_edit_driver_tab_name_license = Lizenz - -dialog_edit_driver_tab_tooltip_advanced_parameters = Erweiterte Treiberparameter - -dialog_edit_driver_tab_tooltip_connection_properties = Standard Eigenschaften - -dialog_edit_driver_tab_tooltip_driver_libraries = Zus\u00E4tzliche Treiberbibliotheken - -dialog_edit_driver_tab_tooltip_license = Treiberlizenz - -dialog_edit_driver_text_driver_license = Treiberlizenz - -dialog_edit_driver_title_create_driver = Neuen Treiber anlegen - -dialog_edit_driver_title_edit_driver = Treiber '' editieren - -dialog_filter_button_add = Hinzuf\u00FCgen - -dialog_filter_button_clear = L\u00F6schen - -dialog_filter_button_enable = Aktivieren - -dialog_filter_button_remove = Entfernen - -dialog_filter_global_link = Globale Filter anzeigen - -dialog_filter_list_exclude = Exkludieren - -dialog_filter_list_include = Inkludieren - -dialog_filter_table_column_value = Wert - -dialog_filter_title = Filterung: {0} - -dialog_find_replace_1_replacement = 1 Ersetzen - -dialog_find_replace_backward = &R\u00FCckwerts - -dialog_find_replace_cancel = Abbruch - -dialog_find_replace_close = Schlie\u00DFen - -dialog_find_replace_copy = Kopieren - -dialog_find_replace_direction = Richtung - -dialog_find_replace_error_ = Fehler: - -dialog_find_replace_find = &Suchen - -dialog_find_replace_find_literal = Zeichenkette suchen - -dialog_find_replace_find_replace = Suchen/Ersetzen - -dialog_find_replace_forward = V&orw\u00E4rts - -dialog_find_replace_found_literal = Zeichenkette gefunden - -dialog_find_replace_goto_line = Springe in Zeile - -dialog_find_replace_ignore_case = Gro\u00DF-/Kleinschreibung &ignorieren - -dialog_find_replace_literal_not_found = Zeichenkette nicht gefunden - -dialog_find_replace_new_find = Neue Suche - -dialog_find_replace_paste = Einf\u00FCgen - -dialog_find_replace_redo = Wiederherstellen - -dialog_find_replace_replace = E&rsetzen - -dialog_find_replace_replace_all = &Alle ersetzen - -dialog_find_replace_replace_find = Ersetzen/Suche&n - -dialog_find_replace_replace_with = Ersetzen mit - -dialog_find_replace_replacements = \ Ersetzungen - -dialog_find_replace_searching = Suchen - -dialog_find_replace_stop = Stop - -dialog_find_replace_text = Text - -dialog_find_replace_undo = R\u00FCckg\u00E4ngig - -dialog_go_to_button_close = Schlie\u00DFen - -dialog_go_to_button_go_to_location = Zu Position springen - -dialog_go_to_button_show_location = Position anzeigen - -dialog_go_to_label_enter_location_number = Positionsnummer eingeben, von 0 bis {0} (0x0 bis 0x{1}) - -dialog_go_to_label_not_number = Keine Nummer - -dialog_go_to_label_out_of_range = Position ung\u00FCltig - -dialog_go_to_title = Gehe zu Position - -dialog_migrate_wizard_choose_driver_description = Zieltreiber f\u00FCr ausgew\u00E4hlte Verbindungen ausw\u00E4hlen - -dialog_migrate_wizard_choose_driver_title = Zieltreiber ausw\u00E4hlen - -dialog_migrate_wizard_name = Verbindungen - -dialog_migrate_wizard_start_description = Verbindung f\u00FCr die Migration auf einen anderen Treiber ausw\u00E4hlen - -dialog_migrate_wizard_start_title = Verbindung f\u00FCr eine Migration ausw\u00E4hlen - -dialog_migrate_wizard_window_title = Verbindungen auf einen anderen Treiber umstellen - -dialog_new_connection_wizard_monitor_load_data_sources = Datenquellen laden - -dialog_new_connection_wizard_start_description = Neue Verbindung anlegen. Sollte die Datenbank nicht in der Liste aufscheinen, kann \u00FCber den Treibermanager ein eigener (benutzerdefinierter) Treiber angelegt werden. - -dialog_new_connection_wizard_start_title = Verbindungstyp ausw\u00E4hlen - -dialog_new_connection_wizard_title = Neue Verbindung anlegen - -dialog_project_create_wizard_error_already_exists = Projekt "{0}" existiert bereits - -dialog_project_create_wizard_error_cannot_create = Anlagefehler - -dialog_project_create_wizard_error_cannot_create_message = Projekt kann nicht angelegt werden - -dialog_project_create_wizard_title = Projektanlage Wizard - -dialog_project_export_wizard_main_page = Projekte exportieren - -dialog_project_export_wizard_monitor_collect_info = Projektinfos sammeln - -dialog_project_export_wizard_monitor_export_driver_info = Treiberinformationen exportieren - -dialog_project_export_wizard_monitor_export_libraries = Treiberbibliotheken exportieren - -dialog_project_export_wizard_monitor_export_project = Projekt "{0}" exportieren - -dialog_project_export_wizard_page_checkbox_overwrite_files = Vorhandene Dateien ersetzen - -dialog_project_export_wizard_page_dialog_choose_export_dir_message = Verzeichnis f\u00FCr Exportdateien angeben - -dialog_project_export_wizard_page_dialog_choose_export_dir_text = Exportverzeichnis - -dialog_project_export_wizard_page_label_directory = Verzeichnis - -dialog_project_export_wizard_page_message_check_script = Skript(e) f\u00FCr Export ausw\u00E4hlen. - -dialog_project_export_wizard_page_message_configure_settings = Skriptexporteinstellung konfigurieren - -dialog_project_export_wizard_page_message_no_output_dir = kein Ausgabeverzeichnis angegeben. - -dialog_project_export_wizard_page_title = Skripte exportieren - -dialog_project_export_wizard_start_archive_name_prefix = All - -dialog_project_export_wizard_start_checkbox_libraries = Treiberbibliotheken exportieren - -dialog_project_export_wizard_start_dialog_directory_message = Ausgabeverzeichnis ausw\u00E4hlen - -dialog_project_export_wizard_start_dialog_directory_text = Ausgabeverzeichnis - -dialog_project_export_wizard_start_label_directory = Verzeichnis - -dialog_project_export_wizard_start_label_output_file = Ausgabedatei - -dialog_project_export_wizard_start_message_choose_project = Projekte f\u00FCr Export ausw\u00E4hlen - -dialog_project_export_wizard_start_message_configure_settings = Projektexporteinstellung konfigurieren - -dialog_project_export_wizard_start_message_empty_output_directory = Ausgabeverzeichnis ist nicht angegeben. - -dialog_project_export_wizard_start_title = Projekte exportieren - -dialog_project_export_wizard_window_title = Projektexport Wizard - -dialog_project_import_wizard_file_checkbox_import_libraries = Treiberbibliotheken importieren - -dialog_project_import_wizard_file_column_source_name = Originalname - -dialog_project_import_wizard_file_column_target_name = Zielname - -dialog_project_import_wizard_file_description = Projektimporteinstellung konfigurieren - -dialog_project_import_wizard_file_dialog_export_archive_text = Exportarchive \u00F6ffnen - -dialog_project_import_wizard_file_group_input = Eingabe - -dialog_project_import_wizard_file_group_projects = Projekte - -dialog_project_import_wizard_file_label_file = Datei - -dialog_project_import_wizard_file_message_cannt_find_projects = Projekte konnten in der Metadatei nicht gefunden werden - -dialog_project_import_wizard_file_message_choose_project = Projekte f\u00FCr Import ausw\u00E4hlen - -dialog_project_import_wizard_file_message_project_exists = Projekt "{0}" existiert bereits - -dialog_project_import_wizard_file_message_ready = Bereit f\u00FCr Import der Projekte - -dialog_project_import_wizard_file_name = Projekt(e) importieren - -dialog_project_import_wizard_file_title = Projekt(e) importieren - -dialog_project_import_wizard_message_success_import_message = Projektimport erfolgreich - -dialog_project_import_wizard_message_success_import_title = Projektimport - -dialog_project_import_wizard_monitor_import_drivers = Treiber importieren - -dialog_project_import_wizard_monitor_import_project = Projekt importieren - -dialog_project_import_wizard_monitor_import_projects = Projekte importieren - -dialog_project_import_wizard_monitor_load_driver = Treiber laden - -dialog_project_import_wizard_monitor_load_libraries = Treiberbibliotheken laden - -dialog_project_import_wizard_title = Projektimport Wizard - -dialog_scripts_export_wizard_page_name = Skripteexport - -dialog_scripts_export_wizard_window_title = Skriptexport Wizard - -dialog_scripts_import_wizard_description = Skriptimporteinstellungen konfigurieren - -dialog_scripts_import_wizard_dialog_choose_dir_message = Skript Quellverzeichnis ausw\u00E4hlen - -dialog_scripts_import_wizard_dialog_choose_dir_text = Quellverzeichnis - -dialog_scripts_import_wizard_dialog_error_text = Skripte k\u00F6nnen nicht importiert werden - -dialog_scripts_import_wizard_dialog_error_title = Importfehler - -dialog_scripts_import_wizard_dialog_message_no_scripts = Es konnten keine Skripte konnten gefunden werden - -dialog_scripts_import_wizard_dialog_message_success_imported = \ Skript(e) erfolgreich importiert - -dialog_scripts_import_wizard_dialog_message_title = Skriptimport - -dialog_scripts_import_wizard_label_default_connection = Standardverbindung - -dialog_scripts_import_wizard_label_file_mask = Dateimaske - -dialog_scripts_import_wizard_label_input_directory = Eingabeverzeichnis - -# TODO: Translate Rest -dialog_scripts_import_wizard_label_root_folder = Stamm-Skriptverzeichnis - -dialog_scripts_import_wizard_monitor_import_scripts = Scripte importieren - -dialog_scripts_import_wizard_name = Skript(e) importieren - -dialog_scripts_import_wizard_title = Skriptimport - -dialog_scripts_import_wizard_window_title = Skriptimport Wizard - -dialog_search_objects_button_close = Schlie\u00DFen - -dialog_search_objects_button_search = Suchen - -dialog_search_objects_case_sensitive = Gro\u00DF- / Kleinschreibung beachten - -dialog_search_objects_column_description = Beschreibung - -dialog_search_objects_column_type = Typ - -dialog_search_objects_combo_contains = Enth\u00E4lt - -dialog_search_objects_combo_like = Like - -dialog_search_objects_combo_starts_with = Beginnt mit - -dialog_search_objects_group_object_types = Objekttypen - -dialog_search_objects_group_objects_source = Objektquelle - -dialog_search_objects_item_list_info = You have to set search query - -dialog_search_objects_label_name_match = Namens\u00FCbereinstimmung - -dialog_search_objects_label_object_name = Objektname - -dialog_search_objects_message_no_objects_like_ = Keine Objekte nach Muster "{0}" in "{1}" gefunden - -dialog_search_objects_message_objects_found = \ Objekte nicht gefunden - -dialog_search_objects_spinner_max_results = Maximale Ergebnisse - -dialog_search_objects_title = Datenbankobjekte finden - -dialog_select_datasource_error_message = Zuerst neue Datenquelle anlegen. - -dialog_select_datasource_error_title = Es existiert keine Datenquelle - -dialog_select_datasource_title = Datenquelle ausw\u00E4hlen - -dialog_struct_columns_select_column = Spalte - -dialog_struct_columns_select_error_load_columns_message = Fehler beim laden der Tabellenspalten - -dialog_struct_columns_select_error_load_columns_title = Spalten laden - -dialog_struct_columns_select_group_columns = Spalten - -dialog_struct_columns_select_label_table = Tabelle - -dialog_struct_columns_select_title = {0} f\u00FCr Tabelle "{1}" - -dialog_struct_create_entity_group_name = Name - -dialog_struct_create_entity_title = Neu Anlegen - -dialog_struct_create_procedure_combo_type = Typ - -dialog_struct_create_procedure_label_name = Name - -dialog_struct_create_procedure_title = Neue Prozedur/Funktion anlegen - -dialog_struct_edit_constrain_label_type = Typ - -dialog_struct_edit_fk_column_col_type = Spaltentyp - -dialog_struct_edit_fk_column_column = Spalte - -dialog_struct_edit_fk_column_ref_col = Ref. Spalte - -dialog_struct_edit_fk_column_ref_col_type = Ref. Spaltentyp - -dialog_struct_edit_fk_combo_on_delete = On Delete - -dialog_struct_edit_fk_combo_on_update = On Update - -dialog_struct_edit_fk_combo_unik = Unique Key - -dialog_struct_edit_fk_error_load_constraint_columns_message = Tabellen-Constraint Spalten k\u00F6nnen nicht geladen werden - -dialog_struct_edit_fk_error_load_constraint_columns_title = Constraint-Spalten laden - -dialog_struct_edit_fk_error_load_constraints_message = Tabellen-Constraints k\u00F6nnen nicht geladen werden - -dialog_struct_edit_fk_error_load_constraints_title = Constraints laden - -dialog_struct_edit_fk_label_columns = Spalten - -dialog_struct_edit_fk_label_ref_table = referenzierte Tabelle - -dialog_struct_edit_fk_label_table = Tabelle - -dialog_struct_edit_fk_title = {0} f\u00FCr Tabelle "{1}" - -dialog_struct_edit_index_label_type = Typ - -dialog_tunnel_checkbox_use_handler = Verwende {0} - -dialog_tunnel_title = Configure networks handlers and tunnels - -dialog_value_view_button_cancel = Abbru&ch - -dialog_value_view_button_sat_null = auf &NULL setzen - -dialog_value_view_button_save = &Speichern - -dialog_value_view_column_description = Beschreibung - -dialog_value_view_column_value = Wert - -dialog_value_view_context_name = Select "{0}" enumeration values - -dialog_value_view_dialog_error_updating_message = Spaltenwert konnte nicht ge\u00E4ndert werden - -dialog_value_view_dialog_error_updating_title = Fehler beim \u00E4ndern der Spalte - -dialog_value_view_job_selector_name = Select - -dialog_value_view_label_dictionary = Dictionary ({0}): - -dialog_version_update_available_new_version = Es ist eine neue DBeaver Version verf\u00FCgbar. - -dialog_version_update_button_more_info = Mehr Informationen ... - -dialog_version_update_current_version = aktuelle Version - -dialog_version_update_n_a = N/V - -dialog_version_update_new_version = Neue Version - -dialog_version_update_no_new_version = Es gibt keine aktuellere DBeaver Version. - -dialog_version_update_notes = Informationen - -dialog_version_update_press_more_info_ = "Mehr Informationen" ausw\u00E4hlen um die DBeaver Download-Seite zu \u00F6ffnen. - -dialog_version_update_title = Versionsaktualisierung - -dialog_view_classpath_title = System Classpath - -dialog_view_sql_button_copy = Kopieren - -dialog_view_sql_button_persist = Persistieren - -editor_binary_hex_default_font = Standardschriftart - -editor_binary_hex_font_style_bold = Fett - -editor_binary_hex_font_style_bold_italic = Fett Kursiv - -editor_binary_hex_font_style_italic = Kursiv - -editor_binary_hex_font_style_regular = Normal - -editor_binary_hex_froup_font_selection = Schriftart-Auswahl - -editor_binary_hex_label_available_fix_width_fonts = Verf\u00FCgbare Schriftarten mit fester Breite - -editor_binary_hex_label_name = Name - -editor_binary_hex_label_size = Gr\u00F6\u00DFe - -editor_binary_hex_label_style = Stil - -editor_binary_hex_sample_text = ca fe ba be 00 00 01 2d - -editor_binary_hex_status_line_offset = Offset: - -editor_binary_hex_status_line_selection = Auswahl: - -editor_binary_hex_status_line_text_insert = Einf\u00FCgen - -editor_binary_hex_status_line_text_ovewrite = \u00DCberschreiben - -editor_binary_hex_status_line_value = Wert: - -editors_entity_dialog_persist_title = \u00C4nderungen Persistieren - -editors_entity_dialog_preview_title = Vorhergehende \u00C4nderungen - -editors_entity_monitor_add_folder = Ordner hinzf\u00FCgen " - -editors_entity_monitor_add_node = Knoten hinzuf\u00FCgen " - -editors_entity_monitor_preview_changes = Vorschau der \u00C4nderungen - -editors_entity_properties_text = Eigenschaften - -editors_entity_properties_tooltip_suffix = \ Eigenschaften - -editors_sql_data_grid = Ergebnisse - -editors_sql_description = SQL Editor - -editors_sql_error_cant_execute_query_message = Es kann nur eine Abfrage je Tab gestartet werden. Versuchen sie mehrere Tabs f\u00FCr gleichzeitige Ausf\u00FChrung von Abfragen zu verwenden. - -editors_sql_error_cant_execute_query_title = Abfrage kann nicht ausgef\u00FChrt werden. - -editors_sql_error_cant_obtain_session = Session kann nicht geholt werden - -editors_sql_error_execution_plan_message = Zugriffspfad kann nicht angezeigt werden - -editors_sql_error_execution_plan_title = Zugriffspfad - -editors_sql_execution_log = Ausf\u00FChrungsprotokoll - -editors_sql_explain_plan = Zugriffspfad - -editors_sql_job_execute_query = Abfrage ausf\u00FChren - -editors_sql_job_execute_script = Skript ausf\u00FChren - -editors_sql_output = Ausgabe - -editors_sql_save_on_close_message = Editor kann w\u00E4hrend der Ausf\u00FChrung einer Abfrage nicht geschlossen werden - -editors_sql_save_on_close_text = Abfrage wird ausgef\u00FChrt - -editors_sql_status_cant_obtain_document = Editor-Dokument kann nicht abgerufen werden - -editors_sql_status_empty_query_string = Leere Abfrage - -editors_sql_status_not_connected_to_database = keine Datenbankverbindung - -editors_sql_status_rows_updated = \ Zeile(n) ge\u00E4ndert - -editors_sql_status_statement_executed = Statement ausgef\u00FChrt - -editors_sql_status_statement_executed_no_rows_updated = Statement ausgef\u00FChrt - keine Zeilen ge\u00E4ndert - -editors_sql_staus_connected_to = Verbunden mit '' - -model_connection_events_event_after_connect = Nach Verbindungsaufbau - -model_connection_events_event_after_disconnect = Nach Trennung der Verbindung - -model_connection_events_event_before_connect = Vor Verbindungsaufbau - -model_connection_events_event_before_disconnect = Vor Trennung der Verbindung - -model_html_read_database_meta_data = Datenbank Metadaten lesen - -model_jdbc_None = None - -model_jdbc_Procedure = Prozedur - -model_jdbc_Schema = Schema - -model_jdbc_Serializable = Serialisierbar - -model_jdbc__rows_fetched = \ Zeilen gelesen - -model_jdbc_array_result_set = Array result set - -model_jdbc_bad_content_value_ = Fehlerhafter Inhalt: - -model_jdbc_cant_create_null_cursor = Null Cursor kann nicht angelegt werden - -model_jdbc_column_size = Spaltengr\u00F6\u00DFe - -model_jdbc_content_length = Inhaltl\u00E4nge - -model_jdbc_content_type = Inhaltstyp - -model_jdbc_could_not_load_content = Inhalt konnte nicht geladen werden - -model_jdbc_could_not_load_content_from_file = Inhalt kann nicht aus Datei gelesen werden " - -model_jdbc_could_not_save_content = Inhalt kann nicht gespeichert werden - -model_jdbc_could_not_save_content_to_file_ = Inhalt kann nicht in Datei gespeichert werden " - -model_jdbc_create_new_constraint = Neues Constraint anlegen - -model_jdbc_create_new_foreign_key = Neuen Fremdschl\u00FCssel anlegen - -model_jdbc_create_new_index = Neuen Index anlegen - -model_jdbc_create_new_object = Neues Objekt anlegen - -model_jdbc_create_new_table = Neue Tabelle anlegen - -model_jdbc_create_new_table_column = Neue Tabellenspalte anlegen - -model_jdbc_delete_object = Objekt l\u00F6schen - -model_jdbc_drop_constraint = Constraint l\u00F6schen - -model_jdbc_drop_foreign_key = Fremdschl\u00FCssel l\u00F6schen - -model_jdbc_drop_index = Index l\u00F6schen - -model_jdbc_drop_table = Tabelle l\u00F6schen - -model_jdbc_drop_table_column = Tabellenspalte l\u00F6schen - -model_jdbc_exception_bad_savepoint_object = Verhalfters Savepoint Objekt - -model_jdbc_exception_could_not_bind_statement_parameter = Can not bind statement parameter - -model_jdbc_exception_could_not_close_connection = Verbindung konnte nicht geschlossen werden. - -model_jdbc_exception_could_not_get_result_set_value = Resultset Wert konnte nicht bestimmt werden - -model_jdbc_exception_internal_jdbc_driver_error = Interner JDBC-Treiber Fehler - -model_jdbc_exception_invalid_transaction_isolation_parameter = Ung\u00FCltiger Transaktionsisolationslevelparameter - -model_jdbc_exception_unsupported_array_type_ = Nicht unterst\u00FCtzer Array-Typ: - -model_jdbc_exception_unsupported_value_type_ = Nicht unterst\u00FCtzer Wert-Typ - -model_jdbc_fetch_table_data = Tabellendaten lesen - -model_jdbc_fetch_table_row_count = Zeilenanzahl bestimmen - -model_jdbc_find_best_row_identifier = Find best row identifier - -model_jdbc_find_objects_by_name = Objekt aufgrund des Namens finden - -model_jdbc_find_version_columns = Suche Versionsspalten - -model_jdbc_jdbc_error = JDBC-Fehler - -model_jdbc_load_catalogs = Kataloge laden - -model_jdbc_load_client_info = Client-Info laden - -model_jdbc_load_column_privileges = Spaltenrechte Laden - -model_jdbc_load_columns = Spalten Laden - -model_jdbc_load_cross_reference = Cross-References laden - -model_jdbc_load_exported_keys = Loade exportierte Schl\u00FCssel - -model_jdbc_load_from_file_ = Aus Datei laden ... - -model_jdbc_load_function_columns = Funktionsspalten Laden - -model_jdbc_load_functions = Funktionen laden - -model_jdbc_load_imported_keys = Loade importierte Schl\u00FCssel - -model_jdbc_load_indexes = Indizes laden - -model_jdbc_load_primary_keys = Prim\u00E4rschl\u00FCssel laden - -model_jdbc_load_procedure_columns = Prozedurespalten Laden - -model_jdbc_load_procedures = Prozeduren Laden - -model_jdbc_load_schemas = Schemata Laden - -model_jdbc_load_super_tables = Super-Tabellen laden - -model_jdbc_load_super_types = Super-Typen Laden - -model_jdbc_load_table_privileges = Tabellenrechte Laden - -model_jdbc_load_table_types = Tabellentypen Laden - -model_jdbc_load_tables = Tabellen Laden - -model_jdbc_load_type_info = Typ-Info Laden - -model_jdbc_load_udt_attributes = UDT-Attribute Laden - -model_jdbc_load_udts = UDT Laden - -model_jdbc_lob_and_binary_data_cant_be_edited_inline = LOB- und Bin\u00E4redaten k\u00F6nnen nicht Inline bearbeitet werden - -model_jdbc_max_length = Maximale L\u00E4nge - -model_jdbc_precision = Genauigkeit - -model_jdbc_read_committed = Read committed - -model_jdbc_read_uncommitted = Read uncommitted - -model_jdbc_rename_object = Objekt umbenennen - -model_jdbc_repeatable_read = Repeatable read - -model_jdbc_save_to_file_ = In Datei Speichern ... - -model_jdbc_scale = Nachkommastellen - -model_jdbc_set_to_current_time = Aktuelle Zeit setzen - -model_jdbc_type_name = Typname - -model_jdbc_unknown = Unbekannt - -model_jdbc_unsupported_column_type_ = Nicht unterst\u00FCtzter Spaltentyp - -model_jdbc_unsupported_content_value_type_ = Nicht unterst\u00FCtzter Inhaltstyp - -model_jdbc_unsupported_value_type_ = Nicht unterst\u00FCtzter Wertetyp - -model_navigator_Connection = Verbindung - -model_navigator_Connections = Verbindungen - -model_navigator_Description = Beschreibung - -model_navigator_Model_root = Model root - -model_navigator_Name = Name - -model_navigator_Project = Projekt - -model_navigator_Root = Root - -model_navigator__connections = \ Verbindungen - -model_navigator_load_ = Laden - -model_navigator_load_items_ = Load items ... - -model_navigator_resource_exception_already_exists = Verzeichnis "{0}" existiert bereits in "{1}" - -model_project_Script = Skript - -model_project_Scripts = Skripte - -model_project_bookmarks_folder = Lesezeichen - -model_project_cant_open_bookmark = Lesezeichen konnten nicht ge\u00F6ffnet werden - -model_project_open_bookmark = Lesezeichen \u00F6ffnen - -model_ssh_configurator_checkbox_save_pass = Passwort speichern - -model_ssh_configurator_combo_auth_method = Authentifizierungsmethode - -model_ssh_configurator_combo_password = Passwort - -model_ssh_configurator_combo_pub_key = Public Key - -model_ssh_configurator_dialog_choose_private_key = Private-Key-Datei ausw\u00E4hlen - -model_ssh_configurator_label_host_ip = Host/IP - -model_ssh_configurator_label_keep_alive = Keep-Alive interval (ms) - -model_ssh_configurator_label_passphrase = Passphrase - -model_ssh_configurator_label_password = Passwort - -model_ssh_configurator_label_port = Port - -model_ssh_configurator_label_private_key = Private Key - -model_ssh_configurator_label_tunnel_timeout = Tunnel connect timeout (ms) - -model_ssh_configurator_label_user_name = Benutzer - -pref_page_confirmations_combo_always = Immer - -pref_page_confirmations_combo_never = Niemals - -pref_page_confirmations_combo_prompt = Eingabeaufforderung - -pref_page_confirmations_group_general_actions = Allgemeine Aktionen - -pref_page_confirmations_group_object_editor = Objekteditor - -pref_page_content_cache_blob = BLOB-Werte cachen - -pref_page_content_cache_clob = CLOB-Werte cachen - -pref_page_content_editor_checkbox_commit_on_content_apply = Session bei Content-Edit-Apply commitieren - -pref_page_content_editor_checkbox_commit_on_value_apply = Session bei Value-Edit-Apply commitieren - -pref_page_content_editor_checkbox_edit_long_as_lobs = LONG-Spalten als LOBs editieren - -pref_page_content_editor_checkbox_keys_always_use_all_columns = Immer alle Spalten als Key verwenden - -pref_page_content_editor_group_content = LOB - -pref_page_content_editor_group_hex = Bin\u00E4reditor - -pref_page_content_editor_group_keys = Unique-Keys - -pref_page_content_editor_hex_encoding = Zeichenkodierung - -pref_page_content_editor_label_max_text_length = Maximale Inhaltsl\u00E4nge f\u00FCr Inhaltseditor - -pref_page_data_format_button_manage_profiles = Profile verwalten - -pref_page_data_format_group_format = Format - -pref_page_data_format_label_profile = Profile - -pref_page_data_format_label_sample = Beispiel - -pref_page_data_format_label_settingt = Einstellungen - -pref_page_data_format_label_type = Typ - -pref_page_database_general_checkbox_case_sensitive_names = Gro\u00DF-/Kleinschreibung bei Namen in DDL-Anweisungen beachten - -pref_page_database_general_checkbox_keep_cursor = Cursor im SQL-Editor offen halten - -pref_page_database_general_checkbox_rollback_on_error = Rollback bei Fehler - -pref_page_database_general_checkbox_show_row_count = Zeilenzahl bei Tabellen anzeigen - -pref_page_database_general_group_metadata = Metadaten - -pref_page_database_general_group_navigator = Navigator - -pref_page_database_general_group_ordering = Orderings - -pref_page_database_general_group_queries = Abfragen - -pref_page_database_general_group_transactions = Transaktionen - -pref_page_database_general_label_cache_max_size = Maximale Gr\u00F6\u00DFe des LOB-Caches - -pref_page_database_general_label_max_lob_length = Maximale Lob-L\u00E4nge im Speicher - -pref_page_database_general_label_result_set_cancel_timeout = Abfragetimeout - -pref_page_database_general_label_result_set_cancel_timeout_tip = Abfragetimeout in ms, nach dem DBeaver die Abfrage abbricht - -pref_page_database_general_label_result_set_max_size = ResultSet fetch size - -pref_page_database_general_separate_meta_connection = Eigene Verbindung f\u00FCr Metadatenabfragen \u00F6ffnen - -pref_page_database_resultsets_group_binary = Bin\u00E4rdaten - -pref_page_database_resultsets_label_auto_fetch_segment = automatisch n\u00E4chstes Segment lesen - -pref_page_database_resultsets_label_binary_editor_type = Bin\u00E4reditor - -pref_page_database_resultsets_label_binary_presentation = Bin\u00E4rdatenformatierer - -pref_page_database_resultsets_label_binary_strings_max_length = Maximale L\u00E4nge f\u00FCr Bin\u00E4rstrings - -pref_page_database_resultsets_label_binary_use_strings = Bin\u00E4rdaten als Zeichenkette anzeigen - -pref_page_database_resultsets_label_fetch_size = Use fetch-size - -pref_page_database_resultsets_label_read_metadata = Tabellenmetadaten lesen (Unique-Keys) - -pref_page_database_resultsets_label_read_references = Tabellen-Referenzen lesen (Fremdschl\u00FCssel) - -pref_page_database_resultsets_label_server_side_order = DB-Server basierte Sortierung - -pref_page_database_resultsets_label_use_sql = Use SQL to limit fetch size - -pref_page_drivers_group_location = Treiberstandort - -pref_page_query_manager_checkbox_ddl_executions = DDL ausf\u00FChrung - -pref_page_query_manager_checkbox_metadata_read = Metadaten lesen - -pref_page_query_manager_checkbox_metadata_write = Metadaten schreiben (DDL) - -pref_page_query_manager_checkbox_other = Other - -pref_page_query_manager_checkbox_queries = Abfragen - -pref_page_query_manager_checkbox_scripts = Scripts - -pref_page_query_manager_checkbox_sessions = Sessions - -pref_page_query_manager_checkbox_store_log_file = Save log to file(s) - -pref_page_query_manager_checkbox_transactions = Transactions - -pref_page_query_manager_checkbox_user_filtered = Filtered user queries - -pref_page_query_manager_checkbox_user_queries = User queries - -pref_page_query_manager_checkbox_user_scripts = User scripts - -pref_page_query_manager_checkbox_utility_functions = Utility functions - -pref_page_query_manager_group_object_types = Object Types - -pref_page_query_manager_group_query_types = Query Types - -pref_page_query_manager_group_settings = Settings - -pref_page_query_manager_group_storage = Storage - -pref_page_query_manager_label_days_to_store_log = Days to store log - -pref_page_query_manager_label_entries_per_page = Entries per page - -pref_page_query_manager_logs_folder = Log files folder - -pref_page_sql_editor_checkbox_blank_line_delimiter = Blank line is statement delimiter - -pref_page_sql_editor_checkbox_delete_empty_scripts = Delete empty scripts on close - -pref_page_sql_editor_checkbox_enable_sql_anonymous_parameters = Anonymous SQL parameters - -pref_page_sql_editor_checkbox_enable_sql_parameters = Enable SQL parameters - -pref_page_sql_editor_checkbox_fetch_resultsets = Fetch resultsets - -pref_page_sql_editor_checkbox_ignore_native_delimiter = Ignore native delimiter - -pref_page_sql_editor_checkbox_put_new_scripts = Put new scripts in folders - -pref_page_sql_editor_checkbox_reset_cursor = Reset cursor after execute - -pref_page_sql_editor_combo_item_each_line_autocommit = After each line (autocommit) - -pref_page_sql_editor_combo_item_each_spec_line = After each specified line - -pref_page_sql_editor_combo_item_ignore = Ignore - -pref_page_sql_editor_combo_item_no_commit = No commit - -pref_page_sql_editor_combo_item_script_end = At script end - -pref_page_sql_editor_combo_item_stop_commit = Stop + commit - -pref_page_sql_editor_combo_item_stop_rollback = Stop + rollback - -pref_page_sql_editor_group_common = Common - -pref_page_sql_editor_group_delimiters = Delimiters - -pref_page_sql_editor_group_misc = Miscellaneous - -pref_page_sql_editor_group_parameters = Parameters - -pref_page_sql_editor_group_resources = Resources - -pref_page_sql_editor_group_scripts = Scripts - -pref_page_sql_editor_label_commit_after_line = Commit after line - -pref_page_sql_editor_label_commit_type = Commit type - -pref_page_sql_editor_label_error_handling = Error handling - -pref_page_sql_editor_label_invalidate_before_execute = Invalidate connection before execute - -pref_page_sql_editor_label_refresh_defaults_after_execute = Refresh active schema after SQL execution - -pref_page_sql_editor_label_sound_on_query_end = Beep after query finish - -pref_page_sql_editor_label_sql_timeout = SQL statement timeout - -pref_page_sql_editor_text_anonymous_parameter_mark = Anonymous parameter mark - -pref_page_sql_editor_text_named_parameter_prefix = Named parameter prefix - -pref_page_sql_editor_text_statement_delimiter = Statements delimiter - -pref_page_sql_editor_title_pattern = Script title pattern - -pref_page_target_button_use_datasource_settings = Datasource "{0}" settings - -pref_page_target_link_show_datasource_settings = Datasource settings - -pref_page_target_link_show_global_settings = Global settings - -pref_page_ui_general_checkbox_automatic_updates = Automatic updates check - -pref_page_ui_general_group_editors = Editors - -pref_page_ui_general_group_general = General - -pref_page_ui_general_group_http_proxy = HTTP Proxy (for downloads) - -pref_page_ui_general_keep_database_editors = Reopen database editors after restart - -pref_page_ui_general_label_proxy_host = Proxy Host - -pref_page_ui_general_label_proxy_password = Password - -pref_page_ui_general_label_proxy_user = User - -pref_page_ui_general_refresh_editor_on_open = Force object refresh on editor open - -pref_page_ui_general_spinner_proxy_port = Proxy Port - -registry_entity_editor_descriptor_description = Object properties - -registry_entity_editor_descriptor_name = Properties - -runtime_jobs_connect_name = Connect to "{0}" - -runtime_jobs_connect_status_connected = Connected - -runtime_jobs_connect_status_error = Error connecting to datasource "{0}" - -runtime_jobs_connect_thread_name = Connect to datasource "{0}" - -runtime_jobs_disconnect_error = Error disconnecting from datasource "{0}" - -runtime_jobs_disconnect_name = Disconnect from {0} - -toolbar_datasource_selector_action_read_databases = Read database list - -toolbar_datasource_selector_combo_database_tooltip = Active catalog/schema - -toolbar_datasource_selector_combo_datasource_tooltip = Active datasource - -toolbar_datasource_selector_empty = - -toolbar_datasource_selector_error_change_database_message = Can''t change active database - -toolbar_datasource_selector_error_change_database_title = Change active database - -toolbar_datasource_selector_error_database_change_not_supported = Active database change is not supported - -toolbar_datasource_selector_error_database_not_found = Can not find database "{0}" - -toolbar_datasource_selector_resultset_segment_size = Maximum result-set size - -tools_script_execute_wizard_task_completed = {0} ({1}) completed - -tools_wizard_dialog_button_start = Start - -tools_wizard_error_task_canceled = {0} "{1}" canceled - -tools_wizard_error_task_error_message = Cannot perform - -tools_wizard_error_task_error_title = {0} error - -tools_wizard_log_io_error = IO Error: {0} - -tools_wizard_log_process_exit_code = Process exit code: {0} - -tools_wizard_message_client_home_not_found = Client home "{0}" not found - -tools_wizard_message_no_client_home = Client home is not specified for connection - -tools_wizard_page_log_task_finished = {0} finished at {1} - -tools_wizard_page_log_task_log_reader = {0} log reader - -tools_wizard_page_log_task_progress = {0} progress - -tools_wizard_page_log_task_progress_log = {0} progress log - -tools_wizard_page_log_task_started_at = {0} started at {1} - -ui_actions_context_search_name = Context search - -ui_actions_exit_emergency_question = Are you sure you want to perform emergency exit? Some unsaved data can be lost or corrupted. - -ui_common_button_help = Help - -ui_properties_category_information = Information - -ui_properties_category_structure = Structure - -ui_properties_name = Name - -ui_properties_task_add_folder = Add folder " - -ui_properties_task_add_node = Add node " - -ui_properties_tree_viewer__to_default = \ to default - -ui_properties_tree_viewer_action_copy_value = Copy value - -ui_properties_tree_viewer_action_reset_value = Reset value - -ui_properties_tree_viewer_category_general = General - -ui_properties_value = Value +# DBeaver - Universal Database Manager +# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) +# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) + +## Errors ## +DBeaverCore_error_can_create_temp_dir = Tempor\u00E4res Verzeichnis "{0}" kann nicht erstellt werden + +DBeaverCore_error_can_create_temp_file = Tempor\u00E4re Datei "{0}" in Verzeichnis "{1}" kann nicht erstellt werden + +actions_ContentAssistProposal_description = SQL Assistent + +## Actions ## +actions_ContentAssistProposal_label = SQL Assistent + +actions_ContentAssistProposal_tooltip = SQL Assistent + +actions_ContentAssistTip_description = SQL Vorlagenassistent + +actions_ContentAssistTip_label = SQL Vorlagen + +actions_ContentAssistTip_tooltip = SQL Vorlagenassistent + +actions_ContentFormatProposal_description = Formatierung von SQL-Anweisungen + +actions_ContentFormatProposal_label = SQLs formatieren + +actions_ContentFormatProposal_tooltip = SQLs formatieren + +actions_menu_about = \u00DCber + +actions_menu_check_update = Auf Updates pr\u00FCfen ... + +## Menu items ## +actions_menu_database = Datenbank + +actions_menu_edit = &Bearbeiten + +actions_menu_edit_ContentFormat = Formatierung + +actions_menu_exit_emergency = Notabschaltung + +actions_menu_file = &Datei + +actions_menu_help = &Hilfe + +actions_menu_navigate = &Navigation + +actions_menu_window = &Fenster + +actions_navigator__objects = \ Objekte + +actions_navigator_bookmark_error_message = Lesezeichen kann nicht angelegt werden + +actions_navigator_bookmark_error_title = neues Lesezeichen + +actions_navigator_bookmark_title = Lesezeichenname + +actions_navigator_copy_fqn_title = Vollqualifizierten Bezeichner kopieren + +actions_navigator_copy_fqn_titles = Vollqualifizierten Bezeichner kopieren + +actions_navigator_copy_object_copy_node = Kopieren von {0} + +actions_navigator_copy_object_copy_objects = Objekte kopieren + +actions_navigator_create_folder_error_message = Verzeichnis "{0}" kann nicht angelegt werden + +actions_navigator_create_folder_error_title = Ordner anlegen + +actions_navigator_create_folder_folder_name = Ordnername + +actions_navigator_create_new = Anlegen + +actions_navigator_delete_ = L\u00F6schen + +actions_navigator_delete_objects = Objekte l\u00F6schen + +actions_navigator_delete_script = Skript l\u00F6schen + +actions_navigator_edit = Bearbeiten + +actions_navigator_error_dialog_delete_object_title = Objekt l\u00F6schen + +actions_navigator_error_dialog_open_entity_title = Entit\u00E4t \u00F6ffnen + +actions_navigator_error_dialog_open_resource_title = Ressource \u00F6ffnen + +actions_navigator_open = \u00D6ffnen + +actions_navigator_view = Anzeigen + +actions_navigator_view_script_button = &Skript anzeigen + +actions_spreadsheet_copy_special = Erweitertes Kopieren ... + +common_error_sql = SQL Fehler + +confirm_close_editor_edit_message = "{0}" wurde ge\u00E4ndert. Sollen die \u00C4nderungen gespeichert werden? + +confirm_close_editor_edit_title = Editor-\u00C4nderungen speichern + +confirm_close_editor_edit_toggleMessage = Nicht mehr nachfragen + +confirm_close_entity_edit_message = Objekt "{0}" wurde ge\u00E4ndert. Sollen diese \u00C4nderungen in der Datenbank persistiert werden? + +confirm_close_entity_edit_title = Objekt\u00E4nderunge persistieren + +confirm_close_entity_edit_toggleMessage = Nicht mehr nachfragen + +confirm_close_resultset_edit_message = Ergebnis wurde ver\u00E4ndert. Soll es gespeichert werden? + +confirm_close_resultset_edit_title = Ergebnis Speichern + +confirm_close_resultset_edit_toggleMessage = Nicht mehr nachfragen + +confirm_disconnect_txn_message = Sie wollen die Verbindung zur Datenbank "{0}" trennen.\nSollen alle Transaktionen festgeschrieben werden (commit)? + +confirm_disconnect_txn_title = \u00C4nderungen festschreiben (commit) + +confirm_disconnect_txn_toggleMessage = Nicht mehr nachfragen + +confirm_driver_download_manual_message = JDBC Treiber "{0}" fehlt. Laut Herstellerrichtlinie ist dieser Treiber nicht \u00F6ffentlich verf\u00FCgbar und muss von der offiziellen Herstellerseite heruntergeladen werden.\n\nNachdem der Treiber erfolgreich heruntergeladen wurde, m\u00FCssen die ben\u00F6tigten JAR Files zur DBeaver Library-Liste hinzugef\u00FCgt werden\nTreiber Dateien: {1}.\n\nWollen Sie die Herstellerseite \u00F6ffnen? + +confirm_driver_download_manual_title = Treiber manuell herunterladen + +confirm_driver_download_manual_toggleMessage = Nicht mehr nachfragen + +confirm_driver_download_message = Treiberdateien ({1}) f\u00FCr die Datenbank "{0}" fehlen.\nSollen diese heruntegeladen werden? + +confirm_driver_download_title = Datenbanktreiber herunterladen + +confirm_driver_download_toggleMessage = Nicht mehr nachfragen + +confirm_entity_delete_message = Sind Sie sicher, dass Sie {0} "{1}" l\u00F6schen wollen? + +confirm_entity_delete_title = Objekt l\u00F6schen (drop) + +confirm_entity_reject_message = Alle \u00C4nderungen in "{0}" gehen verloren und das Editor-Fenster wird geschlossen._\nSind Sie sicher, dass alle \u00C4nderungen verworfen werden sollen? + +confirm_entity_reject_title = Objekt verwerfen + +confirm_entity_reject_toggleMessage = Nicht mehr nachfragen + +confirm_entity_revert_message = Alle \u00C4nderungen in "{0}" r\u00FCckg\u00E4ngig machen? + +confirm_entity_revert_title = \u00C4nderungen r\u00FCckg\u00E4ngig machen + +confirm_entity_revert_toggleMessage = Nicht mehr nachfragen + +confirm_exit_message = Sind Sie sicher? + +## Confirmations +confirm_exit_title = DBeaver beenden + +confirm_exit_toggleMessage = Nicht nochmals fragen + +confirm_fetch_all_rows_message = Das Einlesen aller Zeilen kann einige Zeit und viel Hauptspeicher beanspruchen.\n\nWollen Sie wirklich alle Zeilen einlesen? + +confirm_fetch_all_rows_title = Alle Zeilen einlesen + +confirm_fetch_all_rows_toggleMessage = Nicht mehr nachfragen + +confirm_keep_statement_open_message = Per Default schlie\u00DFt DBeaver ein Ergebnis nach der Abfrage. Dies kann Datenbankobjekte sperren und sich negativ auf andere Benutzer auswirken. Diese Option aktivieren? + +confirm_keep_statement_open_title = Cursor offen halten + +confirm_keep_statement_open_toggleMessage = Auswahl merken + +confirm_local_folder_delete_message = Sind Sie sicher, dass Sie {0} "{1}" l\u00F6schen wollen?\n\nDie Verbindungen in diesem Ordner werden NICHT gel\u00F6scht. + +confirm_local_folder_delete_title = Ordner l\u00F6schen + +confirm_order_resultset_message = Das Sortieren von Ergebnissen kann bei gro\u00DFen Tabellen viel Zeit in Anspruch nehmen, sofern kein passender Index vorhanden ist.\nWollen Sie das Ergebnis denoch nach der Spalte {0} sortieren? + +confirm_order_resultset_title = Ergebnis sortieren + +confirm_order_resultset_toggleMessage = Nicht nochmals fragen + +confirm_version_check_message = Neue {0} Version {1} wurde auf {2} ver\u00F6ffentlicht.\nSoll die aktuelle Version aktualisiert werden? + +confirm_version_check_title = Neue Version herunterladen + +confirm_version_check_toggleMessage = Nicht mehr nachfragen + +controls_client_home_selector_browse = Durchsuchen ... + +controls_client_homes_panel_button_add_home = Home hinzf\u00FCgen + +controls_client_homes_panel_button_remove_home = Home entfernen + +controls_client_homes_panel_confirm_remove_home_text = Sind Sie sicher dass sie das Client-Home "{0}" entfernen wollen? + +controls_client_homes_panel_confirm_remove_home_title = Client Home entfernen + +controls_client_homes_panel_dialog_title = Datenbank Client-Homes + +controls_client_homes_panel_group_information = Information + +controls_client_homes_panel_label_id = ID + +controls_client_homes_panel_label_name = Name + +controls_client_homes_panel_label_path = Pfad + +controls_client_homes_panel_label_product_name = Produktname + +controls_client_homes_panel_label_product_version = Produktversion + +controls_column_info_panel_property_key = Key + +controls_connection_properties_action_add_property = Neues Property hinzuf\u00FCgen + +controls_connection_properties_action_remove_property = Property entfernen + +controls_connection_properties_category_user_properties = Benutzer-Properties + +controls_connection_properties_dialog_new_property_title = Property-Name + +controls_driver_tree_column_connections = Verbindungen + +controls_driver_tree_column_name = Name + +controls_imageview_fit_window = an Fenster Anpassen + +controls_imageview_original_size = original Gr\u00F6\u00DFe + +controls_imageview_rotate = Drehen + +controls_imageview_zoom_in = Reinzoomen + +controls_imageview_zoom_out = Rauszoomen + +controls_itemlist_action_copy = Kopieren + +controls_locale_selector_group_locale = L\u00E4ndereinstellung + +controls_locale_selector_label_country = Land + +controls_locale_selector_label_language = Sprache + +controls_locale_selector_label_locale = L\u00E4ndereinstellung + +controls_locale_selector_label_variant = Variante + +controls_object_list_job_props_read = Lazy properties read + +controls_object_list_message_items = {0} items + +controls_object_list_message_no_items = No items + +controls_object_list_monitor_load_lazy_props = Load lazy properties + +controls_object_list_monitor_load_props = Load "{0}" properties + +controls_object_list_status_objects = {0} Objekte + +controls_progress_page_action_close = Suchleiste Schlie\u00DFen + +controls_progress_page_job_search = Suchen + +controls_progress_page_progress_bar_cancel_tooltip = Aktuelle Operation abbrechen + +controls_progress_page_progress_bar_loading_tooltip = Lade + +controls_progress_page_toolbar_title = Suchen + +controls_querylog__ms = \ ms + +controls_querylog_action_clear_log = Log bereinigen + +controls_querylog_action_copy = Kopieren + +controls_querylog_action_copy_all_fields = Alle Felder kopieren + +controls_querylog_action_select_all = Alles ausw\u00E4hlen + +controls_querylog_column_connection_name = Verbindung + +controls_querylog_column_connection_tooltip = Name der Verbindung zu der das Ereignis geh\u00F6rt + +controls_querylog_column_context_name = Verbindung + +controls_querylog_column_context_tooltip = Physische Verbindung, auf der das Ereignis aufgetreten ist + +controls_querylog_column_duration_name = Dauer + +controls_querylog_column_duration_tooltip = Befehlsausf\u00FChrungszeit + +controls_querylog_column_result_name = Ergebnis + +controls_querylog_column_result_tooltip = Ausf\u00FChrungsergebnis + +controls_querylog_column_rows_name = Zeilen + +controls_querylog_column_rows_tooltip = verarbeitete Zeilen des Befehls + +controls_querylog_column_text_name = Text + +controls_querylog_column_text_tooltip = SQL-Befehlstext + +controls_querylog_column_time_name = Zeitpunkt + +controls_querylog_column_time_tooltip = Zeitpunkt zu dem das Statement ausgef\u00FChrt wurde + +controls_querylog_column_type_name = Typ + +controls_querylog_column_type_tooltip = Ereignistyp + +controls_querylog_commit = Festschreiben (Commit) + +controls_querylog_connected_to = Verbinden mit " + +controls_querylog_disconnected_from = Verbindung trennen mit " + +controls_querylog_error = Fehler [ + +controls_querylog_format_minutes = {0} Min {1} Sek + +controls_querylog_job_refresh = QM Ereignisprotokoll neu laden + +controls_querylog_label_result = Ergebnis + +controls_querylog_label_text = Text + +controls_querylog_label_time = Zeit + +controls_querylog_label_type = Typ + +controls_querylog_rollback = Zur\u00FCcksetzen (Rollback) + +controls_querylog_savepoint = Savepoint + +controls_querylog_script = Skript + +controls_querylog_shell_text = Anzeigen + +controls_querylog_success = Erfolg + +controls_querylog_transaction = Transaktion + +controls_resultset_check_autocommit_state = Auto-Commit Einstellung \u00FCberpr\u00FCfen + +controls_resultset_filter_button_reset = Zur\u00FCcksetzen (Reset) + +controls_resultset_filter_column_criteria = Kriterien + +controls_resultset_filter_column_name = Name + +controls_resultset_filter_column_order = Reihenfolge + +controls_resultset_filter_group_columns = Spalten + +controls_resultset_filter_group_custom = Benutzerdefiniert + +controls_resultset_filter_label_orderby = Sortierung + +controls_resultset_filter_label_where = Filter + +controls_resultset_filter_title = Ergebnissortierung/Filtereinstellung + +controls_resultset_filter_warning_custom_order_disabled = Benutzerdefinierte Sortierung oder Filterung + +controls_resultset_viewer_action_custom_filter = Erweitert ... + +controls_resultset_viewer_action_edit = Bearbeiten ... + +controls_resultset_viewer_action_options = Konfigurieren + +controls_resultset_viewer_action_order_filter = Sortieren/Filtern + +controls_resultset_viewer_action_panels = Panel anpassen + +controls_resultset_viewer_action_refresh = Ergebnis aktualisieren + +controls_resultset_viewer_add_new_row_context_name = Zeilenwerte kopieren + +controls_resultset_viewer_dialog_status_title = Status + +controls_resultset_viewer_job_update = Daten aktualisieren + +controls_resultset_viewer_monitor_aply_changes = Ergebnis speichern + +controls_resultset_viewer_status_empty = Leer + +controls_resultset_viewer_status_inserted_ = Eingef\u00FCgt: {0} / Gel\u00F6scht: {1} / Ge\u00E4ndert: {2} + +controls_resultset_viewer_status_no_data = Keine Daten + +controls_resultset_viewer_status_row = Zeile + +controls_resultset_viewer_status_rows = \ Zeile(n) + +controls_resultset_viewer_status_rows_fetched = \ Zeile(n) gelesen + +controls_resultset_viewer_status_rows_size = {0} Zeilen (+{1}) + +controls_resultset_viewer_value = Wert + +controls_rs_pump_job_context_name = Daten aus "{0}" lesen + +controls_rs_pump_job_name = Daten lesen + +controls_time_ms = ms + +data_transfer_wizard_final_column_source = Quelle + +data_transfer_wizard_final_column_target = Ziel + +data_transfer_wizard_final_description = Ergebnisse \u00FCberpr\u00FCfen + +data_transfer_wizard_final_group_tables = Tabellen + +data_transfer_wizard_final_name = Best\u00E4tigen + +data_transfer_wizard_final_title = Best\u00E4tigen + +data_transfer_wizard_init_column_description = Beschreibung + +data_transfer_wizard_init_column_exported = Exporter + +data_transfer_wizard_init_description = Datentransfer Zieltyp und Format konfigurieren + +data_transfer_wizard_init_name = Transfer Ziele + +data_transfer_wizard_init_title = Datentransfer Zieltypen und Formate + +data_transfer_wizard_job_container_name = Daten aus "{0}" exportieren + +data_transfer_wizard_job_name = Datentransfer + +data_transfer_wizard_job_task_export = Datentransfer + +data_transfer_wizard_job_task_export_table_data = Tabellendaten \u00FCbertragen + +data_transfer_wizard_job_task_retrieve = Abgerufene Zeilenanzahl + +data_transfer_wizard_name = Datentransfer + +data_transfer_wizard_output_checkbox_compress = Komprimierung + +data_transfer_wizard_output_checkbox_new_connection = Neue Verbindung(en) \u00F6ffnen + +data_transfer_wizard_output_checkbox_open_folder = Ausgabeordner am Ende \u00F6ffnen + +data_transfer_wizard_output_checkbox_select_row_count = Zeilenanzahl abfragen + +data_transfer_wizard_output_combo_extract_type_item_by_segments = Segmentierung + +data_transfer_wizard_output_combo_extract_type_item_single_query = Einzelabfrage + +data_transfer_wizard_output_description = Export Ausgabeparameter konfigurieren + +data_transfer_wizard_output_dialog_directory_message = Ausgabeverzeichnis f\u00FCr Exportdateien angeben + +data_transfer_wizard_output_dialog_directory_text = Ausgabeverzeichnis + +data_transfer_wizard_output_group_general = Allgemein + +data_transfer_wizard_output_group_progress = Fortschritt + +data_transfer_wizard_output_label_directory = Verzeichnis + +data_transfer_wizard_output_label_encoding = Encoding + +data_transfer_wizard_output_label_extract_type = Extraktionstyp + +data_transfer_wizard_output_label_file_name_pattern = Dateinamensmuster + +data_transfer_wizard_output_label_insert_bom = BOM einf\u00FCgen + +data_transfer_wizard_output_label_insert_bom_tooltip = BOM (Byte-Order-Mark) wird f\u00FCr Unicode Zeichens\u00E4tze verwendet und wird von einige Programmen vorausgesetzt (wie MS Excel). Gleichzeitig wird BOM von vielen Programmen nicht unterst\u00FCtzt. + +data_transfer_wizard_output_label_max_threads = Maximale Anzahl an Threads + +data_transfer_wizard_output_label_segment_size = Segmentgr\u00F6\u00DFe + +data_transfer_wizard_output_name = Ausgabe + +data_transfer_wizard_output_title = Ausgabe + +data_transfer_wizard_settings_binaries_item_inline = Inline + +data_transfer_wizard_settings_binaries_item_save_to_file = In Dateien speichern + +data_transfer_wizard_settings_binaries_item_set_to_null = Set to NULL + +data_transfer_wizard_settings_button_edit = Bearbeiten ... + +data_transfer_wizard_settings_description = Exporteinstellung setzen + +data_transfer_wizard_settings_group_exporter = Exporter Einstellungen + +data_transfer_wizard_settings_group_general = Allgemein + +data_transfer_wizard_settings_label_binaries = Bin\u00E4rdaten + +data_transfer_wizard_settings_label_encoding = Encoding + +data_transfer_wizard_settings_label_formatting = Formatierung + +data_transfer_wizard_settings_listbox_formatting_item_default = + +data_transfer_wizard_settings_name = Einstellungen + +data_transfer_wizard_settings_title = Einstellungen + +dialog_about_font = SansSerif + +dialog_about_label_version = Version + +dialog_about_title = \u00DCber + +dialog_connection_auth_checkbox_save_password = Passwort Speichern + +dialog_connection_auth_group_user_cridentials = Benutzerinformationen: + +dialog_connection_auth_label_password = Passwort: + +dialog_connection_auth_label_username = Benutzername: + +dialog_connection_auth_title = '' Authentifizierung + +dialog_connection_auth_title_for_handler = Passwort f\u00FCr Nutzer {0} angeben + +dialog_connection_button_test = Verbindung &testen ... + +dialog_connection_description = Verbindungseinstellungen + +dialog_connection_driver = Treibername: + +dialog_connection_edit_driver_button = Treibereinstellungen bearbeiten + +dialog_connection_events_checkbox_show_process = Prozess-Panel anzeigen + +dialog_connection_events_checkbox_terminate_at_disconnect = Abbruch bei Verbindungstrennung + +dialog_connection_events_checkbox_wait_finish = Auf Prozessende warten + +dialog_connection_events_label_command = Befehl + +dialog_connection_events_label_event = Ereignis + +dialog_connection_events_title = Verbindungsereignisse bearbeiten + +dialog_connection_message = {0} Verbindungseinstellungen + +dialog_connection_wizard_final_button_events = Ereignisse ... + +dialog_connection_wizard_final_button_test = Verbindung testen ... + +dialog_connection_wizard_final_button_tunneling = Tunneln ... + +dialog_connection_wizard_final_checkbox_auto_commit = Auto-commit + +dialog_connection_wizard_final_checkbox_connection_readonly = Read-only Verbindung + +dialog_connection_wizard_final_checkbox_filter_catalogs = Katalog filtern + +dialog_connection_wizard_final_checkbox_filter_schemas = Schemata filtern + +dialog_connection_wizard_final_checkbox_save_password_locally = Passwort lokal speichern + +dialog_connection_wizard_final_checkbox_show_system_objects = Systemobjekte anzeigen + +dialog_connection_wizard_final_checkbox_show_util_objects = Utility-Objekte anzeigen + +dialog_connection_wizard_final_default_new_connection_name = Neue Verbindung + +dialog_connection_wizard_final_description = Allgemeine Verbindungseinstellungen + +dialog_connection_wizard_final_filter_catalogs = Kataloge + +dialog_connection_wizard_final_filter_link_not_supported_text = {0} (Nitch unterst\u00FCtzt) + +dialog_connection_wizard_final_filter_link_not_supported_tooltip = {0} wird von Treiber {1} nicht unterst\u00FCtzt + +dialog_connection_wizard_final_filter_link_tooltip = Filter f\u00FCr {0} einstellen + +dialog_connection_wizard_final_filter_schemas_users = Schemata / Benutzer + +dialog_connection_wizard_final_filter_tables = Tabellen + +dialog_connection_wizard_final_group_filters = Filter + +dialog_connection_wizard_final_group_misc = Verschiedenes + +dialog_connection_wizard_final_group_security = Sicherheit + +dialog_connection_wizard_final_header = Verbindungsanlage abschlie\u00DFen + +dialog_connection_wizard_final_label_connection_name = Verbindungsname + +dialog_connection_wizard_start_connection_monitor_close = Verbindung schlie\u00DFen + +dialog_connection_wizard_start_connection_monitor_connected = Verbunden ({0} ms) + +dialog_connection_wizard_start_connection_monitor_start = Verbindung herstellen + +dialog_connection_wizard_start_connection_monitor_subtask_test = Verbindung testen + +dialog_connection_wizard_start_connection_monitor_success = Erfolg + +dialog_connection_wizard_start_connection_monitor_thread = Datenquellenverbindung testen + +dialog_connection_wizard_start_dialog_error_message = Datenbank Verbindungsfehler + +dialog_connection_wizard_start_dialog_error_title = Verbindungsfehler + +dialog_connection_wizard_start_dialog_interrupted_message = Test abgebrochen + +dialog_connection_wizard_start_dialog_interrupted_title = abgebrochen + +dialog_connection_wizard_title = Verbindung bearbeiten + +dialog_cursor_view_monitor_rows_fetched = \ Zeilen gelesen + +dialog_data_format_profiles_button_delete_profile = Profil l\u00F6schen + +dialog_data_format_profiles_button_new_profile = Neues Profil + +dialog_data_format_profiles_confirm_delete_message = Sind Sie sicher? + +dialog_data_format_profiles_confirm_delete_title = Profil l\u00F6schen + +dialog_data_format_profiles_dialog_name_chooser_title = Profilname + +dialog_data_format_profiles_error_message = Profil "{0}" existiert bereits + +dialog_data_format_profiles_error_title = Profil anlegen + +dialog_data_format_profiles_title = Datenformatierungsprofile verwalten + +dialog_data_label_value = Wert: + +dialog_driver_manager_button_delete = &L\u00F6schen + +dialog_driver_manager_button_edit = &Bearbeiten ... + +dialog_driver_manager_button_new = &Neu + +dialog_driver_manager_label_unavailable = - Nicht verf\u00FCgbar + +dialog_driver_manager_label_user_defined = - Benutzerdefiniert + +dialog_driver_manager_message_cant_delete_text = Treiber "{0}" kann nicht gel\u00F6scht werden, da er von folgenden Datenquellen verwendet wird: + +dialog_driver_manager_message_cant_delete_title = Treiber kann nicht gel\u00F6scht werden + +dialog_driver_manager_message_delete_driver_text = Sind Sie sicher, dass sie den Treiber l\u00F6schen wollen ''{0}''? + +dialog_driver_manager_message_delete_driver_title = Treiber l\u00F6schen + +dialog_driver_manager_title = Treibermanager + +dialog_edit_driver_button_add_artifact = &Artefakt hinzuf\u00FCgen + +dialog_edit_driver_button_add_file = &Datei hinzuf\u00FCgen + +dialog_edit_driver_button_add_folder = &Ordner hinzuf\u00FCgen + +dialog_edit_driver_button_bind_class = Klasse suchen + +dialog_edit_driver_button_classpath = &Klassenpfad + +dialog_edit_driver_button_delete = &L\u00F6schen + +dialog_edit_driver_button_details = &Information + +dialog_edit_driver_button_down = Nach &Unten + +dialog_edit_driver_button_reset_to_defaults = auf Default zur\u00FCcksetzen + +dialog_edit_driver_button_up = Nach &Oben + +dialog_edit_driver_button_update_version = Download/&Update + +dialog_edit_driver_dialog_driver_error_message = Treiber kann nicht geladen werden + +dialog_edit_driver_dialog_driver_error_title = Treiberfehler + +dialog_edit_driver_dialog_open_driver_directory = Treiberverzeichnis \u00F6ffen + +dialog_edit_driver_dialog_open_driver_library = Treiberbibliothek \u00F6ffnen + +dialog_edit_driver_label_category = Kategorie + +dialog_edit_driver_label_class_name = Klassenname + +dialog_edit_driver_label_default_port = Standard Port + +dialog_edit_driver_label_description = Beschreibung + +dialog_edit_driver_label_driver_class = Treiberklasse + +dialog_edit_driver_label_driver_name = Treibername + +dialog_edit_driver_label_sample_url = URL Vorlage + +dialog_edit_driver_label_website = Webseite + +dialog_edit_driver_tab_name_advanced_parameters = Erweiterte Parameter + +dialog_edit_driver_tab_name_client_homes = nativer Client + +dialog_edit_driver_tab_name_connection_properties = Verbindungseigenschaften + +dialog_edit_driver_tab_name_driver_libraries = Bibliotheken + +dialog_edit_driver_tab_name_license = Lizenz + +dialog_edit_driver_tab_tooltip_advanced_parameters = Erweiterte Treiberparameter + +dialog_edit_driver_tab_tooltip_connection_properties = Standard Eigenschaften + +dialog_edit_driver_tab_tooltip_driver_libraries = Zus\u00E4tzliche Treiberbibliotheken + +dialog_edit_driver_tab_tooltip_license = Treiberlizenz + +dialog_edit_driver_text_driver_license = Treiberlizenz + +dialog_edit_driver_title_create_driver = Neuen Treiber anlegen + +dialog_edit_driver_title_edit_driver = Treiber '' editieren + +dialog_filter_button_add = Hinzuf\u00FCgen + +dialog_filter_button_clear = L\u00F6schen + +dialog_filter_button_enable = Aktivieren + +dialog_filter_button_remove = Entfernen + +dialog_filter_global_link = Globale Filter anzeigen + +dialog_filter_list_exclude = Exkludieren + +dialog_filter_list_include = Inkludieren + +dialog_filter_table_column_value = Wert + +dialog_filter_title = Filterung: {0} + +dialog_find_replace_1_replacement = 1 Ersetzen + +dialog_find_replace_backward = &R\u00FCckwerts + +dialog_find_replace_cancel = Abbruch + +dialog_find_replace_close = Schlie\u00DFen + +dialog_find_replace_copy = Kopieren + +dialog_find_replace_direction = Richtung + +dialog_find_replace_error_ = Fehler: + +dialog_find_replace_find = &Suchen + +dialog_find_replace_find_literal = Zeichenkette suchen + +dialog_find_replace_find_replace = Suchen/Ersetzen + +dialog_find_replace_forward = V&orw\u00E4rts + +dialog_find_replace_found_literal = Zeichenkette gefunden + +dialog_find_replace_goto_line = Springe in Zeile + +dialog_find_replace_ignore_case = Gro\u00DF-/Kleinschreibung &ignorieren + +dialog_find_replace_literal_not_found = Zeichenkette nicht gefunden + +dialog_find_replace_new_find = Neue Suche + +dialog_find_replace_paste = Einf\u00FCgen + +dialog_find_replace_redo = Wiederherstellen + +dialog_find_replace_replace = E&rsetzen + +dialog_find_replace_replace_all = &Alle ersetzen + +dialog_find_replace_replace_find = Ersetzen/Suche&n + +dialog_find_replace_replace_with = Ersetzen mit + +dialog_find_replace_replacements = \ Ersetzungen + +dialog_find_replace_searching = Suchen + +dialog_find_replace_stop = Stop + +dialog_find_replace_text = Text + +dialog_find_replace_undo = R\u00FCckg\u00E4ngig + +dialog_go_to_button_close = Schlie\u00DFen + +dialog_go_to_button_go_to_location = Zu Position springen + +dialog_go_to_button_show_location = Position anzeigen + +dialog_go_to_label_enter_location_number = Positionsnummer eingeben, von 0 bis {0} (0x0 bis 0x{1}) + +dialog_go_to_label_not_number = Keine Nummer + +dialog_go_to_label_out_of_range = Position ung\u00FCltig + +dialog_go_to_title = Gehe zu Position + +dialog_migrate_wizard_choose_driver_description = Zieltreiber f\u00FCr ausgew\u00E4hlte Verbindungen ausw\u00E4hlen + +dialog_migrate_wizard_choose_driver_title = Zieltreiber ausw\u00E4hlen + +dialog_migrate_wizard_name = Verbindungen + +dialog_migrate_wizard_start_description = Verbindung f\u00FCr die Migration auf einen anderen Treiber ausw\u00E4hlen + +dialog_migrate_wizard_start_title = Verbindung f\u00FCr eine Migration ausw\u00E4hlen + +dialog_migrate_wizard_window_title = Verbindungen auf einen anderen Treiber umstellen + +dialog_new_connection_wizard_monitor_load_data_sources = Datenquellen laden + +dialog_new_connection_wizard_start_description = Neue Verbindung anlegen. Sollte die Datenbank nicht in der Liste aufscheinen, kann \u00FCber den Treibermanager ein eigener (benutzerdefinierter) Treiber angelegt werden. + +dialog_new_connection_wizard_start_title = Verbindungstyp ausw\u00E4hlen + +dialog_new_connection_wizard_title = Neue Verbindung anlegen + +dialog_project_create_wizard_error_already_exists = Projekt "{0}" existiert bereits + +dialog_project_create_wizard_error_cannot_create = Anlagefehler + +dialog_project_create_wizard_error_cannot_create_message = Projekt kann nicht angelegt werden + +dialog_project_create_wizard_title = Projektanlage Wizard + +dialog_project_export_wizard_main_page = Projekte exportieren + +dialog_project_export_wizard_monitor_collect_info = Projektinfos sammeln + +dialog_project_export_wizard_monitor_export_driver_info = Treiberinformationen exportieren + +dialog_project_export_wizard_monitor_export_libraries = Treiberbibliotheken exportieren + +dialog_project_export_wizard_monitor_export_project = Projekt "{0}" exportieren + +dialog_project_export_wizard_page_checkbox_overwrite_files = Vorhandene Dateien ersetzen + +dialog_project_export_wizard_page_dialog_choose_export_dir_message = Verzeichnis f\u00FCr Exportdateien angeben + +dialog_project_export_wizard_page_dialog_choose_export_dir_text = Exportverzeichnis + +dialog_project_export_wizard_page_label_directory = Verzeichnis + +dialog_project_export_wizard_page_message_check_script = Skript(e) f\u00FCr Export ausw\u00E4hlen. + +dialog_project_export_wizard_page_message_configure_settings = Skriptexporteinstellung konfigurieren + +dialog_project_export_wizard_page_message_no_output_dir = kein Ausgabeverzeichnis angegeben. + +dialog_project_export_wizard_page_title = Skripte exportieren + +dialog_project_export_wizard_start_archive_name_prefix = All + +dialog_project_export_wizard_start_checkbox_libraries = Treiberbibliotheken exportieren + +dialog_project_export_wizard_start_dialog_directory_message = Ausgabeverzeichnis ausw\u00E4hlen + +dialog_project_export_wizard_start_dialog_directory_text = Ausgabeverzeichnis + +dialog_project_export_wizard_start_label_directory = Verzeichnis + +dialog_project_export_wizard_start_label_output_file = Ausgabedatei + +dialog_project_export_wizard_start_message_choose_project = Projekte f\u00FCr Export ausw\u00E4hlen + +dialog_project_export_wizard_start_message_configure_settings = Projektexporteinstellung konfigurieren + +dialog_project_export_wizard_start_message_empty_output_directory = Ausgabeverzeichnis ist nicht angegeben. + +dialog_project_export_wizard_start_title = Projekte exportieren + +dialog_project_export_wizard_window_title = Projektexport Wizard + +dialog_project_import_wizard_file_checkbox_import_libraries = Treiberbibliotheken importieren + +dialog_project_import_wizard_file_column_source_name = Originalname + +dialog_project_import_wizard_file_column_target_name = Zielname + +dialog_project_import_wizard_file_description = Projektimporteinstellung konfigurieren + +dialog_project_import_wizard_file_dialog_export_archive_text = Exportarchive \u00F6ffnen + +dialog_project_import_wizard_file_group_input = Eingabe + +dialog_project_import_wizard_file_group_projects = Projekte + +dialog_project_import_wizard_file_label_file = Datei + +dialog_project_import_wizard_file_message_cannt_find_projects = Projekte konnten in der Metadatei nicht gefunden werden + +dialog_project_import_wizard_file_message_choose_project = Projekte f\u00FCr Import ausw\u00E4hlen + +dialog_project_import_wizard_file_message_project_exists = Projekt "{0}" existiert bereits + +dialog_project_import_wizard_file_message_ready = Bereit f\u00FCr Import der Projekte + +dialog_project_import_wizard_file_name = Projekt(e) importieren + +dialog_project_import_wizard_file_title = Projekt(e) importieren + +dialog_project_import_wizard_message_success_import_message = Projektimport erfolgreich + +dialog_project_import_wizard_message_success_import_title = Projektimport + +dialog_project_import_wizard_monitor_import_drivers = Treiber importieren + +dialog_project_import_wizard_monitor_import_project = Projekt importieren + +dialog_project_import_wizard_monitor_import_projects = Projekte importieren + +dialog_project_import_wizard_monitor_load_driver = Treiber laden + +dialog_project_import_wizard_monitor_load_libraries = Treiberbibliotheken laden + +dialog_project_import_wizard_title = Projektimport Wizard + +dialog_scripts_export_wizard_page_name = Skripteexport + +dialog_scripts_export_wizard_window_title = Skriptexport Wizard + +dialog_scripts_import_wizard_description = Skriptimporteinstellungen konfigurieren + +dialog_scripts_import_wizard_dialog_choose_dir_message = Skript Quellverzeichnis ausw\u00E4hlen + +dialog_scripts_import_wizard_dialog_choose_dir_text = Quellverzeichnis + +dialog_scripts_import_wizard_dialog_error_text = Skripte k\u00F6nnen nicht importiert werden + +dialog_scripts_import_wizard_dialog_error_title = Importfehler + +dialog_scripts_import_wizard_dialog_message_no_scripts = Es konnten keine Skripte konnten gefunden werden + +dialog_scripts_import_wizard_dialog_message_success_imported = \ Skript(e) erfolgreich importiert + +dialog_scripts_import_wizard_dialog_message_title = Skriptimport + +dialog_scripts_import_wizard_label_default_connection = Standardverbindung + +dialog_scripts_import_wizard_label_file_mask = Dateimaske + +dialog_scripts_import_wizard_label_input_directory = Eingabeverzeichnis + +# TODO: Translate Rest +dialog_scripts_import_wizard_label_root_folder = Stamm-Skriptverzeichnis + +dialog_scripts_import_wizard_monitor_import_scripts = Scripte importieren + +dialog_scripts_import_wizard_name = Skript(e) importieren + +dialog_scripts_import_wizard_title = Skriptimport + +dialog_scripts_import_wizard_window_title = Skriptimport Wizard + +dialog_search_objects_button_close = Schlie\u00DFen + +dialog_search_objects_button_search = Suchen + +dialog_search_objects_case_sensitive = Gro\u00DF- / Kleinschreibung beachten + +dialog_search_objects_column_description = Beschreibung + +dialog_search_objects_column_type = Typ + +dialog_search_objects_combo_contains = Enth\u00E4lt + +dialog_search_objects_combo_like = Like + +dialog_search_objects_combo_starts_with = Beginnt mit + +dialog_search_objects_group_object_types = Objekttypen + +dialog_search_objects_group_objects_source = Objektquelle + +dialog_search_objects_item_list_info = You have to set search query + +dialog_search_objects_label_name_match = Namens\u00FCbereinstimmung + +dialog_search_objects_label_object_name = Objektname + +dialog_search_objects_message_no_objects_like_ = Keine Objekte nach Muster "{0}" in "{1}" gefunden + +dialog_search_objects_message_objects_found = \ Objekte nicht gefunden + +dialog_search_objects_spinner_max_results = Maximale Ergebnisse + +dialog_search_objects_title = Datenbankobjekte finden + +dialog_select_datasource_error_message = Zuerst neue Datenquelle anlegen. + +dialog_select_datasource_error_title = Es existiert keine Datenquelle + +dialog_select_datasource_title = Datenquelle ausw\u00E4hlen + +dialog_struct_columns_select_column = Spalte + +dialog_struct_columns_select_error_load_columns_message = Fehler beim laden der Tabellenspalten + +dialog_struct_columns_select_error_load_columns_title = Spalten laden + +dialog_struct_columns_select_group_columns = Spalten + +dialog_struct_columns_select_label_table = Tabelle + +dialog_struct_columns_select_title = {0} f\u00FCr Tabelle "{1}" + +dialog_struct_create_entity_group_name = Name + +dialog_struct_create_entity_title = Neu Anlegen + +dialog_struct_create_procedure_combo_type = Typ + +dialog_struct_create_procedure_label_name = Name + +dialog_struct_create_procedure_title = Neue Prozedur/Funktion anlegen + +dialog_struct_edit_constrain_label_type = Typ + +dialog_struct_edit_fk_column_col_type = Spaltentyp + +dialog_struct_edit_fk_column_column = Spalte + +dialog_struct_edit_fk_column_ref_col = Ref. Spalte + +dialog_struct_edit_fk_column_ref_col_type = Ref. Spaltentyp + +dialog_struct_edit_fk_combo_on_delete = On Delete + +dialog_struct_edit_fk_combo_on_update = On Update + +dialog_struct_edit_fk_combo_unik = Unique Key + +dialog_struct_edit_fk_error_load_constraint_columns_message = Tabellen-Constraint Spalten k\u00F6nnen nicht geladen werden + +dialog_struct_edit_fk_error_load_constraint_columns_title = Constraint-Spalten laden + +dialog_struct_edit_fk_error_load_constraints_message = Tabellen-Constraints k\u00F6nnen nicht geladen werden + +dialog_struct_edit_fk_error_load_constraints_title = Constraints laden + +dialog_struct_edit_fk_label_columns = Spalten + +dialog_struct_edit_fk_label_ref_table = referenzierte Tabelle + +dialog_struct_edit_fk_label_table = Tabelle + +dialog_struct_edit_fk_title = {0} f\u00FCr Tabelle "{1}" + +dialog_struct_edit_index_label_type = Typ + +dialog_tunnel_checkbox_use_handler = Verwende {0} + +dialog_tunnel_title = Configure networks handlers and tunnels + +dialog_value_view_button_cancel = Abbru&ch + +dialog_value_view_button_sat_null = auf &NULL setzen + +dialog_value_view_button_save = &Speichern + +dialog_value_view_column_description = Beschreibung + +dialog_value_view_column_value = Wert + +dialog_value_view_context_name = Select "{0}" enumeration values + +dialog_value_view_dialog_error_updating_message = Spaltenwert konnte nicht ge\u00E4ndert werden + +dialog_value_view_dialog_error_updating_title = Fehler beim \u00E4ndern der Spalte + +dialog_value_view_job_selector_name = Select + +dialog_value_view_label_dictionary = Dictionary ({0}): + +dialog_version_update_available_new_version = Es ist eine neue DBeaver Version verf\u00FCgbar. + +dialog_version_update_button_more_info = Mehr Informationen ... + +dialog_version_update_current_version = aktuelle Version + +dialog_version_update_n_a = N/V + +dialog_version_update_new_version = Neue Version + +dialog_version_update_no_new_version = Es gibt keine aktuellere DBeaver Version. + +dialog_version_update_notes = Informationen + +dialog_version_update_press_more_info_ = "Mehr Informationen" ausw\u00E4hlen um die DBeaver Download-Seite zu \u00F6ffnen. + +dialog_version_update_title = Versionsaktualisierung + +dialog_view_classpath_title = System Classpath + +dialog_view_sql_button_copy = Kopieren + +dialog_view_sql_button_persist = Persistieren + +editor_binary_hex_default_font = Standardschriftart + +editor_binary_hex_font_style_bold = Fett + +editor_binary_hex_font_style_bold_italic = Fett Kursiv + +editor_binary_hex_font_style_italic = Kursiv + +editor_binary_hex_font_style_regular = Normal + +editor_binary_hex_froup_font_selection = Schriftart-Auswahl + +editor_binary_hex_label_available_fix_width_fonts = Verf\u00FCgbare Schriftarten mit fester Breite + +editor_binary_hex_label_name = Name + +editor_binary_hex_label_size = Gr\u00F6\u00DFe + +editor_binary_hex_label_style = Stil + +editor_binary_hex_sample_text = ca fe ba be 00 00 01 2d + +editor_binary_hex_status_line_offset = Offset: + +editor_binary_hex_status_line_selection = Auswahl: + +editor_binary_hex_status_line_text_insert = Einf\u00FCgen + +editor_binary_hex_status_line_text_ovewrite = \u00DCberschreiben + +editor_binary_hex_status_line_value = Wert: + +editors_entity_dialog_persist_title = \u00C4nderungen Persistieren + +editors_entity_dialog_preview_title = Vorhergehende \u00C4nderungen + +editors_entity_monitor_add_folder = Ordner hinzf\u00FCgen " + +editors_entity_monitor_add_node = Knoten hinzuf\u00FCgen " + +editors_entity_monitor_preview_changes = Vorschau der \u00C4nderungen + +editors_entity_properties_text = Eigenschaften + +editors_entity_properties_tooltip_suffix = \ Eigenschaften + +editors_sql_data_grid = Ergebnisse + +editors_sql_description = SQL Editor + +editors_sql_error_cant_execute_query_message = Es kann nur eine Abfrage je Tab gestartet werden. Versuchen sie mehrere Tabs f\u00FCr gleichzeitige Ausf\u00FChrung von Abfragen zu verwenden. + +editors_sql_error_cant_execute_query_title = Abfrage kann nicht ausgef\u00FChrt werden. + +editors_sql_error_cant_obtain_session = Session kann nicht geholt werden + +editors_sql_error_execution_plan_message = Zugriffspfad kann nicht angezeigt werden + +editors_sql_error_execution_plan_title = Zugriffspfad + +editors_sql_execution_log = Ausf\u00FChrungsprotokoll + +editors_sql_explain_plan = Zugriffspfad + +editors_sql_job_execute_query = Abfrage ausf\u00FChren + +editors_sql_job_execute_script = Skript ausf\u00FChren + +editors_sql_output = Ausgabe + +editors_sql_save_on_close_message = Editor kann w\u00E4hrend der Ausf\u00FChrung einer Abfrage nicht geschlossen werden + +editors_sql_save_on_close_text = Abfrage wird ausgef\u00FChrt + +editors_sql_status_cant_obtain_document = Editor-Dokument kann nicht abgerufen werden + +editors_sql_status_empty_query_string = Leere Abfrage + +editors_sql_status_not_connected_to_database = keine Datenbankverbindung + +editors_sql_status_rows_updated = \ Zeile(n) ge\u00E4ndert + +editors_sql_status_statement_executed = Statement ausgef\u00FChrt + +editors_sql_status_statement_executed_no_rows_updated = Statement ausgef\u00FChrt - keine Zeilen ge\u00E4ndert + +editors_sql_staus_connected_to = Verbunden mit '' + +model_connection_events_event_after_connect = Nach Verbindungsaufbau + +model_connection_events_event_after_disconnect = Nach Trennung der Verbindung + +model_connection_events_event_before_connect = Vor Verbindungsaufbau + +model_connection_events_event_before_disconnect = Vor Trennung der Verbindung + +model_html_read_database_meta_data = Datenbank Metadaten lesen + +model_jdbc_None = None + +model_jdbc_Procedure = Prozedur + +model_jdbc_Schema = Schema + +model_jdbc_Serializable = Serialisierbar + +model_jdbc__rows_fetched = \ Zeilen gelesen + +model_jdbc_array_result_set = Array result set + +model_jdbc_bad_content_value_ = Fehlerhafter Inhalt: + +model_jdbc_cant_create_null_cursor = Null Cursor kann nicht angelegt werden + +model_jdbc_column_size = Spaltengr\u00F6\u00DFe + +model_jdbc_content_length = Inhaltl\u00E4nge + +model_jdbc_content_type = Inhaltstyp + +model_jdbc_could_not_load_content = Inhalt konnte nicht geladen werden + +model_jdbc_could_not_load_content_from_file = Inhalt kann nicht aus Datei gelesen werden " + +model_jdbc_could_not_save_content = Inhalt kann nicht gespeichert werden + +model_jdbc_could_not_save_content_to_file_ = Inhalt kann nicht in Datei gespeichert werden " + +model_jdbc_create_new_constraint = Neues Constraint anlegen + +model_jdbc_create_new_foreign_key = Neuen Fremdschl\u00FCssel anlegen + +model_jdbc_create_new_index = Neuen Index anlegen + +model_jdbc_create_new_object = Neues Objekt anlegen + +model_jdbc_create_new_table = Neue Tabelle anlegen + +model_jdbc_create_new_table_column = Neue Tabellenspalte anlegen + +model_jdbc_delete_object = Objekt l\u00F6schen + +model_jdbc_drop_constraint = Constraint l\u00F6schen + +model_jdbc_drop_foreign_key = Fremdschl\u00FCssel l\u00F6schen + +model_jdbc_drop_index = Index l\u00F6schen + +model_jdbc_drop_table = Tabelle l\u00F6schen + +model_jdbc_drop_table_column = Tabellenspalte l\u00F6schen + +model_jdbc_exception_bad_savepoint_object = Verhalfters Savepoint Objekt + +model_jdbc_exception_could_not_bind_statement_parameter = Can not bind statement parameter + +model_jdbc_exception_could_not_close_connection = Verbindung konnte nicht geschlossen werden. + +model_jdbc_exception_could_not_get_result_set_value = Resultset Wert konnte nicht bestimmt werden + +model_jdbc_exception_internal_jdbc_driver_error = Interner JDBC-Treiber Fehler + +model_jdbc_exception_invalid_transaction_isolation_parameter = Ung\u00FCltiger Transaktionsisolationslevelparameter + +model_jdbc_exception_unsupported_array_type_ = Nicht unterst\u00FCtzer Array-Typ: + +model_jdbc_exception_unsupported_value_type_ = Nicht unterst\u00FCtzer Wert-Typ + +model_jdbc_fetch_table_data = Tabellendaten lesen + +model_jdbc_fetch_table_row_count = Zeilenanzahl bestimmen + +model_jdbc_find_best_row_identifier = Find best row identifier + +model_jdbc_find_objects_by_name = Objekt aufgrund des Namens finden + +model_jdbc_find_version_columns = Suche Versionsspalten + +model_jdbc_jdbc_error = JDBC-Fehler + +model_jdbc_load_catalogs = Kataloge laden + +model_jdbc_load_client_info = Client-Info laden + +model_jdbc_load_column_privileges = Spaltenrechte Laden + +model_jdbc_load_columns = Spalten Laden + +model_jdbc_load_cross_reference = Cross-References laden + +model_jdbc_load_exported_keys = Loade exportierte Schl\u00FCssel + +model_jdbc_load_from_file_ = Aus Datei laden ... + +model_jdbc_load_function_columns = Funktionsspalten Laden + +model_jdbc_load_functions = Funktionen laden + +model_jdbc_load_imported_keys = Loade importierte Schl\u00FCssel + +model_jdbc_load_indexes = Indizes laden + +model_jdbc_load_primary_keys = Prim\u00E4rschl\u00FCssel laden + +model_jdbc_load_procedure_columns = Prozedurespalten Laden + +model_jdbc_load_procedures = Prozeduren Laden + +model_jdbc_load_schemas = Schemata Laden + +model_jdbc_load_super_tables = Super-Tabellen laden + +model_jdbc_load_super_types = Super-Typen Laden + +model_jdbc_load_table_privileges = Tabellenrechte Laden + +model_jdbc_load_table_types = Tabellentypen Laden + +model_jdbc_load_tables = Tabellen Laden + +model_jdbc_load_type_info = Typ-Info Laden + +model_jdbc_load_udt_attributes = UDT-Attribute Laden + +model_jdbc_load_udts = UDT Laden + +model_jdbc_lob_and_binary_data_cant_be_edited_inline = LOB- und Bin\u00E4redaten k\u00F6nnen nicht Inline bearbeitet werden + +model_jdbc_max_length = Maximale L\u00E4nge + +model_jdbc_precision = Genauigkeit + +model_jdbc_read_committed = Read committed + +model_jdbc_read_uncommitted = Read uncommitted + +model_jdbc_rename_object = Objekt umbenennen + +model_jdbc_repeatable_read = Repeatable read + +model_jdbc_save_to_file_ = In Datei Speichern ... + +model_jdbc_scale = Nachkommastellen + +model_jdbc_set_to_current_time = Aktuelle Zeit setzen + +model_jdbc_type_name = Typname + +model_jdbc_unknown = Unbekannt + +model_jdbc_unsupported_column_type_ = Nicht unterst\u00FCtzter Spaltentyp + +model_jdbc_unsupported_content_value_type_ = Nicht unterst\u00FCtzter Inhaltstyp + +model_jdbc_unsupported_value_type_ = Nicht unterst\u00FCtzter Wertetyp + +model_navigator_Connection = Verbindung + +model_navigator_Connections = Verbindungen + +model_navigator_Description = Beschreibung + +model_navigator_Model_root = Model root + +model_navigator_Name = Name + +model_navigator_Project = Projekt + +model_navigator_Root = Root + +model_navigator__connections = \ Verbindungen + +model_navigator_load_ = Laden + +model_navigator_load_items_ = Load items ... + +model_navigator_resource_exception_already_exists = Verzeichnis "{0}" existiert bereits in "{1}" + +model_project_Script = Skript + +model_project_Scripts = Skripte + +model_project_bookmarks_folder = Lesezeichen + +model_project_cant_open_bookmark = Lesezeichen konnten nicht ge\u00F6ffnet werden + +model_project_open_bookmark = Lesezeichen \u00F6ffnen + +model_ssh_configurator_checkbox_save_pass = Passwort speichern + +model_ssh_configurator_combo_auth_method = Authentifizierungsmethode + +model_ssh_configurator_combo_password = Passwort + +model_ssh_configurator_combo_pub_key = Public Key + +model_ssh_configurator_dialog_choose_private_key = Private-Key-Datei ausw\u00E4hlen + +model_ssh_configurator_label_host_ip = Host/IP + +model_ssh_configurator_label_keep_alive = Keep-Alive interval (ms) + +model_ssh_configurator_label_passphrase = Passphrase + +model_ssh_configurator_label_password = Passwort + +model_ssh_configurator_label_port = Port + +model_ssh_configurator_label_private_key = Private Key + +model_ssh_configurator_label_tunnel_timeout = Tunnel connect timeout (ms) + +model_ssh_configurator_label_user_name = Benutzer + +pref_page_confirmations_combo_always = Immer + +pref_page_confirmations_combo_never = Niemals + +pref_page_confirmations_combo_prompt = Eingabeaufforderung + +pref_page_confirmations_group_general_actions = Allgemeine Aktionen + +pref_page_confirmations_group_object_editor = Objekteditor + +pref_page_content_cache_blob = BLOB-Werte cachen + +pref_page_content_cache_clob = CLOB-Werte cachen + +pref_page_content_editor_checkbox_commit_on_content_apply = Session bei Content-Edit-Apply commitieren + +pref_page_content_editor_checkbox_commit_on_value_apply = Session bei Value-Edit-Apply commitieren + +pref_page_content_editor_checkbox_edit_long_as_lobs = LONG-Spalten als LOBs editieren + +pref_page_content_editor_checkbox_keys_always_use_all_columns = Immer alle Spalten als Key verwenden + +pref_page_content_editor_group_content = LOB + +pref_page_content_editor_group_hex = Bin\u00E4reditor + +pref_page_content_editor_group_keys = Unique-Keys + +pref_page_content_editor_hex_encoding = Zeichenkodierung + +pref_page_content_editor_label_max_text_length = Maximale Inhaltsl\u00E4nge f\u00FCr Inhaltseditor + +pref_page_data_format_button_manage_profiles = Profile verwalten + +pref_page_data_format_group_format = Format + +pref_page_data_format_label_profile = Profile + +pref_page_data_format_label_sample = Beispiel + +pref_page_data_format_label_settingt = Einstellungen + +pref_page_data_format_label_type = Typ + +pref_page_database_general_checkbox_case_sensitive_names = Gro\u00DF-/Kleinschreibung bei Namen in DDL-Anweisungen beachten + +pref_page_database_general_checkbox_keep_cursor = Cursor im SQL-Editor offen halten + +pref_page_database_general_checkbox_rollback_on_error = Rollback bei Fehler + +pref_page_database_general_checkbox_show_row_count = Zeilenzahl bei Tabellen anzeigen + +pref_page_database_general_group_metadata = Metadaten + +pref_page_database_general_group_navigator = Navigator + +pref_page_database_general_group_ordering = Orderings + +pref_page_database_general_group_queries = Abfragen + +pref_page_database_general_group_transactions = Transaktionen + +pref_page_database_general_label_cache_max_size = Maximale Gr\u00F6\u00DFe des LOB-Caches + +pref_page_database_general_label_max_lob_length = Maximale Lob-L\u00E4nge im Speicher + +pref_page_database_general_label_result_set_cancel_timeout = Abfragetimeout + +pref_page_database_general_label_result_set_cancel_timeout_tip = Abfragetimeout in ms, nach dem DBeaver die Abfrage abbricht + +pref_page_database_general_label_result_set_max_size = ResultSet fetch size + +pref_page_database_general_separate_meta_connection = Eigene Verbindung f\u00FCr Metadatenabfragen \u00F6ffnen + +pref_page_database_resultsets_group_binary = Bin\u00E4rdaten + +pref_page_database_resultsets_label_auto_fetch_segment = automatisch n\u00E4chstes Segment lesen + +pref_page_database_resultsets_label_binary_editor_type = Bin\u00E4reditor + +pref_page_database_resultsets_label_binary_presentation = Bin\u00E4rdatenformatierer + +pref_page_database_resultsets_label_binary_strings_max_length = Maximale L\u00E4nge f\u00FCr Bin\u00E4rstrings + +pref_page_database_resultsets_label_binary_use_strings = Bin\u00E4rdaten als Zeichenkette anzeigen + +pref_page_database_resultsets_label_fetch_size = Use fetch-size + +pref_page_database_resultsets_label_read_metadata = Tabellenmetadaten lesen (Unique-Keys) + +pref_page_database_resultsets_label_read_references = Tabellen-Referenzen lesen (Fremdschl\u00FCssel) + +pref_page_database_resultsets_label_server_side_order = DB-Server basierte Sortierung + +pref_page_database_resultsets_label_use_sql = Use SQL to limit fetch size + +pref_page_drivers_group_location = Treiberstandort + +pref_page_query_manager_checkbox_ddl_executions = DDL ausf\u00FChrung + +pref_page_query_manager_checkbox_metadata_read = Metadaten lesen + +pref_page_query_manager_checkbox_metadata_write = Metadaten schreiben (DDL) + +pref_page_query_manager_checkbox_other = Other + +pref_page_query_manager_checkbox_queries = Abfragen + +pref_page_query_manager_checkbox_scripts = Scripts + +pref_page_query_manager_checkbox_sessions = Sessions + +pref_page_query_manager_checkbox_store_log_file = Save log to file(s) + +pref_page_query_manager_checkbox_transactions = Transactions + +pref_page_query_manager_checkbox_user_filtered = Filtered user queries + +pref_page_query_manager_checkbox_user_queries = User queries + +pref_page_query_manager_checkbox_user_scripts = User scripts + +pref_page_query_manager_checkbox_utility_functions = Utility functions + +pref_page_query_manager_group_object_types = Object Types + +pref_page_query_manager_group_query_types = Query Types + +pref_page_query_manager_group_settings = Settings + +pref_page_query_manager_group_storage = Storage + +pref_page_query_manager_label_days_to_store_log = Days to store log + +pref_page_query_manager_label_entries_per_page = Entries per page + +pref_page_query_manager_logs_folder = Log files folder + +pref_page_sql_editor_checkbox_blank_line_delimiter = Blank line is statement delimiter + +pref_page_sql_editor_checkbox_delete_empty_scripts = Delete empty scripts on close + +pref_page_sql_editor_checkbox_enable_sql_anonymous_parameters = Anonymous SQL parameters + +pref_page_sql_editor_checkbox_enable_sql_parameters = Enable SQL parameters + +pref_page_sql_editor_checkbox_fetch_resultsets = Fetch resultsets + +pref_page_sql_editor_checkbox_ignore_native_delimiter = Ignore native delimiter + +pref_page_sql_editor_checkbox_put_new_scripts = Put new scripts in folders + +pref_page_sql_editor_checkbox_reset_cursor = Reset cursor after execute + +pref_page_sql_editor_combo_item_each_line_autocommit = After each line (autocommit) + +pref_page_sql_editor_combo_item_each_spec_line = After each specified line + +pref_page_sql_editor_combo_item_ignore = Ignore + +pref_page_sql_editor_combo_item_no_commit = No commit + +pref_page_sql_editor_combo_item_script_end = At script end + +pref_page_sql_editor_combo_item_stop_commit = Stop + commit + +pref_page_sql_editor_combo_item_stop_rollback = Stop + rollback + +pref_page_sql_editor_group_common = Common + +pref_page_sql_editor_group_delimiters = Delimiters + +pref_page_sql_editor_group_misc = Miscellaneous + +pref_page_sql_editor_group_parameters = Parameters + +pref_page_sql_editor_group_resources = Resources + +pref_page_sql_editor_group_scripts = Scripts + +pref_page_sql_editor_label_commit_after_line = Commit after line + +pref_page_sql_editor_label_commit_type = Commit type + +pref_page_sql_editor_label_error_handling = Error handling + +pref_page_sql_editor_label_invalidate_before_execute = Invalidate connection before execute + +pref_page_sql_editor_label_refresh_defaults_after_execute = Refresh active schema after SQL execution + +pref_page_sql_editor_label_sound_on_query_end = Beep after query finish + +pref_page_sql_editor_label_sql_timeout = SQL statement timeout + +pref_page_sql_editor_text_anonymous_parameter_mark = Anonymous parameter mark + +pref_page_sql_editor_text_named_parameter_prefix = Named parameter prefix + +pref_page_sql_editor_text_statement_delimiter = Statements delimiter + +pref_page_sql_editor_title_pattern = Script title pattern + +pref_page_target_button_use_datasource_settings = Datasource "{0}" settings + +pref_page_target_link_show_datasource_settings = Datasource settings + +pref_page_target_link_show_global_settings = Global settings + +pref_page_ui_general_checkbox_automatic_updates = Automatic updates check + +pref_page_ui_general_group_editors = Editors + +pref_page_ui_general_group_general = General + +pref_page_ui_general_group_http_proxy = HTTP Proxy (for downloads) + +pref_page_ui_general_keep_database_editors = Reopen database editors after restart + +pref_page_ui_general_label_proxy_host = Proxy Host + +pref_page_ui_general_label_proxy_password = Password + +pref_page_ui_general_label_proxy_user = User + +pref_page_ui_general_refresh_editor_on_open = Force object refresh on editor open + +pref_page_ui_general_spinner_proxy_port = Proxy Port + +registry_entity_editor_descriptor_description = Object properties + +registry_entity_editor_descriptor_name = Properties + +runtime_jobs_connect_name = Connect to "{0}" + +runtime_jobs_connect_status_connected = Connected + +runtime_jobs_connect_status_error = Error connecting to datasource "{0}" + +runtime_jobs_connect_thread_name = Connect to datasource "{0}" + +runtime_jobs_disconnect_error = Error disconnecting from datasource "{0}" + +runtime_jobs_disconnect_name = Disconnect from {0} + +toolbar_datasource_selector_action_read_databases = Read database list + +toolbar_datasource_selector_combo_database_tooltip = Active catalog/schema + +toolbar_datasource_selector_combo_datasource_tooltip = Active datasource + +toolbar_datasource_selector_empty = + +toolbar_datasource_selector_error_change_database_message = Can''t change active database + +toolbar_datasource_selector_error_change_database_title = Change active database + +toolbar_datasource_selector_error_database_change_not_supported = Active database change is not supported + +toolbar_datasource_selector_error_database_not_found = Can not find database "{0}" + +toolbar_datasource_selector_resultset_segment_size = Maximum result-set size + +tools_script_execute_wizard_task_completed = {0} ({1}) completed + +tools_wizard_dialog_button_start = Start + +tools_wizard_error_task_canceled = {0} "{1}" canceled + +tools_wizard_error_task_error_message = Cannot perform + +tools_wizard_error_task_error_title = {0} error + +tools_wizard_log_io_error = IO Error: {0} + +tools_wizard_log_process_exit_code = Process exit code: {0} + +tools_wizard_message_client_home_not_found = Client home "{0}" not found + +tools_wizard_message_no_client_home = Client home is not specified for connection + +tools_wizard_page_log_task_finished = {0} finished at {1} + +tools_wizard_page_log_task_log_reader = {0} log reader + +tools_wizard_page_log_task_progress = {0} progress + +tools_wizard_page_log_task_progress_log = {0} progress log + +tools_wizard_page_log_task_started_at = {0} started at {1} + +ui_actions_context_search_name = Context search + +ui_actions_exit_emergency_question = Are you sure you want to perform emergency exit? Some unsaved data can be lost or corrupted. + +ui_common_button_help = Help + +ui_properties_category_information = Information + +ui_properties_category_structure = Structure + +ui_properties_name = Name + +ui_properties_task_add_folder = Add folder " + +ui_properties_task_add_node = Add node " + +ui_properties_tree_viewer__to_default = \ to default + +ui_properties_tree_viewer_action_copy_value = Copy value + +ui_properties_tree_viewer_action_reset_value = Reset value + +ui_properties_tree_viewer_category_general = General + +ui_properties_value = Value diff --git a/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_it.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_it.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_it.properties diff --git a/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ko.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ko.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ko.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ko.properties index 86653dbe81..3a1cd0edf3 100644 --- a/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ko.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ko.properties @@ -1,250 +1,250 @@ - -DBeaverCore_error_can_create_temp_dir = \uC784\uC2DC \uD3F4\uB354 \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. "{0}" - -DBeaverCore_error_can_create_temp_file = "{0}" \uD3F4\uB354\uC5D0 \uC784\uC2DC \uD30C\uC77C \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. "{1}" - -actions_ContentAssistTip_description = SQL \uC5F0\uC0B0\uC790 \uD301 - -actions_menu_about = \uC815\uBCF4 - -actions_menu_check_update = \uC5C5\uB370\uC774\uD2B8 \uD655\uC778 - -actions_menu_database = \uB370\uC774\uD130\uBCA0\uC774\uC2A4(&D) - -actions_menu_edit = \uD3B8\uC9D1(&E) - -actions_menu_edit_ContentFormat = \uD3EC\uB9F7 - -actions_menu_exit_emergency = \uC989\uC2DC \uC885\uB8CC - -actions_menu_file = \uD30C\uC77C(&F) - -actions_menu_help = \uB3C4\uC6C0\uB9D0(&H) - -actions_menu_navigate = \uD0D0\uC0C9(&N) - -actions_menu_window = \uC708\uB3C4\uC6B0(&W) - -actions_navigator__objects = \uC624\uBE0C\uC81D\uD2B8 - -actions_navigator_bookmark_error_message = \uBD81\uB9C8\uD06C \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4 - -actions_navigator_bookmark_error_title = \uC0C8 \uBD81\uB9C8\uD06C - -actions_navigator_bookmark_title = \uBD81\uB9C8\uD06C \uC774\uB984 - -actions_navigator_copy_object_copy_node = {0} \uBCF5\uC0AC - -actions_navigator_copy_object_copy_objects = \uC624\uBE0C\uC81D\uD2B8 \uBCF5\uC0AC - -actions_navigator_create_folder_error_message = \uC0C8 \uD3F4\uB354 \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. "{0}" - -actions_navigator_create_folder_error_title = \uC0C8 \uD3F4\uB354 - -actions_navigator_create_folder_folder_name = \uD3F4\uB354 \uC774\uB984 - -actions_navigator_delete_objects = \uC624\uBE0C\uC81D\uD2B8 \uC0AD\uC81C - -actions_navigator_delete_script = \uC2A4\uD06C\uB9BD\uD2B8 \uC0AD\uC81C - -actions_navigator_error_dialog_delete_object_title = \uC624\uBE0C\uC81D\uD2B8 \uC0AD\uC81C - -actions_navigator_error_dialog_open_entity_title = \uC5D4\uD2F0\uD2F0 \uC5F4\uAE30 - -actions_navigator_error_dialog_open_resource_title = \uB9AC\uC18C\uC2A4 \uC5F4\uAE30 - -actions_navigator_view_script_button = \uC2A4\uD06C\uB9BD\uD2B8 \uBCF4\uAE30 - -common_error_sql = SQL \uC5D0\uB7EC - -confirm_close_editor_edit_message = "{0}"\uC758 \uBCC0\uACBD\uC0AC\uD56D\uC744 \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -confirm_close_editor_edit_title = \uBCC0\uACBD\uC0AC\uD56D \uC800\uC7A5 - -confirm_close_editor_edit_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 - -confirm_close_entity_edit_message = \uC624\uBE0C\uC81D\uD2B8 "{0}"\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -confirm_close_entity_edit_title = \uC624\uBE0C\uC81D\uD2B8 \uBCC0\uACBD \uC800\uC7A5 - -confirm_close_entity_edit_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 - -confirm_close_resultset_edit_message = \uBCC0\uACBD\uC0AC\uD56D\uC744 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -confirm_close_resultset_edit_title = \uBCC0\uACBD\uC0AC\uD56D \uC800\uC7A5 - -confirm_close_resultset_edit_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 - -confirm_disconnect_txn_message = "{0}" \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0\uC744 \uC885\uB8CC\uD569\uB2C8\uB2E4. \uD604\uC7AC \uD2B8\uB79C\uC7AD\uC158\uC744 \uCEE4\uBC0B\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -confirm_disconnect_txn_title = \uBCC0\uACBD\uC0AC\uD56D \uCEE4\uBC0B - -confirm_disconnect_txn_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 - -confirm_driver_download_manual_message = JDBC \uB4DC\uB77C\uC774\uBC84 "{0}" \uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \uAC1C\uBC1C\uC0AC \uC815\uCC45\uC5D0 \uB530\uB77C \uAC1C\uBC1C\uC0AC \uC6F9\uC0AC\uC774\uD2B8\uC5D0\uC11C \uB4DC\uB77C\uC774\uBC84 \uD30C\uC77C\uC744 \uC9C1\uC811 \uB2E4\uC6B4\uB85C\uB4DC \uBC1B\uC544\uC57C \uD569\uB2C8\uB2E4. \n\n\uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC \uD6C4 DBeaver \uB77C\uC774\uBE0C\uB7EC\uB9AC \uBAA9\uB85D\uC5D0 JAR \uD30C\uC77C\uC744 \uC9C1\uC811 \uCD94\uAC00\uD574\uC57C \uD569\uB2C8\uB2E4. \n\uB4DC\uB77C\uC774\uBC84 \uD30C\uC77C: {1}\n\n\uAC1C\uBC1C\uC0AC \uC6F9\uC0AC\uC774\uD2B8\uB85C \uC811\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \n - -confirm_driver_download_manual_title = \uB4DC\uB77C\uC774\uBC84 \uB9E4\uB274\uC5BC \uB2E4\uC6B4\uB85C\uB4DC - -confirm_driver_download_manual_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 - -confirm_driver_download_message = {0} \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC758 \uB4DC\uB77C\uC774\uBC84 \uD30C\uC77C({1})\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \n\uC774 \uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC \uBC1B\uC73C\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \n - -confirm_driver_download_title = \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uB4DC\uB77C\uC774\uBC84 \uB2E4\uC6B4\uB85C\uB4DC - -confirm_driver_download_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 - -confirm_entity_delete_message = \uC815\uB9D0 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? {0} "{1}"? - -confirm_entity_delete_title = \uC624\uBE0C\uC81D\uD2B8 \uC0AD\uC81C - -confirm_entity_reject_message = {0}\uC758 \uBAA8\uB4E0 \uBCC0\uACBD\uC0AC\uD56D\uC744 \uCDE8\uC18C\uD558\uACE0 \uC5D0\uB514\uD130\uB97C \uC885\uB8CC\uD569\uB2C8\uB2E4. \n\uBCC0\uACBD\uC0AC\uD56D\uC744 \uCDE8\uC18C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \n - -confirm_entity_reject_title = \uC624\uBE0C\uC81D\uD2B8 \uCDE8\uC18C - -confirm_entity_reject_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 - -confirm_entity_revert_message = {0}\uC758 \uBAA8\uB4E0 \uBCC0\uACBD\uC0AC\uD56D\uC744 \uCDE8\uC18C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -confirm_entity_revert_title = \uBCC0\uACBD\uC0AC\uD56D \uCDE8\uC18C - -confirm_entity_revert_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 - -confirm_exit_message = \uC885\uB8CC\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -confirm_exit_title = DBeaver \uC885\uB8CC - -confirm_exit_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 - -confirm_fetch_all_rows_message = \uBAA8\uB4E0 \uB370\uC774\uD130\uB97C \uBD88\uB7EC\uC62C \uACBD\uC6B0 \uBA54\uBAA8\uB9AC \uC0AC\uC6A9\uB7C9\uC774 \uC99D\uAC00\uD558\uACE0 \uC2DC\uAC04\uC774 \uC624\uB798 \uAC78\uB9B4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \n\n\uBAA8\uB4E0 \uB370\uC774\uD130\uB97C \uAC00\uC838\uC624\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -confirm_fetch_all_rows_title = \uBAA8\uB4E0 \uB370\uC774\uD130 \uC77D\uAE30 - -confirm_fetch_all_rows_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 - -confirm_keep_statement_open_message = DBeaver\uB294 select \uD6C4 resultset \uC744 \uB2EB\uB294\uAC8C \uAE30\uBCF8\uAC12\uC785\uB2C8\uB2E4. cursor \uB97C \uC720\uC9C0\uD558\uAE30 \uC704\uD574\uC120 \uC124\uC815\uC5D0\uC11C "Keep open cursors in SQL editor" \uC635\uC158\uC744 \uD65C\uC131\uD654\uC2DC\uCF1C\uC57C \uD569\uB2C8\uB2E4. cursor \uC720\uC9C0\uB294 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uB9AC\uC18C\uC2A4\uC5D0 Lock \uC744 \uBC1C\uC0DD\uC2DC\uD0AC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC774 \uAE30\uB2A5\uC744 \uD65C\uC131\uD654\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? (ResultSet\uC744 \uC0C8\uB85C \uC77D\uC2B5\uB2C8\uB2E4) \n - -confirm_keep_statement_open_title = Cursor \uC720\uC9C0 - -confirm_keep_statement_open_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 - -confirm_local_folder_delete_message = \uC815\uB9D0 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? {0} "{1}"\n\n\uC774 \uD3F4\uB354\uC758 Connection \uC740 \uC0AD\uC81C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. - -confirm_local_folder_delete_title = \uD3F4\uB354 \uC0AD\uC81C - -confirm_order_resultset_message = \uC774 \uCEEC\uB7FC\uC5D0 \uC801\uC808\uD55C \uC778\uB371\uC2A4\uAC00 \uC5C6\uB2E4\uBA74 \uD070 \uD14C\uC774\uBE14\uC758 \uACBD\uC6B0 \uC815\uB82C \uBCC0\uACBD\uC5D0 \uC2DC\uAC04\uC774 \uC624\uB798 \uAC78\uB9B4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \n\n\uCEEC\uB7FC {0} \uAE30\uC900\uC73C\uB85C \uC815\uB82C\uC744 \uBCC0\uACBD\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \n - -confirm_order_resultset_title = \uC815\uB82C \uBCC0\uACBD - -confirm_order_resultset_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 - -confirm_version_check_message = \uC0C8\uB85C\uC6B4 {0} \uBC84\uC804 {1} \uC774 {2}\uC5D0 \uCD9C\uC2DC\uD558\uC600\uC2B5\uB2C8\uB2E4. \n\uD604\uC7AC \uBC84\uC804\uC744 \uC5C5\uB370\uC774\uD2B8 \uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -confirm_version_check_title = \uC0C8\uB85C\uC6B4 \uBC84\uC804 \uB2E4\uC6B4\uB85C\uB4DC - -confirm_version_check_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 - -controls_client_home_selector_browse = \uC5F4\uAE30 ... - -controls_client_homes_panel_button_add_home = \uD648 \uCD94\uAC00 - -controls_client_homes_panel_button_remove_home = \uD648 \uC0AD\uC81C - -controls_client_homes_panel_confirm_remove_home_text = \uD074\uB77C\uC774\uC5B8\uD2B8 \uD648 "{0}"\uC744 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -controls_client_homes_panel_confirm_remove_home_title = \uD074\uB77C\uC774\uC5B8\uD2B8 \uD648 \uC0AD\uC81C - -controls_client_homes_panel_dialog_title = \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD074\uB77C\uC774\uC5B8\uD2B8 \uD648 - -controls_client_homes_panel_group_information = \uC815\uBCF4 - -controls_client_homes_panel_label_name = \uC774\uB984 - -controls_client_homes_panel_label_path = \uACBD\uB85C - -controls_client_homes_panel_label_product_name = \uC81C\uD488\uBA85 - -controls_client_homes_panel_label_product_version = \uC81C\uD488 \uBC84\uC804 - -controls_querylog_action_clear_log = \uB85C\uADF8 \uBE44\uC6B0\uAE30 - -controls_querylog_action_copy = \uBCF5\uC0AC - -controls_querylog_action_copy_all_fields = \uBAA8\uB4E0 \uD544\uB4DC \uBCF5\uC0AC - -controls_querylog_action_select_all = \uC804\uCCB4 \uC120\uD0DD - -controls_querylog_column_duration_name = \uC18C\uC694 \uC2DC\uAC04 - -controls_querylog_column_duration_tooltip = \uC18C\uC694 \uC2DC\uAC04 - -controls_querylog_column_result_name = \uACB0\uACFC - -controls_querylog_column_result_tooltip = \uC2E4\uD589 \uACB0\uACFC - -controls_querylog_column_text_name = \uD14D\uC2A4\uD2B8 - -controls_querylog_column_text_tooltip = SQL \uAD6C\uBB38 \uD14D\uC2A4\uD2B8/\uC124\uBA85 - -controls_querylog_column_time_name = \uC2DC\uAC04 - -controls_querylog_column_time_tooltip = \uAD6C\uBB38 \uC2E4\uD589 \uC2DC\uAC04 - -controls_querylog_column_type_name = \uBD84\uB958 - -controls_querylog_column_type_tooltip = \uC774\uBCA4\uD2B8 \uBD84\uB958 - -controls_querylog_format_minutes = {0} \uBD84 {1} \uCD08 - -controls_resultset_viewer_action_order_filter = \uC815\uB82C/\uD544\uD130 - -controls_resultset_viewer_action_refresh = \uC0C8\uB85C \uACE0\uCE68 - -controls_resultset_viewer_action_reset_value = \uBCC0\uACBD\uC0AC\uD56D \uCDE8\uC18C - -controls_resultset_viewer_status_no_data = \uB370\uC774\uD130 \uC5C6\uC74C - -dialog_about_label_version = \uBC84\uC804 - -dialog_about_title = \uC815\uBCF4 - -dialog_driver_manager_label_unavailable = - \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C - -dialog_driver_manager_label_user_defined = - \uC0AC\uC6A9\uC790 \uC815\uC758 - -dialog_driver_manager_message_cant_delete_text = \uB4DC\uB77C\uC774\uBC84 "{0}"\uC744 \uC0AD\uC81C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E4\uC74C \uB370\uC774\uD130\uC18C\uC2A4\uC5D0\uC11C \uC0AC\uC6A9 \uC911\uC785\uB2C8\uB2E4. - -dialog_driver_manager_message_cant_delete_title = \uB4DC\uB77C\uC774\uBC84 \uC0AD\uC81C \uC2E4\uD328 - -dialog_driver_manager_message_delete_driver_text = \uB4DC\uB77C\uC774\uBC84\uB97C \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? - -dialog_driver_manager_message_delete_driver_title = \uB4DC\uB77C\uC774\uBC84 \uC0AD\uC81C - -dialog_driver_manager_title = \uB4DC\uB77C\uC774\uBC84 \uAD00\uB9AC\uC790 - -dialog_new_connection_wizard_start_description = \uC0C8\uB85C\uC6B4 Connection\uC744 \uB9CC\uB4ED\uB2C8\uB2E4. \uC544\uB798 \uBAA9\uB85D\uC5D0 \uD574\uB2F9\uD558\uB294 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uAC00 \uC5C6\uB2E4\uBA74 \uB4DC\uB77C\uC774\uBC84 \uB9E4\uB2C8\uC800\uB97C \uD1B5\uD574 \uC0C8\uB85C\uC6B4 \uB4DC\uB77C\uC774\uBC84\uB97C \uB4F1\uB85D\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. - -dialog_version_update_available_new_version = DBeaver \uC758 \uC0C8 \uBC84\uC804\uC774 \uB098\uC654\uC2B5\uB2C8\uB2E4. - -dialog_version_update_button_more_info = \uC790\uC138\uD788 \uBCF4\uAE30 ... - -dialog_version_update_current_version = \uD604\uC7AC \uBC84\uC804 - -dialog_version_update_new_version = \uC0C8 \uBC84\uC804 - -dialog_version_update_no_new_version = \uC5C5\uB370\uC774\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. - -dialog_version_update_press_more_info_ = "\uC790\uC138\uD788 \uBCF4\uAE30"\uB97C \uB20C\uB7EC DBeaver\uB97C \uB2E4\uC6B4\uB85C\uB4DC \uBC1B\uC744 \uC218 \uC788\uB294 \uC6F9 \uD398\uC774\uC9C0\uB97C \uC5FD\uB2C8\uB2E4. - -dialog_version_update_title = \uC5C5\uB370\uC774\uD2B8 - -pref_page_confirmations_combo_always = \uD56D\uC0C1 \uD655\uC778 - -pref_page_confirmations_combo_never = \uD655\uC778\uD558\uC9C0 \uC54A\uC74C - -pref_page_confirmations_combo_prompt = \uD655\uC778 - -pref_page_confirmations_group_general_actions = \uC77C\uBC18 \uC791\uC5C5 - -pref_page_confirmations_group_object_editor = \uC624\uBE0C\uC81D\uD2B8 \uD3B8\uC9D1\uAE30 - -ui_actions_exit_emergency_question = \uC800\uC7A5\uD558\uC9C0 \uC54A\uC740 \uB370\uC774\uD130\uB294 \uC190\uC2E4\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC989\uC2DC \uC885\uB8CC \uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +DBeaverCore_error_can_create_temp_dir = \uC784\uC2DC \uD3F4\uB354 \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. "{0}" + +DBeaverCore_error_can_create_temp_file = "{0}" \uD3F4\uB354\uC5D0 \uC784\uC2DC \uD30C\uC77C \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. "{1}" + +actions_ContentAssistTip_description = SQL \uC5F0\uC0B0\uC790 \uD301 + +actions_menu_about = \uC815\uBCF4 + +actions_menu_check_update = \uC5C5\uB370\uC774\uD2B8 \uD655\uC778 + +actions_menu_database = \uB370\uC774\uD130\uBCA0\uC774\uC2A4(&D) + +actions_menu_edit = \uD3B8\uC9D1(&E) + +actions_menu_edit_ContentFormat = \uD3EC\uB9F7 + +actions_menu_exit_emergency = \uC989\uC2DC \uC885\uB8CC + +actions_menu_file = \uD30C\uC77C(&F) + +actions_menu_help = \uB3C4\uC6C0\uB9D0(&H) + +actions_menu_navigate = \uD0D0\uC0C9(&N) + +actions_menu_window = \uC708\uB3C4\uC6B0(&W) + +actions_navigator__objects = \uC624\uBE0C\uC81D\uD2B8 + +actions_navigator_bookmark_error_message = \uBD81\uB9C8\uD06C \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4 + +actions_navigator_bookmark_error_title = \uC0C8 \uBD81\uB9C8\uD06C + +actions_navigator_bookmark_title = \uBD81\uB9C8\uD06C \uC774\uB984 + +actions_navigator_copy_object_copy_node = {0} \uBCF5\uC0AC + +actions_navigator_copy_object_copy_objects = \uC624\uBE0C\uC81D\uD2B8 \uBCF5\uC0AC + +actions_navigator_create_folder_error_message = \uC0C8 \uD3F4\uB354 \uC0DD\uC131\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. "{0}" + +actions_navigator_create_folder_error_title = \uC0C8 \uD3F4\uB354 + +actions_navigator_create_folder_folder_name = \uD3F4\uB354 \uC774\uB984 + +actions_navigator_delete_objects = \uC624\uBE0C\uC81D\uD2B8 \uC0AD\uC81C + +actions_navigator_delete_script = \uC2A4\uD06C\uB9BD\uD2B8 \uC0AD\uC81C + +actions_navigator_error_dialog_delete_object_title = \uC624\uBE0C\uC81D\uD2B8 \uC0AD\uC81C + +actions_navigator_error_dialog_open_entity_title = \uC5D4\uD2F0\uD2F0 \uC5F4\uAE30 + +actions_navigator_error_dialog_open_resource_title = \uB9AC\uC18C\uC2A4 \uC5F4\uAE30 + +actions_navigator_view_script_button = \uC2A4\uD06C\uB9BD\uD2B8 \uBCF4\uAE30 + +common_error_sql = SQL \uC5D0\uB7EC + +confirm_close_editor_edit_message = "{0}"\uC758 \uBCC0\uACBD\uC0AC\uD56D\uC744 \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +confirm_close_editor_edit_title = \uBCC0\uACBD\uC0AC\uD56D \uC800\uC7A5 + +confirm_close_editor_edit_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 + +confirm_close_entity_edit_message = \uC624\uBE0C\uC81D\uD2B8 "{0}"\uC774 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +confirm_close_entity_edit_title = \uC624\uBE0C\uC81D\uD2B8 \uBCC0\uACBD \uC800\uC7A5 + +confirm_close_entity_edit_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 + +confirm_close_resultset_edit_message = \uBCC0\uACBD\uC0AC\uD56D\uC744 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0 \uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +confirm_close_resultset_edit_title = \uBCC0\uACBD\uC0AC\uD56D \uC800\uC7A5 + +confirm_close_resultset_edit_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 + +confirm_disconnect_txn_message = "{0}" \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uC5F0\uACB0\uC744 \uC885\uB8CC\uD569\uB2C8\uB2E4. \uD604\uC7AC \uD2B8\uB79C\uC7AD\uC158\uC744 \uCEE4\uBC0B\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +confirm_disconnect_txn_title = \uBCC0\uACBD\uC0AC\uD56D \uCEE4\uBC0B + +confirm_disconnect_txn_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 + +confirm_driver_download_manual_message = JDBC \uB4DC\uB77C\uC774\uBC84 "{0}" \uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \uAC1C\uBC1C\uC0AC \uC815\uCC45\uC5D0 \uB530\uB77C \uAC1C\uBC1C\uC0AC \uC6F9\uC0AC\uC774\uD2B8\uC5D0\uC11C \uB4DC\uB77C\uC774\uBC84 \uD30C\uC77C\uC744 \uC9C1\uC811 \uB2E4\uC6B4\uB85C\uB4DC \uBC1B\uC544\uC57C \uD569\uB2C8\uB2E4. \n\n\uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC \uD6C4 DBeaver \uB77C\uC774\uBE0C\uB7EC\uB9AC \uBAA9\uB85D\uC5D0 JAR \uD30C\uC77C\uC744 \uC9C1\uC811 \uCD94\uAC00\uD574\uC57C \uD569\uB2C8\uB2E4. \n\uB4DC\uB77C\uC774\uBC84 \uD30C\uC77C: {1}\n\n\uAC1C\uBC1C\uC0AC \uC6F9\uC0AC\uC774\uD2B8\uB85C \uC811\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \n + +confirm_driver_download_manual_title = \uB4DC\uB77C\uC774\uBC84 \uB9E4\uB274\uC5BC \uB2E4\uC6B4\uB85C\uB4DC + +confirm_driver_download_manual_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4 + +confirm_driver_download_message = {0} \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC758 \uB4DC\uB77C\uC774\uBC84 \uD30C\uC77C({1})\uC774 \uC5C6\uC2B5\uB2C8\uB2E4. \n\uC774 \uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC \uBC1B\uC73C\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \n + +confirm_driver_download_title = \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uB4DC\uB77C\uC774\uBC84 \uB2E4\uC6B4\uB85C\uB4DC + +confirm_driver_download_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 + +confirm_entity_delete_message = \uC815\uB9D0 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? {0} "{1}"? + +confirm_entity_delete_title = \uC624\uBE0C\uC81D\uD2B8 \uC0AD\uC81C + +confirm_entity_reject_message = {0}\uC758 \uBAA8\uB4E0 \uBCC0\uACBD\uC0AC\uD56D\uC744 \uCDE8\uC18C\uD558\uACE0 \uC5D0\uB514\uD130\uB97C \uC885\uB8CC\uD569\uB2C8\uB2E4. \n\uBCC0\uACBD\uC0AC\uD56D\uC744 \uCDE8\uC18C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \n + +confirm_entity_reject_title = \uC624\uBE0C\uC81D\uD2B8 \uCDE8\uC18C + +confirm_entity_reject_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 + +confirm_entity_revert_message = {0}\uC758 \uBAA8\uB4E0 \uBCC0\uACBD\uC0AC\uD56D\uC744 \uCDE8\uC18C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +confirm_entity_revert_title = \uBCC0\uACBD\uC0AC\uD56D \uCDE8\uC18C + +confirm_entity_revert_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 + +confirm_exit_message = \uC885\uB8CC\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +confirm_exit_title = DBeaver \uC885\uB8CC + +confirm_exit_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 + +confirm_fetch_all_rows_message = \uBAA8\uB4E0 \uB370\uC774\uD130\uB97C \uBD88\uB7EC\uC62C \uACBD\uC6B0 \uBA54\uBAA8\uB9AC \uC0AC\uC6A9\uB7C9\uC774 \uC99D\uAC00\uD558\uACE0 \uC2DC\uAC04\uC774 \uC624\uB798 \uAC78\uB9B4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \n\n\uBAA8\uB4E0 \uB370\uC774\uD130\uB97C \uAC00\uC838\uC624\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +confirm_fetch_all_rows_title = \uBAA8\uB4E0 \uB370\uC774\uD130 \uC77D\uAE30 + +confirm_fetch_all_rows_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 + +confirm_keep_statement_open_message = DBeaver\uB294 select \uD6C4 resultset \uC744 \uB2EB\uB294\uAC8C \uAE30\uBCF8\uAC12\uC785\uB2C8\uB2E4. cursor \uB97C \uC720\uC9C0\uD558\uAE30 \uC704\uD574\uC120 \uC124\uC815\uC5D0\uC11C "Keep open cursors in SQL editor" \uC635\uC158\uC744 \uD65C\uC131\uD654\uC2DC\uCF1C\uC57C \uD569\uB2C8\uB2E4. cursor \uC720\uC9C0\uB294 \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uB9AC\uC18C\uC2A4\uC5D0 Lock \uC744 \uBC1C\uC0DD\uC2DC\uD0AC \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC774 \uAE30\uB2A5\uC744 \uD65C\uC131\uD654\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? (ResultSet\uC744 \uC0C8\uB85C \uC77D\uC2B5\uB2C8\uB2E4) \n + +confirm_keep_statement_open_title = Cursor \uC720\uC9C0 + +confirm_keep_statement_open_toggleMessage = \uC120\uD0DD\uC744 \uC800\uC7A5 + +confirm_local_folder_delete_message = \uC815\uB9D0 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? {0} "{1}"\n\n\uC774 \uD3F4\uB354\uC758 Connection \uC740 \uC0AD\uC81C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. + +confirm_local_folder_delete_title = \uD3F4\uB354 \uC0AD\uC81C + +confirm_order_resultset_message = \uC774 \uCEEC\uB7FC\uC5D0 \uC801\uC808\uD55C \uC778\uB371\uC2A4\uAC00 \uC5C6\uB2E4\uBA74 \uD070 \uD14C\uC774\uBE14\uC758 \uACBD\uC6B0 \uC815\uB82C \uBCC0\uACBD\uC5D0 \uC2DC\uAC04\uC774 \uC624\uB798 \uAC78\uB9B4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \n\n\uCEEC\uB7FC {0} \uAE30\uC900\uC73C\uB85C \uC815\uB82C\uC744 \uBCC0\uACBD\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \n + +confirm_order_resultset_title = \uC815\uB82C \uBCC0\uACBD + +confirm_order_resultset_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 + +confirm_version_check_message = \uC0C8\uB85C\uC6B4 {0} \uBC84\uC804 {1} \uC774 {2}\uC5D0 \uCD9C\uC2DC\uD558\uC600\uC2B5\uB2C8\uB2E4. \n\uD604\uC7AC \uBC84\uC804\uC744 \uC5C5\uB370\uC774\uD2B8 \uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +confirm_version_check_title = \uC0C8\uB85C\uC6B4 \uBC84\uC804 \uB2E4\uC6B4\uB85C\uB4DC + +confirm_version_check_toggleMessage = \uB2E4\uC2DC \uBB3B\uC9C0 \uC54A\uAE30 + +controls_client_home_selector_browse = \uC5F4\uAE30 ... + +controls_client_homes_panel_button_add_home = \uD648 \uCD94\uAC00 + +controls_client_homes_panel_button_remove_home = \uD648 \uC0AD\uC81C + +controls_client_homes_panel_confirm_remove_home_text = \uD074\uB77C\uC774\uC5B8\uD2B8 \uD648 "{0}"\uC744 \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +controls_client_homes_panel_confirm_remove_home_title = \uD074\uB77C\uC774\uC5B8\uD2B8 \uD648 \uC0AD\uC81C + +controls_client_homes_panel_dialog_title = \uB370\uC774\uD130\uBCA0\uC774\uC2A4 \uD074\uB77C\uC774\uC5B8\uD2B8 \uD648 + +controls_client_homes_panel_group_information = \uC815\uBCF4 + +controls_client_homes_panel_label_name = \uC774\uB984 + +controls_client_homes_panel_label_path = \uACBD\uB85C + +controls_client_homes_panel_label_product_name = \uC81C\uD488\uBA85 + +controls_client_homes_panel_label_product_version = \uC81C\uD488 \uBC84\uC804 + +controls_querylog_action_clear_log = \uB85C\uADF8 \uBE44\uC6B0\uAE30 + +controls_querylog_action_copy = \uBCF5\uC0AC + +controls_querylog_action_copy_all_fields = \uBAA8\uB4E0 \uD544\uB4DC \uBCF5\uC0AC + +controls_querylog_action_select_all = \uC804\uCCB4 \uC120\uD0DD + +controls_querylog_column_duration_name = \uC18C\uC694 \uC2DC\uAC04 + +controls_querylog_column_duration_tooltip = \uC18C\uC694 \uC2DC\uAC04 + +controls_querylog_column_result_name = \uACB0\uACFC + +controls_querylog_column_result_tooltip = \uC2E4\uD589 \uACB0\uACFC + +controls_querylog_column_text_name = \uD14D\uC2A4\uD2B8 + +controls_querylog_column_text_tooltip = SQL \uAD6C\uBB38 \uD14D\uC2A4\uD2B8/\uC124\uBA85 + +controls_querylog_column_time_name = \uC2DC\uAC04 + +controls_querylog_column_time_tooltip = \uAD6C\uBB38 \uC2E4\uD589 \uC2DC\uAC04 + +controls_querylog_column_type_name = \uBD84\uB958 + +controls_querylog_column_type_tooltip = \uC774\uBCA4\uD2B8 \uBD84\uB958 + +controls_querylog_format_minutes = {0} \uBD84 {1} \uCD08 + +controls_resultset_viewer_action_order_filter = \uC815\uB82C/\uD544\uD130 + +controls_resultset_viewer_action_refresh = \uC0C8\uB85C \uACE0\uCE68 + +controls_resultset_viewer_action_reset_value = \uBCC0\uACBD\uC0AC\uD56D \uCDE8\uC18C + +controls_resultset_viewer_status_no_data = \uB370\uC774\uD130 \uC5C6\uC74C + +dialog_about_label_version = \uBC84\uC804 + +dialog_about_title = \uC815\uBCF4 + +dialog_driver_manager_label_unavailable = - \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC74C + +dialog_driver_manager_label_user_defined = - \uC0AC\uC6A9\uC790 \uC815\uC758 + +dialog_driver_manager_message_cant_delete_text = \uB4DC\uB77C\uC774\uBC84 "{0}"\uC744 \uC0AD\uC81C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E4\uC74C \uB370\uC774\uD130\uC18C\uC2A4\uC5D0\uC11C \uC0AC\uC6A9 \uC911\uC785\uB2C8\uB2E4. + +dialog_driver_manager_message_cant_delete_title = \uB4DC\uB77C\uC774\uBC84 \uC0AD\uC81C \uC2E4\uD328 + +dialog_driver_manager_message_delete_driver_text = \uB4DC\uB77C\uC774\uBC84\uB97C \uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? + +dialog_driver_manager_message_delete_driver_title = \uB4DC\uB77C\uC774\uBC84 \uC0AD\uC81C + +dialog_driver_manager_title = \uB4DC\uB77C\uC774\uBC84 \uAD00\uB9AC\uC790 + +dialog_new_connection_wizard_start_description = \uC0C8\uB85C\uC6B4 Connection\uC744 \uB9CC\uB4ED\uB2C8\uB2E4. \uC544\uB798 \uBAA9\uB85D\uC5D0 \uD574\uB2F9\uD558\uB294 \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uAC00 \uC5C6\uB2E4\uBA74 \uB4DC\uB77C\uC774\uBC84 \uB9E4\uB2C8\uC800\uB97C \uD1B5\uD574 \uC0C8\uB85C\uC6B4 \uB4DC\uB77C\uC774\uBC84\uB97C \uB4F1\uB85D\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. + +dialog_version_update_available_new_version = DBeaver \uC758 \uC0C8 \uBC84\uC804\uC774 \uB098\uC654\uC2B5\uB2C8\uB2E4. + +dialog_version_update_button_more_info = \uC790\uC138\uD788 \uBCF4\uAE30 ... + +dialog_version_update_current_version = \uD604\uC7AC \uBC84\uC804 + +dialog_version_update_new_version = \uC0C8 \uBC84\uC804 + +dialog_version_update_no_new_version = \uC5C5\uB370\uC774\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. + +dialog_version_update_press_more_info_ = "\uC790\uC138\uD788 \uBCF4\uAE30"\uB97C \uB20C\uB7EC DBeaver\uB97C \uB2E4\uC6B4\uB85C\uB4DC \uBC1B\uC744 \uC218 \uC788\uB294 \uC6F9 \uD398\uC774\uC9C0\uB97C \uC5FD\uB2C8\uB2E4. + +dialog_version_update_title = \uC5C5\uB370\uC774\uD2B8 + +pref_page_confirmations_combo_always = \uD56D\uC0C1 \uD655\uC778 + +pref_page_confirmations_combo_never = \uD655\uC778\uD558\uC9C0 \uC54A\uC74C + +pref_page_confirmations_combo_prompt = \uD655\uC778 + +pref_page_confirmations_group_general_actions = \uC77C\uBC18 \uC791\uC5C5 + +pref_page_confirmations_group_object_editor = \uC624\uBE0C\uC81D\uD2B8 \uD3B8\uC9D1\uAE30 + +ui_actions_exit_emergency_question = \uC800\uC7A5\uD558\uC9C0 \uC54A\uC740 \uB370\uC774\uD130\uB294 \uC190\uC2E4\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC989\uC2DC \uC885\uB8CC \uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? diff --git a/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ru.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ru.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_ru.properties diff --git a/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_zh.properties b/nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_zh.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_zh.properties rename to nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_zh.properties index c915d6c744..d71dbe392a 100644 --- a/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.core.nls/src/org/jkiss/dbeaver/core/CoreResources_zh.properties @@ -1,1256 +1,1256 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) -# Copyright (C) 2012 Brook.Tran (Brook.Tran.C@gmail.com) - -## Menu items ## -actions_menu_database = \u6570\u636E\u5E93(&D) -actions_menu_edit = \u7F16\u8F91(&E) -actions_menu_exit_emergency = \u7D27\u6025\u9000\u51FA -actions_menu_file = \u6587\u4EF6(&F) -actions_menu_help = \u5E2E\u52A9(&H) -actions_menu_navigate = \u5BFC\u822A(&N) -actions_menu_window = \u7A97\u53E3(&W) -actions_menu_window_showView = \u663E\u793A\u89C6\u56FE -actions_menu_about = \u5173\u4E8E -actions_menu_check_update = \u68C0\u67E5\u66F4\u65B0 - -actions_menu_edit_ContentFormat = \u683C\u5F0F\u5316 - -## Errors ## -DBeaverCore_error_can_create_temp_dir = \u65E0\u6CD5\u521B\u5EFA\u4E34\u65F6\u76EE\u5F55 "{0}" -DBeaverCore_error_can_create_temp_file = \u65E0\u6CD5\u5728 "{1}" \u521B\u5EFA\u4E34\u65F6\u76EE\u5F55"{0}" - -## Actions ## -actions_ContentAssistProposal_label = SQL \u5185\u5BB9\u52A9\u7406 -actions_ContentAssistProposal_tooltip = SQL \u5185\u5BB9\u52A9\u7406 -actions_ContentAssistProposal_description = SQL \u5185\u5BB9\u52A9\u7406 - -actions_ContentAssistTip_description = \u5B8C\u6210SQL\u6A21\u677F\u540D\u79F0 -actions_ContentAssistTip_label = SQL\u6A21\u677F -actions_ContentAssistTip_tooltip = SQL\u6A21\u677F\u52A9\u7406 - -actions_ContentAssistInfo_description = \u663E\u793A\u5E26\u6709\u4E0A\u4E0B\u6587\u63CF\u8FF0\u7684\u5DE5\u5177\u63D0\u793A\u4FE1\u606F -actions_ContentAssistInfo_label = SQL\u4E0A\u4E0B\u6587\u4FE1\u606F -actions_ContentAssistInfo_tooltip = \u663E\u793ASQL\u4E0A\u4E0B\u6587\u63CF\u8FF0 - -actions_ContentFormatProposal_label = \u683C\u5F0F\u5316SQL -actions_ContentFormatProposal_tooltip = \u683C\u5F0F\u5316SQL -actions_ContentFormatProposal_description = \u683C\u5F0F\u5316SQL - -actions_navigator__objects = \u5BF9\u8C61 -actions_navigator_bookmark_error_message = \u65E0\u6CD5\u521B\u5EFA\u4E66\u7B7E -actions_navigator_bookmark_error_title = \u65B0\u5EFA\u4E66\u7B7E -actions_navigator_bookmark_title = \u4E66\u7B7E\u540D -actions_navigator_copy_fqn_title = \u5B8C\u5168\u590D\u5236\u9650\u5B9A\u540D -actions_navigator_copy_fqn_titles = \u5B8C\u5168\u590D\u5236\u9650\u5B9A\u540D -actions_navigator_copy_object_copy_node = \u590D\u5236 {0} -actions_navigator_copy_object_copy_objects = \u590D\u5236\u5BF9\u8C61 -actions_navigator_create_folder_error_message = \u65E0\u6CD5\u521B\u5EFA\u76EE\u5F55 "{0}" -actions_navigator_create_folder_error_title = \u65B0\u5EFA\u6587\u4EF6\u5939 -actions_navigator_create_folder_folder_name = \u6587\u4EF6\u5939\u540D\u79F0 -actions_navigator_create_new = \u65B0\u5EFA -actions_navigator_delete_ = \u5220\u9664 -actions_navigator_delete_objects = \u5220\u9664\u5BF9\u8C61 -actions_navigator_delete_script = \u5220\u9664\u811A\u672C -actions_navigator_edit = \u7F16\u8F91 -actions_navigator_error_dialog_delete_object_title = \u5220\u9664\u5BF9\u8C61 -actions_navigator_error_dialog_open_entity_title = \u6253\u5F00\u5B9E\u4F53 -actions_navigator_error_dialog_open_resource_title = \u6253\u5F00\u8D44\u6E90 -actions_navigator_open = \u6253\u5F00 -actions_navigator_view = \u67E5\u770B -actions_navigator_view_script_button = \u67E5\u770B\u811A\u672C -actions_spreadsheet_copy_special = \u9AD8\u7EA7\u62F7\u8D1D... - -common_error_sql = SQL \u9519\u8BEF - -action_menu_enterpriseEdition = \u4F01\u4E1A\u7248\u672C -action_menu_installInfo = \u5B89\u88C5\u4FE1\u606F -action_menu_installNewSoftware = \u5B89\u88C5\u65B0\u8F6F\u4EF6 -action_menu_showKeyAssist = \u663E\u793A\u952E\u8F85\u52A9 -action_menu_sqleditor_maximizeResultsPanel = \u6700\u5927\u5316\u7ED3\u679C\u9762\u677F -action_menu_sqleditor_restoreResultsPanel = \u6062\u590D\u7ED3\u679C\u9762\u677F -action_menu_transactionMonitor_autocommitMode = \u81EA\u52A8\u63D0\u4EA4\u6A21\u5F0F -action_menu_transactionMonitor_modifyStatement = {0}\u4FEE\u6539\u8BED\u53E5 -action_menu_transactionMonitor_notConnected = \u975E\u8FDE\u63A5\u7684 -action_menu_transactionMonitor_totalStatement = {0} \u5408\u8BA1\u8BED\u53E5 -action_menu_transactionMonitor_uptime = {0} \u79D2\u949F\u53EF\u7528\u65F6\u95F4 -action_menu_transaction_autocommit_description = \u81EA\u52A8\u63D0\u4EA4 -action_menu_transaction_autocommit_name = \u5207\u6362\u5230\u81EA\u52A8\u63D0\u4EA4 -action_menu_transaction_manualcommit_description = \u624B\u52A8\u63D0\u4EA4\uFF08{0}\uFF09 -action_menu_transaction_manualcommit_name = \u5207\u6362\u5230\u624B\u52A8\u63D0\u4EA4\uFF08{0}\uFF09 -action_popup_sqleditor_layout_detached = \u5206\u5F00\u6392\u5217 -action_popup_sqleditor_layout_horizontal = \u6C34\u5E73\u6392\u5217 -action_popup_sqleditor_layout_vertical = \u5782\u76F4\u6392\u5217 - -## Confirmations ## -confirm_exit_title = \u9000\u51FA DBeaver -confirm_exit_message = \u4F60\u786E\u5B9A\u8981\u9000\u51FA\u5417? -confirm_exit_toggleMessage = \u4E0D\u518D\u8BE2\u95EE - -confirm_close_resultset_edit_title = \u4FDD\u5B58\u7ED3\u679C\u96C6 -confirm_close_resultset_edit_message = \u662F\u5426\u4FDD\u5B58\u5DF2\u7ECF\u4FEE\u6539\u7684\u7ED3\u679C\u96C6? -confirm_close_resultset_edit_toggleMessage = \u8BB0\u4F4F\u6211\u7684\u9009\u62E9 - -confirm_close_editor_edit_title = \u4FDD\u5B58\u53D8\u66F4 -confirm_close_editor_edit_message = "{0}" \u5DF2\u7ECF\u6539\u53D8_ \u662F\u5426\u4FDD\u5B58\u6240\u6709\u4FEE\u6539? -confirm_close_editor_edit_toggleMessage = \u8BB0\u4F4F\u6211\u7684\u9009\u62E9 - -confirm_close_entity_edit_title = \u4FDD\u5B58\u4FEE\u6539 -confirm_close_entity_edit_message = \u5BF9\u8C61 "{0}" \u5DF2\u7ECF\u88AB\u4FEE\u6539_ \u662F\u5426\u5C06\u4FEE\u6539\u4FDD\u5B58\u81F3\u6570\u636E\u5E93? -confirm_close_entity_edit_toggleMessage = \u8BB0\u4F4F\u6211\u7684\u9009\u62E9 - -confirm_dangerous_sql_title = \u786E\u8BA4\u5371\u9669\u7684\u67E5\u8BE2\u6267\u884C -confirm_dangerous_sql_message = \u4F60\u8981\u6267\u884C\u7684\u8BED\u53E5 {0} \u5728 ''{1}'' \u4E0A\u6CA1\u6709 WHERE \u5B50\u53E5.\n\u53EF\u80FD\u4F1A\u4E22\u5931\u6570\u636E. \u786E\u5B9A\u6267\u884C\u6B64\u64CD\u4F5C? -confirm_dangerous_sql_toggleMessage = \u8BB0\u4F4F\u9009\u62E9 - -confirm_disconnect_txn_title = \u63D0\u4EA4\u66F4\u6539 -confirm_disconnect_txn_message = \u4F60\u8981\u65AD\u5F00\u4ECE\u6570\u636E\u5E93 "{0}" \u7684\u8FDE\u63A5.\n\u4F60\u60F3\u8981\u63D0\u4EA4\u5F53\u524D\u4E8B\u52A1\u5417? -confirm_disconnect_txn_toggleMessage = \u8BB0\u4F4F\u9009\u62E9 - -confirm_driver_download_title = \u4E0B\u8F7D\u6570\u636E\u5E93\u9A71\u52A8 -confirm_driver_download_message = \u6570\u636E\u5E93 "{0}" \u7684\u9A71\u52A8\u6587\u4EF6 ({1}) \u5DF2\u4E22\u5931 .\n \u4F60\u60F3\u4E0B\u8F7D\u8FD9\u4E9B\u6587\u4EF6\u5417? -confirm_driver_download_toggleMessage = \u4E0D\u518D\u8BE2\u95EE - -confirm_driver_download_manual_message = \u65E0\u6CD5\u627E\u5230JDBC\u9A71\u52A8\u7A0B\u5E8F"{0}"\u3002\u6839\u636E\u4F9B\u5E94\u5546\u7684\u653F\u7B56\uFF0C\u8FD9\u4E2A\u9A71\u52A8\u7A0B\u5E8F\u662F\u4E0D\u516C\u5F00\u7684\uFF0C\u4F60\u5FC5\u987B\u4ECE\u4F9B\u5E94\u5546\u7684\u7F51\u7AD9\u4E0A\u624B\u52A8\u4E0B\u8F7D\u3002\r\n\r\n\u9A71\u52A8\u7A0B\u5E8F\u4E0B\u8F7D\u6210\u529F\u4E4B\u540E\u60A8\u5C06\u9700\u8981\u624B\u52A8\u6DFB\u52A0JAR\u6587\u4EF6\u5230 DBeaver \u5E93\u5217\u8868\u4E2D\u3002\r\n\u9A71\u52A8\u7A0B\u5E8F\u6587\u4EF6: {1} \u3002\r\n\r\n\u4F60\u60F3\u8981\u8FDB\u5165\u4F9B\u5E94\u5546\u7F51\u7AD9\u5417? -confirm_driver_download_manual_title = \u624B\u52A8\u4E0B\u8F7D\u9A71\u52A8 -confirm_driver_download_manual_toggleMessage = \u4E0D\u518D\u8BE2\u95EE - -confirm_entity_delete_title = \u5220\u9664\u5BF9\u8C61 -confirm_entity_delete_message = \u662F\u5426\u786E\u5B9A\u5220\u9664{0} "{1}"? - -confirm_entity_reject_title = \u64A4\u9500\u4FEE\u6539 -confirm_entity_reject_message = \u6240\u6709\u5BF9 "{0}" \u7684\u4FEE\u6539\u5C06\u88AB\u64A4\u9500_\n\u662F\u5426\u786E\u5B9A\u64A4\u9500\u4FEE\u6539? -confirm_entity_reject_toggleMessage = \u4E0D\u518D\u8BE2\u95EE - -confirm_entity_revert_title = \u91CD\u505A -confirm_entity_revert_message = \u662F\u5426\u786E\u5B9A\u91CD\u505A "{0}"? -confirm_entity_revert_toggleMessage = \u4E0D\u518D\u8BE2\u95EE - -confirm_fetch_all_rows_title = \u8BFB\u53D6\u6240\u6709\u884C -confirm_fetch_all_rows_message = \u8BFB\u53D6\u7ED3\u679C\u96C6\u4E2D\u7684\u6240\u6709\u884C\u4F1A\u4F1A\u82B1\u8D39\u5927\u91CF\u65F6\u95F4\u548C\u5B58\u50A8\u3002\r\n\r\n\u4F60\u786E\u5B9A\u8981\u83B7\u53D6\u6240\u6709\u884C\u5417\uFF1F -confirm_fetch_all_rows_toggleMessage = \u8BB0\u4F4F\u9009\u62E9 - -confirm_keep_statement_open_title = \u603B\u662F\u542F\u7528\u6E38\u6807 -confirm_keep_statement_open_message = \u5F53\u5B8C\u6210\u4E00\u6B21\u67E5\u8BE2 DBeaver \u603B\u662F\u5173\u95ED\u8FDE\u63A5. \u4E3A\u4E86\u67E5\u770B\u5217\u6E38\u6807, \u53EF\u4EE5\u5728"\u9009\u9879"\u8BBE\u7F6E"\u603B\u662F\u5728SQL\u7F16\u8F91\u5668\u4E2D\u542F\u7528\u6E38\u6807". \u6CE8\u610F: \u542F\u7528\u6E38\u6807\u53EF\u80FD\u5BFC\u81F4\u957F\u65F6\u95F4\u9501\u5B9A\u6570\u636E\u5E93\u8D44\u6E90. \u4F60\u786E\u5B9A\u542F\u7528\u8BE5\u5C5E\u6027\u5417?(\u7ED3\u679C\u96C6\u5C06\u88AB\u66F4\u65B0) -confirm_keep_statement_open_toggleMessage = \u8BB0\u4F4F\u6211\u7684\u9009\u62E9 - -confirm_local_folder_delete_title = \u5220\u9664\u6587\u4EF6\u5939 -confirm_local_folder_delete_message = \u4F60\u5374\u4F4E\u4F30\u8981\u5220\u9664 {0} "{1}" \u5417?\r\n\r\n\u8BE5\u6587\u4EF6\u5939\u4E2D\u7684\u8FDE\u63A5\u5C06\u4E0D\u4F1A\u88AB\u5220\u9664. - -confirm_order_resultset_title = \u6392\u5E8F -confirm_order_resultset_message = \u5BF9\u4E8E\u542B\u6709\u5927\u91CF\u6570\u636E\u7684\u8868\u683C\u5C06\u82B1\u8D39\u8F83\u591A\u65F6\u95F4(\u7279\u522B\u662F\u8BE5\u5217\u6CA1\u6709\u7D22\u5F15\u65F6)\n\n\u4F60\u786E\u5B9A\u5BF9"{0}"\u8FDB\u884C\u6392\u5E8F\u5417? -confirm_order_resultset_toggleMessage = \u4E0D\u518D\u8BE2\u95EE - -confirm_version_check_title = \u4E0B\u8F7D\u65B0\u7248\u672C -confirm_version_check_message = \u65B0\u7684 {0} \u7248\u672C {1} \u5DF2\u7ECF\u5728 {2}\u53D1\u5E03.\n\u662F\u5426\u66F4\u65B0\u5F53\u524D\u7248\u672C? -confirm_version_check_toggleMessage = \u4E0D\u518D\u8BE2\u95EE - - -controls_client_home_selector_browse = \u6D4F\u89C8 ... -controls_client_homes_panel_button_add_home = \u6DFB\u52A0\u6570\u636E\u5E93\u5730\u5740 -controls_client_homes_panel_button_remove_home = \u5220\u9664\u6570\u636E\u5E93\u5730\u5740 -controls_client_homes_panel_confirm_remove_home_text = \u662F\u5426\u786E\u5B9A\u8981\u5220\u9664\u6570\u636E\u5E93\u5730\u5740 "{0}"? -controls_client_homes_panel_confirm_remove_home_title = \u5220\u9664\u6570\u636E\u5E93\u5730\u5740 -controls_client_homes_panel_dialog_title = \u6570\u636E\u5E93\u5730\u5740 -controls_client_homes_panel_group_information = \u4FE1\u606F -controls_client_homes_panel_label_id = ID -controls_client_homes_panel_label_name = \u540D\u79F0 -controls_client_homes_panel_label_path = \u8DEF\u5F84 -controls_client_homes_panel_label_product_name = \u4EA7\u54C1\u540D\u79F0 -controls_client_homes_panel_label_product_version = \u4EA7\u54C1\u7248\u672C -controls_column_info_panel_property_key = \u952E -controls_connection_properties_action_add_property = \u6DFB\u52A0\u65B0\u5C5E\u6027 -controls_connection_properties_action_remove_property = \u5220\u9664\u5C5E\u6027 -controls_connection_properties_category_user_properties = \u7528\u6237\u5C5E\u6027 -controls_connection_properties_dialog_new_property_title = \u5C5E\u6027\u540D\u79F0 -controls_driver_tree_column_connections = \u8FDE\u63A5 -controls_driver_tree_column_name = \u540D\u79F0 -controls_imageview_fit_window = \u9002\u5E94\u7A97\u53E3 -controls_imageview_original_size = \u539F\u59CB\u5927\u5C0F -controls_imageview_rotate = \u65CB\u8F6C -controls_imageview_zoom_in = \u653E\u5927 -controls_imageview_zoom_out = \u7F29\u5C0F -controls_itemlist_action_copy = \u590D\u5236 -controls_locale_selector_group_locale = \u533A\u57DF -controls_locale_selector_label_country = \u56FD\u5BB6 -controls_locale_selector_label_language = \u8BED\u8A00 -controls_locale_selector_label_locale = \u533A\u57DF -controls_locale_selector_label_variant = \u53D8\u4F53 -controls_object_list_job_props_read = \u8BFB\u53D6\u5EF6\u8FDF\u5C5E\u6027 -controls_object_list_message_items = {0} \u9879 -controls_object_list_message_no_items = \u6CA1\u6709\u4EFB\u4F55\u9879 -controls_object_list_monitor_load_lazy_props = \u8F7D\u5165\u5EF6\u8FDF\u5C5E\u6027 -controls_object_list_monitor_load_props = \u8F7D\u5165 "{0}" \u5C5E\u6027 -controls_object_list_status_objects = {0} \u5BF9\u8C61 -controls_progress_page_action_close = \u5173\u95ED\u641C\u7D22\u9762\u677F -controls_progress_page_job_search = \u641C\u7D22 -controls_progress_page_progress_bar_cancel_tooltip = \u53D6\u6D88\u5F53\u524D\u64CD\u4F5C -controls_progress_page_progress_bar_loading_tooltip = \u8F7D\u5165\u8FDB\u7A0B -controls_progress_page_toolbar_title = \u641C\u7D22 -controls_querylog__ms = \ \u6BEB\u79D2 -controls_querylog_action_clear_log = \u6E05\u9664\u65E5\u5FD7 -controls_querylog_action_copy = \u590D\u5236 -controls_querylog_action_copy_all_fields = \u590D\u5236\u6240\u6709\u5B57\u6BB5 -controls_querylog_action_select_all = \u5168\u9009 -controls_querylog_column_connection_name = \u6570\u636E\u6E90 -controls_querylog_column_connection_tooltip = \u8BE5\u6570\u636E\u5E93\u4E8B\u4EF6\u6240\u5C5E\u7684\u8FDE\u63A5 -controls_querylog_column_context_name = \u8FDE\u63A5 -controls_querylog_column_context_tooltip = \u53D7\u6B64\u4E8B\u4EF6\u5F71\u54CD\u7684\u5B9E\u9645\u7269\u7406\u8FDE\u63A5 -controls_querylog_column_duration_name = \u6301\u7EED\u65F6\u95F4 -controls_querylog_column_duration_tooltip = \u64CD\u4F5C\u8FD0\u884C\u7684\u65F6\u95F4 -controls_querylog_column_result_name = \u7ED3\u679C -controls_querylog_column_result_tooltip = \u6267\u884C\u7ED3\u679C -controls_querylog_column_rows_name = \u884C -controls_querylog_column_rows_tooltip = SQL\u6267\u884C\u5F97\u5230\u7684\u6570\u636E -controls_querylog_column_text_name = \u6587\u672C -controls_querylog_column_text_tooltip = SQL \u6587\u672C -controls_querylog_column_time_name = \u65F6\u95F4 -controls_querylog_column_time_tooltip = \u6267\u884CSQL\u8BED\u53E5\u6240\u7528\u7684\u65F6\u95F4 -controls_querylog_column_type_name = \u7C7B\u578B -controls_querylog_column_type_tooltip = \u4E8B\u4EF6\u7C7B\u578B -controls_querylog_commit = \u63D0\u4EA4 -controls_querylog_connected_to = \u8FDE\u63A5\u81F3 " -controls_querylog_disconnected_from = \u65AD\u5F00\u8FDE\u63A5 " -controls_querylog_error = \u9519\u8BEF [ -controls_querylog_format_minutes = {0} \u5206 {1} \u79D2 -controls_querylog_job_refresh = \u91CD\u65B0\u8F7D\u5165\u67E5\u8BE2\u7BA1\u7406\u5668\u7684\u65E5\u5FD7 -controls_querylog_label_result = \u7ED3\u679C\u96C6 -controls_querylog_label_text = \u6587\u672C -controls_querylog_label_time = \u65F6\u95F4 -controls_querylog_label_type = \u7C7B\u578B -controls_querylog_rollback = \u56DE\u6EDA -controls_querylog_savepoint = \u4FDD\u5B58\u70B9 -controls_querylog_script = \u811A\u672C -controls_querylog_shell_text = \u89C6\u56FE -controls_querylog_success = \u6210\u529F -controls_querylog_transaction = \u4E8B\u52A1 -controls_resultset_check_autocommit_state = \u68C0\u67E5\u8FDE\u63A5\u662F\u5426\u81EA\u52A8\u63D0\u4EA4 -controls_resultset_config_panels = \u9762\u677F -controls_resultset_config_record = \u8BB0\u5F55 -controls_resultset_edit_cancel = \u53D6\u6D88 -controls_resultset_edit_save = \u4FDD\u5B58 -controls_resultset_edit_script = \u811A\u672C -controls_resultset_filter_button_reset = \u91CD\u7F6E -controls_resultset_filter_column_criteria = \u6761\u4EF6 -controls_resultset_filter_column_name = \u5217 -controls_resultset_filter_column_order = \u6392\u5E8F -controls_resultset_filter_group_columns = \u5217 -controls_resultset_filter_group_custom = \u81EA\u5B9A\u4E49 -controls_resultset_filter_label_orderby = Order by \u8BED\u53E5 -controls_resultset_filter_label_where = Where \u8BED\u53E5 -controls_resultset_filter_title = \u8BBE\u7F6E\u7ED3\u679C\u96C6\u7684\u6392\u5E8F/\u8FC7\u6EE4 -controls_resultset_filter_warning_custom_order_disabled = \u6570\u636E\u8FC7\u6EE4\u5668\u548C\u6392\u5E8F\u5BF9\u81EA\u5B9A\u4E49\u67E5\u8BE2\u65E0\u6548 -controls_resultset_viewer_action_custom_filter = \u9AD8\u7EA7\u7684 ... -controls_resultset_viewer_action_edit = \u7F16\u8F91 ... -#controls_resultset_viewer_action_export = \u5BFC\u51FA\u7ED3\u679C\u96C6... -controls_resultset_viewer_action_options = \u914D\u7F6E -controls_resultset_viewer_action_order_filter = \u6392\u5E8F/\u8FC7\u6EE4 -controls_resultset_viewer_action_panels = \u81EA\u5B9A\u4E49\u9762\u677F -controls_resultset_viewer_action_refresh = \u5237\u65B0\u7ED3\u679C\u96C6 -controls_resultset_viewer_add_new_row_context_name = \u590D\u5236\u884C -controls_resultset_viewer_dialog_status_title = \u72B6\u6001 -controls_resultset_viewer_job_update = \u66F4\u65B0\u6570\u636E -controls_resultset_viewer_monitor_aply_changes = \u63D0\u4EA4\u53D8\u66F4 -controls_resultset_viewer_status_empty = \u7A7A -controls_resultset_viewer_status_inserted_ = \u5DF2\u63D2\u5165: {0} / \u5220\u9664: {1} / \u66F4\u65B0: {2} -controls_resultset_viewer_status_no_data = \u6CA1\u6709\u4EFB\u4F55\u6570\u636E -controls_resultset_viewer_status_row = \u884C -controls_resultset_viewer_status_rows = \ \u884C -controls_resultset_viewer_status_rows_fetched = \ \u5DF2\u83B7\u53D6\u884C -controls_resultset_viewer_status_rows_size = {0} \u884C (+{1}) -controls_resultset_viewer_value = \u503C -controls_rs_pump_job_context_name = \u4ECE "{0}" \u8BFB\u53D6\u6570\u636E -controls_rs_pump_job_name = \u8BFB\u53D6\u6570\u636E -controls_time_ms = \u6BEB\u79D2 - - -data_transfer_wizard_final_column_source = \u6E90\u7AEF -data_transfer_wizard_final_column_target = \u76EE\u6807\u7AEF -data_transfer_wizard_final_description = \u68C0\u67E5\u7ED3\u679C -data_transfer_wizard_final_group_tables = \u8868 -data_transfer_wizard_final_name = \u786E\u8BA4 -data_transfer_wizard_final_title = \u786E\u8BA4 -data_transfer_wizard_init_column_description = \u63CF\u8FF0 -data_transfer_wizard_init_column_exported = \u5BFC\u51FA\u5668 -data_transfer_wizard_init_description = \u914D\u7F6E\u6570\u636E\u4F20\u8F93\u76EE\u6807\u7C7B\u578B\u548C\u683C\u5F0F -data_transfer_wizard_init_name = \u8F6C\u5316\u76EE\u6807 -data_transfer_wizard_init_title = \u6570\u636E\u4F20\u8F93\u76EE\u6807\u7C7B\u578B\u548C\u683C\u5F0F -data_transfer_wizard_job_container_name = \u4ECE"{0}"\u5BFC\u51FA\u6570\u636E -data_transfer_wizard_job_name = \u8F6C\u5316\u6570\u636E -data_transfer_wizard_job_task_export = \u8F6C\u5316\u6570\u636E -data_transfer_wizard_job_task_export_table_data = \u8F6C\u5316\u8868\u6570\u636E -data_transfer_wizard_job_task_retrieve = \u68C0\u7D22\u884C\u6570 -data_transfer_wizard_name = \u6570\u636E\u8F6C\u5316 -data_transfer_wizard_output_checkbox_compress = \u538B\u7F29 -data_transfer_wizard_output_checkbox_new_connection = \u6253\u5F00\u65B0\u8FDE\u63A5 -data_transfer_wizard_output_checkbox_open_folder = \u5728\u6700\u540E\u6253\u5F00\u8F93\u51FA\u6587\u4EF6\u5939 -data_transfer_wizard_output_checkbox_select_row_count = \u9009\u62E9\u884C\u8BA1\u6570 -data_transfer_wizard_output_combo_extract_type_item_by_segments = \u6309\u6BB5 -data_transfer_wizard_output_combo_extract_type_item_single_query = \u5355\u4E2A\u67E5\u8BE2 -data_transfer_wizard_output_description = \u914D\u7F6E\u5BFC\u51FA\u8F93\u51FA\u53C2\u6570 -data_transfer_wizard_output_dialog_directory_message = \u9009\u62E9\u6587\u4EF6\u76EE\u5F55\u6765\u653E\u7F6E\u5BFC\u51FA\u7684\u6587\u4EF6 -data_transfer_wizard_output_dialog_directory_text = \u5BFC\u51FA\u6587\u4EF6\u76EE\u5F55 -data_transfer_wizard_output_group_general = \u901A\u7528 -data_transfer_wizard_output_group_progress = \u8FDB\u7A0B -data_transfer_wizard_output_label_directory = \u6587\u4EF6\u76EE\u5F55 -data_transfer_wizard_output_label_encoding = \u7F16\u7801 -data_transfer_wizard_output_label_extract_type = \u62BD\u53D6\u7C7B\u578B -data_transfer_wizard_output_label_file_name_pattern = \u6587\u4EF6\u540D\u79F0\u6A21\u5F0F -data_transfer_wizard_output_label_insert_bom = \u63D2\u5165BOM -data_transfer_wizard_output_label_insert_bom_tooltip = BOM(\u5B57\u8282\u987A\u5E8F\u6807\u5FD7)\u7528\u4E8EUnicode\u5B57\u7B26\u96C6\uFF0C\u5E76\u4E14\u662F\u4E00\u4E9B\u8F6F\u4EF6(\u5982MS Excel)\u6240\u5FC5\u987B\u7684\u3002\u540C\u65F6\uFF0C\u5B83\u4E0D\u88AB\u4E00\u4E9B\u5176\u4ED6\u8F6F\u4EF6\u652F\u6301\u3002 -data_transfer_wizard_output_label_max_threads = \u6700\u5927\u7EBF\u7A0B\u6570 -data_transfer_wizard_output_label_segment_size = \u6BB5\u5927\u5C0F -data_transfer_wizard_output_name = \u8F93\u51FA -data_transfer_wizard_output_title = \u8F93\u51FA -data_transfer_wizard_settings_binaries_item_inline = \u884C\u5185 -data_transfer_wizard_settings_binaries_item_save_to_file = \u4FDD\u5B58\u5230\u6587\u4EF6 -data_transfer_wizard_settings_binaries_item_set_to_null = \u8BBE\u7F6E\u4E3ANULL -data_transfer_wizard_settings_button_edit = \u7F16\u8F91 ... -data_transfer_wizard_settings_description = \u8BBE\u7F6E\u5BFC\u51FA\u8BBE\u7F6E -data_transfer_wizard_settings_group_exporter = \u5BFC\u51FA\u8BBE\u7F6E -data_transfer_wizard_settings_group_general = \u901A\u7528 -data_transfer_wizard_settings_label_binaries = \u4E8C\u8FDB\u5236 -data_transfer_wizard_settings_label_encoding = \u7F16\u7801 -data_transfer_wizard_settings_label_formatting = \u683C\u5F0F\u5316 -data_transfer_wizard_settings_listbox_formatting_item_default = <\u9ED8\u8BA4\u8FDE\u63A5> -data_transfer_wizard_settings_name = \u8BBE\u7F6E -data_transfer_wizard_settings_title = \u8BBE\u7F6E - - -dialog_about_font = SansSerif -dialog_about_label_version = \u7248\u672C -dialog_about_title = \u5173\u4E8E -dialog_connection_auth_checkbox_save_password = \u4FDD\u5B58\u5BC6\u7801 -dialog_connection_auth_group_user_cridentials = \u7528\u6237\u51ED\u8BC1: -dialog_connection_auth_label_password = \u5BC6\u7801: -dialog_connection_auth_label_username = \u7528\u6237\u540D: -dialog_connection_auth_title = '' \u8EAB\u4EFD\u9A8C\u8BC1 -dialog_connection_auth_title_for_handler = \u4E3A {0} \u6307\u5B9A\u5BC6\u7801 -dialog_connection_button_test = &\u6D4B\u8BD5\u94FE\u63A5 ... -#page conn setting -dialog_connection_description = \u6570\u636E\u5E93\u8FDE\u63A5\u8BBE\u7F6E. -dialog_connection_driver = \u9A71\u52A8\u540D\u79F0: -dialog_connection_driver_general = \u901A\u7528 -dialog_connection_driver_project = \u9879\u76EE -dialog_connection_driver_treecontrol_initialText = \u8F93\u5165\u6570\u636E\u5E93/\u9A71\u52A8\u540D\u7684\u90E8\u5206\u5185\u5BB9\u6765\u8FC7\u6EE4 -dialog_connection_edit_driver_button = \u7F16\u8F91\u9A71\u52A8\u8BBE\u7F6E -dialog_connection_events_checkbox_show_process = \u663E\u793A\u8FDB\u7A0B\u9762\u677F -dialog_connection_events_checkbox_terminate_at_disconnect = \u65AD\u5F00\u8FDE\u63A5\u65F6\u7EC8\u6B62 -dialog_connection_events_checkbox_wait_finish = \u7B49\u5F85\u8FDB\u7A0B\u7ED3\u675F -dialog_connection_events_checkbox_wait_finish_timeout = \u8D85\u65F6 (ms) -dialog_connection_events_label_command = \u547D\u4EE4 -dialog_connection_events_label_event = \u4E8B\u4EF6 -dialog_connection_events_title = \u7F16\u8F91\u8FDE\u63A5\u7684\u4E8B\u4EF6 -dialog_connection_message = {0} \u8FDE\u63A5\u8BBE\u7F6E -dialog_connection_network_postgres_ssl_advanced = \u9AD8\u7EA7 -dialog_connection_network_postgres_ssl_advanced_ssl_factory = SSL \u5DE5\u5382 -dialog_connection_network_postgres_ssl_advanced_ssl_mode = SSL \u6A21\u5F0F -dialog_connection_network_postgres_ssl_certificates = \u8BC1\u4E66 -dialog_connection_network_postgres_ssl_certificates_ca = CA \u8BC1\u4E66 -dialog_connection_network_postgres_ssl_certificates_root = \u6839\u8BC1\u4E66 -dialog_connection_network_postgres_ssl_certificates_ssl = SSL \u8BC1\u4E66 -dialog_connection_network_postgres_ssl_certificates_ssl_key = SSL \u8BC1\u4E66\u5BC6\u94A5 -#page conn network -dialog_connection_network_title = \u7F51\u7EDC -dialog_connection_wizard_configure = \u914D\u7F6E ... -dialog_connection_wizard_description = \u63CF\u8FF0 -dialog_connection_wizard_final_button_events = \u4E8B\u4EF6 ... -dialog_connection_wizard_final_button_test = \u6D4B\u8BD5\u8FDE\u63A5 ... -dialog_connection_wizard_final_button_tunneling = \u901A\u9053 ... -dialog_connection_wizard_final_checkbox_auto_commit = \u81EA\u52A8\u63D0\u4EA4 -#dialog_connection_wizard_final_checkbox_auto_commit_tooltip = \u4E3A\u6240\u6709\u8FDE\u63A5\u8BBE\u7F6E\u81EA\u52A8\u63D0\u4EA4\u6A21\u5F0F -dialog_connection_wizard_final_checkbox_connection_readonly = \u53EA\u8BFB\u8FDE\u63A5 -dialog_connection_wizard_final_checkbox_filter_catalogs = \u8FC7\u6EE4\u76EE\u5F55 -dialog_connection_wizard_final_checkbox_filter_schemas = \u8FC7\u6EE4\u6A21\u5F0F -dialog_connection_wizard_final_checkbox_save_password_locally = \u4FDD\u5B58\u5BC6\u7801\u5230\u672C\u5730 -dialog_connection_wizard_final_checkbox_show_system_objects = \u663E\u793A\u7CFB\u7EDF\u5BF9\u8C61 -dialog_connection_wizard_final_checkbox_show_util_objects = \u663E\u793A\u5B9E\u7528\u7A0B\u5E8F\u5BF9\u8C61 -dialog_connection_wizard_final_default_new_connection_name = \u65B0\u8FDE\u63A5 -dialog_connection_wizard_final_description = \u5E38\u89C4\u8FDE\u63A5\u8BBE\u7F6E. -dialog_connection_wizard_final_filter_catalogs = \u76EE\u5F55 -dialog_connection_wizard_final_filter_link_not_supported_text = {0} (\u4E0D\u652F\u6301) -dialog_connection_wizard_final_filter_link_not_supported_tooltip = {0} \u4E0D\u88AB\u9A71\u52A8 {1} \u652F\u6301 -dialog_connection_wizard_final_filter_link_tooltip = \u4E3A {0} \u914D\u7F6E\u8FC7\u6EE4\u5668 -dialog_connection_wizard_final_filter_schemas_users = \u6A21\u5F0F / \u7528\u6237 -dialog_connection_wizard_final_filter_tables = \u8868 -dialog_connection_wizard_final_group_filters = \u8FC7\u6EE4 -dialog_connection_wizard_final_group_misc = \u6742\u9879 -dialog_connection_wizard_final_group_security = \u5B89\u5168\u6027 -dialog_connection_wizard_final_header = \u521B\u5EFA\u8FDE\u63A5\u7ED3\u675F -dialog_connection_wizard_final_label_bootstrap_query = \u542F\u52A8\u67E5\u8BE2 -dialog_connection_wizard_final_label_bootstrap_tooltip = \u8FDE\u63A5\u5EFA\u7ACB\u540E\u7ACB\u5373\u6267\u884C\u7684SQL\u67E5\u8BE2 -dialog_connection_wizard_final_label_connection = \u8FDE\u63A5 -dialog_connection_wizard_final_label_connection_folder = \u8FDE\u63A5\u6587\u4EF6\u5939 -dialog_connection_wizard_final_label_connection_name = \u8FDE\u63A5\u540D\u79F0 -dialog_connection_wizard_final_label_connection_type = \u8FDE\u63A5\u7C7B\u578B -dialog_connection_wizard_final_label_default_schema = \u9ED8\u8BA4\u6A21\u5F0F -dialog_connection_wizard_final_label_default_schema_tooltip = \u5C06\u88AB\u8BBE\u7F6E\u4E3A\u9ED8\u8BA4\u7684\u6A21\u5F0F\u6216\u7C7B\u522B\u7684\u540D\u79F0 -dialog_connection_wizard_final_label_edit = \u7F16\u8F91 -dialog_connection_wizard_final_label_isolation_level = \u9694\u79BB\u7EA7\u522B -dialog_connection_wizard_final_label_isolation_level_tooltip = \u7F3A\u7701\u4E8B\u52A1\u9694\u79BB\u7EA7\u522B\u3002 -dialog_connection_wizard_final_label_keepalive = \u6301\u4E45\u8FDE\u63A5 -dialog_connection_wizard_final_label_keepalive_tooltip = \u6301\u4E45\u8FDE\u63A5\u7684\u65F6\u95F4\u957F\u5EA6(\u4EE5\u79D2\u8BA1). 0\u81F3\u4F1A\u5173\u95ED\u6301\u4E45\u8FDE\u63A5\u3002 -dialog_connection_wizard_final_label_shell_command = Shell \u547D\u4EE4 -dialog_connection_wizard_socksproxy_host = \u4E3B\u673A -dialog_connection_wizard_socksproxy_password = \u5BC6\u7801 -dialog_connection_wizard_socksproxy_port = \u7AEF\u53E3 -dialog_connection_wizard_socksproxy_username = \u7528\u6237\u540D -dialog_connection_wizard_start_connection_monitor_close = \u5173\u95ED\u8FDE\u63A5 -dialog_connection_wizard_start_connection_monitor_connected = \u5DF2\u8FDE\u63A5 ({0} ms) -dialog_connection_wizard_start_connection_monitor_start = \u83B7\u53D6\u8FDE\u63A5 -dialog_connection_wizard_start_connection_monitor_subtask_test = \u6D4B\u8BD5\u8FDE\u63A5 -dialog_connection_wizard_start_connection_monitor_success = \u6210\u529F -dialog_connection_wizard_start_connection_monitor_thread = \u6D4B\u8BD5\u6570\u636E\u6E90\u8FDE\u63A5 -dialog_connection_wizard_start_dialog_error_message = \u6570\u636E\u5E93\u8FDE\u63A5\u9519\u8BEF -dialog_connection_wizard_start_dialog_error_title = \u8FDE\u63A5\u9519\u8BEF -dialog_connection_wizard_start_dialog_interrupted_message = \u6D4B\u8BD5\u4E2D\u65AD -dialog_connection_wizard_start_dialog_interrupted_title = \u4E2D\u65AD -dialog_connection_wizard_title = \u7F16\u8F91\u8FDE\u63A5 -dialog_cursor_view_monitor_rows_fetched = \ \u83B7\u53D6\u7684\u884C -dialog_data_format_profiles_button_delete_profile = \u5220\u9664\u914D\u7F6E\u6587\u4EF6 -dialog_data_format_profiles_button_new_profile = \u65B0\u5EFA\u914D\u7F6E\u6587\u4EF6 -dialog_data_format_profiles_confirm_delete_message = \u786E\u5B9A\u5417\uFF1F -dialog_data_format_profiles_confirm_delete_title = \u5220\u9664\u914D\u7F6E\u6587\u4EF6 -dialog_data_format_profiles_dialog_name_chooser_title = \u914D\u7F6E\u6587\u6863\u540D\u79F0 -dialog_data_format_profiles_error_message = \u914D\u7F6E\u6587\u4EF6 "{0}" \u5DF2\u7ECF\u5B58\u5728 -dialog_data_format_profiles_error_title = \u521B\u5EFA\u914D\u7F6E\u6587\u4EF6 -dialog_data_format_profiles_title = \u7BA1\u7406\u6570\u636E\u683C\u5F0F\u914D\u7F6E\u6587\u4EF6 -dialog_data_label_value = \u503C\uFF1A -dialog_driver_manager_button_delete = &\u5220\u9664 -dialog_driver_manager_button_edit = &\u7F16\u8F91 ... -dialog_driver_manager_button_new = &\u65B0\u5EFA -dialog_driver_manager_label_unavailable = - \u4E0D\u53EF\u83B7\u5F97 -dialog_driver_manager_label_user_defined = - \u7528\u6237\u5B9A\u4E49\u7684 -dialog_driver_manager_message_cant_delete_text = \u4F60\u65E0\u6CD5\u5220\u9664\u9A71\u52A8"{0}"\u56E0\u4E3A\u5B83\u6B63\u88AB\u4EE5\u4E0B\u6570\u636E\u6E90\u4F7F\u7528\uFF1A -dialog_driver_manager_message_cant_delete_title = \u65E0\u6CD5\u5220\u9664\u9A71\u52A8 -dialog_driver_manager_message_delete_driver_text = \u4F60\u786E\u5B9A\u4F60\u60F3\u8981\u5220\u9664\u9A71\u52A8\u7A0B\u5E8F '' -dialog_driver_manager_message_delete_driver_title = \u5220\u9664\u9A71\u52A8 -dialog_driver_manager_title = \u9A71\u52A8\u7BA1\u7406\u5668 -dialog_edit_driver_button_add_artifact = \u6DFB\u52A0\u5DE5\u4EF6 -dialog_edit_driver_button_add_file = \u6DFB\u52A0\u6587\u4EF6 -dialog_edit_driver_button_add_folder = \u6DFB\u52A0\u6587\u4EF6\u5939 -dialog_edit_driver_button_bind_class = \u627E\u5230\u7C7B -dialog_edit_driver_button_classpath = \u7C7B\u8DEF\u5F84 -dialog_edit_driver_button_delete = \u5220\u9664 -dialog_edit_driver_button_details = \u4FE1\u606F -dialog_edit_driver_button_down = \u5411\u4E0B -dialog_edit_driver_button_reset_to_defaults = \u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u72B6\u6001 -dialog_edit_driver_button_up = \u5411\u4E0A -dialog_edit_driver_button_update_version = \u4E0B\u8F7D/\u66F4\u65B0 -dialog_edit_driver_dialog_driver_error_message = \u65E0\u6CD5\u52A0\u8F7D\u9A71\u52A8 -dialog_edit_driver_dialog_driver_error_title = \u9A71\u52A8\u9519\u8BEF -dialog_edit_driver_dialog_open_driver_directory = \u6253\u5F00\u9A71\u52A8\u76EE\u5F55 -dialog_edit_driver_dialog_open_driver_library = \u6253\u5F00\u9A71\u52A8\u5E93 -dialog_edit_driver_label_category = \u76EE\u5F55 -dialog_edit_driver_label_class_name = \u7C7B\u540D -dialog_edit_driver_label_default_port = \u9ED8\u8BA4\u7AEF\u53E3 -dialog_edit_driver_label_description = \u63CF\u8FF0 -dialog_edit_driver_label_driver_class = \u9A71\u52A8\u7C7B -dialog_edit_driver_label_driver_name = \u9A71\u52A8\u540D\u79F0 -dialog_edit_driver_label_sample_url = URL \u6A21\u677F -dialog_edit_driver_label_website = \u7F51\u5740 -dialog_edit_driver_tab_name_advanced_parameters = \u9AD8\u7EA7\u53C2\u6570 -dialog_edit_driver_tab_name_client_homes = \u672C\u5730\u5BA2\u6237\u7AEF -dialog_edit_driver_tab_name_connection_properties = \u8FDE\u63A5\u5C5E\u6027 -dialog_edit_driver_tab_name_driver_libraries = \u5E93 -dialog_edit_driver_tab_name_license = \u8BB8\u53EF -dialog_edit_driver_tab_tooltip_advanced_parameters = \u9AD8\u7EA7\u9A71\u52A8\u53C2\u6570 -dialog_edit_driver_tab_tooltip_connection_properties = \u9ED8\u8BA4\u8FDE\u63A5\u5C5E\u6027 -dialog_edit_driver_tab_tooltip_driver_libraries = \u989D\u5916\u7684\u9A71\u52A8\u5E93 -dialog_edit_driver_tab_tooltip_license = \u9A71\u52A8\u8BB8\u53EF -dialog_edit_driver_text_driver_license = \u9A71\u52A8\u8BB8\u53EF -dialog_edit_driver_title_create_driver = \u521B\u5EFA\u65B0\u9A71\u52A8 -dialog_edit_driver_title_edit_driver = \u7F16\u8F91\u9A71\u52A8 '' -dialog_filter_button_add = \u6DFB\u52A0 -dialog_filter_button_clear = \u6E05\u7406 -dialog_filter_button_enable = \u542F\u7528 -dialog_filter_button_remove = \u79FB\u9664 -dialog_filter_global_link = \u663E\u793A\u5168\u5C40\u8FC7\u6EE4\u5668 -dialog_filter_list_exclude = \u6392\u9664 -dialog_filter_list_include = \u5305\u62EC -dialog_filter_table_column_value = \u503C -dialog_filter_title = \u8FC7\u6EE4\uFF1A{0} -dialog_find_replace_1_replacement = 1 \u66FF\u6362 -dialog_find_replace_backward = \u5411\u540E -dialog_find_replace_cancel = \u53D6\u6D88 -dialog_find_replace_close = \u5173\u95ED -dialog_find_replace_copy = \u62F7\u8D1D -dialog_find_replace_direction = \u65B9\u5411 -dialog_find_replace_error_ = \u9519\u8BEF\uFF1A -dialog_find_replace_find = \u627E\u5230 -dialog_find_replace_find_literal = \u67E5\u627E\u6587\u5B57 -dialog_find_replace_find_replace = \u67E5\u627E/\u66FF\u6362 -dialog_find_replace_forward = \u5411\u524D -dialog_find_replace_found_literal = \u627E\u5230\u6587\u5B57 -dialog_find_replace_goto_line = \u8DF3\u8F6C\u5230\u884C -dialog_find_replace_ignore_case = \u5FFD\u7565\u5927\u5C0F\u5199 -dialog_find_replace_literal_not_found = \u6587\u5B57\u672A\u627E\u5230 -dialog_find_replace_new_find = \u65B0\u627E\u5230 -dialog_find_replace_paste = \u7C98\u8D34 -dialog_find_replace_redo = \u91CD\u505A -dialog_find_replace_replace = \u66FF\u6362 -dialog_find_replace_replace_all = \u66FF\u6362\u5168\u90E8 -dialog_find_replace_replace_find = \u66FF\u6362/\u627E\u5230 -dialog_find_replace_replace_with = \u66FF\u6362\u4E3A -dialog_find_replace_replacements = \ \u66FF\u6362 -dialog_find_replace_searching = \u641C\u7D22 -dialog_find_replace_stop = \u505C\u6B62 -dialog_find_replace_text = \u6587\u672C -dialog_find_replace_undo = \u64A4\u9500 -dialog_go_to_button_close = \u5173\u95ED -dialog_go_to_button_go_to_location = \u8DF3\u8F6C\u5230\u4F4D\u7F6E -dialog_go_to_button_show_location = \u663E\u793A\u4F4D\u7F6E -dialog_go_to_label_enter_location_number = \u8F93\u5165\u4F4D\u7F6E\u53F7\uFF0C 0 \u5230 {0} (0x0 \u5230 0x{1}) -dialog_go_to_label_not_number = \u975E\u6570\u5B57 -dialog_go_to_label_out_of_range = \u4F4D\u7F6E\u7684\u8303\u56F4 -dialog_go_to_title = \u8DF3\u8F6C\u5230\u4F4D\u7F6E -dialog_migrate_wizard_choose_driver_description = \u4E3A\u9009\u5B9A\u7684\u8FDE\u63A5\u9009\u62E9\u76EE\u6807\u9A71\u52A8\u7A0B\u5E8F\u3002 -dialog_migrate_wizard_choose_driver_title = \u9009\u62E9\u76EE\u6807\u9A71\u52A8\u7A0B\u5E8F -dialog_migrate_wizard_name = \u8FDE\u63A5 -dialog_migrate_wizard_start_description = \u3002\u9009\u62E9\u60A8\u5E0C\u671B\u8FC1\u79FB\u5230\u53E6\u4E00\u4E2A\u9A71\u52A8\u7A0B\u5E8F\u7684\u8FDE\u63A5 -dialog_migrate_wizard_start_title = \u9009\u62E9\u8981\u8FC1\u79FB\u7684\u8FDE\u63A5 -dialog_migrate_wizard_window_title = \u8FC1\u79FB\u8FDE\u63A5\u5230\u53E6\u4E00\u4E2A\u9A71\u52A8\u7A0B\u5E8F -#page select conn -dialog_new_connection_wizard_monitor_load_data_sources = \u52A0\u8F7D\u6570\u636E\u6E90 -dialog_new_connection_wizard_start_description = \u521B\u5EFA\u65B0\u8FDE\u63A5. \u5982\u679C\u5217\u8868\u4E2D\u6CA1\u6709\u60A8\u9700\u8981\u7684\u6570\u636E\u5E93\n\u90A3\u4E48\u60A8\u53EF\u4EE5\u5728\u9A71\u52A8\u7BA1\u7406\u5668\u4E2D\u521B\u5EFA\u65B0\u7684\u6570\u636E\u5E93\u8FDE\u63A5\u3002 -dialog_new_connection_wizard_start_title = \u9009\u62E9\u65B0\u8FDE\u63A5\u7C7B\u578B -dialog_new_connection_wizard_title = \u521B\u5EFA\u65B0\u8FDE\u63A5 -dialog_project_create_wizard_error_already_exists = \u9879\u76EE "{0}" \u5DF2\u7ECF\u5B58\u5728 -dialog_project_create_wizard_error_cannot_create = \u521B\u5EFA\u9519\u8BEF -dialog_project_create_wizard_error_cannot_create_message = \u65E0\u6CD5\u521B\u5EFA\u9879\u76EE -dialog_project_create_wizard_title = \u9879\u76EE\u521B\u5EFA\u5411\u5BFC -dialog_project_export_wizard_main_page = \u5BFC\u51FA\u9879\u76EE -dialog_project_export_wizard_monitor_collect_info = \u6536\u96C6\u9879\u76EE\u4FE1\u606F -dialog_project_export_wizard_monitor_export_driver_info = \u5BFC\u51FA\u9A71\u52A8\u4FE1\u606F -dialog_project_export_wizard_monitor_export_libraries = \u5BFC\u51FA\u9A71\u52A8\u5E93 -dialog_project_export_wizard_monitor_export_project = \u5BFC\u51FA\u9879\u76EE "{0}" -dialog_project_export_wizard_page_checkbox_overwrite_files = \u8986\u76D6\u73B0\u6709\u7684\u6587\u4EF6 -dialog_project_export_wizard_page_dialog_choose_export_dir_message = \u9009\u62E9\u76EE\u5F55\u6765\u653E\u7F6E\u5BFC\u51FA\u7684\u6587\u4EF6 -dialog_project_export_wizard_page_dialog_choose_export_dir_text = \u5BFC\u51FA\u76EE\u5F55 -dialog_project_export_wizard_page_label_directory = \u6587\u4EF6\u76EE\u5F55 -dialog_project_export_wizard_page_message_check_script = \u68C0\u67E5\u811A\u672C\u6765\u5BFC\u51FA -dialog_project_export_wizard_page_message_configure_settings = \u914D\u7F6E\u811A\u672C\u5BFC\u51FA\u8BBE\u7F6E\u3002 -dialog_project_export_wizard_page_message_no_output_dir = \u8F93\u51FA\u7684\u6587\u4EF6\u76EE\u5F55\u672A\u6307\u5B9A\u3002 -dialog_project_export_wizard_page_title = \u5BFC\u51FA\u811A\u672C -dialog_project_export_wizard_start_archive_name_prefix = \u5168\u90E8 -dialog_project_export_wizard_start_checkbox_libraries = \u5BFC\u51FA\u9A71\u52A8\u5E93 -dialog_project_export_wizard_start_dialog_directory_message = \u9009\u62E9\u76EE\u5F55\u6765\u653E\u7F6E\u5BFC\u51FA\u7684\u6587\u4EF6 -dialog_project_export_wizard_start_dialog_directory_text = \u5BFC\u51FA\u6587\u4EF6\u76EE\u5F55 -dialog_project_export_wizard_start_label_directory = \u6587\u4EF6\u76EE\u5F55 -dialog_project_export_wizard_start_label_output_file = \u8F93\u51FA\u6587\u4EF6 -dialog_project_export_wizard_start_message_choose_project = \u9009\u62E9\u4E00\u4E2A\u9879\u76EE\u6765\u5BFC\u51FA\u3002 -dialog_project_export_wizard_start_message_configure_settings = \u914D\u7F6E\u9879\u76EE\u5BFC\u51FA\u8BBE\u7F6E -dialog_project_export_wizard_start_message_empty_output_directory = \u8F93\u51FA\u7684\u6587\u4EF6\u76EE\u5F55\u672A\u6307\u5B9A\u3002 -dialog_project_export_wizard_start_title = \u5BFC\u51FA\u9879\u76EE -dialog_project_export_wizard_window_title = \u9879\u76EE\u5BFC\u51FA\u5411\u5BFC -dialog_project_import_wizard_file_checkbox_import_libraries = \u5BFC\u5165\u9A71\u52A8\u5E93 -dialog_project_import_wizard_file_column_source_name = \u8FDC\u540D\u79F0 -dialog_project_import_wizard_file_column_target_name = \u76EE\u6807\u540D\u79F0 -dialog_project_import_wizard_file_description = \u914D\u7F6E\u9879\u76EE\u5BFC\u5165\u8BBE\u7F6E\u3002 -dialog_project_import_wizard_file_dialog_export_archive_text = \u6253\u5F00\u5BFC\u51FA\u5B58\u6863 -dialog_project_import_wizard_file_group_input = \u8F93\u5165 -dialog_project_import_wizard_file_group_projects = \u9879\u76EE -dialog_project_import_wizard_file_label_file = \u6587\u4EF6 -dialog_project_import_wizard_file_message_cannt_find_projects = \u65E0\u6CD5\u5728\u5143\u6587\u4EF6\u4E2D\u627E\u5230\u9879\u76EE -dialog_project_import_wizard_file_message_choose_project = \u9009\u62E9\u9879\u76EE\u5BFC\u5165 -dialog_project_import_wizard_file_message_project_exists = \u9879\u76EE "{0}" \u5DF2\u5B58\u5728 -dialog_project_import_wizard_file_message_ready = \u51C6\u5907\u5BFC\u5165\u9879\u76EE -dialog_project_import_wizard_file_name = \u5BFC\u5165\u9879\u76EE -dialog_project_import_wizard_file_title = \u5BFC\u5165\u9879\u76EE -dialog_project_import_wizard_message_success_import_message = \u9879\u76EE\u5BFC\u5165\u6210\u529F -dialog_project_import_wizard_message_success_import_title = \u9879\u76EE\u5BFC\u5165 -dialog_project_import_wizard_monitor_import_drivers = \u5BFC\u5165\u9879\u76EE -dialog_project_import_wizard_monitor_import_project = \u5BFC\u5165\u9879\u76EE -dialog_project_import_wizard_monitor_import_projects = \u5BFC\u5165\u9879\u76EE -dialog_project_import_wizard_monitor_load_driver = \u52A0\u8F7D\u9A71\u52A8 -dialog_project_import_wizard_monitor_load_libraries = \u52A0\u8F7D\u9A71\u52A8\u7A0B\u5E8F\u5E93 -dialog_project_import_wizard_title = \u9879\u76EE\u5BFC\u5165\u5411\u5BFC -dialog_scripts_export_wizard_page_name = \u5BFC\u5165\u811A\u672C -dialog_scripts_export_wizard_window_title = \u811A\u672C\u5BFC\u5165\u5411\u5BFC -dialog_scripts_import_wizard_description = \u914D\u7F6E\u811A\u672C\u5BFC\u5165\u8BBE\u7F6E -dialog_scripts_import_wizard_dialog_choose_dir_message = \u9009\u62E9\u811A\u672C\u8D44\u6E90\u76EE\u5F55 -dialog_scripts_import_wizard_dialog_choose_dir_text = \u8D44\u6E90\u76EE\u5F55 -dialog_scripts_import_wizard_dialog_error_text = \u65E0\u6CD5\u5BFC\u5165\u811A\u672C -dialog_scripts_import_wizard_dialog_error_title = \u5BFC\u5165\u9519\u8BEF -dialog_scripts_import_wizard_dialog_message_no_scripts = \u627E\u4E0D\u5230\u811A\u672C -dialog_scripts_import_wizard_dialog_message_success_imported = \u811A\u672C\u5BFC\u5165\u6210\u529F -dialog_scripts_import_wizard_dialog_message_title = \u811A\u672C\u5BFC\u5165 -dialog_scripts_import_wizard_label_default_connection = \u9ED8\u8BA4\u8FDE\u63A5 -dialog_scripts_import_wizard_label_file_mask = \u6587\u4EF6\u63A9\u7801 -dialog_scripts_import_wizard_label_input_directory = \u8F93\u5165\u76EE\u5F55 -dialog_scripts_import_wizard_label_root_folder = \u811A\u672C\u6839\u6587\u4EF6\u5939 -dialog_scripts_import_wizard_monitor_import_scripts = \u5BFC\u5165\u811A\u672C -dialog_scripts_import_wizard_name = \u5BFC\u5165\u811A\u672C -dialog_scripts_import_wizard_title = \u5BFC\u5165\u811A\u672C -dialog_scripts_import_wizard_window_title = \u811A\u672C\u5BFC\u5165\u5411\u5BFC -dialog_search_objects_button_close = \u5173\u95ED -dialog_search_objects_button_search = \u641C\u7D22 -dialog_search_objects_case_sensitive = \u533A\u5206\u5927\u5C0F\u5199 -dialog_search_objects_column_description = \u63CF\u8FF0 -dialog_search_objects_column_type = \u7C7B\u578B -dialog_search_objects_combo_contains = \u5305\u542B -dialog_search_objects_combo_like = \u50CF -dialog_search_objects_combo_starts_with = \u5F00\u59CB\u4E8E -dialog_search_objects_group_object_types = \u5BF9\u8C61\u7C7B\u578B -dialog_search_objects_group_objects_source = \u5BF9\u8C61\u8D44\u6E90 -dialog_search_objects_item_list_info = \u4F60\u5FC5\u987B\u8BBE\u7F6E\u641C\u7D22\u67E5\u8BE2 -dialog_search_objects_label_name_match = \u540D\u79F0\u5339\u914D -dialog_search_objects_label_object_name = \u9879\u76EE\u540D\u79F0 -dialog_search_objects_message_no_objects_like_ = \u6CA1\u6709\u9879\u76EE\u50CF "{0}" \u5728 "{1}" -dialog_search_objects_message_objects_found = \ \u627E\u5230\u7684\u9879\u76EE -dialog_search_objects_spinner_max_results = \u6700\u5927\u7ED3\u679C -dialog_search_objects_title = \u67E5\u627E\u6570\u636E\u5E93\u5BF9\u8C61 -dialog_select_datasource_error_message = \u9996\u5148\u521B\u5EFA\u65B0\u6570\u636E\u6E90\u3002 -dialog_select_datasource_error_title = \u6570\u636E\u5E93\u4E0D\u5B58\u5728 -dialog_select_datasource_title = \u9009\u62E9\u6570\u636E\u6E90 -dialog_setting_connection_database = \u6570\u636E\u5E93 -dialog_setting_connection_driver_properties_description = JDBC \u9A71\u52A8\u5C5E\u6027 -dialog_setting_connection_driver_properties_title = \u9A71\u52A8\u5C5E\u6027 -dialog_setting_connection_general = \u5E38\u89C4 -dialog_setting_connection_host = \u4E3B\u673A -dialog_setting_connection_localClient = \u672C\u5730\u5BA2\u6237\u7AEF -dialog_setting_connection_nondefaultDatabase = \u663E\u793A\u975E\u7F3A\u7701\u7684\u6570\u636E\u5E93 -dialog_setting_connection_password = \u5BC6\u7801 -dialog_setting_connection_port = \u7AEF\u53E3 -dialog_setting_connection_settings = \u8BBE\u7F6E -dialog_setting_connection_user = \u7528\u6237 -#page conn setting -dialog_setting_connection_wizard_title = \u8FDE\u63A5\u8BBE\u7F6E -dialog_struct_columns_select_column = \u5B57\u6BB5 -dialog_struct_columns_select_error_load_columns_message = \u9519\u8BEF\u52A0\u8F7D\u8868\u5B57\u6BB5 -dialog_struct_columns_select_error_load_columns_title = \u52A0\u8F7D\u5B57\u6BB5 -dialog_struct_columns_select_group_columns = \u5B57\u6BB5 -dialog_struct_columns_select_label_table = \u8868 -dialog_struct_columns_select_title = {0} \u4E3A\u8868 "{1}" -dialog_struct_create_entity_group_name = \u540D\u79F0 -dialog_struct_create_entity_title = \u521B\u5EFA\u65B0\u7684 -dialog_struct_create_procedure_combo_type = \u7C7B\u578B -dialog_struct_create_procedure_label_name = \u540D\u79F0 -dialog_struct_create_procedure_title = \u521B\u5EFA\u65B0\u7684\u8FC7\u7A0B/\u51FD\u6570 -dialog_struct_edit_constrain_label_type = \u7C7B\u578B -dialog_struct_edit_fk_column_col_type = \u5B57\u6BB5\u7C7B\u578B -dialog_struct_edit_fk_column_column = \u5B57\u6BB5 -dialog_struct_edit_fk_column_ref_col = \u53C2\u7167\u5B57\u6BB5 -dialog_struct_edit_fk_column_ref_col_type = \u53C2\u7167\u5B57\u6BB5\u7C7B\u578B -dialog_struct_edit_fk_combo_on_delete = \u5728\u5220\u9664\u65F6 -dialog_struct_edit_fk_combo_on_update = \u5728\u66F4\u65B0\u65F6 -dialog_struct_edit_fk_combo_unik = \u552F\u4E00\u952E -dialog_struct_edit_fk_error_load_constraint_columns_message = \u65E0\u6CD5\u52A0\u8F7D\u8868\u7EA6\u675F\u5B57\u6BB5 -dialog_struct_edit_fk_error_load_constraint_columns_title = \u52A0\u8F7D\u7EA6\u675F\u5B57\u6BB5 -dialog_struct_edit_fk_error_load_constraints_message = \u65E0\u6CD5\u52A0\u8F7D\u8868\u7EA6\u675F -dialog_struct_edit_fk_error_load_constraints_title = \u52A0\u8F7D\u7EA6\u675F -dialog_struct_edit_fk_label_columns = \u5B57\u6BB5 -dialog_struct_edit_fk_label_ref_table = \u53C2\u7167\u8868 -dialog_struct_edit_fk_label_table = \u8868 -dialog_struct_edit_fk_title = {0} \u4E3A\u8868 "{1}" -dialog_struct_edit_index_label_type = \u7C7B\u578B -dialog_tunnel_checkbox_use_handler = \u4F7F\u7528 {0} -dialog_tunnel_title = \u914D\u7F6E\u7F51\u7EDC\u5904\u7406\u5668\u548C\u901A\u9053 -dialog_value_view_button_cancel = &\u53D6\u6D88 -dialog_value_view_button_sat_null = \u8BBE\u7F6E\u4E3A &NULL -dialog_value_view_button_save = &\u4FDD\u5B58 -dialog_value_view_column_description = \u63CF\u8FF0 -dialog_value_view_column_value = \u503C -dialog_value_view_context_name = \u9009\u62E9 "{0}" \u679A\u4E3E\u503C -dialog_value_view_dialog_error_updating_message = \u65E0\u6CD5\u66F4\u65B0\u5B57\u6BB5\u503C -dialog_value_view_dialog_error_updating_title = \u9519\u8BEF\u66F4\u65B0\u5B57\u6BB5 -dialog_value_view_job_selector_name = \u9009\u62E9 -dialog_value_view_label_dictionary = \u5B57\u5178 ({0}): -dialog_version_update_available_new_version = DBeaver \u7684\u65B0\u7248\u672C\u53EF\u4EE5\u83B7\u53D6\u4E86\u3002 -dialog_version_update_button_more_info = \u66F4\u591A\u4FE1\u606F... -dialog_version_update_current_version = \u5F53\u524D\u7248\u672C -dialog_version_update_n_a = \ \u4E0D\u9002\u7528 -dialog_version_update_new_version = \u65B0\u7248\u672C -dialog_version_update_no_new_version = \u6CA1\u6709\u65B0\u7248\u672C\u7684 DBeaver \u3002 -dialog_version_update_notes = \u5907\u6CE8 -dialog_version_update_press_more_info_ = \u70B9\u51FB\u201C\u66F4\u591A\u4FE1\u606F\u201D\u6253\u5F00\u4E00\u4E2A\u53EF\u4EE5\u4E0B\u8F7D DBeaver \u7684\u7F51\u9875\u3002 -dialog_version_update_title = \u7248\u672C\u66F4\u65B0 -dialog_view_classpath_title = \u7CFB\u7EDF\u7C7B\u8DEF\u5F84 -dialog_view_sql_button_copy = \u62F7\u8D1D -dialog_view_sql_button_persist = \u4FDD\u7559 - - -editor_binary_hex_default_font = \u9ED8\u8BA4\u5B57\u4F53 -editor_binary_hex_font_style_bold = \u7C97\u4F53 -editor_binary_hex_font_style_bold_italic = \u7C97\u659C\u4F53 -editor_binary_hex_font_style_italic = \u659C\u4F53 -editor_binary_hex_font_style_regular = \u666E\u901A -editor_binary_hex_froup_font_selection = \u9009\u62E9\u5B57\u4F53 -editor_binary_hex_label_available_fix_width_fonts = \u56FA\u5B9A\u5B57\u4F53\u5BBD\u5EA6 -editor_binary_hex_label_name = \u540D\u79F0 -editor_binary_hex_label_size = \u5927\u5C0F -editor_binary_hex_label_style = \u7C7B\u578B -editor_binary_hex_sample_text = ca fe ba be 00 00 01 2d \u5B57\u4F53\u6D4B\u8BD5 -editor_binary_hex_status_line_offset = \u504F\u79FB\uFF1A -editor_binary_hex_status_line_selection = \u9009\u62E9\uFF1A -editor_binary_hex_status_line_text_insert = \u63D2\u5165 -editor_binary_hex_status_line_text_ovewrite = \u91CD\u5199 -editor_binary_hex_status_line_value = \u503C\uFF1A -editor_sql_preference = \u504F\u597D... -editors_entity_dialog_persist_title = \u4FDD\u5B58 -editors_entity_dialog_preview_title = \u4FDD\u5B58 -editors_entity_monitor_add_folder = \u6DFB\u52A0\u6587\u4EF6\u5939 " -editors_entity_monitor_add_node = \u6DFB\u52A0\u8282\u70B9 " -editors_entity_monitor_preview_changes = \u4FDD\u5B58 -editors_entity_properties_text = \u5C5E\u6027 -editors_entity_properties_tooltip_suffix = \ \u5C5E\u6027 -editors_sql_data_grid = \u6570\u636E\u8868 -editors_sql_description = SQL\u7F16\u8F91\u5668 -editors_sql_error_cant_execute_query_message = \u65E0\u6CD5\u5728\u540C\u4E00\u4E2A\u7F16\u8F91\u5668\u540C\u65F6\u6267\u884C\u591A\u4E2A\u67E5\u8BE2 -editors_sql_error_cant_execute_query_title = \u65E0\u6CD5\u6267\u884C\u67E5\u8BE2 -editors_sql_error_cant_obtain_session = \u65E0\u6CD5\u83B7\u53D6\u4F1A\u8BDD(session) -editors_sql_error_execution_plan_message = \u65E0\u6CD5\u89E3\u6790\u6267\u884C\u8BA1\u5212 -editors_sql_error_execution_plan_title = \u6267\u884C\u8BA1\u5212 -editors_sql_execution_log = \u6267\u884C\u65E5\u5FD7 -editors_sql_explain_plan = \u6267\u884C\u8BA1\u5212 -editors_sql_job_execute_query = \u6267\u884C\u67E5\u8BE2 -editors_sql_job_execute_script = \u6267\u884C\u811A\u672C -editors_sql_output = \u8F93\u51FA -editors_sql_save_on_close_message = \u65E0\u6CD5\u5173\u95ED\u7F16\u8F91\u5668:\u5F53\u524D\u67E5\u8BE2\u6B63\u5728\u6267\u884C -editors_sql_save_on_close_text = \u6B63\u5728\u6267\u884C\u67E5\u8BE2 -editors_sql_status_cant_obtain_document = \u65E0\u6CD5\u83B7\u53D6\u7F16\u8F91\u5668\u6587\u6863 -editors_sql_status_empty_query_string = \u67E5\u8BE2\u8BED\u53E5\u4E3A\u7A7A -editors_sql_status_not_connected_to_database = \u6CA1\u6709\u8FDE\u63A5\u5230\u6570\u636E\u5E93 -editors_sql_status_rows_updated = \u66F4\u65B0\u884C -editors_sql_status_statement_executed = \u811A\u672C\u5DF2\u6267\u884C(statement) -editors_sql_status_statement_executed_no_rows_updated = \u811A\u672C\u5DF2\u6267\u884C(statement) \u6CA1\u6709\u66F4\u65B0\u4EFB\u4F55\u884C -editors_sql_staus_connected_to = \u8FDE\u63A5\u5230 '' - - -model_connection_events_event_after_connect = \u8FDE\u63A5\u4E4B\u540E -model_connection_events_event_after_disconnect = \u65AD\u5F00\u8FDE\u63A5\u4E4B\u540E -model_connection_events_event_before_connect = \u8FDE\u63A5\u4E4B\u524D -model_connection_events_event_before_disconnect = \u65AD\u5F00\u8FDE\u63A5\u4E4B\u524D -model_html_read_database_meta_data = \u8BFB\u53D6\u6570\u636E\u5E93\u5143\u6570\u636E -model_jdbc_bad_content_value_ = \u65E0\u6548\u5185\u5BB9: -model_jdbc_content_length = \u5217\u957F\u5EA6 -model_jdbc_content_type = \u5185\u5BB9\u7C7B\u578B -model_jdbc_could_not_save_content = \u65E0\u6CD5\u4FDD\u5B58\u5185\u5BB9 -model_jdbc_could_not_save_content_to_file_ = \u65E0\u6CD5\u5C06\u8FDE\u63A5\u4FDD\u5B58\u81F3\u6587\u4EF6 " -model_jdbc_load_from_file_ = \u4ECE\u6587\u4EF6\u4E2D\u8F7D\u5165 ... -model_jdbc_save_to_file_ = \u4FDD\u5B58\u81F3\u6587\u4EF6 ... -model_jdbc_set_to_current_time = \u8BBE\u7F6E\u4E3A\u5F53\u524D\u65F6\u95F4 -model_jdbc_unsupported_content_value_type_ = \u4E0D\u652F\u6301\u7684\u5185\u5BB9\u7C7B\u578B -model_navigator_Connection = \u8FDE\u63A5 -model_navigator_Connections = \u8FDE\u63A5 -model_navigator_Description = \u63CF\u8FF0 -model_navigator_Model_root = \u6839\u6A21\u578B -model_navigator_Name = \u540D\u79F0 -model_navigator_Project = \u9879\u76EE -model_navigator_Root = \u6839 -model_navigator__connections = \ \u8FDE\u63A5 -model_navigator_load_ = \u8F7D\u5165 -model_navigator_load_items_ = \u8F7D\u5165\u9879 ... -model_navigator_resource_exception_already_exists = "{1}"\u4E2D\u5DF2\u7ECF\u5B58\u5728"{0}" -model_project_Script = \u811A\u672C -model_project_Scripts = \u811A\u672C -model_project_bookmarks_folder = \u4E66\u7B7E -model_project_cant_open_bookmark = \u65E0\u6CD5\u6253\u5F00\u4E66\u7B7E -model_project_open_bookmark = \u6253\u5F00\u4E66\u7B7E -model_ssh_configurator_checkbox_save_pass = \u4FDD\u5B58\u5BC6\u7801 -model_ssh_configurator_combo_auth_method = \u8BA4\u8BC1\u65B9\u6CD5 -model_ssh_configurator_combo_password = \u5BC6\u7801 -model_ssh_configurator_combo_pub_key = \u516C\u94A5 -model_ssh_configurator_dialog_choose_private_key = \u9009\u62E9\u79C1\u94A5\u6587\u4EF6 -model_ssh_configurator_label_host_ip = \u4E3B\u673A/IP -model_ssh_configurator_label_keep_alive = \u957F\u8FDE\u63A5\u65F6\u95F4\u95F4\u9694(ms) -model_ssh_configurator_label_passphrase = \u53E3\u4EE4 -model_ssh_configurator_label_password = \u5BC6\u7801 -model_ssh_configurator_label_port = \u7AEF\u53E3 -model_ssh_configurator_label_private_key = \u79C1\u94A5 -model_ssh_configurator_label_tunnel_timeout = \u901A\u9053\u8FDE\u63A5\u8D85\u65F6(ms) -model_ssh_configurator_label_user_name = \u7528\u6237\u540D\u79F0 - - -pref_page_confirmations_combo_always = \u603B\u662F -pref_page_confirmations_combo_never = \u4ECE\u4E0D -pref_page_confirmations_combo_prompt = \u63D0\u793A -pref_page_confirmations_group_general_actions = \u901A\u7528\u64CD\u4F5C -pref_page_confirmations_group_object_editor = \u5BF9\u8C61\u7F16\u8F91\u5668 -pref_page_content_cache_blob = \u7F13\u5B58BLOB\u503C -pref_page_content_cache_clob = \u7F13\u5B58CLOB\u503C -pref_page_content_editor_checkbox_commit_on_content_apply = \u5F53\u5E94\u7528\u5185\u5BB9\u65F6\u63D0\u4EA4\u4F1A\u8BDD -pref_page_content_editor_checkbox_commit_on_value_apply = \u5F53\u5E94\u7528\u7F16\u8F91\u65F6\u63D0\u4EA4\u4F1A\u8BDD -pref_page_content_editor_checkbox_edit_long_as_lobs = \u5C06 LONG \u5217 \u4F5C\u4E3A\u5927\u5BF9\u8C61( LOB)\u7F16\u8F91 -pref_page_content_editor_checkbox_keys_always_use_all_columns = \u59CB\u7EC8\u5C06\u6240\u6709\u8868\u5217\u4F5C\u4E3A\u952E -pref_page_content_editor_checkbox_new_rows_after = \u5728\u5F53\u524D\u884C\u4E4B\u540E\u63D2\u5165\u65B0\u7684\u884C -pref_page_content_editor_checkbox_refresh_after_update = \u5237\u65B0\u540E\u66F4\u65B0 -pref_page_content_editor_group_content = LOB -pref_page_content_editor_group_hex = \u4E8C\u8FDB\u5236\u7F16\u8F91\u5668 -pref_page_content_editor_group_keys = \u552F\u4E00\u952E -pref_page_content_editor_hex_encoding = \u5B57\u7B26\u4E32\u7F16\u7801 -pref_page_content_editor_label_max_text_length = \u6587\u672C\u7F16\u8F91\u5668\u7684\u6700\u5927\u6587\u672C\u957F\u5EA6 -pref_page_data_format_button_manage_profiles = \u7BA1\u7406\u914D\u7F6E -pref_page_data_format_group_format = \u683C\u5F0F\u5316 -pref_page_data_format_label_profile = \u914D\u7F6E -pref_page_data_format_label_sample = \u793A\u4F8B -pref_page_data_format_label_settingt = \u8BBE\u7F6E -pref_page_data_format_label_type = \u7C7B\u578B -pref_page_database_general_checkbox_case_sensitive_names = \u5728 DDL \u8BED\u53E5\u4E2D\u542F\u7528\u5927\u5C0F\u5199\u654F\u611F -pref_page_database_general_checkbox_keep_cursor = \u5728 SQL \u7F16\u8F91\u5668\u4E2D\u4FDD\u6301\u5149\u6807 -pref_page_database_general_checkbox_rollback_on_error = \u53D1\u751F\u9519\u8BEF\u65F6\u56DE\u6EDA -pref_page_database_general_checkbox_show_row_count = \u663E\u793A\u8868\u683C\u884C\u6570 -pref_page_database_general_group_metadata = \u5143\u6570\u636E -pref_page_database_general_group_navigator = \u5BFC\u822A\u5668 -pref_page_database_general_group_ordering = \u6392\u5E8F -pref_page_database_general_group_queries = \u67E5\u8BE2 -pref_page_database_general_group_transactions = \u4E8B\u52A1 -pref_page_database_general_label_cache_max_size = LOB\u7F13\u5B58\u6700\u5927\u5C3A\u5BF8 -pref_page_database_general_label_max_lob_length = \u5728\u5185\u5B58\u4E2D\u4FDD\u5B58\u7684 LOB \u7684\u6700\u5927\u957F\u5EA6 -pref_page_database_general_label_result_set_cancel_timeout = \u67E5\u8BE2\u53D6\u6D88\u8D85\u65F6 -pref_page_database_general_label_result_set_cancel_timeout_tip = \u67E5\u8BE2\u53D6\u6D88\u8D85\u65F6(ms)\u4E4B\u540E, DBeaver \u5C06\u505C\u6B62\u5728\u7528\u6237\u754C\u9762\u6267\u884C\u7684\u67E5\u8BE2 -pref_page_database_general_label_result_set_max_size = \u6700\u5927\u7ED3\u679C\u96C6\u6570 -pref_page_database_general_separate_meta_connection = \u4E3A\u5143\u6570\u636E\u6253\u5F00\u5355\u72EC\u7684\u8FDE\u63A5 -pref_page_database_resultsets_group_binary = \u4E8C\u8FDB\u5236\u6570\u636E -pref_page_database_resultsets_label_auto_fetch_segment = \u81EA\u52A8\u83B7\u53D6\u4E0B\u4E00\u6BB5 -pref_page_database_resultsets_label_binary_editor_type = \u4E8C\u8FDB\u5236\u7F16\u8F91\u5668\u5668 -pref_page_database_resultsets_label_binary_presentation = \u4E8C\u8FDB\u5236\u6570\u636E\u683C\u5F0F\u5316\u7A0B\u5E8F -pref_page_database_resultsets_label_binary_strings_max_length = \u4E8C\u8FDB\u5236\u4E32\u7684\u6700\u5927\u957F\u5EA6 -pref_page_database_resultsets_label_binary_use_strings = \u5C06\u4E8C\u8FDB\u5236\u6570\u636E\u663E\u793A\u4E3A\u5B57\u7B26\u4E32 -pref_page_database_resultsets_label_fetch_size = \u4F7F\u7528\u83B7\u53D6\u5927\u5C0F -pref_page_database_resultsets_label_read_metadata = \u8BFB\u53D6\u8868\u5143\u6570\u636E(\u552F\u4E00\u952E) -pref_page_database_resultsets_label_read_references = \u8BFB\u53D6\u8868\u5F15\u7528(\u5916\u952E) -pref_page_database_resultsets_label_server_side_order = \u670D\u52A1\u5668\u7AEF\u7ED3\u679C\u6392\u5E8F -pref_page_database_resultsets_label_use_sql = \u4F7F\u7528SQL\u6765\u9650\u5236\u83B7\u53D6\u5927\u5C0F -pref_page_drivers_group_location = \u9A71\u52A8\u4F4D\u7F6E -pref_page_query_manager_checkbox_ddl_executions = DDL \u6267\u884C -pref_page_query_manager_checkbox_metadata_read = \u8BFB\u53D6\u5143\u6570\u636E -pref_page_query_manager_checkbox_metadata_write = \u5143\u6570\u636E\u5199(DDL) -pref_page_query_manager_checkbox_other = \u5176\u5B83 -pref_page_query_manager_checkbox_queries = \u67E5\u8BE2 -pref_page_query_manager_checkbox_scripts = \u811A\u672C -pref_page_query_manager_checkbox_sessions = \u4F1A\u8BDD -pref_page_query_manager_checkbox_store_log_file = \u4FDD\u5B58\u65E5\u5FD7\u5230\u6587\u4EF6 -pref_page_query_manager_checkbox_transactions = \u4E8B\u52A1 -pref_page_query_manager_checkbox_user_filtered = \u8FC7\u6EE4\u7528\u6237\u67E5\u8BE2 -pref_page_query_manager_checkbox_user_queries = \u7528\u6237\u67E5\u8BE2 -pref_page_query_manager_checkbox_user_scripts = \u7528\u6237\u811A\u672C -pref_page_query_manager_checkbox_utility_functions = \u5B9E\u7528\u51FD\u6570 -pref_page_query_manager_group_object_types = \u5BF9\u8C61\u7C7B\u578B -pref_page_query_manager_group_query_types = \u67E5\u8BE2\u7C7B\u578B -pref_page_query_manager_group_settings = \u8BBE\u7F6E -pref_page_query_manager_group_storage = \u5B58\u50A8 -pref_page_query_manager_label_days_to_store_log = \u4FDD\u5B58\u65E5\u5FD7\u5929\u6570 -pref_page_query_manager_label_entries_per_page = \u6BCF\u9875\u6761\u6570 -pref_page_query_manager_logs_folder = \u65E5\u5FD7\u6587\u4EF6\u7684\u6587\u4EF6\u5939 -pref_page_results_group_advanced = \u9AD8\u7EA7 -pref_page_sql_editor_checkbox_blank_line_delimiter = \u7A7A\u767D\u884C\u662F\u8BED\u53E5\u5206\u9694\u7B26 -pref_page_sql_editor_checkbox_delete_empty_scripts = \u5728\u5173\u95ED\u65F6\u5220\u9664\u7A7A\u811A\u672C -pref_page_sql_editor_checkbox_enable_sql_anonymous_parameters = \u533F\u540DSQL\u53C2\u6570 -pref_page_sql_editor_checkbox_enable_sql_parameters = \u542F\u7528SQL\u53C2\u6570 -pref_page_sql_editor_checkbox_fetch_resultsets = \u83B7\u53D6\u7ED3\u679C\u96C6 -pref_page_sql_editor_checkbox_ignore_native_delimiter = \u5FFD\u7565\u672C\u5730\u5206\u9694\u7B26 -pref_page_sql_editor_checkbox_reset_cursor = \u6267\u884C\u5B8C\u540E\u91CD\u7F6E\u5149\u6807 -pref_page_sql_editor_combo_item_each_line_autocommit = \u6BCF\u884C\u4E4B\u540E (\u81EA\u52A8\u63D0\u4EA4) -pref_page_sql_editor_combo_item_each_spec_line = \u6BCF\u884C\u4E4B\u540E -pref_page_sql_editor_combo_item_ignore = \u5FFD\u7565 -pref_page_sql_editor_combo_item_no_commit = \u4E0D\u63D0\u4EA4 -pref_page_sql_editor_combo_item_script_end = \u5728\u811A\u672C\u672B\u7AEF -pref_page_sql_editor_combo_item_stop_commit = \u505C\u6B62 + \u63D0\u4EA4 -pref_page_sql_editor_combo_item_stop_rollback = \u505C\u6B62 + \u56DE\u6EDA -pref_page_sql_editor_group_common = \u5E38\u89C1 -pref_page_sql_editor_group_delimiters = \u5206\u9694\u7B26 -pref_page_sql_editor_group_misc = \u6742\u9879 -pref_page_sql_editor_group_parameters = \u53C2\u6570 -pref_page_sql_editor_group_resources = \u8D44\u6E90 -pref_page_sql_editor_group_scripts = \u811A\u672C -pref_page_sql_editor_label_commit_after_line = \u5355\u884C\u63D0\u4EA4 -pref_page_sql_editor_label_commit_type = \u63D0\u4EA4\u7C7B\u578B -pref_page_sql_editor_label_error_handling = \u5904\u7406\u9519\u8BEF -pref_page_sql_editor_label_invalidate_before_execute = \u6267\u884C\u524D\u7684\u65E0\u6548\u8FDE\u63A5 -pref_page_sql_editor_label_refresh_defaults_after_execute = SQL\u6267\u884C\u540E\u5237\u65B0\u6D3B\u52A8\u6A21\u5F0F -pref_page_sql_editor_label_sound_on_query_end = \u67E5\u8BE2\u5B8C\u6210\u540E\u53D1\u51FA\u54D4\u58F0 -pref_page_sql_editor_label_sql_timeout = \u6267\u884CSQL\u8BED\u53E5\u8D85\u65F6 -pref_page_sql_editor_text_anonymous_parameter_mark = \u533F\u540D\u53C2\u6570\u6807\u8BB0 -pref_page_sql_editor_text_named_parameter_prefix = \u547D\u540D\u53C2\u6570\u524D\u7F00 -pref_page_sql_editor_text_statement_delimiter = \u8BED\u53E5\u5206\u9694\u7B26 -pref_page_sql_editor_title_pattern = \u811A\u672C\u6807\u9898\u6A21\u5F0F -pref_page_target_button_use_datasource_settings = \u542F\u7528\u6570\u636E\u6E90 "{0}" \u8BBE\u7F6E -pref_page_target_link_show_datasource_settings = \u663E\u793A\u6570\u636E\u6E90\u8BBE\u7F6E -pref_page_target_link_show_global_settings = \u663E\u793A\u5168\u5C40\u8BBE\u7F6E -pref_page_ui_general_checkbox_automatic_updates = \u81EA\u52A8\u68C0\u67E5\u66F4\u65B0 -pref_page_ui_general_group_editors = \u7F16\u8F91\u5668 -pref_page_ui_general_group_general = \u4E00\u822C -pref_page_ui_general_group_http_proxy = HTTP \u4EE3\u7406 (\u7528\u4E8E\u4E0B\u8F7D) -pref_page_ui_general_keep_database_editors = \u91CD\u542F\u4FAF\u91CD\u65B0\u6253\u5F00\u6570\u636E\u5E93\u7F16\u8F91\u5668 -pref_page_ui_general_label_proxy_host = \u4EE3\u7406\u4E3B\u673A -pref_page_ui_general_label_proxy_password = \u5BC6\u7801 -pref_page_ui_general_label_proxy_user = \u7528\u6237\u540D -pref_page_ui_general_refresh_editor_on_open = \u5728\u7F16\u8F91\u5668\u6253\u5F00\u65F6\u5F3A\u5236\u5237\u65B0\u5BF9\u8C61 -pref_page_ui_general_spinner_proxy_port = \u4EE3\u7406\u65AD\u5F00 - -registry_entity_editor_descriptor_description = \u5BF9\u8C61\u5C5E\u6027 -registry_entity_editor_descriptor_name = \u5C5E\u6027 - -runtime_jobs_connect_name = \u8FDE\u63A5\u5230 "{0}" -runtime_jobs_connect_status_connected = \u5DF2\u8FDE\u63A5 -runtime_jobs_connect_status_error = \u8FDE\u63A5\u5230\u6570\u636E\u6E90 "{0}" \u65F6\u53D1\u751F\u9519\u8BEF -runtime_jobs_connect_thread_name = \u8FDE\u63A5\u5230\u6570\u636E\u6E90 "{0}" -runtime_jobs_disconnect_error = \u65AD\u5F00\u8FDE\u63A5 "{0}" \u65F6\u53D1\u751F\u9519\u8BEF -runtime_jobs_disconnect_name = \u65AD\u5F00\u8FDE\u63A5 {0} - -toolbar_datasource_selector_action_read_databases = \u8BFB\u53D6\u6570\u636E\u5E93\u5217\u8868 -toolbar_datasource_selector_all = \u5168\u90E8 -toolbar_datasource_selector_combo_database_tooltip = \u6FC0\u6D3B catalog/schema -toolbar_datasource_selector_combo_datasource_tooltip = \u6FC0\u6D3B\u6570\u636E\u6E90 -toolbar_datasource_selector_connected = \u5DF2\u8FDE\u63A5 -toolbar_datasource_selector_empty = <\u7A7A> -toolbar_datasource_selector_error_change_database_message = \u65E0\u6CD5\u6FC0\u6D3B\u6570\u636E\u5E93 -toolbar_datasource_selector_error_change_database_title = \u6FC0\u6D3B\u6570\u636E\u5E93 -toolbar_datasource_selector_error_database_change_not_supported = \u65E0\u6CD5\u6FC0\u6D3B\u6570\u636E\u5E93 -toolbar_datasource_selector_error_database_not_found = \u65E0\u6CD5\u627E\u5230\u6570\u636E\u5E93 "{0}" -toolbar_datasource_selector_resultset_segment_size = \u6700\u5927\u5316\u7ED3\u679C\u96C6 -#toolbar_editors_sql_run_explain_description = \u89E3\u6790\u6267\u884C\u8BA1\u5212 -toolbar_editors_sql_run_explain_name = \u89E3\u6790\u6267\u884C\u8BA1\u5212 -#toolbar_editors_sql_run_scriptNew_description = \u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6267\u884C\u811A\u672C\u7684SQL\u8BED\u53E5 -toolbar_editors_sql_run_scriptNew_name = \u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6267\u884C\u811A\u672C -#toolbar_editors_sql_run_script_description = \u6267\u884CSQL\u811A\u672C -toolbar_editors_sql_run_script_name = \u6267\u884CSQL\u811A\u672C -#toolbar_editors_sql_run_statementNew_description = \u5728\u65B0\u7684\u6807\u7B7E\u9875\u4E2D\u6267\u884CSQL\u8BED\u53E5 -toolbar_editors_sql_run_statementNew_name = \u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6267\u884CSQL\u8BED\u53E5 -#toolbar_editors_sql_run_statement_description = \u6267\u884CSQL\u8BED\u53E5 -toolbar_editors_sql_run_statement_name = \u6267\u884CSQL\u8BED\u53E5 - - -tools_script_execute_wizard_task_completed = {0} ({1}) \u5B8C\u6210 -tools_wizard_dialog_button_start = \u5F00\u59CB -tools_wizard_error_task_canceled = {0} "{1}" \u88AB\u53D6\u6D88 -tools_wizard_error_task_error_message = \u65E0\u6CD5\u6267\u884C -tools_wizard_error_task_error_title = {0} \u9519\u8BEF -tools_wizard_log_io_error = \u8BFB\u5199\u9519\u8BEF: {0} -tools_wizard_log_process_exit_code = \u8FDB\u7A0B\u7ED3\u675F\u4EE3\u7801: {0} -tools_wizard_message_client_home_not_found = \u6CA1\u6709\u627E\u5230\u5BA2\u6237\u7AEF\u5730\u5740 "{0}" -tools_wizard_message_no_client_home = \u8FD8\u6CA1\u6709\u8BBE\u7F6E\u8FDE\u63A5\u5730\u5740 -tools_wizard_page_log_task_finished = {0} \u5B8C\u6210\u4E8E {1} -tools_wizard_page_log_task_log_reader = {0} \u8BFB\u53D6\u65E5\u5FD7 -tools_wizard_page_log_task_progress = {0} \u8FDB\u5EA6 -tools_wizard_page_log_task_progress_log = {0} \u8FDB\u5EA6\u65E5\u5FD7 -tools_wizard_page_log_task_started_at = {0} \u5F00\u59CB\u4E8E {1} - - -ui_actions_context_search_name = \u5185\u5BB9\u641C\u7D22 -ui_actions_exit_emergency_question = \u60A8\u786E\u5B9A\u8981\u6267\u884C"\u7D27\u6025\u9000\u51FA"\u5417? \u672A\u4FDD\u5B58\u7684\u6570\u636E\u5C06\u4E22\u5931. -ui_common_button_help = \u5E2E\u52A9 -ui_properties_category_information = \u4FE1\u606F -ui_properties_category_structure = \u7ED3\u6784 -ui_properties_name = \u540D\u79F0 -ui_properties_task_add_folder = \u6DFB\u52A0\u6587\u4EF6\u5939 " -ui_properties_task_add_node = \u6DFB\u52A0\u5B50\u8282\u70B9 " -ui_properties_tree_viewer__to_default = \ \u8BBE\u4E3A\u9ED8\u8BA4 -ui_properties_tree_viewer_action_copy_value = \u590D\u5236\u503C -ui_properties_tree_viewer_action_reset_value = \u91CD\u7F6E\u503C -ui_properties_tree_viewer_category_general = \u4E00\u822C -ui_properties_value = \u503C - - -##Preference/Properties START -#ResultSetsMain -pref_page_database_resultsets_label_read_metadata_tip = \u7981\u6B62\u5143\u6570\u636E\u8BFB\u53D6.\u6267\u884C\u67E5\u8BE2\u66F4\u5FEB,\u4F46\u4F1A\u7981\u7528\u7ED3\u679C\u7F16\u8F91\u548C\u5916\u952E\u5BFC\u822A -pref_page_database_resultsets_label_read_references_tip = \u7981\u6B62\u5F15\u7528(\u5916\u952E)\u4FE1\u606F\u8BFB\u53D6 -pref_page_database_resultsets_label_fetch_size_tip = DBeaver \u4F7F\u7528\u663E\u5F0F\u7684JDBC\u83B7\u53D6\u5C3A\u5BF8\u8986\u76D6\u5417\uFF1F -#ResultSetsPresentation -pref_page_database_resultsets_group_common = \u5E38\u89C1 -pref_page_database_resultsets_label_switch_mode_on_rows = \u5728\u5355/\u591A\u884C\u4E0A\u5207\u6362\u5230\u8BB0\u5F55/\u8868\u683C\u6A21\u5F0F -pref_page_database_resultsets_label_show_column_description = \u5728\u6807\u9898\u680F\u4E2D\u663E\u793A\u5217\u63CF\u8FF0 -pref_page_database_resultsets_label_show_connection_name = \u5728\u72B6\u6001\u4E2D\u663E\u793A\u8FDE\u63A5\u540D -pref_page_database_resultsets_label_structurize_complex_types = \u590D\u6742\u7C7B\u578B\u7ED3\u6784\u5316 -pref_page_database_resultsets_label_structurize_complex_types_tip = \u5C06\u7ED3\u679C\u8868\u683C\u4E2D\u7684\u590D\u6742\u7C7B\u578B(\u6570\u7EC4\u3001\u7ED3\u6784\u3001\u6620\u5C04)\u53EF\u89C6\u5316\u4E3A\u5355\u72EC\u7684\u5217 -pref_page_database_resultsets_group_grid = \u8868\u683C -pref_page_database_resultsets_label_mark_odd_rows = \u6807\u8BB0\u5947\u6570\u6216\u5076\u6570\u884C -pref_page_database_resultsets_label_right_justify_numbers_and_date = \u6570\u5B57\u548C\u65F6\u95F4\u53F3\u5BF9\u9F50 -pref_page_database_resultsets_label_row_batch_size = \u884C\u6279\u91CF\u5927\u5C0F -pref_page_database_resultsets_label_show_cell_icons = \u663E\u793A\u5355\u5143\u683C\u56FE\u6807 -pref_page_database_resultsets_label_double_click_behavior = \u53CC\u51FB -pref_page_database_resultsets_group_plain_text = \u7EAF\u6587\u672C -pref_page_database_resultsets_lable_value_format = \u503C\u7684\u683C\u5F0F -pref_page_database_resultsets_label_maximum_column_length = \u5217\u7684\u6700\u5927\u957F\u5EA6 -pref_page_database_client_name_group = \u5BA2\u6237\u7AEF\u540D\u79F0 -pref_page_database_client_name_group_description = \u5BA2\u6237\u7AEF\u540D\u79F0\u88AB\u4F20\u9012\u5230\u6B63\u5728\u8FDE\u63A5\u7684\u6570\u636E\u5E93\u670D\u52A1\u5668,\u4EE5\u8BC6\u522B\u5BA2\u6237\u7AEF\u8FDE\u63A5.\n\u9ED8\u8BA4\u60C5\u51B5\u4E0B,\u5B83\u88AB\u8BBE\u7F6E\u4E3A\u4EA7\u54C1\u540D\u79F0+\u4EA7\u54C1\u7248\u672C.\u53EF\u4EE5\u5C06\u5176\u8BBE\u7F6E\u4E3A\u4EFB\u4F55\u81EA\u5B9A\u4E49\u503C. -pref_page_database_label_override_client_application_name = \u8986\u76D6\u5BA2\u6237\u7AEF\u540D\u79F0 -pref_page_database_label_client_application_name = \u5BA2\u6237\u7AEF\u540D\u79F0 -pref_page_sql_editor_group_connections = \u8FDE\u63A5 -pref_page_sql_editor_label_separate_connection_each_editor = \u6BCF\u4E2A\u7F16\u8F91\u5668\u5355\u72EC\u8FDB\u884C\u8FDE\u63A5 -pref_page_sql_editor_label_connect_on_editor_activation = \u6253\u5F00\u7F16\u8F91\u5668\u540E\u8FDE\u63A5 -pref_page_sql_editor_label_connect_on_query_execute = \u67E5\u8BE2\u8BED\u53E5\u6267\u884C\u65F6\u8FDE\u63A5 -pref_page_sql_editor_group_auto_save = \u81EA\u52A8\u4FDD\u5B58 -pref_page_sql_editor_label_auto_save_on_close = \u7F16\u8F91\u5668\u5173\u95ED\u65F6\u81EA\u52A8\u4FDD\u5B58\u811A\u672C\u6587\u4EF6 -pref_page_sql_editor_label_save_on_query_execute = \u67E5\u8BE2\u8BED\u53E5\u6267\u884C\u65F6\u81EA\u52A8\u4FDD\u5B58\u811A\u672C\u6587\u4EF6 -pref_page_sql_editor_checkbox_delete_empty_scripts = \u7F16\u8F91\u5668\u5173\u95ED\u65F6\u5220\u9664\u7A7A\u7684\u811A\u672C\u6587\u4EF6 -pref_page_sql_editor_checkbox_put_new_scripts = \u4E3A\u6BCF\u4E2A\u8FDE\u63A5\u521B\u5EFA\u811A\u672C\u6587\u4EF6\u5939 -pref_page_sql_editor_checkbox_create_script_folders = \u521B\u5EFA\u811A\u672C\u6587\u4EF6\u5939 -pref_page_sql_editor_title_pattern = \u811A\u672C\u540D\u79F0\u6A21\u5F0F -pref_page_sql_editor_group_result_view = \u7ED3\u679C\u89C6\u56FE -pref_page_sql_editor_label_close_results_tab_on_error = \u51FA\u9519\u65F6\u5173\u95ED\u7ED3\u679C\u6807\u7B7E -pref_page_sql_editor_label_results_orientation = \u7ED3\u679C\u6392\u5217\u65B9\u5411 -pref_page_sql_editor_label_results_orientation_tip = \u5728SQL\u7F16\u8F91\u5668\u4E2D\u7ED3\u679C\u7684\u6392\u5217\u65B9\u5411 -#SQLExecute -pref_page_sql_editor_label_sql_timeout_tip = \u67E5\u8BE2\u8BED\u53E5\u6267\u884C\u8D85\u65F6(\u4EE5\u79D2\u4E3A\u5355\u4F4D).0\u4EE3\u8868\u6CA1\u6709\u8D85\u65F6 -pref_page_sql_editor_enable_parameters_in_ddl = \u5728DDL\u8BED\u53E5\u4E2D\u542F\u7528\u53C2\u6570 -#SQLFormat -pref_page_sql_format_group_auto_close = \u81EA\u52A8\u5173\u95ED\u7B26\u53F7 -pref_page_sql_format_label_single_quotes = \u5355\u5F15\u53F7 -pref_page_sql_format_label_double_quotes = \u53CC\u5F15\u53F7 -pref_page_sql_format_label_brackets = \u62EC\u53F7 -pref_page_sql_format_group_auto_format = \u81EA\u52A8\u5957\u7528\u683C\u5F0F -pref_page_sql_format_label_convert_keyword_case = \u5173\u952E\u5B57\u5927\u5C0F\u5199\u8F6C\u6362 -pref_page_sql_format_label_convert_keyword_case_tip = \u5C06\u8F93\u5165\u7684\u5173\u952E\u5B57\u81EA\u52A8\u8F6C\u5316\u4E3A\u5927\u5199/\u5C0F\u5199 -pref_page_sql_format_label_extract_sql_from_source_code = \u5C06SQL\u8BED\u53E5\u4ECE\u6E90\u4EE3\u7801\u4E2D\u63D0\u53D6\u51FA\u6765 -pref_page_sql_format_label_extract_sql_from_source_code_tip = \u5728\u7C98\u8D34\u65F6\u5C06\u5220\u9664\u6240\u6709\u7684\u6E90\u8BED\u8A00\u5143\u7D20,\u4F8B\u5982:\u5F15\u53F7,+,\\n\u7B49 -pref_page_sql_format_group_formatter = \u683C\u5F0F\u5316 -pref_page_sql_format_label_formatter = \u683C\u5F0F -pref_page_sql_format_label_keyword_case = \u5173\u952E\u5B57\u683C\u5F0F -pref_page_sql_format_label_external_command_line = \u547D\u4EE4\u884C -pref_page_sql_format_label_external_set_content_tool_tip = \u5E26\u53C2\u6570\u7684\u5916\u90E8\u7A0B\u5E8F -pref_page_sql_format_label_external_use_temp_file = \u4F7F\u7528\u4E34\u65F6\u6587\u4EF6 -pref_page_sql_format_label_external_use_temp_file_tip = \u4F7F\u7528\u4E34\u65F6\u6587\u4EF6\u5B58\u50A8SQL\u6587\u672C.\n\u547D\u4EE4\u884C\u4E2D\u7684\u6587\u4EF6\u540D\u8981\u4F7F\u7528\u53C2\u6570 -pref_page_sql_format_label_external_exec_timeout = \u542F\u7528\u8D85\u65F6 -pref_page_sql_format_label_external_exec_timeout_tip = \u5B8C\u6210\u683C\u5F0F\u5316\u6240\u9700\u8981\u7684\u7B49\u5F85\u65F6\u95F4(ms) -pref_page_sql_completion_group_sql_assistant = SQL\u5E2E\u52A9/\u8865\u9F50 -pref_page_sql_completion_label_enable_auto_activation = \u542F\u7528\u81EA\u52A8\u6FC0\u6D3B -pref_page_sql_completion_label_enable_auto_activation_tip = \u542F\u7528\u5185\u5BB9\u5E2E\u52A9\u81EA\u52A8\u6FC0\u6D3B(\u6587\u672C\u8F93\u5165) -pref_page_sql_completion_label_auto_activation_delay = \u81EA\u52A8\u6FC0\u6D3B\u5EF6\u8FDF -pref_page_sql_completion_label_set_auto_activation_delay_tip = \u8F93\u5165\u65F6\u5185\u5BB9\u5E2E\u52A9\u5C06\u5EF6\u8FDF\u8FD0\u884C -pref_page_sql_completion_label_activate_on_typing = \u8F93\u5165\u65F6\u6FC0\u6D3B -pref_page_sql_completion_label_activate_on_typing_tip = \u8F93\u5165\u4EFB\u4F55\u5B57\u6BCD\u65F6\u90FD\u6FC0\u6D3B\u8865\u9F50\u5EFA\u8BAE. -pref_page_sql_completion_label_auto_insert_proposal = \u81EA\u52A8\u63D2\u5165\u5EFA\u8BAE -pref_page_sql_completion_label_auto_insert_proposal_tip = \u542F\u7528\u5185\u5BB9\u5E2E\u52A9\u81EA\u52A8\u63D2\u5165\u6A21\u5F0F.\n\u542F\u7528\u540E,\u5982\u679C\u8FD9\u662F\u552F\u4E00\u7684\u5EFA\u8BAE\u5185\u5BB9\u5E2E\u52A9\u81EA\u52A8\u63D2\u5165\u5EFA\u8BAE.\n\u5728\u6A21\u68F1\u4E24\u53EF\u7684\u60C5\u51B5\u4E0B,\u7528\u6237\u8981\u505A\u51FA\u9009\u62E9. -pref_page_sql_completion_label_insert_case = \u63D2\u5165\u5B57\u6BCD -pref_page_sql_completion_label_hide_duplicate_names = \u9690\u85CF\u975E\u5F53\u524Dschema\u7684\u91CD\u590D\u540D\u79F0 -pref_page_sql_completion_label_use_short_names = \u4F7F\u7528\u5BF9\u8C61\u540D\u79F0\u7F29\u5199(omit schema/\u76EE\u5F55) -pref_page_sql_completion_label_insert_space = \u5728\u8868/\u5217\u540D\u540E\u63D2\u5165\u7A7A\u683C -pref_page_sql_completion_label_use_global_search = \u4F7F\u7528\u5168\u5C40\u641C\u7D22(\u5728\u6240\u6709schema\u4E2D) -pref_page_sql_completion_label_use_global_search_tip = \u5728\u6240\u6709schema\u4E2D\u641C\u7D22\u5BF9\u8C61.\u5426\u5219\u53EA\u80FD\u5728\u5F53\u524D/\u7CFB\u7EDFschema\u4E2D\u641C\u7D22 -pref_page_sql_completion_group_folding = \u6298\u53E0 -pref_page_sql_completion_label_folding_enabled = \u542F\u7528\u6298\u53E0 -pref_page_sql_completion_label_folding_enabled_tip = \u5728SQL\u811A\u672C\u4E2D\u4F7F\u7528\u6298\u53E0 -#MetaData -pref_page_database_general_separate_meta_connection_tip = \u6253\u5F00\u5355\u72EC\u7684\u5143\u6570\u636E\u8FDE\u63A5\u53EF\u80FD\u4F1A\u63D0\u9AD8\u6027\u80FD\uFF0C\u56E0\u4E3A\u5728\u67E5\u8BE2\u6267\u884C\u671F\u95F4\u4E0D\u4F1A\u51FA\u73B0UI\u9501 -pref_page_database_general_checkbox_case_sensitive_names_tip = \u5728DDL\u67E5\u8BE2\u4E2D\u751F\u6210\u533A\u5206\u5927\u5C0F\u5199\u7684\u5BF9\u8C61\u540D\u79F0 -pref_page_database_general_checkbox_show_row_count_tip = \u5982\u679C\u6570\u636E\u5E93\u6267\u884C\u8FD9\u6837\u7684\u67E5\u8BE2\u592A\u6162\u4E86\uFF0C\u90A3\u4E48\u53EF\u4EE5\u7981\u7528\u8FD9\u4E2A\u9009\u9879(\u4F8B\u5982\uFF0C\u6570\u636E\u91CF\u5F88\u5927) -pref_page_database_general_server_side_object_filters = \u670D\u52A1\u5668\u7AEF\u5BF9\u8C61\u8FC7\u6EE4 -pref_page_database_general_server_side_object_filters_tip = \u4FEE\u6539\u5143\u6570\u636E\u67E5\u8BE2\uFF0C\u56E0\u6B64\u53EA\u9700\u8981\u4ECE\u6570\u636E\u5E93\u4E2D\u8BFB\u53D6\u5FC5\u8981\u7684\u5BF9\u8C61(\u4EC5\u652F\u6301\u67D0\u4E9B\u6570\u636E\u6E90).\n\u5426\u5219\u5C06\u5728\u5BA2\u6237\u7AEF\u8FDB\u884C\u8FC7\u6EE4.\n\u5982\u679C\u60F3\u8981\u770B\u5230\u94FE\u63A5\u5BF9\u8C61(\u4F8B\u5982,\u6765\u81EA\u5916\u952E)\uFF0C\u53EF\u4EE5\u7981\u7528\u8BE5\u9009\u9879. -pref_page_database_general_group_query_metadata = \u67E5\u8BE2\u5143\u6570\u636E -pref_page_database_general_use_column_names = \u4F7F\u7528\u5217\u540D\u79F0\u800C\u4E0D\u662F\u5217\u6807\u7B7E -pref_page_database_general_use_column_names_tip = \u5FFD\u7565\u6570\u636E\u67E5\u770B\u5668\u4E2D\u7684\u5217\u6807\u7B7E -#EntityEditor -pref_page_ui_general_keep_database_editors_tip = \u8BB0\u5F97\u6253\u5F00\u7F16\u8F91\u5668(\u5982,\u8868\u7F16\u8F91\u5668)\u5E76\u4E14\u5728 DBeaver \u91CD\u542F\u540E\u91CD\u65B0\u6253\u5F00\u5B83\u4EEC. -pref_page_ui_general_refresh_editor_on_open_tip = \u6BCF\u6B21\u6253\u5F00\u5BF9\u8C61\u7F16\u8F91\u5668\u65F6,\u4ECE\u6570\u636E\u5E93\u5237\u65B0\u5BF9\u8C61.\n\u5982\u679C\u6570\u636E\u5E93\u7684\u7ED3\u6784\u7ECF\u5E38\u53D8\u5316(\u6BD4\u5982,SQL\u811A\u672C)\uFF0C\u90A3\u4E48\u53EF\u80FD\u9700\u8981\u4F7F\u7528\u8FD9\u4E2A\u9009\u9879. -pref_page_ui_general_show_full_name_in_editor = \u5728\u7F16\u8F91\u5668\u6807\u9898\u4E2D\u663E\u793A\u5BF9\u8C61\u7684\u5B8C\u6574\u540D\u79F0 -pref_page_ui_general_show_preview_on_save = \u5728\u7F16\u8F91\u5668\u4FDD\u5B58\u65F6\u663E\u793ASQL\u9884\u89C8\u5BF9\u8BDD\u6846 - -#Drivers -pref_page_ui_general_group_settings = \u8BBE\u7F6E -pref_page_ui_general_check_new_driver_versions = \u68C0\u67E5\u65B0\u7684\u9A71\u52A8\u7A0B\u5E8F\u7248\u672C -pref_page_drivers_local_folder = \u672C\u5730\u6587\u4EF6\u5939 -pref_page_drivers_group_file_repositories = \u6587\u4EF6\u5B58\u50A8 -pref_page_drivers_button_add = \u6DFB\u52A0 -pref_page_drivers_label_enter_drivers_location_url = \u8BF7\u8F93\u5165\u9A71\u52A8\u4F4D\u7F6E\u7684URL -pref_page_drivers_button_remove = \u5220\u9664 -#DriversMaven -pref_page_drivers_maven_group_repositories = \u5B58\u50A8 -pref_page_drivers_maven_button_add = \u6DFB\u52A0 -pref_page_drivers_maven_label_enter_maven_repository_url = \u8BF7\u8F93\u5165Maven\u5B58\u50A8\u7684URL -pref_page_drivers_maven_label_bad_url = URL\u9519\u8BEF -pref_page_drivers_maven_label_bad_url_tip = \u8F93\u5165\u7684Maven\u5B58\u50A8\u7684URL\u6709\u8BEF -pref_page_drivers_maven_button_remove = \u5220\u9664 -#pref_page_drivers_maven_button_disable = \u7981\u6B62 -pref_page_drivers_maven_button_up = \u5411\u4E0A -pref_page_drivers_maven_button_down = \u5411\u4E0B -pref_page_drivers_maven_group_properties = \u5C5E\u6027 -pref_page_drivers_maven_label_name = \u540D\u79F0 -pref_page_drivers_maven_label_scope = \u8303\u56F4 -pref_page_drivers_maven_group_authentication = \u8BA4\u8BC1 -pref_page_drivers_maven_label_user = \u7528\u6237\u540D -pref_page_drivers_maven_label_password = \u5BC6\u7801 -pref_page_drivers_maven_label_enable = \u542F\u7528 -pref_page_drivers_maven_label_disable = \u7981\u7528 -#DatabaseGeneral -pref_page_ui_general_group_task_bar = \u4EFB\u52A1\u680F -pref_page_ui_general_label_enable_long_operations = \u5141\u8BB8\u957F\u65F6\u95F4\u64CD\u4F5C\u901A\u77E5 -pref_page_ui_general_label_enable_long_operations_tip = \u5728\u957F\u65F6\u95F4\u64CD\u4F5C(\u4F8B\u5982SQL\u67E5\u8BE2)\u5B8C\u6210\u540E,\u5728\u7CFB\u7EDF\u4EFB\u52A1\u680F\u4E2D\u7684\u663E\u793A\u7279\u6B8A\u901A\u77E5. -pref_page_ui_general_label_long_operation_timeout = \u957F\u65F6\u95F4\u64CD\u4F5C\u8D85\u65F6 -pref_page_ui_general_group_resources = \u8D44\u6E90 -pref_page_ui_general_label_default_resource_encoding = \u9ED8\u8BA4\u8D44\u6E90\u7F16\u7801 -pref_page_ui_general_label_set_default_resource_encoding_tip = \u811A\u672C\u548C\u6587\u672C\u6587\u4EF6\u7684\u9ED8\u8BA4\u7F16\u7801.\u91CD\u542F\u65F6\u66F4\u6539\u9700\u6C42 -pref_page_ui_general_group_debug_logs = \u8C03\u8BD5\u65E5\u5FD7 -pref_page_ui_general_label_enable_debug_logs = \u542F\u7528\u8C03\u8BD5\u65E5\u5FD7 -pref_page_ui_general_label_enable_debug_logs_tip = \u8C03\u8BD5\u65E5\u5FD7\u7528\u4E8E DBeaver \u81EA\u6211\u8C03\u8BD5.\u8C03\u8BD5\u65E5\u5FD7\u4E5F\u53EF\u4EE5\u7528\u4E8E\u5B58\u653E\u6240\u6709\u7684\u9519\u8BEF/\u8B66\u544A/\u4FE1\u606F -pref_page_ui_general_label_log_file_location = \u65E5\u5FD7\u6587\u4EF6\u4F4D\u7F6E -pref_page_ui_general_label_open_file_text = \u8C03\u8BD5\u65E5\u5FD7\u6587\u4EF6\u4F4D\u7F6E -pref_page_ui_general_label_options_take_effect_after_restart = \u8FD9\u4E9B\u9009\u9879\u5C06\u4F1A\u5728 DBeaver \u91CD\u542F\u540E\u751F\u6548 -pref_page_ui_general_label_settings = \u8BBE\u7F6E -#DatabaseNavigator -pref_page_database_general_label_expand_navigator_tree = \u8FDE\u63A5\u540E\u5C55\u5F00\u6570\u636E\u5E93\u5BFC\u822A\u5217\u8868 -pref_page_database_general_label_show_tips_in_tree = \u5728\u5217\u8868\u4E2D\u663E\u793A\u63D0\u793A -pref_page_database_general_label_show_tips_in_tree_tip = \u5728\u5217\u8868\u7684\u540D\u79F0\u540E\u663E\u793A\u63D0\u793A(\u4F8B\u5982\uFF1A\u5217\u7684\u6570\u636E\u7C7B\u578B) -pref_page_database_general_label_order_elements_alphabetically = \u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217 -pref_page_database_general_label_folders_first = \u6587\u4EF6\u5939\u4F18\u5148 -pref_page_database_general_label_folders_first_tip = \u5728\u5E38\u89C4\u5143\u7D20\u4E4B\u524D\u663E\u793A\u6587\u4EF6\u5939 -pref_page_database_general_label_group_database_by_driver = \u6839\u636E\u9A71\u52A8\u5C06\u6570\u636E\u5E93\u5206\u7EC4 -pref_page_database_general_label_sync_editor_connection_with_navigator = \u81EA\u52A8\u540C\u6B65\u7F16\u8F91\u5668\u8FDE\u63A5\u4E0E\u5BFC\u822A\u5668\u9009\u62E9 -pref_page_database_general_label_sync_editor_connection_with_navigator_tip = \u81EA\u52A8\u4ECE\u5DF2\u9009\u4E2D\u7684\u5BFC\u822A\u5668\u8282\u70B9\u8BBE\u7F6E\u7F16\u8F91\u5668(\u4F8B\u5982\uFF0CSQL\u7F16\u8F91\u5668)\u8FDE\u63A5.\n\u5982\u679C\u9700\u8981\u9891\u7E41\u66F4\u6539\u5F53\u524D\u8FDE\u63A5/schema,\u8FD9\u662F\u6709\u7528\u7684. -pref_page_database_general_label_double_click_node = \u5728\u8282\u70B9\u4E0A\u53CC\u51FB -pref_page_database_general_label_double_click_node_open_properties = \u6253\u5F00\u5C5E\u6027 -pref_page_database_general_label_double_click_node_expand_collapse = \u5C55\u5F00 / \u6298\u53E0 -pref_page_database_general_label_double_click_connection = \u5728\u8FDE\u63A5\u4E0A\u53CC\u51FB -pref_page_database_general_label_double_click_connection_open_properties = \u6253\u5F00\u5C5E\u6027 -pref_page_database_general_label_double_click_connection_conn_disconn = \u8FDE\u63A5 / \u65AD\u5F00\u8FDE\u63A5 -pref_page_database_general_label_double_click_connection_open_sqleditor = \u6253\u5F00 SQL \u7F16\u8F91\u5668 -pref_page_database_general_label_double_click_connection_expand_collapse = \u5C55\u5F00 / \u6298\u53E0 -#ConnectionTypes -pref_page_connection_types_label_table_column_name = \u540D\u79F0 -pref_page_connection_types_label_table_column_description = \u63CF\u8FF0 -pref_page_connection_types_label_delete_connection_type = \u5220\u9664\u8FDE\u63A5\u7C7B\u578B -pref_page_connection_types_label_delete_connection_type_description = \u4F60\u786E\u5B9A\u8981\u5220\u9664\u8FDE\u63A5\u7C7B\u578B ''{0}''?\n \u8BE5\u7C7B\u578B\u7684\u6240\u6709\u8FDE\u63A5\u5C06\u88AB\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u7C7B\u578B ({1}) -pref_page_connection_types_group_settings = \u8BBE\u7F6E -pref_page_connection_types_label_name = \u540D\u79F0 -pref_page_connection_types_label_description = \u63CF\u8FF0 -pref_page_connection_types_label_color = \u989C\u8272 -pref_page_connection_types_label_auto_commit_by_default = \u9ED8\u8BA4\u81EA\u52A8\u63D0\u4EA4 -pref_page_connection_types_label_confirm_sql_execution = \u786E\u8BA4SQL\u6267\u884C -#ProjectSettings -pref_page_projects_settings_label_resource_location = \u8D44\u6E90\u4F4D\u7F6E -pref_page_projects_settings_label_resource = \u8D44\u6E90 -pref_page_projects_settings_label_folder = \u6587\u4EF6\u5939 -pref_page_projects_settings_label_select = \u9009\u62E9 -pref_page_projects_settings_label_root_folder = \u6839\u76EE\u5F55 -pref_page_projects_settings_label_not_use_hidden_folders = \u4E0D\u80FD\u4F7F\u7528\u9690\u85CF\u6587\u4EF6\u5939 -pref_page_projects_settings_label_not_store_resources_in_another_project = \u4E0D\u80FD\u5C06\u8D44\u6E90\u5B58\u653E\u5728\u5176\u4ED6\u9879\u76EE\u4E2D -pref_page_projects_settings_label_restart_require_refresh_global_settings = \u66F4\u65B0\u901A\u7528\u8BBE\u7F6E\u540E\u8981\u6C42\u91CD\u542F -##Preference/Properties End - -## Connection edit ## -dialog_connection_edit_title = \u8FDE\u63A5 ''{0}'' \u914D\u7F6E - -dialog_connection_edit_wizard_conn_conf_network_link = \u7F51\u7EDC\u8BBE\u7F6E (SSH, SSL, Proxy, ...) - -dialog_connection_edit_wizard_general = \u5E38\u89C4 -dialog_connection_edit_wizard_general_bootstrap_query_title = \u542F\u52A8\u65F6 SQL \u67E5\u8BE2 -dialog_connection_edit_wizard_general_bootstrap_query_sql_label = SQL \u67E5\u8BE2 -dialog_connection_edit_wizard_general_bootstrap_query_sql_title = \u8F93\u5165 SQL -dialog_connection_edit_wizard_general_bootstrap_query_ignore_error_lable = \u5FFD\u7565 SQL \u9519\u8BEF -dialog_connection_edit_wizard_general_filter_save_button = \u4FDD\u5B58 -dialog_connection_edit_wizard_general_filter_remove_button = \u79FB\u9664 -dialog_connection_edit_wizard_general_filter_save_label = \u4FDD\u5B58\u7684\u8FC7\u6EE4 -dialog_connection_edit_wizard_general_filter_name_label = \u540D\u79F0 -dialog_connection_edit_wizard_general_filter_hint_text = \u4F60\u53EF\u4EE5\u5728\u8FC7\u6EE4\u4E2D\u4F7F\u7528\u63A9\u7801 (%, _ and *) - -dialog_connection_edit_wizard_shell_cmd = Shell \u547D\u4EE4 -dialog_connection_edit_wizard_shell_cmd_pause_label = \u6267\u884C\u540E\u6682\u505C (ms) -dialog_connection_edit_wizard_shell_cmdp_pause_tooliti = \u5728\u8FDB\u7A0B\u751F\u6210\u540E\u7B49\u5F85\u6307\u5B9A\u7684\u6BEB\u79D2\u6570 -dialog_connection_edit_wizard_shell_cmd_directory_label = \u5DE5\u4F5C\u76EE\u5F55 -dialog_connection_edit_wizard_shell_cmd_directory_title = \u5DE5\u4F5C\u76EE\u5F55 -dialog_connection_edit_wizard_shell_cmd_variables_hint_label = \u4F60\u53EF\u4EE5\u5728\u547D\u4EE4\u4E2D\u4F7F\u7528\u53D8\u91CF\u3002\u5355\u51FB\u770B\u5217\u8868\u3002 -dialog_connection_edit_wizard_shell_cmd_variables_hint_title = \u53D8\u91CF - -dialog_connection_edit_wizard_metadata = \u5143\u6570\u636E -dialog_connection_edit_wizard_metadata_description = \u5143\u6570\u636E\u8BFB\u53D6\u504F\u597D -dialog_connection_edit_wizard_resultset = \u7ED3\u679C\u96C6 -dialog_connection_edit_wizard_resultset_description = \u7ED3\u679C\u96C6\u504F\u597D -dialog_connection_edit_wizard_binary = \u4E8C\u8FDB\u5236 -dialog_connection_edit_wizard_binary_description = \u4E8C\u8FDB\u5236\u6570\u636E\u8868\u793A -dialog_connection_edit_wizard_data_format = \u6570\u636E\u683C\u5F0F\u5316 -dialog_connection_edit_wizard_data_format_description = \u6570\u636E\u683C\u5F0F\u5316\u504F\u597D -dialog_connection_edit_wizard_presentation = \u5C55\u793A -dialog_connection_edit_wizard_presentation_description = \u7ED3\u679C\u96C6\u7528\u6237\u754C\u9762\u548C\u5C55\u793A -dialog_connection_edit_wizard_sql_editor = SQL \u7F16\u8F91\u5668 -dialog_connection_edit_wizard_sql_editor_description = SQL \u7F16\u8F91\u5668\u8BBE\u7F6E -dialog_connection_edit_wizard_sql_processing = SQL \u5904\u7406 -dialog_connection_edit_wizard_sql_processing_description = SQL \u5904\u7406\u8BBE\u7F6E - -dialog_connection_edit_wizard_conn_change_title = \u8FDE\u63A5\u53D8\u66F4 -dialog_connection_edit_wizard_conn_change_question = \u8FDE\u63A5 ''{0}'' \u5DF2\u7ECF\u88AB\u66F4\u6539\u3002\n\u4F60\u60F3\u91CD\u65B0\u8FDE\u63A5\u5417? -dialog_connection_edit_wizard_lock_pwd_title = \u8BF7\u8F93\u5165\u9501\u5BC6\u7801 -dialog_connection_edit_wizard_bad_pwd_title = \u9519\u8BEF\u7684\u5BC6\u7801 -dialog_connection_edit_wizard_bad_pwd_msg = \u5BC6\u7801\u4E0D\u5339\u914D -dialog_connection_edit_wizard_error_md5_title = \u9519\u8BEF\u751F\u6210 MD5 -dialog_connection_edit_wizard_error_md5_msg = \u4E0D\u80FD\u751F\u6210\u5BC6\u7801\u54C8\u5E0C -## Connection edit ## - -## Driver edit ## -dialog_edit_driver_type_label = \u9A71\u52A8\u7C7B\u578B -dialog_edit_driver_embedded_label = \u5D4C\u5165 -dialog_edit_driver_setting = \u8BBE\u7F6E -dialog_edit_driver_description = \u63CF\u8FF0 -dialog_edit_driver_edit_maven_title = \u7F16\u8F91 Maven Artifact -dialog_edit_driver_edit_maven_group_id_label = \u7EC4 Id -dialog_edit_driver_edit_maven_artifact_id_label = Artifact Id -dialog_edit_driver_edit_maven_classfier_label = Classifier -dialog_edit_driver_edit_maven_version_label = \u7248\u672C - -dialog_edit_driver_text_driver_library = \u9A71\u52A8 '{0}' \u5E93 '{1}' -dialog_edit_driver_info = \u4FE1\u606F -dialog_edit_driver_driver = \u9A71\u52A8 -dialog_edit_driver_library = \u5E93 -dialog_edit_driver_path = \u8DEF\u5F84 -dialog_edit_driver_version = \u7248\u672C -dialog_edit_driver_file = \u6587\u4EF6 -dialog_edit_driver_tab_depencencies = \u4F9D\u8D56 -dialog_edit_driver_tab_depencencies_tooltip = \u5E93\u4F9D\u8D56 -dialog_edit_driver_tab_detail = \u8BE6\u7EC6 -dialog_edit_driver_tab_detail_tooltip = \u9644\u52A0\u5E93\u4FE1\u606F -dialog_edit_driver_text_license = \u8BB8\u53EF -## Driver edit ## - -## Driver download ## -dialog_driver_download_button_edit_dirver = \u7F16\u8F91\u9A71\u52A8 -dialog_driver_download_button_add_jars = \u6DFB\u52A0 JAR - -dialog_driver_download_wizard_title_setting = \u9A71\u52A8\u8BBE\u7F6E -dialog_driver_download_wizard_title_upload_files = \u66F4\u65B0\u9A71\u52A8\u6587\u4EF6 -dialog_driver_download_wizard_title_setup_files = \u5B89\u88C5\u9A71\u52A8\u6587\u4EF6 -dialog_driver_download_wizard_download = \u4E0B\u8F7D -dialog_driver_download_wizard_open_download = \u6253\u5F00\u4E0B\u8F7D\u9875\u9762 - -dialog_driver_download_page_vendor_link = \u4F9B\u5E94\u5546\u7F51\u7AD9 -dialog_driver_download_page_download_conf_link = \u4E0B\u8F7D\u914D\u7F6E - -dialog_driver_download_manual_page_config_driver_file = \u914D\u7F6E\u9A71\u52A8\u6587\u4EF6 -dialog_driver_download_manual_page_download_driver_file = \u4E0B\u8F7D\u9A71\u52A8\u6587\u4EF6 - -dialog_driver_download_manual_page_download_config_driver_file = \u4E0B\u8F7D & \u914D\u7F6E {0} \u9A71\u52A8\u6587\u4EF6 -dialog_driver_download_manual_page_driver_file_missing_text = {0} \u9A71\u52A8\u6587\u4EF6\u4E22\u5931.\n\n\u6839\u636E\u4F9B\u5E94\u5546\u653F\u7B56\u8FD9\u4E2A\u9A71\u52A8\u7A0B\u5E8F\u4E0D\u516C\u5F00\n\u4F60\u5FC5\u987B\u4ECE\u4F9B\u5E94\u5546\u7F51\u7AD9\u624B\u52A8\u4E0B\u8F7D.\n\n\u6210\u529F\u4E0B\u8F7D\u9A71\u52A8\u540E\u4F60\u5C06\u9700\u8981 \u6DFB\u52A0 JAR \u6587\u4EF6 \u5728 DBeaver \u5E93\u5217\u8868\u4E2D. -dialog_driver_download_manual_page_driver_file =\u9A71\u52A8\u6587\u4EF6 -dialog_driver_download_manual_page_column_file = \u6587\u4EF6 -dialog_driver_download_manual_page_column_required = \u9700\u8981\u7684 -dialog_driver_download_manual_page_column_description = \u63CF\u8FF0 -dialog_driver_download_manual_page_yes = \u662F -dialog_driver_download_manual_page_no = \u5426 - -dialog_driver_download_auto_page_auto_download = \u81EA\u52A8\u4E0B\u8F7D -dialog_driver_download_auto_page_download_driver_files = \u4E0B\u8F7D\u9A71\u52A8\u6587\u4EF6 -dialog_driver_download_auto_page_download_specific_driver_files = \u4E0B\u8F7D {0} \u9A71\u52A8\u6587\u4EF6 -dialog_driver_download_auto_page_driver_file_missing_text = {0} \u9A71\u52A8\u6587\u4EF6\u4E22\u5931.\nDBeaver \u53EF\u4EE5\u81EA\u52A8\u4E0B\u8F7D\u8FD9\u4E9B\u6587\u4EF6.\n\n -dialog_driver_download_auto_page_force_download = \u5F3A\u5236\u4E0B\u8F7D / \u8986\u76D6 -dialog_driver_download_auto_page_force_download_tooltip = \u5F3A\u5236\u6587\u4EF6\u4E0B\u8F7D\u3002\u5373\u4F7F\u6587\u4EF6\u5728\u78C1\u76D8\u4E0A\u4ECD\u5C06\u4E0B\u8F7D\u3002 -dialog_driver_download_auto_page_required_files = \u9A71\u52A8\u9700\u8981\u7684\u6587\u4EF6 -dialog_driver_download_auto_page_change_driver_version_text = \u4F60\u53EF\u4EE5\u901A\u8FC7\u5355\u51FB\u9A71\u52A8\u5217\u6765\u4FEE\u6539\u9A71\u52A8\u7248\u672C\u3002\n\u7136\u540E\u4F60\u53EF\u4EE5\u9009\u62E9\u4E00\u4E2A\u53EF\u7528\u7248\u672C\u3002 -dialog_driver_download_auto_page_obtain_driver_files_text = \n\u6216\u8005\u4F60\u53EF\u4EE5\u81EA\u5DF1\u83B7\u53D6\u9A71\u52A8\u7A0B\u5E8F\u6587\u4EF6,\u5E76\u5C06\u5B83\u4EEC\u6DFB\u52A0\u5728\u9A71\u52A8\u7F16\u8F91\u5668\u4E2D\u3002 -dialog_driver_download_auto_page_cannot_resolve_libraries_text = \u65E0\u6CD5\u89E3\u51B3\u5E93\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5\u4F60\u7684\u7F51\u7EDC\u8BBE\u7F6E\u3002 -dialog_driver_download_auto_page_driver_download_error = \u9A71\u52A8\u4E0B\u8F7D -dialog_driver_download_auto_page_driver_download_error_msg = \u9519\u8BEF\u4E0B\u8F7D\u9A71\u52A8\u6587\u4EF6 -dialog_driver_download_auto_page_driver_security_warning = \u5B89\u5168\u8B66\u544A -dialog_driver_download_auto_page_driver_security_warning_msg = \u5728\u5B89\u5168\u7684\u8D44\u6E90\u5E93\u4E2D\u672A\u627E\u5230\u5E93\u6587\u4EF6 '{0}' .\n\u53EA\u6709\u975E\u5B89\u5168\u7248\u672C\u53EF\u7528: {1}.\n\n\u4E0D\u63A8\u8350\u4F7F\u7528\u4E0D\u5B89\u5168\u7684\u8D44\u6E90\u5E93,\u56E0\u4E3A\u6709\u6076\u610F\u8F6F\u4EF6\u611F\u67D3\u7684\u53EF\u80FD\u6027\u3002\n\n\u4F60\u786E\u5B9A\u8981\u7EE7\u7EED\u5417? -dialog_driver_download_auto_page_download_rate = \u4E0B\u8F7D {0}/{1} -dialog_driver_download_auto_page_download_failed_msg = \u9A71\u52A8\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25\u3002\n\u4F60\u60F3\u91CD\u8BD5\u5417? -## Driver download ## - -## SQL editor resultset filter panel ## -sql_editor_resultset_tool_item_log = \u65E5\u5FD7 -sql_editor_resultset_tool_item_output = \u8F93\u51FA -sql_editor_resultset_filter_panel_text_enter_sql_to_filter = \u8F93\u5165\u4E00\u4E2A SQL \u8868\u8FBE\u5F0F\u6765\u8FC7\u6EE4\u7ED3\u679C (\u4F7F\u7528 Ctrl+Space) -sql_editor_resultset_filter_panel_text_enter_filter_not_support = \u6570\u636E\u8FC7\u6EE4\u4E0D\u652F\u6301 -sql_editor_resultset_filter_panel_btn_apply = \u5E94\u7528\u8FC7\u6EE4\u6761\u4EF6 -sql_editor_resultset_filter_panel_btn_remove = \u79FB\u9664\u6240\u6709\u8FC7\u6EE4/\u6392\u5E8F -sql_editor_resultset_filter_panel_btn_save = \u4E3A\u5F53\u524D\u5BF9\u8C61\u4FDD\u5B58\u8FC7\u6EE4\u8BBE\u7F6E -sql_editor_resultset_filter_panel_btn_custom = \u81EA\u5B9A\u4E49\u8FC7\u6EE4 -sql_editor_resultset_filter_panel_btn_stop_refresh = \u505C\u6B62\u81EA\u52A8\u66F4\u65B0 -sql_editor_resultset_filter_panel_btn_config_refresh = \u914D\u7F6E\u81EA\u52A8\u66F4\u65B0 -sql_editor_resultset_filter_panel_label = \u70B9\u51FB\u5728\u7F16\u8F91\u5668\u4E2D\u6253\u5F00\u67E5\u8BE2 -sql_editor_resultset_filter_panel_btn_open_console = Ctrl+click \u6765\u6253\u5F00 SQL \u63A7\u5236\u53F0 -sql_editor_resultset_filter_panel_menu_customize = \u81EA\u5B9A\u4E49 ... -sql_editor_resultset_filter_panel_menu_stop = \u505C\u6B62 -sql_editor_resultset_filter_panel_menu_refresh_interval = \u6BCF {0} \u79D2\u5237\u65B0 -sql_editor_resultset_filter_panel_control_no_data = \u65E0\u6570\u636E -sql_editor_resultset_filter_panel_control_execute_to_see_reslut = \u6267\u884C\u62C6\u67E5\u8BE2 {0} \u6216\u8005\u811A\u672C {1} \u6765\u67E5\u770B\u7ED3\u679C -## SQL editor resultset filter panel ## - +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) +# Copyright (C) 2012 Brook.Tran (Brook.Tran.C@gmail.com) + +## Menu items ## +actions_menu_database = \u6570\u636E\u5E93(&D) +actions_menu_edit = \u7F16\u8F91(&E) +actions_menu_exit_emergency = \u7D27\u6025\u9000\u51FA +actions_menu_file = \u6587\u4EF6(&F) +actions_menu_help = \u5E2E\u52A9(&H) +actions_menu_navigate = \u5BFC\u822A(&N) +actions_menu_window = \u7A97\u53E3(&W) +actions_menu_window_showView = \u663E\u793A\u89C6\u56FE +actions_menu_about = \u5173\u4E8E +actions_menu_check_update = \u68C0\u67E5\u66F4\u65B0 + +actions_menu_edit_ContentFormat = \u683C\u5F0F\u5316 + +## Errors ## +DBeaverCore_error_can_create_temp_dir = \u65E0\u6CD5\u521B\u5EFA\u4E34\u65F6\u76EE\u5F55 "{0}" +DBeaverCore_error_can_create_temp_file = \u65E0\u6CD5\u5728 "{1}" \u521B\u5EFA\u4E34\u65F6\u76EE\u5F55"{0}" + +## Actions ## +actions_ContentAssistProposal_label = SQL \u5185\u5BB9\u52A9\u7406 +actions_ContentAssistProposal_tooltip = SQL \u5185\u5BB9\u52A9\u7406 +actions_ContentAssistProposal_description = SQL \u5185\u5BB9\u52A9\u7406 + +actions_ContentAssistTip_description = \u5B8C\u6210SQL\u6A21\u677F\u540D\u79F0 +actions_ContentAssistTip_label = SQL\u6A21\u677F +actions_ContentAssistTip_tooltip = SQL\u6A21\u677F\u52A9\u7406 + +actions_ContentAssistInfo_description = \u663E\u793A\u5E26\u6709\u4E0A\u4E0B\u6587\u63CF\u8FF0\u7684\u5DE5\u5177\u63D0\u793A\u4FE1\u606F +actions_ContentAssistInfo_label = SQL\u4E0A\u4E0B\u6587\u4FE1\u606F +actions_ContentAssistInfo_tooltip = \u663E\u793ASQL\u4E0A\u4E0B\u6587\u63CF\u8FF0 + +actions_ContentFormatProposal_label = \u683C\u5F0F\u5316SQL +actions_ContentFormatProposal_tooltip = \u683C\u5F0F\u5316SQL +actions_ContentFormatProposal_description = \u683C\u5F0F\u5316SQL + +actions_navigator__objects = \u5BF9\u8C61 +actions_navigator_bookmark_error_message = \u65E0\u6CD5\u521B\u5EFA\u4E66\u7B7E +actions_navigator_bookmark_error_title = \u65B0\u5EFA\u4E66\u7B7E +actions_navigator_bookmark_title = \u4E66\u7B7E\u540D +actions_navigator_copy_fqn_title = \u5B8C\u5168\u590D\u5236\u9650\u5B9A\u540D +actions_navigator_copy_fqn_titles = \u5B8C\u5168\u590D\u5236\u9650\u5B9A\u540D +actions_navigator_copy_object_copy_node = \u590D\u5236 {0} +actions_navigator_copy_object_copy_objects = \u590D\u5236\u5BF9\u8C61 +actions_navigator_create_folder_error_message = \u65E0\u6CD5\u521B\u5EFA\u76EE\u5F55 "{0}" +actions_navigator_create_folder_error_title = \u65B0\u5EFA\u6587\u4EF6\u5939 +actions_navigator_create_folder_folder_name = \u6587\u4EF6\u5939\u540D\u79F0 +actions_navigator_create_new = \u65B0\u5EFA +actions_navigator_delete_ = \u5220\u9664 +actions_navigator_delete_objects = \u5220\u9664\u5BF9\u8C61 +actions_navigator_delete_script = \u5220\u9664\u811A\u672C +actions_navigator_edit = \u7F16\u8F91 +actions_navigator_error_dialog_delete_object_title = \u5220\u9664\u5BF9\u8C61 +actions_navigator_error_dialog_open_entity_title = \u6253\u5F00\u5B9E\u4F53 +actions_navigator_error_dialog_open_resource_title = \u6253\u5F00\u8D44\u6E90 +actions_navigator_open = \u6253\u5F00 +actions_navigator_view = \u67E5\u770B +actions_navigator_view_script_button = \u67E5\u770B\u811A\u672C +actions_spreadsheet_copy_special = \u9AD8\u7EA7\u62F7\u8D1D... + +common_error_sql = SQL \u9519\u8BEF + +action_menu_enterpriseEdition = \u4F01\u4E1A\u7248\u672C +action_menu_installInfo = \u5B89\u88C5\u4FE1\u606F +action_menu_installNewSoftware = \u5B89\u88C5\u65B0\u8F6F\u4EF6 +action_menu_showKeyAssist = \u663E\u793A\u952E\u8F85\u52A9 +action_menu_sqleditor_maximizeResultsPanel = \u6700\u5927\u5316\u7ED3\u679C\u9762\u677F +action_menu_sqleditor_restoreResultsPanel = \u6062\u590D\u7ED3\u679C\u9762\u677F +action_menu_transactionMonitor_autocommitMode = \u81EA\u52A8\u63D0\u4EA4\u6A21\u5F0F +action_menu_transactionMonitor_modifyStatement = {0}\u4FEE\u6539\u8BED\u53E5 +action_menu_transactionMonitor_notConnected = \u975E\u8FDE\u63A5\u7684 +action_menu_transactionMonitor_totalStatement = {0} \u5408\u8BA1\u8BED\u53E5 +action_menu_transactionMonitor_uptime = {0} \u79D2\u949F\u53EF\u7528\u65F6\u95F4 +action_menu_transaction_autocommit_description = \u81EA\u52A8\u63D0\u4EA4 +action_menu_transaction_autocommit_name = \u5207\u6362\u5230\u81EA\u52A8\u63D0\u4EA4 +action_menu_transaction_manualcommit_description = \u624B\u52A8\u63D0\u4EA4\uFF08{0}\uFF09 +action_menu_transaction_manualcommit_name = \u5207\u6362\u5230\u624B\u52A8\u63D0\u4EA4\uFF08{0}\uFF09 +action_popup_sqleditor_layout_detached = \u5206\u5F00\u6392\u5217 +action_popup_sqleditor_layout_horizontal = \u6C34\u5E73\u6392\u5217 +action_popup_sqleditor_layout_vertical = \u5782\u76F4\u6392\u5217 + +## Confirmations ## +confirm_exit_title = \u9000\u51FA DBeaver +confirm_exit_message = \u4F60\u786E\u5B9A\u8981\u9000\u51FA\u5417? +confirm_exit_toggleMessage = \u4E0D\u518D\u8BE2\u95EE + +confirm_close_resultset_edit_title = \u4FDD\u5B58\u7ED3\u679C\u96C6 +confirm_close_resultset_edit_message = \u662F\u5426\u4FDD\u5B58\u5DF2\u7ECF\u4FEE\u6539\u7684\u7ED3\u679C\u96C6? +confirm_close_resultset_edit_toggleMessage = \u8BB0\u4F4F\u6211\u7684\u9009\u62E9 + +confirm_close_editor_edit_title = \u4FDD\u5B58\u53D8\u66F4 +confirm_close_editor_edit_message = "{0}" \u5DF2\u7ECF\u6539\u53D8_ \u662F\u5426\u4FDD\u5B58\u6240\u6709\u4FEE\u6539? +confirm_close_editor_edit_toggleMessage = \u8BB0\u4F4F\u6211\u7684\u9009\u62E9 + +confirm_close_entity_edit_title = \u4FDD\u5B58\u4FEE\u6539 +confirm_close_entity_edit_message = \u5BF9\u8C61 "{0}" \u5DF2\u7ECF\u88AB\u4FEE\u6539_ \u662F\u5426\u5C06\u4FEE\u6539\u4FDD\u5B58\u81F3\u6570\u636E\u5E93? +confirm_close_entity_edit_toggleMessage = \u8BB0\u4F4F\u6211\u7684\u9009\u62E9 + +confirm_dangerous_sql_title = \u786E\u8BA4\u5371\u9669\u7684\u67E5\u8BE2\u6267\u884C +confirm_dangerous_sql_message = \u4F60\u8981\u6267\u884C\u7684\u8BED\u53E5 {0} \u5728 ''{1}'' \u4E0A\u6CA1\u6709 WHERE \u5B50\u53E5.\n\u53EF\u80FD\u4F1A\u4E22\u5931\u6570\u636E. \u786E\u5B9A\u6267\u884C\u6B64\u64CD\u4F5C? +confirm_dangerous_sql_toggleMessage = \u8BB0\u4F4F\u9009\u62E9 + +confirm_disconnect_txn_title = \u63D0\u4EA4\u66F4\u6539 +confirm_disconnect_txn_message = \u4F60\u8981\u65AD\u5F00\u4ECE\u6570\u636E\u5E93 "{0}" \u7684\u8FDE\u63A5.\n\u4F60\u60F3\u8981\u63D0\u4EA4\u5F53\u524D\u4E8B\u52A1\u5417? +confirm_disconnect_txn_toggleMessage = \u8BB0\u4F4F\u9009\u62E9 + +confirm_driver_download_title = \u4E0B\u8F7D\u6570\u636E\u5E93\u9A71\u52A8 +confirm_driver_download_message = \u6570\u636E\u5E93 "{0}" \u7684\u9A71\u52A8\u6587\u4EF6 ({1}) \u5DF2\u4E22\u5931 .\n \u4F60\u60F3\u4E0B\u8F7D\u8FD9\u4E9B\u6587\u4EF6\u5417? +confirm_driver_download_toggleMessage = \u4E0D\u518D\u8BE2\u95EE + +confirm_driver_download_manual_message = \u65E0\u6CD5\u627E\u5230JDBC\u9A71\u52A8\u7A0B\u5E8F"{0}"\u3002\u6839\u636E\u4F9B\u5E94\u5546\u7684\u653F\u7B56\uFF0C\u8FD9\u4E2A\u9A71\u52A8\u7A0B\u5E8F\u662F\u4E0D\u516C\u5F00\u7684\uFF0C\u4F60\u5FC5\u987B\u4ECE\u4F9B\u5E94\u5546\u7684\u7F51\u7AD9\u4E0A\u624B\u52A8\u4E0B\u8F7D\u3002\r\n\r\n\u9A71\u52A8\u7A0B\u5E8F\u4E0B\u8F7D\u6210\u529F\u4E4B\u540E\u60A8\u5C06\u9700\u8981\u624B\u52A8\u6DFB\u52A0JAR\u6587\u4EF6\u5230 DBeaver \u5E93\u5217\u8868\u4E2D\u3002\r\n\u9A71\u52A8\u7A0B\u5E8F\u6587\u4EF6: {1} \u3002\r\n\r\n\u4F60\u60F3\u8981\u8FDB\u5165\u4F9B\u5E94\u5546\u7F51\u7AD9\u5417? +confirm_driver_download_manual_title = \u624B\u52A8\u4E0B\u8F7D\u9A71\u52A8 +confirm_driver_download_manual_toggleMessage = \u4E0D\u518D\u8BE2\u95EE + +confirm_entity_delete_title = \u5220\u9664\u5BF9\u8C61 +confirm_entity_delete_message = \u662F\u5426\u786E\u5B9A\u5220\u9664{0} "{1}"? + +confirm_entity_reject_title = \u64A4\u9500\u4FEE\u6539 +confirm_entity_reject_message = \u6240\u6709\u5BF9 "{0}" \u7684\u4FEE\u6539\u5C06\u88AB\u64A4\u9500_\n\u662F\u5426\u786E\u5B9A\u64A4\u9500\u4FEE\u6539? +confirm_entity_reject_toggleMessage = \u4E0D\u518D\u8BE2\u95EE + +confirm_entity_revert_title = \u91CD\u505A +confirm_entity_revert_message = \u662F\u5426\u786E\u5B9A\u91CD\u505A "{0}"? +confirm_entity_revert_toggleMessage = \u4E0D\u518D\u8BE2\u95EE + +confirm_fetch_all_rows_title = \u8BFB\u53D6\u6240\u6709\u884C +confirm_fetch_all_rows_message = \u8BFB\u53D6\u7ED3\u679C\u96C6\u4E2D\u7684\u6240\u6709\u884C\u4F1A\u4F1A\u82B1\u8D39\u5927\u91CF\u65F6\u95F4\u548C\u5B58\u50A8\u3002\r\n\r\n\u4F60\u786E\u5B9A\u8981\u83B7\u53D6\u6240\u6709\u884C\u5417\uFF1F +confirm_fetch_all_rows_toggleMessage = \u8BB0\u4F4F\u9009\u62E9 + +confirm_keep_statement_open_title = \u603B\u662F\u542F\u7528\u6E38\u6807 +confirm_keep_statement_open_message = \u5F53\u5B8C\u6210\u4E00\u6B21\u67E5\u8BE2 DBeaver \u603B\u662F\u5173\u95ED\u8FDE\u63A5. \u4E3A\u4E86\u67E5\u770B\u5217\u6E38\u6807, \u53EF\u4EE5\u5728"\u9009\u9879"\u8BBE\u7F6E"\u603B\u662F\u5728SQL\u7F16\u8F91\u5668\u4E2D\u542F\u7528\u6E38\u6807". \u6CE8\u610F: \u542F\u7528\u6E38\u6807\u53EF\u80FD\u5BFC\u81F4\u957F\u65F6\u95F4\u9501\u5B9A\u6570\u636E\u5E93\u8D44\u6E90. \u4F60\u786E\u5B9A\u542F\u7528\u8BE5\u5C5E\u6027\u5417?(\u7ED3\u679C\u96C6\u5C06\u88AB\u66F4\u65B0) +confirm_keep_statement_open_toggleMessage = \u8BB0\u4F4F\u6211\u7684\u9009\u62E9 + +confirm_local_folder_delete_title = \u5220\u9664\u6587\u4EF6\u5939 +confirm_local_folder_delete_message = \u4F60\u5374\u4F4E\u4F30\u8981\u5220\u9664 {0} "{1}" \u5417?\r\n\r\n\u8BE5\u6587\u4EF6\u5939\u4E2D\u7684\u8FDE\u63A5\u5C06\u4E0D\u4F1A\u88AB\u5220\u9664. + +confirm_order_resultset_title = \u6392\u5E8F +confirm_order_resultset_message = \u5BF9\u4E8E\u542B\u6709\u5927\u91CF\u6570\u636E\u7684\u8868\u683C\u5C06\u82B1\u8D39\u8F83\u591A\u65F6\u95F4(\u7279\u522B\u662F\u8BE5\u5217\u6CA1\u6709\u7D22\u5F15\u65F6)\n\n\u4F60\u786E\u5B9A\u5BF9"{0}"\u8FDB\u884C\u6392\u5E8F\u5417? +confirm_order_resultset_toggleMessage = \u4E0D\u518D\u8BE2\u95EE + +confirm_version_check_title = \u4E0B\u8F7D\u65B0\u7248\u672C +confirm_version_check_message = \u65B0\u7684 {0} \u7248\u672C {1} \u5DF2\u7ECF\u5728 {2}\u53D1\u5E03.\n\u662F\u5426\u66F4\u65B0\u5F53\u524D\u7248\u672C? +confirm_version_check_toggleMessage = \u4E0D\u518D\u8BE2\u95EE + + +controls_client_home_selector_browse = \u6D4F\u89C8 ... +controls_client_homes_panel_button_add_home = \u6DFB\u52A0\u6570\u636E\u5E93\u5730\u5740 +controls_client_homes_panel_button_remove_home = \u5220\u9664\u6570\u636E\u5E93\u5730\u5740 +controls_client_homes_panel_confirm_remove_home_text = \u662F\u5426\u786E\u5B9A\u8981\u5220\u9664\u6570\u636E\u5E93\u5730\u5740 "{0}"? +controls_client_homes_panel_confirm_remove_home_title = \u5220\u9664\u6570\u636E\u5E93\u5730\u5740 +controls_client_homes_panel_dialog_title = \u6570\u636E\u5E93\u5730\u5740 +controls_client_homes_panel_group_information = \u4FE1\u606F +controls_client_homes_panel_label_id = ID +controls_client_homes_panel_label_name = \u540D\u79F0 +controls_client_homes_panel_label_path = \u8DEF\u5F84 +controls_client_homes_panel_label_product_name = \u4EA7\u54C1\u540D\u79F0 +controls_client_homes_panel_label_product_version = \u4EA7\u54C1\u7248\u672C +controls_column_info_panel_property_key = \u952E +controls_connection_properties_action_add_property = \u6DFB\u52A0\u65B0\u5C5E\u6027 +controls_connection_properties_action_remove_property = \u5220\u9664\u5C5E\u6027 +controls_connection_properties_category_user_properties = \u7528\u6237\u5C5E\u6027 +controls_connection_properties_dialog_new_property_title = \u5C5E\u6027\u540D\u79F0 +controls_driver_tree_column_connections = \u8FDE\u63A5 +controls_driver_tree_column_name = \u540D\u79F0 +controls_imageview_fit_window = \u9002\u5E94\u7A97\u53E3 +controls_imageview_original_size = \u539F\u59CB\u5927\u5C0F +controls_imageview_rotate = \u65CB\u8F6C +controls_imageview_zoom_in = \u653E\u5927 +controls_imageview_zoom_out = \u7F29\u5C0F +controls_itemlist_action_copy = \u590D\u5236 +controls_locale_selector_group_locale = \u533A\u57DF +controls_locale_selector_label_country = \u56FD\u5BB6 +controls_locale_selector_label_language = \u8BED\u8A00 +controls_locale_selector_label_locale = \u533A\u57DF +controls_locale_selector_label_variant = \u53D8\u4F53 +controls_object_list_job_props_read = \u8BFB\u53D6\u5EF6\u8FDF\u5C5E\u6027 +controls_object_list_message_items = {0} \u9879 +controls_object_list_message_no_items = \u6CA1\u6709\u4EFB\u4F55\u9879 +controls_object_list_monitor_load_lazy_props = \u8F7D\u5165\u5EF6\u8FDF\u5C5E\u6027 +controls_object_list_monitor_load_props = \u8F7D\u5165 "{0}" \u5C5E\u6027 +controls_object_list_status_objects = {0} \u5BF9\u8C61 +controls_progress_page_action_close = \u5173\u95ED\u641C\u7D22\u9762\u677F +controls_progress_page_job_search = \u641C\u7D22 +controls_progress_page_progress_bar_cancel_tooltip = \u53D6\u6D88\u5F53\u524D\u64CD\u4F5C +controls_progress_page_progress_bar_loading_tooltip = \u8F7D\u5165\u8FDB\u7A0B +controls_progress_page_toolbar_title = \u641C\u7D22 +controls_querylog__ms = \ \u6BEB\u79D2 +controls_querylog_action_clear_log = \u6E05\u9664\u65E5\u5FD7 +controls_querylog_action_copy = \u590D\u5236 +controls_querylog_action_copy_all_fields = \u590D\u5236\u6240\u6709\u5B57\u6BB5 +controls_querylog_action_select_all = \u5168\u9009 +controls_querylog_column_connection_name = \u6570\u636E\u6E90 +controls_querylog_column_connection_tooltip = \u8BE5\u6570\u636E\u5E93\u4E8B\u4EF6\u6240\u5C5E\u7684\u8FDE\u63A5 +controls_querylog_column_context_name = \u8FDE\u63A5 +controls_querylog_column_context_tooltip = \u53D7\u6B64\u4E8B\u4EF6\u5F71\u54CD\u7684\u5B9E\u9645\u7269\u7406\u8FDE\u63A5 +controls_querylog_column_duration_name = \u6301\u7EED\u65F6\u95F4 +controls_querylog_column_duration_tooltip = \u64CD\u4F5C\u8FD0\u884C\u7684\u65F6\u95F4 +controls_querylog_column_result_name = \u7ED3\u679C +controls_querylog_column_result_tooltip = \u6267\u884C\u7ED3\u679C +controls_querylog_column_rows_name = \u884C +controls_querylog_column_rows_tooltip = SQL\u6267\u884C\u5F97\u5230\u7684\u6570\u636E +controls_querylog_column_text_name = \u6587\u672C +controls_querylog_column_text_tooltip = SQL \u6587\u672C +controls_querylog_column_time_name = \u65F6\u95F4 +controls_querylog_column_time_tooltip = \u6267\u884CSQL\u8BED\u53E5\u6240\u7528\u7684\u65F6\u95F4 +controls_querylog_column_type_name = \u7C7B\u578B +controls_querylog_column_type_tooltip = \u4E8B\u4EF6\u7C7B\u578B +controls_querylog_commit = \u63D0\u4EA4 +controls_querylog_connected_to = \u8FDE\u63A5\u81F3 " +controls_querylog_disconnected_from = \u65AD\u5F00\u8FDE\u63A5 " +controls_querylog_error = \u9519\u8BEF [ +controls_querylog_format_minutes = {0} \u5206 {1} \u79D2 +controls_querylog_job_refresh = \u91CD\u65B0\u8F7D\u5165\u67E5\u8BE2\u7BA1\u7406\u5668\u7684\u65E5\u5FD7 +controls_querylog_label_result = \u7ED3\u679C\u96C6 +controls_querylog_label_text = \u6587\u672C +controls_querylog_label_time = \u65F6\u95F4 +controls_querylog_label_type = \u7C7B\u578B +controls_querylog_rollback = \u56DE\u6EDA +controls_querylog_savepoint = \u4FDD\u5B58\u70B9 +controls_querylog_script = \u811A\u672C +controls_querylog_shell_text = \u89C6\u56FE +controls_querylog_success = \u6210\u529F +controls_querylog_transaction = \u4E8B\u52A1 +controls_resultset_check_autocommit_state = \u68C0\u67E5\u8FDE\u63A5\u662F\u5426\u81EA\u52A8\u63D0\u4EA4 +controls_resultset_config_panels = \u9762\u677F +controls_resultset_config_record = \u8BB0\u5F55 +controls_resultset_edit_cancel = \u53D6\u6D88 +controls_resultset_edit_save = \u4FDD\u5B58 +controls_resultset_edit_script = \u811A\u672C +controls_resultset_filter_button_reset = \u91CD\u7F6E +controls_resultset_filter_column_criteria = \u6761\u4EF6 +controls_resultset_filter_column_name = \u5217 +controls_resultset_filter_column_order = \u6392\u5E8F +controls_resultset_filter_group_columns = \u5217 +controls_resultset_filter_group_custom = \u81EA\u5B9A\u4E49 +controls_resultset_filter_label_orderby = Order by \u8BED\u53E5 +controls_resultset_filter_label_where = Where \u8BED\u53E5 +controls_resultset_filter_title = \u8BBE\u7F6E\u7ED3\u679C\u96C6\u7684\u6392\u5E8F/\u8FC7\u6EE4 +controls_resultset_filter_warning_custom_order_disabled = \u6570\u636E\u8FC7\u6EE4\u5668\u548C\u6392\u5E8F\u5BF9\u81EA\u5B9A\u4E49\u67E5\u8BE2\u65E0\u6548 +controls_resultset_viewer_action_custom_filter = \u9AD8\u7EA7\u7684 ... +controls_resultset_viewer_action_edit = \u7F16\u8F91 ... +#controls_resultset_viewer_action_export = \u5BFC\u51FA\u7ED3\u679C\u96C6... +controls_resultset_viewer_action_options = \u914D\u7F6E +controls_resultset_viewer_action_order_filter = \u6392\u5E8F/\u8FC7\u6EE4 +controls_resultset_viewer_action_panels = \u81EA\u5B9A\u4E49\u9762\u677F +controls_resultset_viewer_action_refresh = \u5237\u65B0\u7ED3\u679C\u96C6 +controls_resultset_viewer_add_new_row_context_name = \u590D\u5236\u884C +controls_resultset_viewer_dialog_status_title = \u72B6\u6001 +controls_resultset_viewer_job_update = \u66F4\u65B0\u6570\u636E +controls_resultset_viewer_monitor_aply_changes = \u63D0\u4EA4\u53D8\u66F4 +controls_resultset_viewer_status_empty = \u7A7A +controls_resultset_viewer_status_inserted_ = \u5DF2\u63D2\u5165: {0} / \u5220\u9664: {1} / \u66F4\u65B0: {2} +controls_resultset_viewer_status_no_data = \u6CA1\u6709\u4EFB\u4F55\u6570\u636E +controls_resultset_viewer_status_row = \u884C +controls_resultset_viewer_status_rows = \ \u884C +controls_resultset_viewer_status_rows_fetched = \ \u5DF2\u83B7\u53D6\u884C +controls_resultset_viewer_status_rows_size = {0} \u884C (+{1}) +controls_resultset_viewer_value = \u503C +controls_rs_pump_job_context_name = \u4ECE "{0}" \u8BFB\u53D6\u6570\u636E +controls_rs_pump_job_name = \u8BFB\u53D6\u6570\u636E +controls_time_ms = \u6BEB\u79D2 + + +data_transfer_wizard_final_column_source = \u6E90\u7AEF +data_transfer_wizard_final_column_target = \u76EE\u6807\u7AEF +data_transfer_wizard_final_description = \u68C0\u67E5\u7ED3\u679C +data_transfer_wizard_final_group_tables = \u8868 +data_transfer_wizard_final_name = \u786E\u8BA4 +data_transfer_wizard_final_title = \u786E\u8BA4 +data_transfer_wizard_init_column_description = \u63CF\u8FF0 +data_transfer_wizard_init_column_exported = \u5BFC\u51FA\u5668 +data_transfer_wizard_init_description = \u914D\u7F6E\u6570\u636E\u4F20\u8F93\u76EE\u6807\u7C7B\u578B\u548C\u683C\u5F0F +data_transfer_wizard_init_name = \u8F6C\u5316\u76EE\u6807 +data_transfer_wizard_init_title = \u6570\u636E\u4F20\u8F93\u76EE\u6807\u7C7B\u578B\u548C\u683C\u5F0F +data_transfer_wizard_job_container_name = \u4ECE"{0}"\u5BFC\u51FA\u6570\u636E +data_transfer_wizard_job_name = \u8F6C\u5316\u6570\u636E +data_transfer_wizard_job_task_export = \u8F6C\u5316\u6570\u636E +data_transfer_wizard_job_task_export_table_data = \u8F6C\u5316\u8868\u6570\u636E +data_transfer_wizard_job_task_retrieve = \u68C0\u7D22\u884C\u6570 +data_transfer_wizard_name = \u6570\u636E\u8F6C\u5316 +data_transfer_wizard_output_checkbox_compress = \u538B\u7F29 +data_transfer_wizard_output_checkbox_new_connection = \u6253\u5F00\u65B0\u8FDE\u63A5 +data_transfer_wizard_output_checkbox_open_folder = \u5728\u6700\u540E\u6253\u5F00\u8F93\u51FA\u6587\u4EF6\u5939 +data_transfer_wizard_output_checkbox_select_row_count = \u9009\u62E9\u884C\u8BA1\u6570 +data_transfer_wizard_output_combo_extract_type_item_by_segments = \u6309\u6BB5 +data_transfer_wizard_output_combo_extract_type_item_single_query = \u5355\u4E2A\u67E5\u8BE2 +data_transfer_wizard_output_description = \u914D\u7F6E\u5BFC\u51FA\u8F93\u51FA\u53C2\u6570 +data_transfer_wizard_output_dialog_directory_message = \u9009\u62E9\u6587\u4EF6\u76EE\u5F55\u6765\u653E\u7F6E\u5BFC\u51FA\u7684\u6587\u4EF6 +data_transfer_wizard_output_dialog_directory_text = \u5BFC\u51FA\u6587\u4EF6\u76EE\u5F55 +data_transfer_wizard_output_group_general = \u901A\u7528 +data_transfer_wizard_output_group_progress = \u8FDB\u7A0B +data_transfer_wizard_output_label_directory = \u6587\u4EF6\u76EE\u5F55 +data_transfer_wizard_output_label_encoding = \u7F16\u7801 +data_transfer_wizard_output_label_extract_type = \u62BD\u53D6\u7C7B\u578B +data_transfer_wizard_output_label_file_name_pattern = \u6587\u4EF6\u540D\u79F0\u6A21\u5F0F +data_transfer_wizard_output_label_insert_bom = \u63D2\u5165BOM +data_transfer_wizard_output_label_insert_bom_tooltip = BOM(\u5B57\u8282\u987A\u5E8F\u6807\u5FD7)\u7528\u4E8EUnicode\u5B57\u7B26\u96C6\uFF0C\u5E76\u4E14\u662F\u4E00\u4E9B\u8F6F\u4EF6(\u5982MS Excel)\u6240\u5FC5\u987B\u7684\u3002\u540C\u65F6\uFF0C\u5B83\u4E0D\u88AB\u4E00\u4E9B\u5176\u4ED6\u8F6F\u4EF6\u652F\u6301\u3002 +data_transfer_wizard_output_label_max_threads = \u6700\u5927\u7EBF\u7A0B\u6570 +data_transfer_wizard_output_label_segment_size = \u6BB5\u5927\u5C0F +data_transfer_wizard_output_name = \u8F93\u51FA +data_transfer_wizard_output_title = \u8F93\u51FA +data_transfer_wizard_settings_binaries_item_inline = \u884C\u5185 +data_transfer_wizard_settings_binaries_item_save_to_file = \u4FDD\u5B58\u5230\u6587\u4EF6 +data_transfer_wizard_settings_binaries_item_set_to_null = \u8BBE\u7F6E\u4E3ANULL +data_transfer_wizard_settings_button_edit = \u7F16\u8F91 ... +data_transfer_wizard_settings_description = \u8BBE\u7F6E\u5BFC\u51FA\u8BBE\u7F6E +data_transfer_wizard_settings_group_exporter = \u5BFC\u51FA\u8BBE\u7F6E +data_transfer_wizard_settings_group_general = \u901A\u7528 +data_transfer_wizard_settings_label_binaries = \u4E8C\u8FDB\u5236 +data_transfer_wizard_settings_label_encoding = \u7F16\u7801 +data_transfer_wizard_settings_label_formatting = \u683C\u5F0F\u5316 +data_transfer_wizard_settings_listbox_formatting_item_default = <\u9ED8\u8BA4\u8FDE\u63A5> +data_transfer_wizard_settings_name = \u8BBE\u7F6E +data_transfer_wizard_settings_title = \u8BBE\u7F6E + + +dialog_about_font = SansSerif +dialog_about_label_version = \u7248\u672C +dialog_about_title = \u5173\u4E8E +dialog_connection_auth_checkbox_save_password = \u4FDD\u5B58\u5BC6\u7801 +dialog_connection_auth_group_user_cridentials = \u7528\u6237\u51ED\u8BC1: +dialog_connection_auth_label_password = \u5BC6\u7801: +dialog_connection_auth_label_username = \u7528\u6237\u540D: +dialog_connection_auth_title = '' \u8EAB\u4EFD\u9A8C\u8BC1 +dialog_connection_auth_title_for_handler = \u4E3A {0} \u6307\u5B9A\u5BC6\u7801 +dialog_connection_button_test = &\u6D4B\u8BD5\u94FE\u63A5 ... +#page conn setting +dialog_connection_description = \u6570\u636E\u5E93\u8FDE\u63A5\u8BBE\u7F6E. +dialog_connection_driver = \u9A71\u52A8\u540D\u79F0: +dialog_connection_driver_general = \u901A\u7528 +dialog_connection_driver_project = \u9879\u76EE +dialog_connection_driver_treecontrol_initialText = \u8F93\u5165\u6570\u636E\u5E93/\u9A71\u52A8\u540D\u7684\u90E8\u5206\u5185\u5BB9\u6765\u8FC7\u6EE4 +dialog_connection_edit_driver_button = \u7F16\u8F91\u9A71\u52A8\u8BBE\u7F6E +dialog_connection_events_checkbox_show_process = \u663E\u793A\u8FDB\u7A0B\u9762\u677F +dialog_connection_events_checkbox_terminate_at_disconnect = \u65AD\u5F00\u8FDE\u63A5\u65F6\u7EC8\u6B62 +dialog_connection_events_checkbox_wait_finish = \u7B49\u5F85\u8FDB\u7A0B\u7ED3\u675F +dialog_connection_events_checkbox_wait_finish_timeout = \u8D85\u65F6 (ms) +dialog_connection_events_label_command = \u547D\u4EE4 +dialog_connection_events_label_event = \u4E8B\u4EF6 +dialog_connection_events_title = \u7F16\u8F91\u8FDE\u63A5\u7684\u4E8B\u4EF6 +dialog_connection_message = {0} \u8FDE\u63A5\u8BBE\u7F6E +dialog_connection_network_postgres_ssl_advanced = \u9AD8\u7EA7 +dialog_connection_network_postgres_ssl_advanced_ssl_factory = SSL \u5DE5\u5382 +dialog_connection_network_postgres_ssl_advanced_ssl_mode = SSL \u6A21\u5F0F +dialog_connection_network_postgres_ssl_certificates = \u8BC1\u4E66 +dialog_connection_network_postgres_ssl_certificates_ca = CA \u8BC1\u4E66 +dialog_connection_network_postgres_ssl_certificates_root = \u6839\u8BC1\u4E66 +dialog_connection_network_postgres_ssl_certificates_ssl = SSL \u8BC1\u4E66 +dialog_connection_network_postgres_ssl_certificates_ssl_key = SSL \u8BC1\u4E66\u5BC6\u94A5 +#page conn network +dialog_connection_network_title = \u7F51\u7EDC +dialog_connection_wizard_configure = \u914D\u7F6E ... +dialog_connection_wizard_description = \u63CF\u8FF0 +dialog_connection_wizard_final_button_events = \u4E8B\u4EF6 ... +dialog_connection_wizard_final_button_test = \u6D4B\u8BD5\u8FDE\u63A5 ... +dialog_connection_wizard_final_button_tunneling = \u901A\u9053 ... +dialog_connection_wizard_final_checkbox_auto_commit = \u81EA\u52A8\u63D0\u4EA4 +#dialog_connection_wizard_final_checkbox_auto_commit_tooltip = \u4E3A\u6240\u6709\u8FDE\u63A5\u8BBE\u7F6E\u81EA\u52A8\u63D0\u4EA4\u6A21\u5F0F +dialog_connection_wizard_final_checkbox_connection_readonly = \u53EA\u8BFB\u8FDE\u63A5 +dialog_connection_wizard_final_checkbox_filter_catalogs = \u8FC7\u6EE4\u76EE\u5F55 +dialog_connection_wizard_final_checkbox_filter_schemas = \u8FC7\u6EE4\u6A21\u5F0F +dialog_connection_wizard_final_checkbox_save_password_locally = \u4FDD\u5B58\u5BC6\u7801\u5230\u672C\u5730 +dialog_connection_wizard_final_checkbox_show_system_objects = \u663E\u793A\u7CFB\u7EDF\u5BF9\u8C61 +dialog_connection_wizard_final_checkbox_show_util_objects = \u663E\u793A\u5B9E\u7528\u7A0B\u5E8F\u5BF9\u8C61 +dialog_connection_wizard_final_default_new_connection_name = \u65B0\u8FDE\u63A5 +dialog_connection_wizard_final_description = \u5E38\u89C4\u8FDE\u63A5\u8BBE\u7F6E. +dialog_connection_wizard_final_filter_catalogs = \u76EE\u5F55 +dialog_connection_wizard_final_filter_link_not_supported_text = {0} (\u4E0D\u652F\u6301) +dialog_connection_wizard_final_filter_link_not_supported_tooltip = {0} \u4E0D\u88AB\u9A71\u52A8 {1} \u652F\u6301 +dialog_connection_wizard_final_filter_link_tooltip = \u4E3A {0} \u914D\u7F6E\u8FC7\u6EE4\u5668 +dialog_connection_wizard_final_filter_schemas_users = \u6A21\u5F0F / \u7528\u6237 +dialog_connection_wizard_final_filter_tables = \u8868 +dialog_connection_wizard_final_group_filters = \u8FC7\u6EE4 +dialog_connection_wizard_final_group_misc = \u6742\u9879 +dialog_connection_wizard_final_group_security = \u5B89\u5168\u6027 +dialog_connection_wizard_final_header = \u521B\u5EFA\u8FDE\u63A5\u7ED3\u675F +dialog_connection_wizard_final_label_bootstrap_query = \u542F\u52A8\u67E5\u8BE2 +dialog_connection_wizard_final_label_bootstrap_tooltip = \u8FDE\u63A5\u5EFA\u7ACB\u540E\u7ACB\u5373\u6267\u884C\u7684SQL\u67E5\u8BE2 +dialog_connection_wizard_final_label_connection = \u8FDE\u63A5 +dialog_connection_wizard_final_label_connection_folder = \u8FDE\u63A5\u6587\u4EF6\u5939 +dialog_connection_wizard_final_label_connection_name = \u8FDE\u63A5\u540D\u79F0 +dialog_connection_wizard_final_label_connection_type = \u8FDE\u63A5\u7C7B\u578B +dialog_connection_wizard_final_label_default_schema = \u9ED8\u8BA4\u6A21\u5F0F +dialog_connection_wizard_final_label_default_schema_tooltip = \u5C06\u88AB\u8BBE\u7F6E\u4E3A\u9ED8\u8BA4\u7684\u6A21\u5F0F\u6216\u7C7B\u522B\u7684\u540D\u79F0 +dialog_connection_wizard_final_label_edit = \u7F16\u8F91 +dialog_connection_wizard_final_label_isolation_level = \u9694\u79BB\u7EA7\u522B +dialog_connection_wizard_final_label_isolation_level_tooltip = \u7F3A\u7701\u4E8B\u52A1\u9694\u79BB\u7EA7\u522B\u3002 +dialog_connection_wizard_final_label_keepalive = \u6301\u4E45\u8FDE\u63A5 +dialog_connection_wizard_final_label_keepalive_tooltip = \u6301\u4E45\u8FDE\u63A5\u7684\u65F6\u95F4\u957F\u5EA6(\u4EE5\u79D2\u8BA1). 0\u81F3\u4F1A\u5173\u95ED\u6301\u4E45\u8FDE\u63A5\u3002 +dialog_connection_wizard_final_label_shell_command = Shell \u547D\u4EE4 +dialog_connection_wizard_socksproxy_host = \u4E3B\u673A +dialog_connection_wizard_socksproxy_password = \u5BC6\u7801 +dialog_connection_wizard_socksproxy_port = \u7AEF\u53E3 +dialog_connection_wizard_socksproxy_username = \u7528\u6237\u540D +dialog_connection_wizard_start_connection_monitor_close = \u5173\u95ED\u8FDE\u63A5 +dialog_connection_wizard_start_connection_monitor_connected = \u5DF2\u8FDE\u63A5 ({0} ms) +dialog_connection_wizard_start_connection_monitor_start = \u83B7\u53D6\u8FDE\u63A5 +dialog_connection_wizard_start_connection_monitor_subtask_test = \u6D4B\u8BD5\u8FDE\u63A5 +dialog_connection_wizard_start_connection_monitor_success = \u6210\u529F +dialog_connection_wizard_start_connection_monitor_thread = \u6D4B\u8BD5\u6570\u636E\u6E90\u8FDE\u63A5 +dialog_connection_wizard_start_dialog_error_message = \u6570\u636E\u5E93\u8FDE\u63A5\u9519\u8BEF +dialog_connection_wizard_start_dialog_error_title = \u8FDE\u63A5\u9519\u8BEF +dialog_connection_wizard_start_dialog_interrupted_message = \u6D4B\u8BD5\u4E2D\u65AD +dialog_connection_wizard_start_dialog_interrupted_title = \u4E2D\u65AD +dialog_connection_wizard_title = \u7F16\u8F91\u8FDE\u63A5 +dialog_cursor_view_monitor_rows_fetched = \ \u83B7\u53D6\u7684\u884C +dialog_data_format_profiles_button_delete_profile = \u5220\u9664\u914D\u7F6E\u6587\u4EF6 +dialog_data_format_profiles_button_new_profile = \u65B0\u5EFA\u914D\u7F6E\u6587\u4EF6 +dialog_data_format_profiles_confirm_delete_message = \u786E\u5B9A\u5417\uFF1F +dialog_data_format_profiles_confirm_delete_title = \u5220\u9664\u914D\u7F6E\u6587\u4EF6 +dialog_data_format_profiles_dialog_name_chooser_title = \u914D\u7F6E\u6587\u6863\u540D\u79F0 +dialog_data_format_profiles_error_message = \u914D\u7F6E\u6587\u4EF6 "{0}" \u5DF2\u7ECF\u5B58\u5728 +dialog_data_format_profiles_error_title = \u521B\u5EFA\u914D\u7F6E\u6587\u4EF6 +dialog_data_format_profiles_title = \u7BA1\u7406\u6570\u636E\u683C\u5F0F\u914D\u7F6E\u6587\u4EF6 +dialog_data_label_value = \u503C\uFF1A +dialog_driver_manager_button_delete = &\u5220\u9664 +dialog_driver_manager_button_edit = &\u7F16\u8F91 ... +dialog_driver_manager_button_new = &\u65B0\u5EFA +dialog_driver_manager_label_unavailable = - \u4E0D\u53EF\u83B7\u5F97 +dialog_driver_manager_label_user_defined = - \u7528\u6237\u5B9A\u4E49\u7684 +dialog_driver_manager_message_cant_delete_text = \u4F60\u65E0\u6CD5\u5220\u9664\u9A71\u52A8"{0}"\u56E0\u4E3A\u5B83\u6B63\u88AB\u4EE5\u4E0B\u6570\u636E\u6E90\u4F7F\u7528\uFF1A +dialog_driver_manager_message_cant_delete_title = \u65E0\u6CD5\u5220\u9664\u9A71\u52A8 +dialog_driver_manager_message_delete_driver_text = \u4F60\u786E\u5B9A\u4F60\u60F3\u8981\u5220\u9664\u9A71\u52A8\u7A0B\u5E8F '' +dialog_driver_manager_message_delete_driver_title = \u5220\u9664\u9A71\u52A8 +dialog_driver_manager_title = \u9A71\u52A8\u7BA1\u7406\u5668 +dialog_edit_driver_button_add_artifact = \u6DFB\u52A0\u5DE5\u4EF6 +dialog_edit_driver_button_add_file = \u6DFB\u52A0\u6587\u4EF6 +dialog_edit_driver_button_add_folder = \u6DFB\u52A0\u6587\u4EF6\u5939 +dialog_edit_driver_button_bind_class = \u627E\u5230\u7C7B +dialog_edit_driver_button_classpath = \u7C7B\u8DEF\u5F84 +dialog_edit_driver_button_delete = \u5220\u9664 +dialog_edit_driver_button_details = \u4FE1\u606F +dialog_edit_driver_button_down = \u5411\u4E0B +dialog_edit_driver_button_reset_to_defaults = \u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u72B6\u6001 +dialog_edit_driver_button_up = \u5411\u4E0A +dialog_edit_driver_button_update_version = \u4E0B\u8F7D/\u66F4\u65B0 +dialog_edit_driver_dialog_driver_error_message = \u65E0\u6CD5\u52A0\u8F7D\u9A71\u52A8 +dialog_edit_driver_dialog_driver_error_title = \u9A71\u52A8\u9519\u8BEF +dialog_edit_driver_dialog_open_driver_directory = \u6253\u5F00\u9A71\u52A8\u76EE\u5F55 +dialog_edit_driver_dialog_open_driver_library = \u6253\u5F00\u9A71\u52A8\u5E93 +dialog_edit_driver_label_category = \u76EE\u5F55 +dialog_edit_driver_label_class_name = \u7C7B\u540D +dialog_edit_driver_label_default_port = \u9ED8\u8BA4\u7AEF\u53E3 +dialog_edit_driver_label_description = \u63CF\u8FF0 +dialog_edit_driver_label_driver_class = \u9A71\u52A8\u7C7B +dialog_edit_driver_label_driver_name = \u9A71\u52A8\u540D\u79F0 +dialog_edit_driver_label_sample_url = URL \u6A21\u677F +dialog_edit_driver_label_website = \u7F51\u5740 +dialog_edit_driver_tab_name_advanced_parameters = \u9AD8\u7EA7\u53C2\u6570 +dialog_edit_driver_tab_name_client_homes = \u672C\u5730\u5BA2\u6237\u7AEF +dialog_edit_driver_tab_name_connection_properties = \u8FDE\u63A5\u5C5E\u6027 +dialog_edit_driver_tab_name_driver_libraries = \u5E93 +dialog_edit_driver_tab_name_license = \u8BB8\u53EF +dialog_edit_driver_tab_tooltip_advanced_parameters = \u9AD8\u7EA7\u9A71\u52A8\u53C2\u6570 +dialog_edit_driver_tab_tooltip_connection_properties = \u9ED8\u8BA4\u8FDE\u63A5\u5C5E\u6027 +dialog_edit_driver_tab_tooltip_driver_libraries = \u989D\u5916\u7684\u9A71\u52A8\u5E93 +dialog_edit_driver_tab_tooltip_license = \u9A71\u52A8\u8BB8\u53EF +dialog_edit_driver_text_driver_license = \u9A71\u52A8\u8BB8\u53EF +dialog_edit_driver_title_create_driver = \u521B\u5EFA\u65B0\u9A71\u52A8 +dialog_edit_driver_title_edit_driver = \u7F16\u8F91\u9A71\u52A8 '' +dialog_filter_button_add = \u6DFB\u52A0 +dialog_filter_button_clear = \u6E05\u7406 +dialog_filter_button_enable = \u542F\u7528 +dialog_filter_button_remove = \u79FB\u9664 +dialog_filter_global_link = \u663E\u793A\u5168\u5C40\u8FC7\u6EE4\u5668 +dialog_filter_list_exclude = \u6392\u9664 +dialog_filter_list_include = \u5305\u62EC +dialog_filter_table_column_value = \u503C +dialog_filter_title = \u8FC7\u6EE4\uFF1A{0} +dialog_find_replace_1_replacement = 1 \u66FF\u6362 +dialog_find_replace_backward = \u5411\u540E +dialog_find_replace_cancel = \u53D6\u6D88 +dialog_find_replace_close = \u5173\u95ED +dialog_find_replace_copy = \u62F7\u8D1D +dialog_find_replace_direction = \u65B9\u5411 +dialog_find_replace_error_ = \u9519\u8BEF\uFF1A +dialog_find_replace_find = \u627E\u5230 +dialog_find_replace_find_literal = \u67E5\u627E\u6587\u5B57 +dialog_find_replace_find_replace = \u67E5\u627E/\u66FF\u6362 +dialog_find_replace_forward = \u5411\u524D +dialog_find_replace_found_literal = \u627E\u5230\u6587\u5B57 +dialog_find_replace_goto_line = \u8DF3\u8F6C\u5230\u884C +dialog_find_replace_ignore_case = \u5FFD\u7565\u5927\u5C0F\u5199 +dialog_find_replace_literal_not_found = \u6587\u5B57\u672A\u627E\u5230 +dialog_find_replace_new_find = \u65B0\u627E\u5230 +dialog_find_replace_paste = \u7C98\u8D34 +dialog_find_replace_redo = \u91CD\u505A +dialog_find_replace_replace = \u66FF\u6362 +dialog_find_replace_replace_all = \u66FF\u6362\u5168\u90E8 +dialog_find_replace_replace_find = \u66FF\u6362/\u627E\u5230 +dialog_find_replace_replace_with = \u66FF\u6362\u4E3A +dialog_find_replace_replacements = \ \u66FF\u6362 +dialog_find_replace_searching = \u641C\u7D22 +dialog_find_replace_stop = \u505C\u6B62 +dialog_find_replace_text = \u6587\u672C +dialog_find_replace_undo = \u64A4\u9500 +dialog_go_to_button_close = \u5173\u95ED +dialog_go_to_button_go_to_location = \u8DF3\u8F6C\u5230\u4F4D\u7F6E +dialog_go_to_button_show_location = \u663E\u793A\u4F4D\u7F6E +dialog_go_to_label_enter_location_number = \u8F93\u5165\u4F4D\u7F6E\u53F7\uFF0C 0 \u5230 {0} (0x0 \u5230 0x{1}) +dialog_go_to_label_not_number = \u975E\u6570\u5B57 +dialog_go_to_label_out_of_range = \u4F4D\u7F6E\u7684\u8303\u56F4 +dialog_go_to_title = \u8DF3\u8F6C\u5230\u4F4D\u7F6E +dialog_migrate_wizard_choose_driver_description = \u4E3A\u9009\u5B9A\u7684\u8FDE\u63A5\u9009\u62E9\u76EE\u6807\u9A71\u52A8\u7A0B\u5E8F\u3002 +dialog_migrate_wizard_choose_driver_title = \u9009\u62E9\u76EE\u6807\u9A71\u52A8\u7A0B\u5E8F +dialog_migrate_wizard_name = \u8FDE\u63A5 +dialog_migrate_wizard_start_description = \u3002\u9009\u62E9\u60A8\u5E0C\u671B\u8FC1\u79FB\u5230\u53E6\u4E00\u4E2A\u9A71\u52A8\u7A0B\u5E8F\u7684\u8FDE\u63A5 +dialog_migrate_wizard_start_title = \u9009\u62E9\u8981\u8FC1\u79FB\u7684\u8FDE\u63A5 +dialog_migrate_wizard_window_title = \u8FC1\u79FB\u8FDE\u63A5\u5230\u53E6\u4E00\u4E2A\u9A71\u52A8\u7A0B\u5E8F +#page select conn +dialog_new_connection_wizard_monitor_load_data_sources = \u52A0\u8F7D\u6570\u636E\u6E90 +dialog_new_connection_wizard_start_description = \u521B\u5EFA\u65B0\u8FDE\u63A5. \u5982\u679C\u5217\u8868\u4E2D\u6CA1\u6709\u60A8\u9700\u8981\u7684\u6570\u636E\u5E93\n\u90A3\u4E48\u60A8\u53EF\u4EE5\u5728\u9A71\u52A8\u7BA1\u7406\u5668\u4E2D\u521B\u5EFA\u65B0\u7684\u6570\u636E\u5E93\u8FDE\u63A5\u3002 +dialog_new_connection_wizard_start_title = \u9009\u62E9\u65B0\u8FDE\u63A5\u7C7B\u578B +dialog_new_connection_wizard_title = \u521B\u5EFA\u65B0\u8FDE\u63A5 +dialog_project_create_wizard_error_already_exists = \u9879\u76EE "{0}" \u5DF2\u7ECF\u5B58\u5728 +dialog_project_create_wizard_error_cannot_create = \u521B\u5EFA\u9519\u8BEF +dialog_project_create_wizard_error_cannot_create_message = \u65E0\u6CD5\u521B\u5EFA\u9879\u76EE +dialog_project_create_wizard_title = \u9879\u76EE\u521B\u5EFA\u5411\u5BFC +dialog_project_export_wizard_main_page = \u5BFC\u51FA\u9879\u76EE +dialog_project_export_wizard_monitor_collect_info = \u6536\u96C6\u9879\u76EE\u4FE1\u606F +dialog_project_export_wizard_monitor_export_driver_info = \u5BFC\u51FA\u9A71\u52A8\u4FE1\u606F +dialog_project_export_wizard_monitor_export_libraries = \u5BFC\u51FA\u9A71\u52A8\u5E93 +dialog_project_export_wizard_monitor_export_project = \u5BFC\u51FA\u9879\u76EE "{0}" +dialog_project_export_wizard_page_checkbox_overwrite_files = \u8986\u76D6\u73B0\u6709\u7684\u6587\u4EF6 +dialog_project_export_wizard_page_dialog_choose_export_dir_message = \u9009\u62E9\u76EE\u5F55\u6765\u653E\u7F6E\u5BFC\u51FA\u7684\u6587\u4EF6 +dialog_project_export_wizard_page_dialog_choose_export_dir_text = \u5BFC\u51FA\u76EE\u5F55 +dialog_project_export_wizard_page_label_directory = \u6587\u4EF6\u76EE\u5F55 +dialog_project_export_wizard_page_message_check_script = \u68C0\u67E5\u811A\u672C\u6765\u5BFC\u51FA +dialog_project_export_wizard_page_message_configure_settings = \u914D\u7F6E\u811A\u672C\u5BFC\u51FA\u8BBE\u7F6E\u3002 +dialog_project_export_wizard_page_message_no_output_dir = \u8F93\u51FA\u7684\u6587\u4EF6\u76EE\u5F55\u672A\u6307\u5B9A\u3002 +dialog_project_export_wizard_page_title = \u5BFC\u51FA\u811A\u672C +dialog_project_export_wizard_start_archive_name_prefix = \u5168\u90E8 +dialog_project_export_wizard_start_checkbox_libraries = \u5BFC\u51FA\u9A71\u52A8\u5E93 +dialog_project_export_wizard_start_dialog_directory_message = \u9009\u62E9\u76EE\u5F55\u6765\u653E\u7F6E\u5BFC\u51FA\u7684\u6587\u4EF6 +dialog_project_export_wizard_start_dialog_directory_text = \u5BFC\u51FA\u6587\u4EF6\u76EE\u5F55 +dialog_project_export_wizard_start_label_directory = \u6587\u4EF6\u76EE\u5F55 +dialog_project_export_wizard_start_label_output_file = \u8F93\u51FA\u6587\u4EF6 +dialog_project_export_wizard_start_message_choose_project = \u9009\u62E9\u4E00\u4E2A\u9879\u76EE\u6765\u5BFC\u51FA\u3002 +dialog_project_export_wizard_start_message_configure_settings = \u914D\u7F6E\u9879\u76EE\u5BFC\u51FA\u8BBE\u7F6E +dialog_project_export_wizard_start_message_empty_output_directory = \u8F93\u51FA\u7684\u6587\u4EF6\u76EE\u5F55\u672A\u6307\u5B9A\u3002 +dialog_project_export_wizard_start_title = \u5BFC\u51FA\u9879\u76EE +dialog_project_export_wizard_window_title = \u9879\u76EE\u5BFC\u51FA\u5411\u5BFC +dialog_project_import_wizard_file_checkbox_import_libraries = \u5BFC\u5165\u9A71\u52A8\u5E93 +dialog_project_import_wizard_file_column_source_name = \u8FDC\u540D\u79F0 +dialog_project_import_wizard_file_column_target_name = \u76EE\u6807\u540D\u79F0 +dialog_project_import_wizard_file_description = \u914D\u7F6E\u9879\u76EE\u5BFC\u5165\u8BBE\u7F6E\u3002 +dialog_project_import_wizard_file_dialog_export_archive_text = \u6253\u5F00\u5BFC\u51FA\u5B58\u6863 +dialog_project_import_wizard_file_group_input = \u8F93\u5165 +dialog_project_import_wizard_file_group_projects = \u9879\u76EE +dialog_project_import_wizard_file_label_file = \u6587\u4EF6 +dialog_project_import_wizard_file_message_cannt_find_projects = \u65E0\u6CD5\u5728\u5143\u6587\u4EF6\u4E2D\u627E\u5230\u9879\u76EE +dialog_project_import_wizard_file_message_choose_project = \u9009\u62E9\u9879\u76EE\u5BFC\u5165 +dialog_project_import_wizard_file_message_project_exists = \u9879\u76EE "{0}" \u5DF2\u5B58\u5728 +dialog_project_import_wizard_file_message_ready = \u51C6\u5907\u5BFC\u5165\u9879\u76EE +dialog_project_import_wizard_file_name = \u5BFC\u5165\u9879\u76EE +dialog_project_import_wizard_file_title = \u5BFC\u5165\u9879\u76EE +dialog_project_import_wizard_message_success_import_message = \u9879\u76EE\u5BFC\u5165\u6210\u529F +dialog_project_import_wizard_message_success_import_title = \u9879\u76EE\u5BFC\u5165 +dialog_project_import_wizard_monitor_import_drivers = \u5BFC\u5165\u9879\u76EE +dialog_project_import_wizard_monitor_import_project = \u5BFC\u5165\u9879\u76EE +dialog_project_import_wizard_monitor_import_projects = \u5BFC\u5165\u9879\u76EE +dialog_project_import_wizard_monitor_load_driver = \u52A0\u8F7D\u9A71\u52A8 +dialog_project_import_wizard_monitor_load_libraries = \u52A0\u8F7D\u9A71\u52A8\u7A0B\u5E8F\u5E93 +dialog_project_import_wizard_title = \u9879\u76EE\u5BFC\u5165\u5411\u5BFC +dialog_scripts_export_wizard_page_name = \u5BFC\u5165\u811A\u672C +dialog_scripts_export_wizard_window_title = \u811A\u672C\u5BFC\u5165\u5411\u5BFC +dialog_scripts_import_wizard_description = \u914D\u7F6E\u811A\u672C\u5BFC\u5165\u8BBE\u7F6E +dialog_scripts_import_wizard_dialog_choose_dir_message = \u9009\u62E9\u811A\u672C\u8D44\u6E90\u76EE\u5F55 +dialog_scripts_import_wizard_dialog_choose_dir_text = \u8D44\u6E90\u76EE\u5F55 +dialog_scripts_import_wizard_dialog_error_text = \u65E0\u6CD5\u5BFC\u5165\u811A\u672C +dialog_scripts_import_wizard_dialog_error_title = \u5BFC\u5165\u9519\u8BEF +dialog_scripts_import_wizard_dialog_message_no_scripts = \u627E\u4E0D\u5230\u811A\u672C +dialog_scripts_import_wizard_dialog_message_success_imported = \u811A\u672C\u5BFC\u5165\u6210\u529F +dialog_scripts_import_wizard_dialog_message_title = \u811A\u672C\u5BFC\u5165 +dialog_scripts_import_wizard_label_default_connection = \u9ED8\u8BA4\u8FDE\u63A5 +dialog_scripts_import_wizard_label_file_mask = \u6587\u4EF6\u63A9\u7801 +dialog_scripts_import_wizard_label_input_directory = \u8F93\u5165\u76EE\u5F55 +dialog_scripts_import_wizard_label_root_folder = \u811A\u672C\u6839\u6587\u4EF6\u5939 +dialog_scripts_import_wizard_monitor_import_scripts = \u5BFC\u5165\u811A\u672C +dialog_scripts_import_wizard_name = \u5BFC\u5165\u811A\u672C +dialog_scripts_import_wizard_title = \u5BFC\u5165\u811A\u672C +dialog_scripts_import_wizard_window_title = \u811A\u672C\u5BFC\u5165\u5411\u5BFC +dialog_search_objects_button_close = \u5173\u95ED +dialog_search_objects_button_search = \u641C\u7D22 +dialog_search_objects_case_sensitive = \u533A\u5206\u5927\u5C0F\u5199 +dialog_search_objects_column_description = \u63CF\u8FF0 +dialog_search_objects_column_type = \u7C7B\u578B +dialog_search_objects_combo_contains = \u5305\u542B +dialog_search_objects_combo_like = \u50CF +dialog_search_objects_combo_starts_with = \u5F00\u59CB\u4E8E +dialog_search_objects_group_object_types = \u5BF9\u8C61\u7C7B\u578B +dialog_search_objects_group_objects_source = \u5BF9\u8C61\u8D44\u6E90 +dialog_search_objects_item_list_info = \u4F60\u5FC5\u987B\u8BBE\u7F6E\u641C\u7D22\u67E5\u8BE2 +dialog_search_objects_label_name_match = \u540D\u79F0\u5339\u914D +dialog_search_objects_label_object_name = \u9879\u76EE\u540D\u79F0 +dialog_search_objects_message_no_objects_like_ = \u6CA1\u6709\u9879\u76EE\u50CF "{0}" \u5728 "{1}" +dialog_search_objects_message_objects_found = \ \u627E\u5230\u7684\u9879\u76EE +dialog_search_objects_spinner_max_results = \u6700\u5927\u7ED3\u679C +dialog_search_objects_title = \u67E5\u627E\u6570\u636E\u5E93\u5BF9\u8C61 +dialog_select_datasource_error_message = \u9996\u5148\u521B\u5EFA\u65B0\u6570\u636E\u6E90\u3002 +dialog_select_datasource_error_title = \u6570\u636E\u5E93\u4E0D\u5B58\u5728 +dialog_select_datasource_title = \u9009\u62E9\u6570\u636E\u6E90 +dialog_setting_connection_database = \u6570\u636E\u5E93 +dialog_setting_connection_driver_properties_description = JDBC \u9A71\u52A8\u5C5E\u6027 +dialog_setting_connection_driver_properties_title = \u9A71\u52A8\u5C5E\u6027 +dialog_setting_connection_general = \u5E38\u89C4 +dialog_setting_connection_host = \u4E3B\u673A +dialog_setting_connection_localClient = \u672C\u5730\u5BA2\u6237\u7AEF +dialog_setting_connection_nondefaultDatabase = \u663E\u793A\u975E\u7F3A\u7701\u7684\u6570\u636E\u5E93 +dialog_setting_connection_password = \u5BC6\u7801 +dialog_setting_connection_port = \u7AEF\u53E3 +dialog_setting_connection_settings = \u8BBE\u7F6E +dialog_setting_connection_user = \u7528\u6237 +#page conn setting +dialog_setting_connection_wizard_title = \u8FDE\u63A5\u8BBE\u7F6E +dialog_struct_columns_select_column = \u5B57\u6BB5 +dialog_struct_columns_select_error_load_columns_message = \u9519\u8BEF\u52A0\u8F7D\u8868\u5B57\u6BB5 +dialog_struct_columns_select_error_load_columns_title = \u52A0\u8F7D\u5B57\u6BB5 +dialog_struct_columns_select_group_columns = \u5B57\u6BB5 +dialog_struct_columns_select_label_table = \u8868 +dialog_struct_columns_select_title = {0} \u4E3A\u8868 "{1}" +dialog_struct_create_entity_group_name = \u540D\u79F0 +dialog_struct_create_entity_title = \u521B\u5EFA\u65B0\u7684 +dialog_struct_create_procedure_combo_type = \u7C7B\u578B +dialog_struct_create_procedure_label_name = \u540D\u79F0 +dialog_struct_create_procedure_title = \u521B\u5EFA\u65B0\u7684\u8FC7\u7A0B/\u51FD\u6570 +dialog_struct_edit_constrain_label_type = \u7C7B\u578B +dialog_struct_edit_fk_column_col_type = \u5B57\u6BB5\u7C7B\u578B +dialog_struct_edit_fk_column_column = \u5B57\u6BB5 +dialog_struct_edit_fk_column_ref_col = \u53C2\u7167\u5B57\u6BB5 +dialog_struct_edit_fk_column_ref_col_type = \u53C2\u7167\u5B57\u6BB5\u7C7B\u578B +dialog_struct_edit_fk_combo_on_delete = \u5728\u5220\u9664\u65F6 +dialog_struct_edit_fk_combo_on_update = \u5728\u66F4\u65B0\u65F6 +dialog_struct_edit_fk_combo_unik = \u552F\u4E00\u952E +dialog_struct_edit_fk_error_load_constraint_columns_message = \u65E0\u6CD5\u52A0\u8F7D\u8868\u7EA6\u675F\u5B57\u6BB5 +dialog_struct_edit_fk_error_load_constraint_columns_title = \u52A0\u8F7D\u7EA6\u675F\u5B57\u6BB5 +dialog_struct_edit_fk_error_load_constraints_message = \u65E0\u6CD5\u52A0\u8F7D\u8868\u7EA6\u675F +dialog_struct_edit_fk_error_load_constraints_title = \u52A0\u8F7D\u7EA6\u675F +dialog_struct_edit_fk_label_columns = \u5B57\u6BB5 +dialog_struct_edit_fk_label_ref_table = \u53C2\u7167\u8868 +dialog_struct_edit_fk_label_table = \u8868 +dialog_struct_edit_fk_title = {0} \u4E3A\u8868 "{1}" +dialog_struct_edit_index_label_type = \u7C7B\u578B +dialog_tunnel_checkbox_use_handler = \u4F7F\u7528 {0} +dialog_tunnel_title = \u914D\u7F6E\u7F51\u7EDC\u5904\u7406\u5668\u548C\u901A\u9053 +dialog_value_view_button_cancel = &\u53D6\u6D88 +dialog_value_view_button_sat_null = \u8BBE\u7F6E\u4E3A &NULL +dialog_value_view_button_save = &\u4FDD\u5B58 +dialog_value_view_column_description = \u63CF\u8FF0 +dialog_value_view_column_value = \u503C +dialog_value_view_context_name = \u9009\u62E9 "{0}" \u679A\u4E3E\u503C +dialog_value_view_dialog_error_updating_message = \u65E0\u6CD5\u66F4\u65B0\u5B57\u6BB5\u503C +dialog_value_view_dialog_error_updating_title = \u9519\u8BEF\u66F4\u65B0\u5B57\u6BB5 +dialog_value_view_job_selector_name = \u9009\u62E9 +dialog_value_view_label_dictionary = \u5B57\u5178 ({0}): +dialog_version_update_available_new_version = DBeaver \u7684\u65B0\u7248\u672C\u53EF\u4EE5\u83B7\u53D6\u4E86\u3002 +dialog_version_update_button_more_info = \u66F4\u591A\u4FE1\u606F... +dialog_version_update_current_version = \u5F53\u524D\u7248\u672C +dialog_version_update_n_a = \ \u4E0D\u9002\u7528 +dialog_version_update_new_version = \u65B0\u7248\u672C +dialog_version_update_no_new_version = \u6CA1\u6709\u65B0\u7248\u672C\u7684 DBeaver \u3002 +dialog_version_update_notes = \u5907\u6CE8 +dialog_version_update_press_more_info_ = \u70B9\u51FB\u201C\u66F4\u591A\u4FE1\u606F\u201D\u6253\u5F00\u4E00\u4E2A\u53EF\u4EE5\u4E0B\u8F7D DBeaver \u7684\u7F51\u9875\u3002 +dialog_version_update_title = \u7248\u672C\u66F4\u65B0 +dialog_view_classpath_title = \u7CFB\u7EDF\u7C7B\u8DEF\u5F84 +dialog_view_sql_button_copy = \u62F7\u8D1D +dialog_view_sql_button_persist = \u4FDD\u7559 + + +editor_binary_hex_default_font = \u9ED8\u8BA4\u5B57\u4F53 +editor_binary_hex_font_style_bold = \u7C97\u4F53 +editor_binary_hex_font_style_bold_italic = \u7C97\u659C\u4F53 +editor_binary_hex_font_style_italic = \u659C\u4F53 +editor_binary_hex_font_style_regular = \u666E\u901A +editor_binary_hex_froup_font_selection = \u9009\u62E9\u5B57\u4F53 +editor_binary_hex_label_available_fix_width_fonts = \u56FA\u5B9A\u5B57\u4F53\u5BBD\u5EA6 +editor_binary_hex_label_name = \u540D\u79F0 +editor_binary_hex_label_size = \u5927\u5C0F +editor_binary_hex_label_style = \u7C7B\u578B +editor_binary_hex_sample_text = ca fe ba be 00 00 01 2d \u5B57\u4F53\u6D4B\u8BD5 +editor_binary_hex_status_line_offset = \u504F\u79FB\uFF1A +editor_binary_hex_status_line_selection = \u9009\u62E9\uFF1A +editor_binary_hex_status_line_text_insert = \u63D2\u5165 +editor_binary_hex_status_line_text_ovewrite = \u91CD\u5199 +editor_binary_hex_status_line_value = \u503C\uFF1A +editor_sql_preference = \u504F\u597D... +editors_entity_dialog_persist_title = \u4FDD\u5B58 +editors_entity_dialog_preview_title = \u4FDD\u5B58 +editors_entity_monitor_add_folder = \u6DFB\u52A0\u6587\u4EF6\u5939 " +editors_entity_monitor_add_node = \u6DFB\u52A0\u8282\u70B9 " +editors_entity_monitor_preview_changes = \u4FDD\u5B58 +editors_entity_properties_text = \u5C5E\u6027 +editors_entity_properties_tooltip_suffix = \ \u5C5E\u6027 +editors_sql_data_grid = \u6570\u636E\u8868 +editors_sql_description = SQL\u7F16\u8F91\u5668 +editors_sql_error_cant_execute_query_message = \u65E0\u6CD5\u5728\u540C\u4E00\u4E2A\u7F16\u8F91\u5668\u540C\u65F6\u6267\u884C\u591A\u4E2A\u67E5\u8BE2 +editors_sql_error_cant_execute_query_title = \u65E0\u6CD5\u6267\u884C\u67E5\u8BE2 +editors_sql_error_cant_obtain_session = \u65E0\u6CD5\u83B7\u53D6\u4F1A\u8BDD(session) +editors_sql_error_execution_plan_message = \u65E0\u6CD5\u89E3\u6790\u6267\u884C\u8BA1\u5212 +editors_sql_error_execution_plan_title = \u6267\u884C\u8BA1\u5212 +editors_sql_execution_log = \u6267\u884C\u65E5\u5FD7 +editors_sql_explain_plan = \u6267\u884C\u8BA1\u5212 +editors_sql_job_execute_query = \u6267\u884C\u67E5\u8BE2 +editors_sql_job_execute_script = \u6267\u884C\u811A\u672C +editors_sql_output = \u8F93\u51FA +editors_sql_save_on_close_message = \u65E0\u6CD5\u5173\u95ED\u7F16\u8F91\u5668:\u5F53\u524D\u67E5\u8BE2\u6B63\u5728\u6267\u884C +editors_sql_save_on_close_text = \u6B63\u5728\u6267\u884C\u67E5\u8BE2 +editors_sql_status_cant_obtain_document = \u65E0\u6CD5\u83B7\u53D6\u7F16\u8F91\u5668\u6587\u6863 +editors_sql_status_empty_query_string = \u67E5\u8BE2\u8BED\u53E5\u4E3A\u7A7A +editors_sql_status_not_connected_to_database = \u6CA1\u6709\u8FDE\u63A5\u5230\u6570\u636E\u5E93 +editors_sql_status_rows_updated = \u66F4\u65B0\u884C +editors_sql_status_statement_executed = \u811A\u672C\u5DF2\u6267\u884C(statement) +editors_sql_status_statement_executed_no_rows_updated = \u811A\u672C\u5DF2\u6267\u884C(statement) \u6CA1\u6709\u66F4\u65B0\u4EFB\u4F55\u884C +editors_sql_staus_connected_to = \u8FDE\u63A5\u5230 '' + + +model_connection_events_event_after_connect = \u8FDE\u63A5\u4E4B\u540E +model_connection_events_event_after_disconnect = \u65AD\u5F00\u8FDE\u63A5\u4E4B\u540E +model_connection_events_event_before_connect = \u8FDE\u63A5\u4E4B\u524D +model_connection_events_event_before_disconnect = \u65AD\u5F00\u8FDE\u63A5\u4E4B\u524D +model_html_read_database_meta_data = \u8BFB\u53D6\u6570\u636E\u5E93\u5143\u6570\u636E +model_jdbc_bad_content_value_ = \u65E0\u6548\u5185\u5BB9: +model_jdbc_content_length = \u5217\u957F\u5EA6 +model_jdbc_content_type = \u5185\u5BB9\u7C7B\u578B +model_jdbc_could_not_save_content = \u65E0\u6CD5\u4FDD\u5B58\u5185\u5BB9 +model_jdbc_could_not_save_content_to_file_ = \u65E0\u6CD5\u5C06\u8FDE\u63A5\u4FDD\u5B58\u81F3\u6587\u4EF6 " +model_jdbc_load_from_file_ = \u4ECE\u6587\u4EF6\u4E2D\u8F7D\u5165 ... +model_jdbc_save_to_file_ = \u4FDD\u5B58\u81F3\u6587\u4EF6 ... +model_jdbc_set_to_current_time = \u8BBE\u7F6E\u4E3A\u5F53\u524D\u65F6\u95F4 +model_jdbc_unsupported_content_value_type_ = \u4E0D\u652F\u6301\u7684\u5185\u5BB9\u7C7B\u578B +model_navigator_Connection = \u8FDE\u63A5 +model_navigator_Connections = \u8FDE\u63A5 +model_navigator_Description = \u63CF\u8FF0 +model_navigator_Model_root = \u6839\u6A21\u578B +model_navigator_Name = \u540D\u79F0 +model_navigator_Project = \u9879\u76EE +model_navigator_Root = \u6839 +model_navigator__connections = \ \u8FDE\u63A5 +model_navigator_load_ = \u8F7D\u5165 +model_navigator_load_items_ = \u8F7D\u5165\u9879 ... +model_navigator_resource_exception_already_exists = "{1}"\u4E2D\u5DF2\u7ECF\u5B58\u5728"{0}" +model_project_Script = \u811A\u672C +model_project_Scripts = \u811A\u672C +model_project_bookmarks_folder = \u4E66\u7B7E +model_project_cant_open_bookmark = \u65E0\u6CD5\u6253\u5F00\u4E66\u7B7E +model_project_open_bookmark = \u6253\u5F00\u4E66\u7B7E +model_ssh_configurator_checkbox_save_pass = \u4FDD\u5B58\u5BC6\u7801 +model_ssh_configurator_combo_auth_method = \u8BA4\u8BC1\u65B9\u6CD5 +model_ssh_configurator_combo_password = \u5BC6\u7801 +model_ssh_configurator_combo_pub_key = \u516C\u94A5 +model_ssh_configurator_dialog_choose_private_key = \u9009\u62E9\u79C1\u94A5\u6587\u4EF6 +model_ssh_configurator_label_host_ip = \u4E3B\u673A/IP +model_ssh_configurator_label_keep_alive = \u957F\u8FDE\u63A5\u65F6\u95F4\u95F4\u9694(ms) +model_ssh_configurator_label_passphrase = \u53E3\u4EE4 +model_ssh_configurator_label_password = \u5BC6\u7801 +model_ssh_configurator_label_port = \u7AEF\u53E3 +model_ssh_configurator_label_private_key = \u79C1\u94A5 +model_ssh_configurator_label_tunnel_timeout = \u901A\u9053\u8FDE\u63A5\u8D85\u65F6(ms) +model_ssh_configurator_label_user_name = \u7528\u6237\u540D\u79F0 + + +pref_page_confirmations_combo_always = \u603B\u662F +pref_page_confirmations_combo_never = \u4ECE\u4E0D +pref_page_confirmations_combo_prompt = \u63D0\u793A +pref_page_confirmations_group_general_actions = \u901A\u7528\u64CD\u4F5C +pref_page_confirmations_group_object_editor = \u5BF9\u8C61\u7F16\u8F91\u5668 +pref_page_content_cache_blob = \u7F13\u5B58BLOB\u503C +pref_page_content_cache_clob = \u7F13\u5B58CLOB\u503C +pref_page_content_editor_checkbox_commit_on_content_apply = \u5F53\u5E94\u7528\u5185\u5BB9\u65F6\u63D0\u4EA4\u4F1A\u8BDD +pref_page_content_editor_checkbox_commit_on_value_apply = \u5F53\u5E94\u7528\u7F16\u8F91\u65F6\u63D0\u4EA4\u4F1A\u8BDD +pref_page_content_editor_checkbox_edit_long_as_lobs = \u5C06 LONG \u5217 \u4F5C\u4E3A\u5927\u5BF9\u8C61( LOB)\u7F16\u8F91 +pref_page_content_editor_checkbox_keys_always_use_all_columns = \u59CB\u7EC8\u5C06\u6240\u6709\u8868\u5217\u4F5C\u4E3A\u952E +pref_page_content_editor_checkbox_new_rows_after = \u5728\u5F53\u524D\u884C\u4E4B\u540E\u63D2\u5165\u65B0\u7684\u884C +pref_page_content_editor_checkbox_refresh_after_update = \u5237\u65B0\u540E\u66F4\u65B0 +pref_page_content_editor_group_content = LOB +pref_page_content_editor_group_hex = \u4E8C\u8FDB\u5236\u7F16\u8F91\u5668 +pref_page_content_editor_group_keys = \u552F\u4E00\u952E +pref_page_content_editor_hex_encoding = \u5B57\u7B26\u4E32\u7F16\u7801 +pref_page_content_editor_label_max_text_length = \u6587\u672C\u7F16\u8F91\u5668\u7684\u6700\u5927\u6587\u672C\u957F\u5EA6 +pref_page_data_format_button_manage_profiles = \u7BA1\u7406\u914D\u7F6E +pref_page_data_format_group_format = \u683C\u5F0F\u5316 +pref_page_data_format_label_profile = \u914D\u7F6E +pref_page_data_format_label_sample = \u793A\u4F8B +pref_page_data_format_label_settingt = \u8BBE\u7F6E +pref_page_data_format_label_type = \u7C7B\u578B +pref_page_database_general_checkbox_case_sensitive_names = \u5728 DDL \u8BED\u53E5\u4E2D\u542F\u7528\u5927\u5C0F\u5199\u654F\u611F +pref_page_database_general_checkbox_keep_cursor = \u5728 SQL \u7F16\u8F91\u5668\u4E2D\u4FDD\u6301\u5149\u6807 +pref_page_database_general_checkbox_rollback_on_error = \u53D1\u751F\u9519\u8BEF\u65F6\u56DE\u6EDA +pref_page_database_general_checkbox_show_row_count = \u663E\u793A\u8868\u683C\u884C\u6570 +pref_page_database_general_group_metadata = \u5143\u6570\u636E +pref_page_database_general_group_navigator = \u5BFC\u822A\u5668 +pref_page_database_general_group_ordering = \u6392\u5E8F +pref_page_database_general_group_queries = \u67E5\u8BE2 +pref_page_database_general_group_transactions = \u4E8B\u52A1 +pref_page_database_general_label_cache_max_size = LOB\u7F13\u5B58\u6700\u5927\u5C3A\u5BF8 +pref_page_database_general_label_max_lob_length = \u5728\u5185\u5B58\u4E2D\u4FDD\u5B58\u7684 LOB \u7684\u6700\u5927\u957F\u5EA6 +pref_page_database_general_label_result_set_cancel_timeout = \u67E5\u8BE2\u53D6\u6D88\u8D85\u65F6 +pref_page_database_general_label_result_set_cancel_timeout_tip = \u67E5\u8BE2\u53D6\u6D88\u8D85\u65F6(ms)\u4E4B\u540E, DBeaver \u5C06\u505C\u6B62\u5728\u7528\u6237\u754C\u9762\u6267\u884C\u7684\u67E5\u8BE2 +pref_page_database_general_label_result_set_max_size = \u6700\u5927\u7ED3\u679C\u96C6\u6570 +pref_page_database_general_separate_meta_connection = \u4E3A\u5143\u6570\u636E\u6253\u5F00\u5355\u72EC\u7684\u8FDE\u63A5 +pref_page_database_resultsets_group_binary = \u4E8C\u8FDB\u5236\u6570\u636E +pref_page_database_resultsets_label_auto_fetch_segment = \u81EA\u52A8\u83B7\u53D6\u4E0B\u4E00\u6BB5 +pref_page_database_resultsets_label_binary_editor_type = \u4E8C\u8FDB\u5236\u7F16\u8F91\u5668\u5668 +pref_page_database_resultsets_label_binary_presentation = \u4E8C\u8FDB\u5236\u6570\u636E\u683C\u5F0F\u5316\u7A0B\u5E8F +pref_page_database_resultsets_label_binary_strings_max_length = \u4E8C\u8FDB\u5236\u4E32\u7684\u6700\u5927\u957F\u5EA6 +pref_page_database_resultsets_label_binary_use_strings = \u5C06\u4E8C\u8FDB\u5236\u6570\u636E\u663E\u793A\u4E3A\u5B57\u7B26\u4E32 +pref_page_database_resultsets_label_fetch_size = \u4F7F\u7528\u83B7\u53D6\u5927\u5C0F +pref_page_database_resultsets_label_read_metadata = \u8BFB\u53D6\u8868\u5143\u6570\u636E(\u552F\u4E00\u952E) +pref_page_database_resultsets_label_read_references = \u8BFB\u53D6\u8868\u5F15\u7528(\u5916\u952E) +pref_page_database_resultsets_label_server_side_order = \u670D\u52A1\u5668\u7AEF\u7ED3\u679C\u6392\u5E8F +pref_page_database_resultsets_label_use_sql = \u4F7F\u7528SQL\u6765\u9650\u5236\u83B7\u53D6\u5927\u5C0F +pref_page_drivers_group_location = \u9A71\u52A8\u4F4D\u7F6E +pref_page_query_manager_checkbox_ddl_executions = DDL \u6267\u884C +pref_page_query_manager_checkbox_metadata_read = \u8BFB\u53D6\u5143\u6570\u636E +pref_page_query_manager_checkbox_metadata_write = \u5143\u6570\u636E\u5199(DDL) +pref_page_query_manager_checkbox_other = \u5176\u5B83 +pref_page_query_manager_checkbox_queries = \u67E5\u8BE2 +pref_page_query_manager_checkbox_scripts = \u811A\u672C +pref_page_query_manager_checkbox_sessions = \u4F1A\u8BDD +pref_page_query_manager_checkbox_store_log_file = \u4FDD\u5B58\u65E5\u5FD7\u5230\u6587\u4EF6 +pref_page_query_manager_checkbox_transactions = \u4E8B\u52A1 +pref_page_query_manager_checkbox_user_filtered = \u8FC7\u6EE4\u7528\u6237\u67E5\u8BE2 +pref_page_query_manager_checkbox_user_queries = \u7528\u6237\u67E5\u8BE2 +pref_page_query_manager_checkbox_user_scripts = \u7528\u6237\u811A\u672C +pref_page_query_manager_checkbox_utility_functions = \u5B9E\u7528\u51FD\u6570 +pref_page_query_manager_group_object_types = \u5BF9\u8C61\u7C7B\u578B +pref_page_query_manager_group_query_types = \u67E5\u8BE2\u7C7B\u578B +pref_page_query_manager_group_settings = \u8BBE\u7F6E +pref_page_query_manager_group_storage = \u5B58\u50A8 +pref_page_query_manager_label_days_to_store_log = \u4FDD\u5B58\u65E5\u5FD7\u5929\u6570 +pref_page_query_manager_label_entries_per_page = \u6BCF\u9875\u6761\u6570 +pref_page_query_manager_logs_folder = \u65E5\u5FD7\u6587\u4EF6\u7684\u6587\u4EF6\u5939 +pref_page_results_group_advanced = \u9AD8\u7EA7 +pref_page_sql_editor_checkbox_blank_line_delimiter = \u7A7A\u767D\u884C\u662F\u8BED\u53E5\u5206\u9694\u7B26 +pref_page_sql_editor_checkbox_delete_empty_scripts = \u5728\u5173\u95ED\u65F6\u5220\u9664\u7A7A\u811A\u672C +pref_page_sql_editor_checkbox_enable_sql_anonymous_parameters = \u533F\u540DSQL\u53C2\u6570 +pref_page_sql_editor_checkbox_enable_sql_parameters = \u542F\u7528SQL\u53C2\u6570 +pref_page_sql_editor_checkbox_fetch_resultsets = \u83B7\u53D6\u7ED3\u679C\u96C6 +pref_page_sql_editor_checkbox_ignore_native_delimiter = \u5FFD\u7565\u672C\u5730\u5206\u9694\u7B26 +pref_page_sql_editor_checkbox_reset_cursor = \u6267\u884C\u5B8C\u540E\u91CD\u7F6E\u5149\u6807 +pref_page_sql_editor_combo_item_each_line_autocommit = \u6BCF\u884C\u4E4B\u540E (\u81EA\u52A8\u63D0\u4EA4) +pref_page_sql_editor_combo_item_each_spec_line = \u6BCF\u884C\u4E4B\u540E +pref_page_sql_editor_combo_item_ignore = \u5FFD\u7565 +pref_page_sql_editor_combo_item_no_commit = \u4E0D\u63D0\u4EA4 +pref_page_sql_editor_combo_item_script_end = \u5728\u811A\u672C\u672B\u7AEF +pref_page_sql_editor_combo_item_stop_commit = \u505C\u6B62 + \u63D0\u4EA4 +pref_page_sql_editor_combo_item_stop_rollback = \u505C\u6B62 + \u56DE\u6EDA +pref_page_sql_editor_group_common = \u5E38\u89C1 +pref_page_sql_editor_group_delimiters = \u5206\u9694\u7B26 +pref_page_sql_editor_group_misc = \u6742\u9879 +pref_page_sql_editor_group_parameters = \u53C2\u6570 +pref_page_sql_editor_group_resources = \u8D44\u6E90 +pref_page_sql_editor_group_scripts = \u811A\u672C +pref_page_sql_editor_label_commit_after_line = \u5355\u884C\u63D0\u4EA4 +pref_page_sql_editor_label_commit_type = \u63D0\u4EA4\u7C7B\u578B +pref_page_sql_editor_label_error_handling = \u5904\u7406\u9519\u8BEF +pref_page_sql_editor_label_invalidate_before_execute = \u6267\u884C\u524D\u7684\u65E0\u6548\u8FDE\u63A5 +pref_page_sql_editor_label_refresh_defaults_after_execute = SQL\u6267\u884C\u540E\u5237\u65B0\u6D3B\u52A8\u6A21\u5F0F +pref_page_sql_editor_label_sound_on_query_end = \u67E5\u8BE2\u5B8C\u6210\u540E\u53D1\u51FA\u54D4\u58F0 +pref_page_sql_editor_label_sql_timeout = \u6267\u884CSQL\u8BED\u53E5\u8D85\u65F6 +pref_page_sql_editor_text_anonymous_parameter_mark = \u533F\u540D\u53C2\u6570\u6807\u8BB0 +pref_page_sql_editor_text_named_parameter_prefix = \u547D\u540D\u53C2\u6570\u524D\u7F00 +pref_page_sql_editor_text_statement_delimiter = \u8BED\u53E5\u5206\u9694\u7B26 +pref_page_sql_editor_title_pattern = \u811A\u672C\u6807\u9898\u6A21\u5F0F +pref_page_target_button_use_datasource_settings = \u542F\u7528\u6570\u636E\u6E90 "{0}" \u8BBE\u7F6E +pref_page_target_link_show_datasource_settings = \u663E\u793A\u6570\u636E\u6E90\u8BBE\u7F6E +pref_page_target_link_show_global_settings = \u663E\u793A\u5168\u5C40\u8BBE\u7F6E +pref_page_ui_general_checkbox_automatic_updates = \u81EA\u52A8\u68C0\u67E5\u66F4\u65B0 +pref_page_ui_general_group_editors = \u7F16\u8F91\u5668 +pref_page_ui_general_group_general = \u4E00\u822C +pref_page_ui_general_group_http_proxy = HTTP \u4EE3\u7406 (\u7528\u4E8E\u4E0B\u8F7D) +pref_page_ui_general_keep_database_editors = \u91CD\u542F\u4FAF\u91CD\u65B0\u6253\u5F00\u6570\u636E\u5E93\u7F16\u8F91\u5668 +pref_page_ui_general_label_proxy_host = \u4EE3\u7406\u4E3B\u673A +pref_page_ui_general_label_proxy_password = \u5BC6\u7801 +pref_page_ui_general_label_proxy_user = \u7528\u6237\u540D +pref_page_ui_general_refresh_editor_on_open = \u5728\u7F16\u8F91\u5668\u6253\u5F00\u65F6\u5F3A\u5236\u5237\u65B0\u5BF9\u8C61 +pref_page_ui_general_spinner_proxy_port = \u4EE3\u7406\u65AD\u5F00 + +registry_entity_editor_descriptor_description = \u5BF9\u8C61\u5C5E\u6027 +registry_entity_editor_descriptor_name = \u5C5E\u6027 + +runtime_jobs_connect_name = \u8FDE\u63A5\u5230 "{0}" +runtime_jobs_connect_status_connected = \u5DF2\u8FDE\u63A5 +runtime_jobs_connect_status_error = \u8FDE\u63A5\u5230\u6570\u636E\u6E90 "{0}" \u65F6\u53D1\u751F\u9519\u8BEF +runtime_jobs_connect_thread_name = \u8FDE\u63A5\u5230\u6570\u636E\u6E90 "{0}" +runtime_jobs_disconnect_error = \u65AD\u5F00\u8FDE\u63A5 "{0}" \u65F6\u53D1\u751F\u9519\u8BEF +runtime_jobs_disconnect_name = \u65AD\u5F00\u8FDE\u63A5 {0} + +toolbar_datasource_selector_action_read_databases = \u8BFB\u53D6\u6570\u636E\u5E93\u5217\u8868 +toolbar_datasource_selector_all = \u5168\u90E8 +toolbar_datasource_selector_combo_database_tooltip = \u6FC0\u6D3B catalog/schema +toolbar_datasource_selector_combo_datasource_tooltip = \u6FC0\u6D3B\u6570\u636E\u6E90 +toolbar_datasource_selector_connected = \u5DF2\u8FDE\u63A5 +toolbar_datasource_selector_empty = <\u7A7A> +toolbar_datasource_selector_error_change_database_message = \u65E0\u6CD5\u6FC0\u6D3B\u6570\u636E\u5E93 +toolbar_datasource_selector_error_change_database_title = \u6FC0\u6D3B\u6570\u636E\u5E93 +toolbar_datasource_selector_error_database_change_not_supported = \u65E0\u6CD5\u6FC0\u6D3B\u6570\u636E\u5E93 +toolbar_datasource_selector_error_database_not_found = \u65E0\u6CD5\u627E\u5230\u6570\u636E\u5E93 "{0}" +toolbar_datasource_selector_resultset_segment_size = \u6700\u5927\u5316\u7ED3\u679C\u96C6 +#toolbar_editors_sql_run_explain_description = \u89E3\u6790\u6267\u884C\u8BA1\u5212 +toolbar_editors_sql_run_explain_name = \u89E3\u6790\u6267\u884C\u8BA1\u5212 +#toolbar_editors_sql_run_scriptNew_description = \u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6267\u884C\u811A\u672C\u7684SQL\u8BED\u53E5 +toolbar_editors_sql_run_scriptNew_name = \u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6267\u884C\u811A\u672C +#toolbar_editors_sql_run_script_description = \u6267\u884CSQL\u811A\u672C +toolbar_editors_sql_run_script_name = \u6267\u884CSQL\u811A\u672C +#toolbar_editors_sql_run_statementNew_description = \u5728\u65B0\u7684\u6807\u7B7E\u9875\u4E2D\u6267\u884CSQL\u8BED\u53E5 +toolbar_editors_sql_run_statementNew_name = \u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6267\u884CSQL\u8BED\u53E5 +#toolbar_editors_sql_run_statement_description = \u6267\u884CSQL\u8BED\u53E5 +toolbar_editors_sql_run_statement_name = \u6267\u884CSQL\u8BED\u53E5 + + +tools_script_execute_wizard_task_completed = {0} ({1}) \u5B8C\u6210 +tools_wizard_dialog_button_start = \u5F00\u59CB +tools_wizard_error_task_canceled = {0} "{1}" \u88AB\u53D6\u6D88 +tools_wizard_error_task_error_message = \u65E0\u6CD5\u6267\u884C +tools_wizard_error_task_error_title = {0} \u9519\u8BEF +tools_wizard_log_io_error = \u8BFB\u5199\u9519\u8BEF: {0} +tools_wizard_log_process_exit_code = \u8FDB\u7A0B\u7ED3\u675F\u4EE3\u7801: {0} +tools_wizard_message_client_home_not_found = \u6CA1\u6709\u627E\u5230\u5BA2\u6237\u7AEF\u5730\u5740 "{0}" +tools_wizard_message_no_client_home = \u8FD8\u6CA1\u6709\u8BBE\u7F6E\u8FDE\u63A5\u5730\u5740 +tools_wizard_page_log_task_finished = {0} \u5B8C\u6210\u4E8E {1} +tools_wizard_page_log_task_log_reader = {0} \u8BFB\u53D6\u65E5\u5FD7 +tools_wizard_page_log_task_progress = {0} \u8FDB\u5EA6 +tools_wizard_page_log_task_progress_log = {0} \u8FDB\u5EA6\u65E5\u5FD7 +tools_wizard_page_log_task_started_at = {0} \u5F00\u59CB\u4E8E {1} + + +ui_actions_context_search_name = \u5185\u5BB9\u641C\u7D22 +ui_actions_exit_emergency_question = \u60A8\u786E\u5B9A\u8981\u6267\u884C"\u7D27\u6025\u9000\u51FA"\u5417? \u672A\u4FDD\u5B58\u7684\u6570\u636E\u5C06\u4E22\u5931. +ui_common_button_help = \u5E2E\u52A9 +ui_properties_category_information = \u4FE1\u606F +ui_properties_category_structure = \u7ED3\u6784 +ui_properties_name = \u540D\u79F0 +ui_properties_task_add_folder = \u6DFB\u52A0\u6587\u4EF6\u5939 " +ui_properties_task_add_node = \u6DFB\u52A0\u5B50\u8282\u70B9 " +ui_properties_tree_viewer__to_default = \ \u8BBE\u4E3A\u9ED8\u8BA4 +ui_properties_tree_viewer_action_copy_value = \u590D\u5236\u503C +ui_properties_tree_viewer_action_reset_value = \u91CD\u7F6E\u503C +ui_properties_tree_viewer_category_general = \u4E00\u822C +ui_properties_value = \u503C + + +##Preference/Properties START +#ResultSetsMain +pref_page_database_resultsets_label_read_metadata_tip = \u7981\u6B62\u5143\u6570\u636E\u8BFB\u53D6.\u6267\u884C\u67E5\u8BE2\u66F4\u5FEB,\u4F46\u4F1A\u7981\u7528\u7ED3\u679C\u7F16\u8F91\u548C\u5916\u952E\u5BFC\u822A +pref_page_database_resultsets_label_read_references_tip = \u7981\u6B62\u5F15\u7528(\u5916\u952E)\u4FE1\u606F\u8BFB\u53D6 +pref_page_database_resultsets_label_fetch_size_tip = DBeaver \u4F7F\u7528\u663E\u5F0F\u7684JDBC\u83B7\u53D6\u5C3A\u5BF8\u8986\u76D6\u5417\uFF1F +#ResultSetsPresentation +pref_page_database_resultsets_group_common = \u5E38\u89C1 +pref_page_database_resultsets_label_switch_mode_on_rows = \u5728\u5355/\u591A\u884C\u4E0A\u5207\u6362\u5230\u8BB0\u5F55/\u8868\u683C\u6A21\u5F0F +pref_page_database_resultsets_label_show_column_description = \u5728\u6807\u9898\u680F\u4E2D\u663E\u793A\u5217\u63CF\u8FF0 +pref_page_database_resultsets_label_show_connection_name = \u5728\u72B6\u6001\u4E2D\u663E\u793A\u8FDE\u63A5\u540D +pref_page_database_resultsets_label_structurize_complex_types = \u590D\u6742\u7C7B\u578B\u7ED3\u6784\u5316 +pref_page_database_resultsets_label_structurize_complex_types_tip = \u5C06\u7ED3\u679C\u8868\u683C\u4E2D\u7684\u590D\u6742\u7C7B\u578B(\u6570\u7EC4\u3001\u7ED3\u6784\u3001\u6620\u5C04)\u53EF\u89C6\u5316\u4E3A\u5355\u72EC\u7684\u5217 +pref_page_database_resultsets_group_grid = \u8868\u683C +pref_page_database_resultsets_label_mark_odd_rows = \u6807\u8BB0\u5947\u6570\u6216\u5076\u6570\u884C +pref_page_database_resultsets_label_right_justify_numbers_and_date = \u6570\u5B57\u548C\u65F6\u95F4\u53F3\u5BF9\u9F50 +pref_page_database_resultsets_label_row_batch_size = \u884C\u6279\u91CF\u5927\u5C0F +pref_page_database_resultsets_label_show_cell_icons = \u663E\u793A\u5355\u5143\u683C\u56FE\u6807 +pref_page_database_resultsets_label_double_click_behavior = \u53CC\u51FB +pref_page_database_resultsets_group_plain_text = \u7EAF\u6587\u672C +pref_page_database_resultsets_lable_value_format = \u503C\u7684\u683C\u5F0F +pref_page_database_resultsets_label_maximum_column_length = \u5217\u7684\u6700\u5927\u957F\u5EA6 +pref_page_database_client_name_group = \u5BA2\u6237\u7AEF\u540D\u79F0 +pref_page_database_client_name_group_description = \u5BA2\u6237\u7AEF\u540D\u79F0\u88AB\u4F20\u9012\u5230\u6B63\u5728\u8FDE\u63A5\u7684\u6570\u636E\u5E93\u670D\u52A1\u5668,\u4EE5\u8BC6\u522B\u5BA2\u6237\u7AEF\u8FDE\u63A5.\n\u9ED8\u8BA4\u60C5\u51B5\u4E0B,\u5B83\u88AB\u8BBE\u7F6E\u4E3A\u4EA7\u54C1\u540D\u79F0+\u4EA7\u54C1\u7248\u672C.\u53EF\u4EE5\u5C06\u5176\u8BBE\u7F6E\u4E3A\u4EFB\u4F55\u81EA\u5B9A\u4E49\u503C. +pref_page_database_label_override_client_application_name = \u8986\u76D6\u5BA2\u6237\u7AEF\u540D\u79F0 +pref_page_database_label_client_application_name = \u5BA2\u6237\u7AEF\u540D\u79F0 +pref_page_sql_editor_group_connections = \u8FDE\u63A5 +pref_page_sql_editor_label_separate_connection_each_editor = \u6BCF\u4E2A\u7F16\u8F91\u5668\u5355\u72EC\u8FDB\u884C\u8FDE\u63A5 +pref_page_sql_editor_label_connect_on_editor_activation = \u6253\u5F00\u7F16\u8F91\u5668\u540E\u8FDE\u63A5 +pref_page_sql_editor_label_connect_on_query_execute = \u67E5\u8BE2\u8BED\u53E5\u6267\u884C\u65F6\u8FDE\u63A5 +pref_page_sql_editor_group_auto_save = \u81EA\u52A8\u4FDD\u5B58 +pref_page_sql_editor_label_auto_save_on_close = \u7F16\u8F91\u5668\u5173\u95ED\u65F6\u81EA\u52A8\u4FDD\u5B58\u811A\u672C\u6587\u4EF6 +pref_page_sql_editor_label_save_on_query_execute = \u67E5\u8BE2\u8BED\u53E5\u6267\u884C\u65F6\u81EA\u52A8\u4FDD\u5B58\u811A\u672C\u6587\u4EF6 +pref_page_sql_editor_checkbox_delete_empty_scripts = \u7F16\u8F91\u5668\u5173\u95ED\u65F6\u5220\u9664\u7A7A\u7684\u811A\u672C\u6587\u4EF6 +pref_page_sql_editor_checkbox_put_new_scripts = \u4E3A\u6BCF\u4E2A\u8FDE\u63A5\u521B\u5EFA\u811A\u672C\u6587\u4EF6\u5939 +pref_page_sql_editor_checkbox_create_script_folders = \u521B\u5EFA\u811A\u672C\u6587\u4EF6\u5939 +pref_page_sql_editor_title_pattern = \u811A\u672C\u540D\u79F0\u6A21\u5F0F +pref_page_sql_editor_group_result_view = \u7ED3\u679C\u89C6\u56FE +pref_page_sql_editor_label_close_results_tab_on_error = \u51FA\u9519\u65F6\u5173\u95ED\u7ED3\u679C\u6807\u7B7E +pref_page_sql_editor_label_results_orientation = \u7ED3\u679C\u6392\u5217\u65B9\u5411 +pref_page_sql_editor_label_results_orientation_tip = \u5728SQL\u7F16\u8F91\u5668\u4E2D\u7ED3\u679C\u7684\u6392\u5217\u65B9\u5411 +#SQLExecute +pref_page_sql_editor_label_sql_timeout_tip = \u67E5\u8BE2\u8BED\u53E5\u6267\u884C\u8D85\u65F6(\u4EE5\u79D2\u4E3A\u5355\u4F4D).0\u4EE3\u8868\u6CA1\u6709\u8D85\u65F6 +pref_page_sql_editor_enable_parameters_in_ddl = \u5728DDL\u8BED\u53E5\u4E2D\u542F\u7528\u53C2\u6570 +#SQLFormat +pref_page_sql_format_group_auto_close = \u81EA\u52A8\u5173\u95ED\u7B26\u53F7 +pref_page_sql_format_label_single_quotes = \u5355\u5F15\u53F7 +pref_page_sql_format_label_double_quotes = \u53CC\u5F15\u53F7 +pref_page_sql_format_label_brackets = \u62EC\u53F7 +pref_page_sql_format_group_auto_format = \u81EA\u52A8\u5957\u7528\u683C\u5F0F +pref_page_sql_format_label_convert_keyword_case = \u5173\u952E\u5B57\u5927\u5C0F\u5199\u8F6C\u6362 +pref_page_sql_format_label_convert_keyword_case_tip = \u5C06\u8F93\u5165\u7684\u5173\u952E\u5B57\u81EA\u52A8\u8F6C\u5316\u4E3A\u5927\u5199/\u5C0F\u5199 +pref_page_sql_format_label_extract_sql_from_source_code = \u5C06SQL\u8BED\u53E5\u4ECE\u6E90\u4EE3\u7801\u4E2D\u63D0\u53D6\u51FA\u6765 +pref_page_sql_format_label_extract_sql_from_source_code_tip = \u5728\u7C98\u8D34\u65F6\u5C06\u5220\u9664\u6240\u6709\u7684\u6E90\u8BED\u8A00\u5143\u7D20,\u4F8B\u5982:\u5F15\u53F7,+,\\n\u7B49 +pref_page_sql_format_group_formatter = \u683C\u5F0F\u5316 +pref_page_sql_format_label_formatter = \u683C\u5F0F +pref_page_sql_format_label_keyword_case = \u5173\u952E\u5B57\u683C\u5F0F +pref_page_sql_format_label_external_command_line = \u547D\u4EE4\u884C +pref_page_sql_format_label_external_set_content_tool_tip = \u5E26\u53C2\u6570\u7684\u5916\u90E8\u7A0B\u5E8F +pref_page_sql_format_label_external_use_temp_file = \u4F7F\u7528\u4E34\u65F6\u6587\u4EF6 +pref_page_sql_format_label_external_use_temp_file_tip = \u4F7F\u7528\u4E34\u65F6\u6587\u4EF6\u5B58\u50A8SQL\u6587\u672C.\n\u547D\u4EE4\u884C\u4E2D\u7684\u6587\u4EF6\u540D\u8981\u4F7F\u7528\u53C2\u6570 +pref_page_sql_format_label_external_exec_timeout = \u542F\u7528\u8D85\u65F6 +pref_page_sql_format_label_external_exec_timeout_tip = \u5B8C\u6210\u683C\u5F0F\u5316\u6240\u9700\u8981\u7684\u7B49\u5F85\u65F6\u95F4(ms) +pref_page_sql_completion_group_sql_assistant = SQL\u5E2E\u52A9/\u8865\u9F50 +pref_page_sql_completion_label_enable_auto_activation = \u542F\u7528\u81EA\u52A8\u6FC0\u6D3B +pref_page_sql_completion_label_enable_auto_activation_tip = \u542F\u7528\u5185\u5BB9\u5E2E\u52A9\u81EA\u52A8\u6FC0\u6D3B(\u6587\u672C\u8F93\u5165) +pref_page_sql_completion_label_auto_activation_delay = \u81EA\u52A8\u6FC0\u6D3B\u5EF6\u8FDF +pref_page_sql_completion_label_set_auto_activation_delay_tip = \u8F93\u5165\u65F6\u5185\u5BB9\u5E2E\u52A9\u5C06\u5EF6\u8FDF\u8FD0\u884C +pref_page_sql_completion_label_activate_on_typing = \u8F93\u5165\u65F6\u6FC0\u6D3B +pref_page_sql_completion_label_activate_on_typing_tip = \u8F93\u5165\u4EFB\u4F55\u5B57\u6BCD\u65F6\u90FD\u6FC0\u6D3B\u8865\u9F50\u5EFA\u8BAE. +pref_page_sql_completion_label_auto_insert_proposal = \u81EA\u52A8\u63D2\u5165\u5EFA\u8BAE +pref_page_sql_completion_label_auto_insert_proposal_tip = \u542F\u7528\u5185\u5BB9\u5E2E\u52A9\u81EA\u52A8\u63D2\u5165\u6A21\u5F0F.\n\u542F\u7528\u540E,\u5982\u679C\u8FD9\u662F\u552F\u4E00\u7684\u5EFA\u8BAE\u5185\u5BB9\u5E2E\u52A9\u81EA\u52A8\u63D2\u5165\u5EFA\u8BAE.\n\u5728\u6A21\u68F1\u4E24\u53EF\u7684\u60C5\u51B5\u4E0B,\u7528\u6237\u8981\u505A\u51FA\u9009\u62E9. +pref_page_sql_completion_label_insert_case = \u63D2\u5165\u5B57\u6BCD +pref_page_sql_completion_label_hide_duplicate_names = \u9690\u85CF\u975E\u5F53\u524Dschema\u7684\u91CD\u590D\u540D\u79F0 +pref_page_sql_completion_label_use_short_names = \u4F7F\u7528\u5BF9\u8C61\u540D\u79F0\u7F29\u5199(omit schema/\u76EE\u5F55) +pref_page_sql_completion_label_insert_space = \u5728\u8868/\u5217\u540D\u540E\u63D2\u5165\u7A7A\u683C +pref_page_sql_completion_label_use_global_search = \u4F7F\u7528\u5168\u5C40\u641C\u7D22(\u5728\u6240\u6709schema\u4E2D) +pref_page_sql_completion_label_use_global_search_tip = \u5728\u6240\u6709schema\u4E2D\u641C\u7D22\u5BF9\u8C61.\u5426\u5219\u53EA\u80FD\u5728\u5F53\u524D/\u7CFB\u7EDFschema\u4E2D\u641C\u7D22 +pref_page_sql_completion_group_folding = \u6298\u53E0 +pref_page_sql_completion_label_folding_enabled = \u542F\u7528\u6298\u53E0 +pref_page_sql_completion_label_folding_enabled_tip = \u5728SQL\u811A\u672C\u4E2D\u4F7F\u7528\u6298\u53E0 +#MetaData +pref_page_database_general_separate_meta_connection_tip = \u6253\u5F00\u5355\u72EC\u7684\u5143\u6570\u636E\u8FDE\u63A5\u53EF\u80FD\u4F1A\u63D0\u9AD8\u6027\u80FD\uFF0C\u56E0\u4E3A\u5728\u67E5\u8BE2\u6267\u884C\u671F\u95F4\u4E0D\u4F1A\u51FA\u73B0UI\u9501 +pref_page_database_general_checkbox_case_sensitive_names_tip = \u5728DDL\u67E5\u8BE2\u4E2D\u751F\u6210\u533A\u5206\u5927\u5C0F\u5199\u7684\u5BF9\u8C61\u540D\u79F0 +pref_page_database_general_checkbox_show_row_count_tip = \u5982\u679C\u6570\u636E\u5E93\u6267\u884C\u8FD9\u6837\u7684\u67E5\u8BE2\u592A\u6162\u4E86\uFF0C\u90A3\u4E48\u53EF\u4EE5\u7981\u7528\u8FD9\u4E2A\u9009\u9879(\u4F8B\u5982\uFF0C\u6570\u636E\u91CF\u5F88\u5927) +pref_page_database_general_server_side_object_filters = \u670D\u52A1\u5668\u7AEF\u5BF9\u8C61\u8FC7\u6EE4 +pref_page_database_general_server_side_object_filters_tip = \u4FEE\u6539\u5143\u6570\u636E\u67E5\u8BE2\uFF0C\u56E0\u6B64\u53EA\u9700\u8981\u4ECE\u6570\u636E\u5E93\u4E2D\u8BFB\u53D6\u5FC5\u8981\u7684\u5BF9\u8C61(\u4EC5\u652F\u6301\u67D0\u4E9B\u6570\u636E\u6E90).\n\u5426\u5219\u5C06\u5728\u5BA2\u6237\u7AEF\u8FDB\u884C\u8FC7\u6EE4.\n\u5982\u679C\u60F3\u8981\u770B\u5230\u94FE\u63A5\u5BF9\u8C61(\u4F8B\u5982,\u6765\u81EA\u5916\u952E)\uFF0C\u53EF\u4EE5\u7981\u7528\u8BE5\u9009\u9879. +pref_page_database_general_group_query_metadata = \u67E5\u8BE2\u5143\u6570\u636E +pref_page_database_general_use_column_names = \u4F7F\u7528\u5217\u540D\u79F0\u800C\u4E0D\u662F\u5217\u6807\u7B7E +pref_page_database_general_use_column_names_tip = \u5FFD\u7565\u6570\u636E\u67E5\u770B\u5668\u4E2D\u7684\u5217\u6807\u7B7E +#EntityEditor +pref_page_ui_general_keep_database_editors_tip = \u8BB0\u5F97\u6253\u5F00\u7F16\u8F91\u5668(\u5982,\u8868\u7F16\u8F91\u5668)\u5E76\u4E14\u5728 DBeaver \u91CD\u542F\u540E\u91CD\u65B0\u6253\u5F00\u5B83\u4EEC. +pref_page_ui_general_refresh_editor_on_open_tip = \u6BCF\u6B21\u6253\u5F00\u5BF9\u8C61\u7F16\u8F91\u5668\u65F6,\u4ECE\u6570\u636E\u5E93\u5237\u65B0\u5BF9\u8C61.\n\u5982\u679C\u6570\u636E\u5E93\u7684\u7ED3\u6784\u7ECF\u5E38\u53D8\u5316(\u6BD4\u5982,SQL\u811A\u672C)\uFF0C\u90A3\u4E48\u53EF\u80FD\u9700\u8981\u4F7F\u7528\u8FD9\u4E2A\u9009\u9879. +pref_page_ui_general_show_full_name_in_editor = \u5728\u7F16\u8F91\u5668\u6807\u9898\u4E2D\u663E\u793A\u5BF9\u8C61\u7684\u5B8C\u6574\u540D\u79F0 +pref_page_ui_general_show_preview_on_save = \u5728\u7F16\u8F91\u5668\u4FDD\u5B58\u65F6\u663E\u793ASQL\u9884\u89C8\u5BF9\u8BDD\u6846 + +#Drivers +pref_page_ui_general_group_settings = \u8BBE\u7F6E +pref_page_ui_general_check_new_driver_versions = \u68C0\u67E5\u65B0\u7684\u9A71\u52A8\u7A0B\u5E8F\u7248\u672C +pref_page_drivers_local_folder = \u672C\u5730\u6587\u4EF6\u5939 +pref_page_drivers_group_file_repositories = \u6587\u4EF6\u5B58\u50A8 +pref_page_drivers_button_add = \u6DFB\u52A0 +pref_page_drivers_label_enter_drivers_location_url = \u8BF7\u8F93\u5165\u9A71\u52A8\u4F4D\u7F6E\u7684URL +pref_page_drivers_button_remove = \u5220\u9664 +#DriversMaven +pref_page_drivers_maven_group_repositories = \u5B58\u50A8 +pref_page_drivers_maven_button_add = \u6DFB\u52A0 +pref_page_drivers_maven_label_enter_maven_repository_url = \u8BF7\u8F93\u5165Maven\u5B58\u50A8\u7684URL +pref_page_drivers_maven_label_bad_url = URL\u9519\u8BEF +pref_page_drivers_maven_label_bad_url_tip = \u8F93\u5165\u7684Maven\u5B58\u50A8\u7684URL\u6709\u8BEF +pref_page_drivers_maven_button_remove = \u5220\u9664 +#pref_page_drivers_maven_button_disable = \u7981\u6B62 +pref_page_drivers_maven_button_up = \u5411\u4E0A +pref_page_drivers_maven_button_down = \u5411\u4E0B +pref_page_drivers_maven_group_properties = \u5C5E\u6027 +pref_page_drivers_maven_label_name = \u540D\u79F0 +pref_page_drivers_maven_label_scope = \u8303\u56F4 +pref_page_drivers_maven_group_authentication = \u8BA4\u8BC1 +pref_page_drivers_maven_label_user = \u7528\u6237\u540D +pref_page_drivers_maven_label_password = \u5BC6\u7801 +pref_page_drivers_maven_label_enable = \u542F\u7528 +pref_page_drivers_maven_label_disable = \u7981\u7528 +#DatabaseGeneral +pref_page_ui_general_group_task_bar = \u4EFB\u52A1\u680F +pref_page_ui_general_label_enable_long_operations = \u5141\u8BB8\u957F\u65F6\u95F4\u64CD\u4F5C\u901A\u77E5 +pref_page_ui_general_label_enable_long_operations_tip = \u5728\u957F\u65F6\u95F4\u64CD\u4F5C(\u4F8B\u5982SQL\u67E5\u8BE2)\u5B8C\u6210\u540E,\u5728\u7CFB\u7EDF\u4EFB\u52A1\u680F\u4E2D\u7684\u663E\u793A\u7279\u6B8A\u901A\u77E5. +pref_page_ui_general_label_long_operation_timeout = \u957F\u65F6\u95F4\u64CD\u4F5C\u8D85\u65F6 +pref_page_ui_general_group_resources = \u8D44\u6E90 +pref_page_ui_general_label_default_resource_encoding = \u9ED8\u8BA4\u8D44\u6E90\u7F16\u7801 +pref_page_ui_general_label_set_default_resource_encoding_tip = \u811A\u672C\u548C\u6587\u672C\u6587\u4EF6\u7684\u9ED8\u8BA4\u7F16\u7801.\u91CD\u542F\u65F6\u66F4\u6539\u9700\u6C42 +pref_page_ui_general_group_debug_logs = \u8C03\u8BD5\u65E5\u5FD7 +pref_page_ui_general_label_enable_debug_logs = \u542F\u7528\u8C03\u8BD5\u65E5\u5FD7 +pref_page_ui_general_label_enable_debug_logs_tip = \u8C03\u8BD5\u65E5\u5FD7\u7528\u4E8E DBeaver \u81EA\u6211\u8C03\u8BD5.\u8C03\u8BD5\u65E5\u5FD7\u4E5F\u53EF\u4EE5\u7528\u4E8E\u5B58\u653E\u6240\u6709\u7684\u9519\u8BEF/\u8B66\u544A/\u4FE1\u606F +pref_page_ui_general_label_log_file_location = \u65E5\u5FD7\u6587\u4EF6\u4F4D\u7F6E +pref_page_ui_general_label_open_file_text = \u8C03\u8BD5\u65E5\u5FD7\u6587\u4EF6\u4F4D\u7F6E +pref_page_ui_general_label_options_take_effect_after_restart = \u8FD9\u4E9B\u9009\u9879\u5C06\u4F1A\u5728 DBeaver \u91CD\u542F\u540E\u751F\u6548 +pref_page_ui_general_label_settings = \u8BBE\u7F6E +#DatabaseNavigator +pref_page_database_general_label_expand_navigator_tree = \u8FDE\u63A5\u540E\u5C55\u5F00\u6570\u636E\u5E93\u5BFC\u822A\u5217\u8868 +pref_page_database_general_label_show_tips_in_tree = \u5728\u5217\u8868\u4E2D\u663E\u793A\u63D0\u793A +pref_page_database_general_label_show_tips_in_tree_tip = \u5728\u5217\u8868\u7684\u540D\u79F0\u540E\u663E\u793A\u63D0\u793A(\u4F8B\u5982\uFF1A\u5217\u7684\u6570\u636E\u7C7B\u578B) +pref_page_database_general_label_order_elements_alphabetically = \u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217 +pref_page_database_general_label_folders_first = \u6587\u4EF6\u5939\u4F18\u5148 +pref_page_database_general_label_folders_first_tip = \u5728\u5E38\u89C4\u5143\u7D20\u4E4B\u524D\u663E\u793A\u6587\u4EF6\u5939 +pref_page_database_general_label_group_database_by_driver = \u6839\u636E\u9A71\u52A8\u5C06\u6570\u636E\u5E93\u5206\u7EC4 +pref_page_database_general_label_sync_editor_connection_with_navigator = \u81EA\u52A8\u540C\u6B65\u7F16\u8F91\u5668\u8FDE\u63A5\u4E0E\u5BFC\u822A\u5668\u9009\u62E9 +pref_page_database_general_label_sync_editor_connection_with_navigator_tip = \u81EA\u52A8\u4ECE\u5DF2\u9009\u4E2D\u7684\u5BFC\u822A\u5668\u8282\u70B9\u8BBE\u7F6E\u7F16\u8F91\u5668(\u4F8B\u5982\uFF0CSQL\u7F16\u8F91\u5668)\u8FDE\u63A5.\n\u5982\u679C\u9700\u8981\u9891\u7E41\u66F4\u6539\u5F53\u524D\u8FDE\u63A5/schema,\u8FD9\u662F\u6709\u7528\u7684. +pref_page_database_general_label_double_click_node = \u5728\u8282\u70B9\u4E0A\u53CC\u51FB +pref_page_database_general_label_double_click_node_open_properties = \u6253\u5F00\u5C5E\u6027 +pref_page_database_general_label_double_click_node_expand_collapse = \u5C55\u5F00 / \u6298\u53E0 +pref_page_database_general_label_double_click_connection = \u5728\u8FDE\u63A5\u4E0A\u53CC\u51FB +pref_page_database_general_label_double_click_connection_open_properties = \u6253\u5F00\u5C5E\u6027 +pref_page_database_general_label_double_click_connection_conn_disconn = \u8FDE\u63A5 / \u65AD\u5F00\u8FDE\u63A5 +pref_page_database_general_label_double_click_connection_open_sqleditor = \u6253\u5F00 SQL \u7F16\u8F91\u5668 +pref_page_database_general_label_double_click_connection_expand_collapse = \u5C55\u5F00 / \u6298\u53E0 +#ConnectionTypes +pref_page_connection_types_label_table_column_name = \u540D\u79F0 +pref_page_connection_types_label_table_column_description = \u63CF\u8FF0 +pref_page_connection_types_label_delete_connection_type = \u5220\u9664\u8FDE\u63A5\u7C7B\u578B +pref_page_connection_types_label_delete_connection_type_description = \u4F60\u786E\u5B9A\u8981\u5220\u9664\u8FDE\u63A5\u7C7B\u578B ''{0}''?\n \u8BE5\u7C7B\u578B\u7684\u6240\u6709\u8FDE\u63A5\u5C06\u88AB\u91CD\u7F6E\u4E3A\u9ED8\u8BA4\u7C7B\u578B ({1}) +pref_page_connection_types_group_settings = \u8BBE\u7F6E +pref_page_connection_types_label_name = \u540D\u79F0 +pref_page_connection_types_label_description = \u63CF\u8FF0 +pref_page_connection_types_label_color = \u989C\u8272 +pref_page_connection_types_label_auto_commit_by_default = \u9ED8\u8BA4\u81EA\u52A8\u63D0\u4EA4 +pref_page_connection_types_label_confirm_sql_execution = \u786E\u8BA4SQL\u6267\u884C +#ProjectSettings +pref_page_projects_settings_label_resource_location = \u8D44\u6E90\u4F4D\u7F6E +pref_page_projects_settings_label_resource = \u8D44\u6E90 +pref_page_projects_settings_label_folder = \u6587\u4EF6\u5939 +pref_page_projects_settings_label_select = \u9009\u62E9 +pref_page_projects_settings_label_root_folder = \u6839\u76EE\u5F55 +pref_page_projects_settings_label_not_use_hidden_folders = \u4E0D\u80FD\u4F7F\u7528\u9690\u85CF\u6587\u4EF6\u5939 +pref_page_projects_settings_label_not_store_resources_in_another_project = \u4E0D\u80FD\u5C06\u8D44\u6E90\u5B58\u653E\u5728\u5176\u4ED6\u9879\u76EE\u4E2D +pref_page_projects_settings_label_restart_require_refresh_global_settings = \u66F4\u65B0\u901A\u7528\u8BBE\u7F6E\u540E\u8981\u6C42\u91CD\u542F +##Preference/Properties End + +## Connection edit ## +dialog_connection_edit_title = \u8FDE\u63A5 ''{0}'' \u914D\u7F6E + +dialog_connection_edit_wizard_conn_conf_network_link = \u7F51\u7EDC\u8BBE\u7F6E (SSH, SSL, Proxy, ...) + +dialog_connection_edit_wizard_general = \u5E38\u89C4 +dialog_connection_edit_wizard_general_bootstrap_query_title = \u542F\u52A8\u65F6 SQL \u67E5\u8BE2 +dialog_connection_edit_wizard_general_bootstrap_query_sql_label = SQL \u67E5\u8BE2 +dialog_connection_edit_wizard_general_bootstrap_query_sql_title = \u8F93\u5165 SQL +dialog_connection_edit_wizard_general_bootstrap_query_ignore_error_lable = \u5FFD\u7565 SQL \u9519\u8BEF +dialog_connection_edit_wizard_general_filter_save_button = \u4FDD\u5B58 +dialog_connection_edit_wizard_general_filter_remove_button = \u79FB\u9664 +dialog_connection_edit_wizard_general_filter_save_label = \u4FDD\u5B58\u7684\u8FC7\u6EE4 +dialog_connection_edit_wizard_general_filter_name_label = \u540D\u79F0 +dialog_connection_edit_wizard_general_filter_hint_text = \u4F60\u53EF\u4EE5\u5728\u8FC7\u6EE4\u4E2D\u4F7F\u7528\u63A9\u7801 (%, _ and *) + +dialog_connection_edit_wizard_shell_cmd = Shell \u547D\u4EE4 +dialog_connection_edit_wizard_shell_cmd_pause_label = \u6267\u884C\u540E\u6682\u505C (ms) +dialog_connection_edit_wizard_shell_cmdp_pause_tooliti = \u5728\u8FDB\u7A0B\u751F\u6210\u540E\u7B49\u5F85\u6307\u5B9A\u7684\u6BEB\u79D2\u6570 +dialog_connection_edit_wizard_shell_cmd_directory_label = \u5DE5\u4F5C\u76EE\u5F55 +dialog_connection_edit_wizard_shell_cmd_directory_title = \u5DE5\u4F5C\u76EE\u5F55 +dialog_connection_edit_wizard_shell_cmd_variables_hint_label = \u4F60\u53EF\u4EE5\u5728\u547D\u4EE4\u4E2D\u4F7F\u7528\u53D8\u91CF\u3002\u5355\u51FB\u770B\u5217\u8868\u3002 +dialog_connection_edit_wizard_shell_cmd_variables_hint_title = \u53D8\u91CF + +dialog_connection_edit_wizard_metadata = \u5143\u6570\u636E +dialog_connection_edit_wizard_metadata_description = \u5143\u6570\u636E\u8BFB\u53D6\u504F\u597D +dialog_connection_edit_wizard_resultset = \u7ED3\u679C\u96C6 +dialog_connection_edit_wizard_resultset_description = \u7ED3\u679C\u96C6\u504F\u597D +dialog_connection_edit_wizard_binary = \u4E8C\u8FDB\u5236 +dialog_connection_edit_wizard_binary_description = \u4E8C\u8FDB\u5236\u6570\u636E\u8868\u793A +dialog_connection_edit_wizard_data_format = \u6570\u636E\u683C\u5F0F\u5316 +dialog_connection_edit_wizard_data_format_description = \u6570\u636E\u683C\u5F0F\u5316\u504F\u597D +dialog_connection_edit_wizard_presentation = \u5C55\u793A +dialog_connection_edit_wizard_presentation_description = \u7ED3\u679C\u96C6\u7528\u6237\u754C\u9762\u548C\u5C55\u793A +dialog_connection_edit_wizard_sql_editor = SQL \u7F16\u8F91\u5668 +dialog_connection_edit_wizard_sql_editor_description = SQL \u7F16\u8F91\u5668\u8BBE\u7F6E +dialog_connection_edit_wizard_sql_processing = SQL \u5904\u7406 +dialog_connection_edit_wizard_sql_processing_description = SQL \u5904\u7406\u8BBE\u7F6E + +dialog_connection_edit_wizard_conn_change_title = \u8FDE\u63A5\u53D8\u66F4 +dialog_connection_edit_wizard_conn_change_question = \u8FDE\u63A5 ''{0}'' \u5DF2\u7ECF\u88AB\u66F4\u6539\u3002\n\u4F60\u60F3\u91CD\u65B0\u8FDE\u63A5\u5417? +dialog_connection_edit_wizard_lock_pwd_title = \u8BF7\u8F93\u5165\u9501\u5BC6\u7801 +dialog_connection_edit_wizard_bad_pwd_title = \u9519\u8BEF\u7684\u5BC6\u7801 +dialog_connection_edit_wizard_bad_pwd_msg = \u5BC6\u7801\u4E0D\u5339\u914D +dialog_connection_edit_wizard_error_md5_title = \u9519\u8BEF\u751F\u6210 MD5 +dialog_connection_edit_wizard_error_md5_msg = \u4E0D\u80FD\u751F\u6210\u5BC6\u7801\u54C8\u5E0C +## Connection edit ## + +## Driver edit ## +dialog_edit_driver_type_label = \u9A71\u52A8\u7C7B\u578B +dialog_edit_driver_embedded_label = \u5D4C\u5165 +dialog_edit_driver_setting = \u8BBE\u7F6E +dialog_edit_driver_description = \u63CF\u8FF0 +dialog_edit_driver_edit_maven_title = \u7F16\u8F91 Maven Artifact +dialog_edit_driver_edit_maven_group_id_label = \u7EC4 Id +dialog_edit_driver_edit_maven_artifact_id_label = Artifact Id +dialog_edit_driver_edit_maven_classfier_label = Classifier +dialog_edit_driver_edit_maven_version_label = \u7248\u672C + +dialog_edit_driver_text_driver_library = \u9A71\u52A8 '{0}' \u5E93 '{1}' +dialog_edit_driver_info = \u4FE1\u606F +dialog_edit_driver_driver = \u9A71\u52A8 +dialog_edit_driver_library = \u5E93 +dialog_edit_driver_path = \u8DEF\u5F84 +dialog_edit_driver_version = \u7248\u672C +dialog_edit_driver_file = \u6587\u4EF6 +dialog_edit_driver_tab_depencencies = \u4F9D\u8D56 +dialog_edit_driver_tab_depencencies_tooltip = \u5E93\u4F9D\u8D56 +dialog_edit_driver_tab_detail = \u8BE6\u7EC6 +dialog_edit_driver_tab_detail_tooltip = \u9644\u52A0\u5E93\u4FE1\u606F +dialog_edit_driver_text_license = \u8BB8\u53EF +## Driver edit ## + +## Driver download ## +dialog_driver_download_button_edit_dirver = \u7F16\u8F91\u9A71\u52A8 +dialog_driver_download_button_add_jars = \u6DFB\u52A0 JAR + +dialog_driver_download_wizard_title_setting = \u9A71\u52A8\u8BBE\u7F6E +dialog_driver_download_wizard_title_upload_files = \u66F4\u65B0\u9A71\u52A8\u6587\u4EF6 +dialog_driver_download_wizard_title_setup_files = \u5B89\u88C5\u9A71\u52A8\u6587\u4EF6 +dialog_driver_download_wizard_download = \u4E0B\u8F7D +dialog_driver_download_wizard_open_download = \u6253\u5F00\u4E0B\u8F7D\u9875\u9762 + +dialog_driver_download_page_vendor_link = \u4F9B\u5E94\u5546\u7F51\u7AD9 +dialog_driver_download_page_download_conf_link = \u4E0B\u8F7D\u914D\u7F6E + +dialog_driver_download_manual_page_config_driver_file = \u914D\u7F6E\u9A71\u52A8\u6587\u4EF6 +dialog_driver_download_manual_page_download_driver_file = \u4E0B\u8F7D\u9A71\u52A8\u6587\u4EF6 + +dialog_driver_download_manual_page_download_config_driver_file = \u4E0B\u8F7D & \u914D\u7F6E {0} \u9A71\u52A8\u6587\u4EF6 +dialog_driver_download_manual_page_driver_file_missing_text = {0} \u9A71\u52A8\u6587\u4EF6\u4E22\u5931.\n\n\u6839\u636E\u4F9B\u5E94\u5546\u653F\u7B56\u8FD9\u4E2A\u9A71\u52A8\u7A0B\u5E8F\u4E0D\u516C\u5F00\n\u4F60\u5FC5\u987B\u4ECE\u4F9B\u5E94\u5546\u7F51\u7AD9\u624B\u52A8\u4E0B\u8F7D.\n\n\u6210\u529F\u4E0B\u8F7D\u9A71\u52A8\u540E\u4F60\u5C06\u9700\u8981 \u6DFB\u52A0 JAR \u6587\u4EF6 \u5728 DBeaver \u5E93\u5217\u8868\u4E2D. +dialog_driver_download_manual_page_driver_file =\u9A71\u52A8\u6587\u4EF6 +dialog_driver_download_manual_page_column_file = \u6587\u4EF6 +dialog_driver_download_manual_page_column_required = \u9700\u8981\u7684 +dialog_driver_download_manual_page_column_description = \u63CF\u8FF0 +dialog_driver_download_manual_page_yes = \u662F +dialog_driver_download_manual_page_no = \u5426 + +dialog_driver_download_auto_page_auto_download = \u81EA\u52A8\u4E0B\u8F7D +dialog_driver_download_auto_page_download_driver_files = \u4E0B\u8F7D\u9A71\u52A8\u6587\u4EF6 +dialog_driver_download_auto_page_download_specific_driver_files = \u4E0B\u8F7D {0} \u9A71\u52A8\u6587\u4EF6 +dialog_driver_download_auto_page_driver_file_missing_text = {0} \u9A71\u52A8\u6587\u4EF6\u4E22\u5931.\nDBeaver \u53EF\u4EE5\u81EA\u52A8\u4E0B\u8F7D\u8FD9\u4E9B\u6587\u4EF6.\n\n +dialog_driver_download_auto_page_force_download = \u5F3A\u5236\u4E0B\u8F7D / \u8986\u76D6 +dialog_driver_download_auto_page_force_download_tooltip = \u5F3A\u5236\u6587\u4EF6\u4E0B\u8F7D\u3002\u5373\u4F7F\u6587\u4EF6\u5728\u78C1\u76D8\u4E0A\u4ECD\u5C06\u4E0B\u8F7D\u3002 +dialog_driver_download_auto_page_required_files = \u9A71\u52A8\u9700\u8981\u7684\u6587\u4EF6 +dialog_driver_download_auto_page_change_driver_version_text = \u4F60\u53EF\u4EE5\u901A\u8FC7\u5355\u51FB\u9A71\u52A8\u5217\u6765\u4FEE\u6539\u9A71\u52A8\u7248\u672C\u3002\n\u7136\u540E\u4F60\u53EF\u4EE5\u9009\u62E9\u4E00\u4E2A\u53EF\u7528\u7248\u672C\u3002 +dialog_driver_download_auto_page_obtain_driver_files_text = \n\u6216\u8005\u4F60\u53EF\u4EE5\u81EA\u5DF1\u83B7\u53D6\u9A71\u52A8\u7A0B\u5E8F\u6587\u4EF6,\u5E76\u5C06\u5B83\u4EEC\u6DFB\u52A0\u5728\u9A71\u52A8\u7F16\u8F91\u5668\u4E2D\u3002 +dialog_driver_download_auto_page_cannot_resolve_libraries_text = \u65E0\u6CD5\u89E3\u51B3\u5E93\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5\u4F60\u7684\u7F51\u7EDC\u8BBE\u7F6E\u3002 +dialog_driver_download_auto_page_driver_download_error = \u9A71\u52A8\u4E0B\u8F7D +dialog_driver_download_auto_page_driver_download_error_msg = \u9519\u8BEF\u4E0B\u8F7D\u9A71\u52A8\u6587\u4EF6 +dialog_driver_download_auto_page_driver_security_warning = \u5B89\u5168\u8B66\u544A +dialog_driver_download_auto_page_driver_security_warning_msg = \u5728\u5B89\u5168\u7684\u8D44\u6E90\u5E93\u4E2D\u672A\u627E\u5230\u5E93\u6587\u4EF6 '{0}' .\n\u53EA\u6709\u975E\u5B89\u5168\u7248\u672C\u53EF\u7528: {1}.\n\n\u4E0D\u63A8\u8350\u4F7F\u7528\u4E0D\u5B89\u5168\u7684\u8D44\u6E90\u5E93,\u56E0\u4E3A\u6709\u6076\u610F\u8F6F\u4EF6\u611F\u67D3\u7684\u53EF\u80FD\u6027\u3002\n\n\u4F60\u786E\u5B9A\u8981\u7EE7\u7EED\u5417? +dialog_driver_download_auto_page_download_rate = \u4E0B\u8F7D {0}/{1} +dialog_driver_download_auto_page_download_failed_msg = \u9A71\u52A8\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25\u3002\n\u4F60\u60F3\u91CD\u8BD5\u5417? +## Driver download ## + +## SQL editor resultset filter panel ## +sql_editor_resultset_tool_item_log = \u65E5\u5FD7 +sql_editor_resultset_tool_item_output = \u8F93\u51FA +sql_editor_resultset_filter_panel_text_enter_sql_to_filter = \u8F93\u5165\u4E00\u4E2A SQL \u8868\u8FBE\u5F0F\u6765\u8FC7\u6EE4\u7ED3\u679C (\u4F7F\u7528 Ctrl+Space) +sql_editor_resultset_filter_panel_text_enter_filter_not_support = \u6570\u636E\u8FC7\u6EE4\u4E0D\u652F\u6301 +sql_editor_resultset_filter_panel_btn_apply = \u5E94\u7528\u8FC7\u6EE4\u6761\u4EF6 +sql_editor_resultset_filter_panel_btn_remove = \u79FB\u9664\u6240\u6709\u8FC7\u6EE4/\u6392\u5E8F +sql_editor_resultset_filter_panel_btn_save = \u4E3A\u5F53\u524D\u5BF9\u8C61\u4FDD\u5B58\u8FC7\u6EE4\u8BBE\u7F6E +sql_editor_resultset_filter_panel_btn_custom = \u81EA\u5B9A\u4E49\u8FC7\u6EE4 +sql_editor_resultset_filter_panel_btn_stop_refresh = \u505C\u6B62\u81EA\u52A8\u66F4\u65B0 +sql_editor_resultset_filter_panel_btn_config_refresh = \u914D\u7F6E\u81EA\u52A8\u66F4\u65B0 +sql_editor_resultset_filter_panel_label = \u70B9\u51FB\u5728\u7F16\u8F91\u5668\u4E2D\u6253\u5F00\u67E5\u8BE2 +sql_editor_resultset_filter_panel_btn_open_console = Ctrl+click \u6765\u6253\u5F00 SQL \u63A7\u5236\u53F0 +sql_editor_resultset_filter_panel_menu_customize = \u81EA\u5B9A\u4E49 ... +sql_editor_resultset_filter_panel_menu_stop = \u505C\u6B62 +sql_editor_resultset_filter_panel_menu_refresh_interval = \u6BCF {0} \u79D2\u5237\u65B0 +sql_editor_resultset_filter_panel_control_no_data = \u65E0\u6570\u636E +sql_editor_resultset_filter_panel_control_execute_to_see_reslut = \u6267\u884C\u62C6\u67E5\u8BE2 {0} \u6216\u8005\u811A\u672C {1} \u6765\u67E5\u770B\u7ED3\u679C +## SQL editor resultset filter panel ## + diff --git a/bundles/org.jkiss.dbeaver.data.office.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.data.office.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.data.office.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.data.office.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.data.office.nls/.project b/nls/bundles/org.jkiss.dbeaver.data.office.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.data.office.nls/.project rename to nls/bundles/org.jkiss.dbeaver.data.office.nls/.project diff --git a/bundles/org.jkiss.dbeaver.data.office.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.data.office.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.data.office.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.data.office.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.data.office.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.data.office.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.data.office.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.data.office.nls/OSGI-INF/l10n/bundle_zh.properties index 7d281961d1..83972ab6dd 100644 --- a/bundles/org.jkiss.dbeaver.data.office.nls/OSGI-INF/l10n/bundle_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.data.office.nls/OSGI-INF/l10n/bundle_zh.properties @@ -1,37 +1,37 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) - -Bundle-Vendor = JKISS -Bundle-Name = DBeaver Office Support - -dataTransfer.processor.xlsx.name = XLSX -dataTransfer.processor.xlsx.description = \u5BFC\u51FA\u5230 XLSX \u6587\u4EF6 -dataTransfer.processor.xlsx.propertyGroup.general.label = \u901A\u7528 -dataTransfer.processor.xlsx.property.header.name = \u5B57\u6BB5\u540D\u4F5C\u4E3A\u5217\u6807\u9898 -dataTransfer.processor.xlsx.property.header.description = \u5B57\u6BB5\u540D\u7528\u4F5C\u9996\u884C -dataTransfer.processor.xlsx.property.nullString.name = NULL \u5B57\u7B26\u4E32 -dataTransfer.processor.xlsx.property.nullString.description = \u7528\u6765\u4EE3\u66FF NULL \u503C\u7684\u5B57\u7B26\u4E32 -dataTransfer.processor.xlsx.property.boolStringTrue.name = \u5E03\u5C14\u5B57\u7B26\u4E32 TRUE -dataTransfer.processor.xlsx.property.boolStringTrue.description =\u7528\u6765\u66FF\u6362\u5E03\u5C14\u503C TRUE \u7684\u5B57\u7B26\u4E32 -dataTransfer.processor.xlsx.property.boolStringFalse.name = \u5E03\u5C14\u5B57\u7B26\u4E32 FALSE -dataTransfer.processor.xlsx.property.boolStringFalse.description = \u7528\u6765\u66FF\u6362\u5E03\u5C14\u503C FALSE \u7684\u5B57\u7B26\u4E32 -dataTransfer.processor.xlsx.property.exportSql.name =\u5BFC\u51FA SQL -dataTransfer.processor.xlsx.property.exportSql.description =\u5BFC\u51FA SQL \u5230\u4E00\u4E2A\u4E8C\u7EA7\u5DE5\u4F5C\u8868 -dataTransfer.processor.xlsx.property.extension.label = \u6587\u4EF6\u6269\u5C55\u540D -dataTransfer.processor.xlsx.property.splitSqlText.name = \u5207\u5206 SQL \u6587\u672C -dataTransfer.processor.xlsx.property.splitSqlText.description = \u7528 CR \u6309\u884C\u5207\u5206\u5BFC\u51FA\u7684 SQL -dataTransfer.processor.xlsx.property.headerFont.name = \u6807\u9898\u884C\u5B57\u4F53 -dataTransfer.processor.xlsx.property.headerFont.description = \u9996\u884C\u5B57\u4F53\u5C5E\u6027 -dataTransfer.processor.xlsx.property.border.name = \u52A0\u7C97\u6837\u5F0F -dataTransfer.processor.xlsx.property.border.description = \u5355\u5143\u683C\u8FB9\u6846\u6837\u5F0F -dataTransfer.processor.xlsx.property.rowNumber.name = \u884C\u53F7 -dataTransfer.processor.xlsx.property.rowNumber.description = \u8BBE\u7F6E\u884C\u7D22\u5F15\u4E3A\u9996\u5217 -dataTransfer.processor.xlsx.property.splitByRowCount.name = \u5DE5\u4F5C\u8868\u7684\u6700\u5927\u884C\u6570 -dataTransfer.processor.xlsx.property.splitByRowCount.description = \u6309\u884C\u8BA1\u6570\u8FDB\u884C\u5207\u5206 -dataTransfer.processor.xlsx.property.splitByColNum.name = \u6309\u5217\u5206\u7EC4 -dataTransfer.processor.xlsx.property.splitByColNum.description = \u5217\u53F7\u7528\u6765\u6309\u5217\u540D\u4E3A\u5DE5\u4F5C\u8868\u4E2D\u7684\u884C\u5206\u7EC4 - -category.org.jkiss.dbeaver.ext.data.office.description = Office \u547D\u4EE4 -category.org.jkiss.dbeaver.ext.data.office.name = Office - -command.org.jkiss.dbeaver.ext.data.office.results.openSpreadsheet.description = \u5728 Excel/Calc \u4E2D\u6253\u5F00\u7ED3\u679C -command.org.jkiss.dbeaver.ext.data.office.results.openSpreadsheet.name = \u5728 Excel \u4E2D\u6253\u5F00\u7ED3\u679C +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) + +Bundle-Vendor = JKISS +Bundle-Name = DBeaver Office Support + +dataTransfer.processor.xlsx.name = XLSX +dataTransfer.processor.xlsx.description = \u5BFC\u51FA\u5230 XLSX \u6587\u4EF6 +dataTransfer.processor.xlsx.propertyGroup.general.label = \u901A\u7528 +dataTransfer.processor.xlsx.property.header.name = \u5B57\u6BB5\u540D\u4F5C\u4E3A\u5217\u6807\u9898 +dataTransfer.processor.xlsx.property.header.description = \u5B57\u6BB5\u540D\u7528\u4F5C\u9996\u884C +dataTransfer.processor.xlsx.property.nullString.name = NULL \u5B57\u7B26\u4E32 +dataTransfer.processor.xlsx.property.nullString.description = \u7528\u6765\u4EE3\u66FF NULL \u503C\u7684\u5B57\u7B26\u4E32 +dataTransfer.processor.xlsx.property.boolStringTrue.name = \u5E03\u5C14\u5B57\u7B26\u4E32 TRUE +dataTransfer.processor.xlsx.property.boolStringTrue.description =\u7528\u6765\u66FF\u6362\u5E03\u5C14\u503C TRUE \u7684\u5B57\u7B26\u4E32 +dataTransfer.processor.xlsx.property.boolStringFalse.name = \u5E03\u5C14\u5B57\u7B26\u4E32 FALSE +dataTransfer.processor.xlsx.property.boolStringFalse.description = \u7528\u6765\u66FF\u6362\u5E03\u5C14\u503C FALSE \u7684\u5B57\u7B26\u4E32 +dataTransfer.processor.xlsx.property.exportSql.name =\u5BFC\u51FA SQL +dataTransfer.processor.xlsx.property.exportSql.description =\u5BFC\u51FA SQL \u5230\u4E00\u4E2A\u4E8C\u7EA7\u5DE5\u4F5C\u8868 +dataTransfer.processor.xlsx.property.extension.label = \u6587\u4EF6\u6269\u5C55\u540D +dataTransfer.processor.xlsx.property.splitSqlText.name = \u5207\u5206 SQL \u6587\u672C +dataTransfer.processor.xlsx.property.splitSqlText.description = \u7528 CR \u6309\u884C\u5207\u5206\u5BFC\u51FA\u7684 SQL +dataTransfer.processor.xlsx.property.headerFont.name = \u6807\u9898\u884C\u5B57\u4F53 +dataTransfer.processor.xlsx.property.headerFont.description = \u9996\u884C\u5B57\u4F53\u5C5E\u6027 +dataTransfer.processor.xlsx.property.border.name = \u52A0\u7C97\u6837\u5F0F +dataTransfer.processor.xlsx.property.border.description = \u5355\u5143\u683C\u8FB9\u6846\u6837\u5F0F +dataTransfer.processor.xlsx.property.rowNumber.name = \u884C\u53F7 +dataTransfer.processor.xlsx.property.rowNumber.description = \u8BBE\u7F6E\u884C\u7D22\u5F15\u4E3A\u9996\u5217 +dataTransfer.processor.xlsx.property.splitByRowCount.name = \u5DE5\u4F5C\u8868\u7684\u6700\u5927\u884C\u6570 +dataTransfer.processor.xlsx.property.splitByRowCount.description = \u6309\u884C\u8BA1\u6570\u8FDB\u884C\u5207\u5206 +dataTransfer.processor.xlsx.property.splitByColNum.name = \u6309\u5217\u5206\u7EC4 +dataTransfer.processor.xlsx.property.splitByColNum.description = \u5217\u53F7\u7528\u6765\u6309\u5217\u540D\u4E3A\u5DE5\u4F5C\u8868\u4E2D\u7684\u884C\u5206\u7EC4 + +category.org.jkiss.dbeaver.ext.data.office.description = Office \u547D\u4EE4 +category.org.jkiss.dbeaver.ext.data.office.name = Office + +command.org.jkiss.dbeaver.ext.data.office.results.openSpreadsheet.description = \u5728 Excel/Calc \u4E2D\u6253\u5F00\u7ED3\u679C +command.org.jkiss.dbeaver.ext.data.office.results.openSpreadsheet.name = \u5728 Excel \u4E2D\u6253\u5F00\u7ED3\u679C diff --git a/bundles/org.jkiss.dbeaver.data.office.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.data.office.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.data.office.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.data.office.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.data.office.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.data.office.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.data.office.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.data.office.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.db2.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.db2.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.db2.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.db2.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.db2.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.db2.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.db2.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.db2.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.db2.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.db2.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.db2.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.db2.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.db2.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.db2.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.db2.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.db2.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.db2.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.db2.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.db2.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.db2.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.db2.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.db2.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.db2.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.db2.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.derby.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.derby.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.derby.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.derby.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.derby.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.derby.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.derby.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.derby.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.derby.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.derby.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.derby.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.derby.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.derby.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.derby.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.derby.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.derby.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.derby.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.derby.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.derby.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.derby.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.derby.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.derby.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.derby.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.derby.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_it.properties b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_it.properties rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_it.properties diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/OSGI-INF/l10n/bundle_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_it.properties b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_it.properties rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_it.properties diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.erd.nls/src/org/jkiss/dbeaver/ext/erd/ERDResources_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.exasol.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.exasol.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.exasol.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.exasol.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.exasol.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.exasol.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.exasol.nls/OSGI-INF/l10n/bundle_de.properties b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/OSGI-INF/l10n/bundle_de.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.ext.exasol.nls/OSGI-INF/l10n/bundle_de.properties rename to nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/OSGI-INF/l10n/bundle_de.properties index 2130cafcf1..b1735a1895 100644 --- a/bundles/org.jkiss.dbeaver.ext.exasol.nls/OSGI-INF/l10n/bundle_de.properties +++ b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/OSGI-INF/l10n/bundle_de.properties @@ -1,212 +1,212 @@ -# DBeaver - Universal Database Manager -# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) -# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) - -category.exasol.name = Exasol - -dialog.connection.header = Exasol Verbindungseinstellungen - -editor.source.ddl.description = DDL -editor.source.ddl.name = DDL -editor.source.declaration.description = Quellcode -editor.source.declaration.name = Quellcode - -menu.tables.manage = Verwalten - -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.alterAuth.name = \u00C4ndern (Alter) -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.deleteAuth.name = L\u00F6schen (delete) -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.insertAuth.name = Einf\u00FCgen -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.referencesAuth.name = Verfweise (References) -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.schema.name = Schema -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.selectAuth.name = Select -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.updateAuth.name = Update -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolConnectionGrant.adminOption.name = Admin Option -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolConnectionGrant.connection.name = Verbindungsname -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolConnectionGrant.description.name = Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRole.created.name = Angelegt am -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRole.description.name = Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRole.name.name = Rolenname -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRole.priority.name = Priorit\u00E4t -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRoleGrant.adminOption.name = Admin Option -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRoleGrant.role.name = Rolenname -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolSchemaGrant.executeAuth.name = Ausf\u00FChren -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolScriptGrant.executeAuth.name = Ausf\u00FChren -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolScriptGrant.procedure.name = Skript -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolSystemGrant.adminOption.name = Admin Option -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolSystemGrant.systemPrivilege.name = Name des Rechtes -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolTableGrant.table.name = Tabelle -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.created.name = Angelegt am -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.description.name = Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.dn.name = LDAP DN -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.name.name = Benutzername -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.password.name = Passwort-Hash -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.priority.name = Priorit\u00E4t -meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolViewGrant.view.name = View -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.connectionString.name = Verbindungsurl -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.created.name = Angelegt am -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.description.name = Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.name.name = Verbindungsname -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.userName.name = Benutzername -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.password.name = Passwort -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.createTime.name = Angelegt am -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.description.name = Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.name.name = Schemaname -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.owner.name = Besitzer -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.sql.name = Definition -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.createTime.name = Angelegt am -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.creationTime.name = Angelegt am -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.description.name = Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.language.name = Programmiersprache -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.name.name = Skriptname -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.owner.name = Besitzer -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.resultType.name = Ergebnistyp des Skripts -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.schema.name = Schema -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.sql.name = SQL Text -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.type.name = Skripttyp (Scalar, Set, Null) -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.compressedsize.name = komprimierte Gr\u00F6\u00DFe -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.createTime.name = Angelegt am -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.deletePercentage.name = Prozent gel\u00F6schte S\u00E4tze -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.description.name = Tabellenbeschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.hasDistKey.name = Distribution key vorhanden -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.lastCommit.name = Letzte Transaktion -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.rawsize.name = Unkomprimierte Gr\u00F6\u00DFe -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.compressedsize.name = Komprimierte Gr\u00F6\u00DFe -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.createTime.name = Angelegt am -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.deletePercentage.name = Prozent gel\u00F6schte S\u00E4tze -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.description.name = Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.name.name = Name -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.owner.name = Besitzer -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.rawsize.name = Unkomprimierte Gr\u00F6\u00DFe -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.schema.name = Schema -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.dataType.name = Typ -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.description.name = Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.distKey.name = Teil des Verteilungsschl\u00FCssels -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.identity.name = Identity Value -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.identityValue.name = Aktueller Wert der Auto-Increment Spalte -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.inUniqueKey.name = Schl\u00FCssel -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.isDistKey.name = Teil des Verteilungsschl\u00FCssels -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.keySeq.name = Key Seq -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.owner.name = Tabelle -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.status.name = Status -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.stringLength.name = Zeichenl\u00E4nge -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableForeignKey.enabled.name = Eingeschaltet -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableForeignKey.referencedConstraint.name = Referenced Constraint -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableForeignKey.referencedTable.name = referenzierte Tabelle -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableUniqueKey.constraintType.name = Constraint Type -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableUniqueKey.description.name = PK Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableUniqueKey.enabled.name = Eingeschaltet -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableUniqueKey.owner.name = PK Besitzer -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolUser.description.name = Benutzerbeschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolUser.name.name = Benutzername -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolView.description.name = View Beschreibung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolView.owner.name = Besitzer -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolView.text.name = SQL Definition -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.adapterNotes.name = Adapter-Anmerkungen -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.adapterScriptName.name = Adapterskript Name -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.adapterScriptSchema.name = Adapterskript Schema -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.lastRefresh.name = Letzer Aktualisierung -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.refreshBy.name = Aktualisiert durch -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchemaParameter.name.name = Property Name -meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchemaParameter.value.name = Property Wert -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.activity.name = Aktivit\u00E4t -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.client.name = Client Name -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.commandName.name = Befehl -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.driver.name = Treiber -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.duration.name = Dauer -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.encrypted.name = Verschl\u00FCsselt -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.host.name = Hostname -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.loginTime.name = Loginzeitpunkt -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.nice.name = Nice Wert -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.osName.name = Betriebsystemname -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.osUser.name = Betriebsystem-Benutzer -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.priority.name = Priorit\u00E4t -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.queryTimeout.name = Ausf\u00FChrungstimeout -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.resources.name = Ress % -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.scopeSchema.name = Schema -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.sessionID.name = Session ID -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.sqlText.name = SQL Text -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.status.name = Status -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.stmtId.name = Stmt ID -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.tempDbRam.name = Temp Db Ram -meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.userName.name = Benutzername -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.commandClass.name = Befehlsklasse -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.commandName.name = Befehl -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.cpu.name = CPU % -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.detailInfo.name = Detailinfos -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.duration.name = Dauer in S -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.hddRead.name = HDD Read MB/s -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.hddWrite.name = HDD Write MB/s -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.netTransfer.name = Net Transfer MB/s -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.objectName.name = Objektname -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.objectRows.name = Objektzeilen -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.objectSchema.name = Objektschema -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.outRows.name = Ausgabezeilen -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.partId.name = Part Id -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.partInfo.name = Part Info -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.partName.name = Part Name -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.stmtId.name = Statement Id -meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.tempDbRamPeak.name = Temp DB Ram Peak MB - -tool.org.jkiss.dbeaver.ext.exasol.database.reorg.name = Datenbank Reorganisieren -tool.org.jkiss.dbeaver.ext.exasol.table.export.name = Tabelle(n) exportieren -tool.org.jkiss.dbeaver.ext.exasol.table.import.name = Tabelle(n) importieren -tool.org.jkiss.dbeaver.ext.exasol.table.reorg.name = Tabellenreorg ... -tool.org.jkiss.dbeaver.ext.exasol.table.truncate.name = Leeren ... - -tree.administer.node.name = Administrieren -tree.check_constraint_columns.node.name = Spalten -tree.column.node.name = Spalte -tree.columns.node.name = Spalten -tree.connection.node.name = Verbindung -tree.connections.node.name = Verbindungen -tree.constraint.node.name = Prim\u00E4rschl\u00FCssel -tree.constraint_columns.node.name = Spalten -tree.constraints.node.name = Prim\u00E4rschl\u00FCssel -tree.container.node.name = Kontainer -tree.containers.node.name = Kontainer -tree.databaseauth.node.name = Datenbankberechtigungen -tree.foreign_key.node.name = Fremdschl\u00FCssel -tree.foreign_key_columns.node.name = Fremdschl\u00FCsselspalten -tree.foreign_keys.node.name = Fremdschl\u00FCssel -tree.function.node.name = Funktion -tree.functions.node.name = Funktionen -tree.functionsauths.node.name = Funktionsberechtigungen -tree.global_metadata.node.name = Globale Metadaten -tree.procedure.node.name = Prozedur -tree.procedures.node.name = Prozeduren -tree.proceduresauths.node.name = Prozedurberechtigungen -tree.reference_key.node.name = Referenz -tree.references.node.name = Referenzen -tree.remoteserver.node.name = Remote Server -tree.remoteservers.node.name = Remote Servers -tree.role.node.name = Rolle -tree.roleauth.node.name = Berechtigung -tree.roleauths.node.name = Berechtigungen -tree.roles.node.name = Rollen -tree.schema.node.name = Schema -tree.schemas.node.name = Schemata -tree.schemasauths.node.name = Schema Berechtigungen -tree.script.node.name = Skript -tree.scripts.node.name = Skripte -tree.security.node.name = Sicherheit -tree.sessions.node.name = Sessions -tree.sysgrant.node.name = Systemberechtigungen -tree.system_info.node.name = Systeminformationen -tree.table.node.name = Tabelle -tree.tables.node.name = Tabellen -tree.user.node.name = Benutzer -tree.userauth.node.name = Berechtigung -tree.userauths.node.name = Berechtigungen -tree.users.node.name = Benutzer -tree.view.node.name = View -tree.viewdep.node.name = Abh\u00E4ngigkeit -tree.viewdeps.node.name = Abh\u00E4ngigkeiten -tree.views.node.name = Views -tree.viewsauths.node.name = View Berechtigungen -tree.virtualschema.node.name = Virtuelles Schema -tree.virtualschemaparameters.node.name = Virtuelles Schema - Parameter -tree.virtualschemas.node.name = Virtuelle Schemata -tree.locks.node.name = Lock Manager - -meta.org.jkiss.dbeaver.model.struct.rdb.DBSTableConstraintColumn.attribute.name = Spaltenname -meta.org.jkiss.dbeaver.model.struct.rdb.DBSTableConstraintColumn.ordinalPosition.name = Spaltennr. +# DBeaver - Universal Database Manager +# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) +# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) + +category.exasol.name = Exasol + +dialog.connection.header = Exasol Verbindungseinstellungen + +editor.source.ddl.description = DDL +editor.source.ddl.name = DDL +editor.source.declaration.description = Quellcode +editor.source.declaration.name = Quellcode + +menu.tables.manage = Verwalten + +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.alterAuth.name = \u00C4ndern (Alter) +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.deleteAuth.name = L\u00F6schen (delete) +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.insertAuth.name = Einf\u00FCgen +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.referencesAuth.name = Verfweise (References) +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.schema.name = Schema +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.selectAuth.name = Select +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolBaseObjectGrant.updateAuth.name = Update +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolConnectionGrant.adminOption.name = Admin Option +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolConnectionGrant.connection.name = Verbindungsname +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolConnectionGrant.description.name = Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRole.created.name = Angelegt am +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRole.description.name = Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRole.name.name = Rolenname +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRole.priority.name = Priorit\u00E4t +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRoleGrant.adminOption.name = Admin Option +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolRoleGrant.role.name = Rolenname +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolSchemaGrant.executeAuth.name = Ausf\u00FChren +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolScriptGrant.executeAuth.name = Ausf\u00FChren +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolScriptGrant.procedure.name = Skript +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolSystemGrant.adminOption.name = Admin Option +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolSystemGrant.systemPrivilege.name = Name des Rechtes +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolTableGrant.table.name = Tabelle +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.created.name = Angelegt am +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.description.name = Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.dn.name = LDAP DN +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.name.name = Benutzername +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.password.name = Passwort-Hash +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolUser.priority.name = Priorit\u00E4t +meta.org.jkiss.dbeaver.ext.exasol.manager.security.ExasolViewGrant.view.name = View +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.connectionString.name = Verbindungsurl +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.created.name = Angelegt am +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.description.name = Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.name.name = Verbindungsname +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.userName.name = Benutzername +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolConnection.password.name = Passwort +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.createTime.name = Angelegt am +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.description.name = Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.name.name = Schemaname +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.owner.name = Besitzer +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolSchema.sql.name = Definition +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.createTime.name = Angelegt am +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.creationTime.name = Angelegt am +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.description.name = Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.language.name = Programmiersprache +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.name.name = Skriptname +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.owner.name = Besitzer +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.resultType.name = Ergebnistyp des Skripts +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.schema.name = Schema +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.sql.name = SQL Text +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolScript.type.name = Skripttyp (Scalar, Set, Null) +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.compressedsize.name = komprimierte Gr\u00F6\u00DFe +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.createTime.name = Angelegt am +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.deletePercentage.name = Prozent gel\u00F6schte S\u00E4tze +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.description.name = Tabellenbeschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.hasDistKey.name = Distribution key vorhanden +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.lastCommit.name = Letzte Transaktion +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTable.rawsize.name = Unkomprimierte Gr\u00F6\u00DFe +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.compressedsize.name = Komprimierte Gr\u00F6\u00DFe +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.createTime.name = Angelegt am +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.deletePercentage.name = Prozent gel\u00F6schte S\u00E4tze +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.description.name = Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.name.name = Name +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.owner.name = Besitzer +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.rawsize.name = Unkomprimierte Gr\u00F6\u00DFe +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableBase.schema.name = Schema +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.dataType.name = Typ +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.description.name = Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.distKey.name = Teil des Verteilungsschl\u00FCssels +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.identity.name = Identity Value +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.identityValue.name = Aktueller Wert der Auto-Increment Spalte +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.inUniqueKey.name = Schl\u00FCssel +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.isDistKey.name = Teil des Verteilungsschl\u00FCssels +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.keySeq.name = Key Seq +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.owner.name = Tabelle +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.status.name = Status +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableColumn.stringLength.name = Zeichenl\u00E4nge +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableForeignKey.enabled.name = Eingeschaltet +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableForeignKey.referencedConstraint.name = Referenced Constraint +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableForeignKey.referencedTable.name = referenzierte Tabelle +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableUniqueKey.constraintType.name = Constraint Type +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableUniqueKey.description.name = PK Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableUniqueKey.enabled.name = Eingeschaltet +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolTableUniqueKey.owner.name = PK Besitzer +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolUser.description.name = Benutzerbeschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolUser.name.name = Benutzername +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolView.description.name = View Beschreibung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolView.owner.name = Besitzer +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolView.text.name = SQL Definition +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.adapterNotes.name = Adapter-Anmerkungen +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.adapterScriptName.name = Adapterskript Name +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.adapterScriptSchema.name = Adapterskript Schema +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.lastRefresh.name = Letzer Aktualisierung +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchema.refreshBy.name = Aktualisiert durch +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchemaParameter.name.name = Property Name +meta.org.jkiss.dbeaver.ext.exasol.model.ExasolVirtualSchemaParameter.value.name = Property Wert +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.activity.name = Aktivit\u00E4t +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.client.name = Client Name +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.commandName.name = Befehl +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.driver.name = Treiber +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.duration.name = Dauer +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.encrypted.name = Verschl\u00FCsselt +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.host.name = Hostname +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.loginTime.name = Loginzeitpunkt +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.nice.name = Nice Wert +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.osName.name = Betriebsystemname +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.osUser.name = Betriebsystem-Benutzer +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.priority.name = Priorit\u00E4t +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.queryTimeout.name = Ausf\u00FChrungstimeout +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.resources.name = Ress % +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.scopeSchema.name = Schema +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.sessionID.name = Session ID +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.sqlText.name = SQL Text +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.status.name = Status +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.stmtId.name = Stmt ID +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.tempDbRam.name = Temp Db Ram +meta.org.jkiss.dbeaver.ext.exasol.model.app.ExasolServerSession.userName.name = Benutzername +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.commandClass.name = Befehlsklasse +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.commandName.name = Befehl +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.cpu.name = CPU % +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.detailInfo.name = Detailinfos +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.duration.name = Dauer in S +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.hddRead.name = HDD Read MB/s +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.hddWrite.name = HDD Write MB/s +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.netTransfer.name = Net Transfer MB/s +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.objectName.name = Objektname +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.objectRows.name = Objektzeilen +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.objectSchema.name = Objektschema +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.outRows.name = Ausgabezeilen +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.partId.name = Part Id +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.partInfo.name = Part Info +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.partName.name = Part Name +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.stmtId.name = Statement Id +meta.org.jkiss.dbeaver.ext.exasol.model.plan.ExasolPlanNode.tempDbRamPeak.name = Temp DB Ram Peak MB + +tool.org.jkiss.dbeaver.ext.exasol.database.reorg.name = Datenbank Reorganisieren +tool.org.jkiss.dbeaver.ext.exasol.table.export.name = Tabelle(n) exportieren +tool.org.jkiss.dbeaver.ext.exasol.table.import.name = Tabelle(n) importieren +tool.org.jkiss.dbeaver.ext.exasol.table.reorg.name = Tabellenreorg ... +tool.org.jkiss.dbeaver.ext.exasol.table.truncate.name = Leeren ... + +tree.administer.node.name = Administrieren +tree.check_constraint_columns.node.name = Spalten +tree.column.node.name = Spalte +tree.columns.node.name = Spalten +tree.connection.node.name = Verbindung +tree.connections.node.name = Verbindungen +tree.constraint.node.name = Prim\u00E4rschl\u00FCssel +tree.constraint_columns.node.name = Spalten +tree.constraints.node.name = Prim\u00E4rschl\u00FCssel +tree.container.node.name = Kontainer +tree.containers.node.name = Kontainer +tree.databaseauth.node.name = Datenbankberechtigungen +tree.foreign_key.node.name = Fremdschl\u00FCssel +tree.foreign_key_columns.node.name = Fremdschl\u00FCsselspalten +tree.foreign_keys.node.name = Fremdschl\u00FCssel +tree.function.node.name = Funktion +tree.functions.node.name = Funktionen +tree.functionsauths.node.name = Funktionsberechtigungen +tree.global_metadata.node.name = Globale Metadaten +tree.procedure.node.name = Prozedur +tree.procedures.node.name = Prozeduren +tree.proceduresauths.node.name = Prozedurberechtigungen +tree.reference_key.node.name = Referenz +tree.references.node.name = Referenzen +tree.remoteserver.node.name = Remote Server +tree.remoteservers.node.name = Remote Servers +tree.role.node.name = Rolle +tree.roleauth.node.name = Berechtigung +tree.roleauths.node.name = Berechtigungen +tree.roles.node.name = Rollen +tree.schema.node.name = Schema +tree.schemas.node.name = Schemata +tree.schemasauths.node.name = Schema Berechtigungen +tree.script.node.name = Skript +tree.scripts.node.name = Skripte +tree.security.node.name = Sicherheit +tree.sessions.node.name = Sessions +tree.sysgrant.node.name = Systemberechtigungen +tree.system_info.node.name = Systeminformationen +tree.table.node.name = Tabelle +tree.tables.node.name = Tabellen +tree.user.node.name = Benutzer +tree.userauth.node.name = Berechtigung +tree.userauths.node.name = Berechtigungen +tree.users.node.name = Benutzer +tree.view.node.name = View +tree.viewdep.node.name = Abh\u00E4ngigkeit +tree.viewdeps.node.name = Abh\u00E4ngigkeiten +tree.views.node.name = Views +tree.viewsauths.node.name = View Berechtigungen +tree.virtualschema.node.name = Virtuelles Schema +tree.virtualschemaparameters.node.name = Virtuelles Schema - Parameter +tree.virtualschemas.node.name = Virtuelle Schemata +tree.locks.node.name = Lock Manager + +meta.org.jkiss.dbeaver.model.struct.rdb.DBSTableConstraintColumn.attribute.name = Spaltenname +meta.org.jkiss.dbeaver.model.struct.rdb.DBSTableConstraintColumn.ordinalPosition.name = Spaltennr. diff --git a/bundles/org.jkiss.dbeaver.ext.exasol.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.exasol.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.exasol.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.exasol.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_de.properties b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_de.properties similarity index 95% rename from bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_de.properties rename to nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_de.properties index b1619508cf..9dc0b1c138 100644 --- a/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_de.properties +++ b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_de.properties @@ -1,51 +1,51 @@ -# DBeaver - Universal Database Manager -# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) -# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) - -dialog_connection_password = Passwort - -dialog_connection_port = Port - -dialog_connection_user_name = Benutzername - -dialog_table_open_output_directory = Ausgabeverzeichnis - -dialog_table_tools_column_heading = Spalten\u00FCberschriften? - -dialog_table_tools_column_sep = Spaltentrennzeichen - -dialog_table_tools_encoding = Zeichenkodierung - -dialog_table_tools_export_compress = Dateien komprimieren? - -dialog_table_tools_export_title = Export auf CSV-Datei - -dialog_table_tools_file_template = Dateinamen-Vorlage - -dialog_table_tools_import_title = Aus CSV-Datei importieren - -dialog_table_tools_options = Optionen - -dialog_table_tools_progress = Fortschritt - -dialog_table_tools_result = Ergebnis - -dialog_table_tools_row_sep = Zeilentrennzeichen - -dialog_table_tools_string_sep = Zeichentrenneichen - -dialog_table_tools_string_sep_mode = Zeichentrennzeichen Verwendungsart - -dialog_table_tools_success_title = Erfolg - -editors_exasol_session_editor_action_kill = Verbindung terminieren - -editors_exasol_session_editor_confirm_action = {0} "{1}". Sind Sie sicher? - -editors_exasol_session_editor_title_kill_session = Verbindung terminieren - -editors_exasol_session_editor_title_kill_session_statement = Befehl terminieren - - -dialog_struct_edit_fk_label_fk_name=Fremschl\u00FCsselname +# DBeaver - Universal Database Manager +# Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) +# Copyright (C) 2017 Karl Griesser (fullref@gmail.com) + +dialog_connection_password = Passwort + +dialog_connection_port = Port + +dialog_connection_user_name = Benutzername + +dialog_table_open_output_directory = Ausgabeverzeichnis + +dialog_table_tools_column_heading = Spalten\u00FCberschriften? + +dialog_table_tools_column_sep = Spaltentrennzeichen + +dialog_table_tools_encoding = Zeichenkodierung + +dialog_table_tools_export_compress = Dateien komprimieren? + +dialog_table_tools_export_title = Export auf CSV-Datei + +dialog_table_tools_file_template = Dateinamen-Vorlage + +dialog_table_tools_import_title = Aus CSV-Datei importieren + +dialog_table_tools_options = Optionen + +dialog_table_tools_progress = Fortschritt + +dialog_table_tools_result = Ergebnis + +dialog_table_tools_row_sep = Zeilentrennzeichen + +dialog_table_tools_string_sep = Zeichentrenneichen + +dialog_table_tools_string_sep_mode = Zeichentrennzeichen Verwendungsart + +dialog_table_tools_success_title = Erfolg + +editors_exasol_session_editor_action_kill = Verbindung terminieren + +editors_exasol_session_editor_confirm_action = {0} "{1}". Sind Sie sicher? + +editors_exasol_session_editor_title_kill_session = Verbindung terminieren + +editors_exasol_session_editor_title_kill_session_statement = Befehl terminieren + + +dialog_struct_edit_fk_label_fk_name=Fremschl\u00FCsselname edit_exasol_constraint_manager_dialog_title=Prim\u00e4rschl\u00fcssel Anlegen \ No newline at end of file diff --git a/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_zh.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_zh.properties index 219ceded42..eebfd9a671 100644 --- a/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.ext.exasol.nls/src/org/jkiss/dbeaver/ext/exasol/ExasolResources_zh.properties @@ -1,43 +1,43 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) - -dialog_connection_password=\u5BC6\u7801 -dialog_connection_port=\u7AEF\u53E3\u53F7 -dialog_connection_user_name=\u7528\u6237\u540D - - -dialog_schema_drop_title=Schema\u5220\u9664\u8B66\u544A -dialog_schema_drop_message=schema\u4E0B\u7684\u6240\u6709\u73B0\u5B58\u5BF9\u8C61\u5C06\u88AB\u5220\u9664.\u8BE5\u64CD\u4F5C\u65E0\u6CD5\u88AB\u64A4\u9500. -dialog_connection_alter_title=\u8FDE\u63A5\u53D8\u66F4 -dialog_connection_alter_message=\u5982\u679C\u4E00\u4E2A\u4FDD\u5B58\u6388\u6743\u51ED\u8BC1\u7684\u8FDE\u63A5\u88AB\u53D8\u66F4, \u5982\u679C\u53D8\u66F4\u65F6\u6CA1\u6709\u5B8C\u5168\u63D0\u4F9B\u90A3\u4E48\u8BE5\u51ED\u8BC1\u5C06\u4F1A\u4E22\u5931\u3002 -dialog_general_continue=\u7EE7\u7EED - - -dialog_table_tools_options=\u9009\u9879 -dialog_table_tools_result=\u7ED3\u679C -dialog_table_tools_progress=\u8FDB\u7A0B -dialog_table_tools_success_title=\u6210\u529F -dialog_table_open_output_directory=\u8F93\u51FA\u76EE\u5F55 -dialog_table_tools_export_title=\u5BFC\u51FA\u5230 CSV \u6587\u4EF6 -dialog_table_tools_export_compress=\u538B\u7F29\u6587\u4EF6\uFF1F -dialog_table_tools_column_heading=\u5217\u6807\u9898\uFF1F -dialog_table_tools_row_sep=\u884C\u5206\u9694\u7B26 -dialog_table_tools_column_sep=\u5217\u5206\u9694\u7B26 -dialog_table_tools_string_sep_mode=\u4F7F\u7528\u5B57\u7B26\u4E32\u5206\u9694\u7B26 -dialog_table_tools_string_sep=\u5B57\u7B26\u4E32\u5206\u9694\u7B26 -dialog_table_tools_encoding=\u7F16\u7801 -dialog_table_tools_file_template=\u6587\u4EF6\u6A21\u677F - -dialog_table_tools_export_title=\u5BFC\u51FA\u5230 CSV \u6587\u4EF6 -dialog_table_tools_import_title=\u4ECE CSV \u6587\u4EF6\u5BFC\u5165 - -dialog_struct_edit_fk_label_fk_name=\u5916\u952E\u540D\u79F0 - - -editors_exasol_session_editor_title_kill_session = \u6740\u6389\u4F1A\u8BDD -editors_exasol_session_editor_action_kill = \u6740\u6389\u4F1A\u8BDD -editors_exasol_session_editor_confirm_action = {0} "{1}". \u4F60\u786E\u5B9A\u5417? -editors_exasol_session_editor_title_kill_session_statement = \u7EC8\u6B62\u8BED\u53E5 - -edit_exasol_constraint_manager_dialog_title=\u521B\u5EFA\u4E3B\u952E - - +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) + +dialog_connection_password=\u5BC6\u7801 +dialog_connection_port=\u7AEF\u53E3\u53F7 +dialog_connection_user_name=\u7528\u6237\u540D + + +dialog_schema_drop_title=Schema\u5220\u9664\u8B66\u544A +dialog_schema_drop_message=schema\u4E0B\u7684\u6240\u6709\u73B0\u5B58\u5BF9\u8C61\u5C06\u88AB\u5220\u9664.\u8BE5\u64CD\u4F5C\u65E0\u6CD5\u88AB\u64A4\u9500. +dialog_connection_alter_title=\u8FDE\u63A5\u53D8\u66F4 +dialog_connection_alter_message=\u5982\u679C\u4E00\u4E2A\u4FDD\u5B58\u6388\u6743\u51ED\u8BC1\u7684\u8FDE\u63A5\u88AB\u53D8\u66F4, \u5982\u679C\u53D8\u66F4\u65F6\u6CA1\u6709\u5B8C\u5168\u63D0\u4F9B\u90A3\u4E48\u8BE5\u51ED\u8BC1\u5C06\u4F1A\u4E22\u5931\u3002 +dialog_general_continue=\u7EE7\u7EED + + +dialog_table_tools_options=\u9009\u9879 +dialog_table_tools_result=\u7ED3\u679C +dialog_table_tools_progress=\u8FDB\u7A0B +dialog_table_tools_success_title=\u6210\u529F +dialog_table_open_output_directory=\u8F93\u51FA\u76EE\u5F55 +dialog_table_tools_export_title=\u5BFC\u51FA\u5230 CSV \u6587\u4EF6 +dialog_table_tools_export_compress=\u538B\u7F29\u6587\u4EF6\uFF1F +dialog_table_tools_column_heading=\u5217\u6807\u9898\uFF1F +dialog_table_tools_row_sep=\u884C\u5206\u9694\u7B26 +dialog_table_tools_column_sep=\u5217\u5206\u9694\u7B26 +dialog_table_tools_string_sep_mode=\u4F7F\u7528\u5B57\u7B26\u4E32\u5206\u9694\u7B26 +dialog_table_tools_string_sep=\u5B57\u7B26\u4E32\u5206\u9694\u7B26 +dialog_table_tools_encoding=\u7F16\u7801 +dialog_table_tools_file_template=\u6587\u4EF6\u6A21\u677F + +dialog_table_tools_export_title=\u5BFC\u51FA\u5230 CSV \u6587\u4EF6 +dialog_table_tools_import_title=\u4ECE CSV \u6587\u4EF6\u5BFC\u5165 + +dialog_struct_edit_fk_label_fk_name=\u5916\u952E\u540D\u79F0 + + +editors_exasol_session_editor_title_kill_session = \u6740\u6389\u4F1A\u8BDD +editors_exasol_session_editor_action_kill = \u6740\u6389\u4F1A\u8BDD +editors_exasol_session_editor_confirm_action = {0} "{1}". \u4F60\u786E\u5B9A\u5417? +editors_exasol_session_editor_title_kill_session_statement = \u7EC8\u6B62\u8BED\u53E5 + +edit_exasol_constraint_manager_dialog_title=\u521B\u5EFA\u4E3B\u952E + + diff --git a/bundles/org.jkiss.dbeaver.ext.firebird.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.firebird.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.firebird.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.firebird.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.firebird.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.firebird.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.firebird.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.ext.firebird.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/OSGI-INF/l10n/bundle_zh.properties index 87819624ef..feb8b963a7 100644 --- a/bundles/org.jkiss.dbeaver.ext.firebird.nls/OSGI-INF/l10n/bundle_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/OSGI-INF/l10n/bundle_zh.properties @@ -1,15 +1,15 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) - -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdTrigger.triggerType.name=\u7C7B\u578B -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdTrigger.sequence.name=\u5E8F\u5217 -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.fieldType.name=\u7C7B\u578B -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.defaultSource.name=\u9ED8\u8BA4\u503C -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.computedSource.name=\u88AB\u8BA1\u7B97 -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.validationSource.name=\u68C0\u67E5 -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.charsetName.name=\u5B57\u7B26\u96C6 -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.subType.name=\u5B50\u7C7B\u578B -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.fieldLength.name=\u957F\u5EA6 -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.charLength.name=\u5B57\u7B26\u957F\u5EA6 -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.notNull.name=\u975E\u7A7A -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdTableColumn.domainTypeName.name=\u57DF\u7C7B\u578B -meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdTableColumn.charset.name=\u5B57\u7B26\u96C6 +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) + +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdTrigger.triggerType.name=\u7C7B\u578B +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdTrigger.sequence.name=\u5E8F\u5217 +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.fieldType.name=\u7C7B\u578B +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.defaultSource.name=\u9ED8\u8BA4\u503C +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.computedSource.name=\u88AB\u8BA1\u7B97 +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.validationSource.name=\u68C0\u67E5 +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.charsetName.name=\u5B57\u7B26\u96C6 +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.subType.name=\u5B50\u7C7B\u578B +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.fieldLength.name=\u957F\u5EA6 +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.charLength.name=\u5B57\u7B26\u957F\u5EA6 +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdDataType.notNull.name=\u975E\u7A7A +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdTableColumn.domainTypeName.name=\u57DF\u7C7B\u578B +meta.org.jkiss.dbeaver.ext.firebird.model.FireBirdTableColumn.charset.name=\u5B57\u7B26\u96C6 diff --git a/bundles/org.jkiss.dbeaver.ext.firebird.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.firebird.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.firebird.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.firebird.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.firebird.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_it.properties b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_it.properties rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_it.properties diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_zh.properties index 3a25b25424..a80cf3e405 100644 --- a/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/OSGI-INF/l10n/bundle_zh.properties @@ -1,87 +1,87 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) -# Copyright (C) 2012 Brook.Tran (Brook.Tran.C@gmail.com) - -dialog.connection.header = \u901A\u7528JDBC\u8FDE\u63A5\u8BBE\u7F6E - -editor.source.name = \u8D44\u6E90 - -tree.column.node.name = \u5217 -tree.columns.node.name = \u5217 -tree.dataType.node.name = \u6570\u636E\u7C7B\u578B -tree.dataTypes.node.name = \u6570\u636E\u7C7B\u578B -tree.foreign_key.node.name = \u5916\u952E -tree.foreign_key_columns.node.name = \u5916\u952E\u5217 -tree.foreign_keys.node.name = \u5916\u952E -tree.index.node.name = \u7D22\u5F15 -tree.index_columns.node.name= \u5F15\u7528 -tree.indexes.node.name = \u7D22\u5F15 -tree.package.node.name = \u5305 -tree.packages.node.name = \u5305 -tree.procedure.node.name = \u5B58\u50A8\u8FC7\u7A0B -tree.procedure_columns.node.name = \u5B58\u50A8\u8FC7\u7A0B\u5217 -tree.procedures.node.name = \u5B58\u50A8\u8FC7\u7A0B -tree.reference.node.name = \u5F15\u7528\u5217 -tree.reference_columns.node.name = \u5F15\u7528\u5217 -tree.references.node.name = \u5F15\u7528 -tree.sequence.node.name = \u5E8F\u5217 -tree.sequences.node.name = \u5E8F\u5217 -tree.sub_table.node.name = \u5B50\u8868 -tree.table.node.name = \u8868 -tree.tables.node.name= \u8868 -tree.trigger.node.name = \u89E6\u53D1\u5668 -tree.triggers.node.name = \u89E6\u53D1\u5668 -tree.tview.node.name = \u89C6\u56FE -tree.tviews.node.name = \u89C6\u56FE -tree.uni_key.columns.node.name = \u552F\u4E00\u952E\u5217 -tree.uni_key.node.name = \u552F\u4E00\u952E -tree.uni_keys.node.name = \u552F\u4E00\u952E - -meta.org.jkiss.dbeaver.ext.generic.model.GenericCatalog.name.name = \u76EE\u5F55\u540D\u79F0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.description.name = \u63CF\u8FF0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.maxScale.name = \u6700\u5927\u6807\u5EA6 -meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.minScale.name = \u6700\u5C0F\u6807\u5EA6 -meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.precision.name = \u7CBE\u5EA6 -meta.org.jkiss.dbeaver.ext.generic.model.GenericPackage.catalog.name = \u76EE\u5F55 -meta.org.jkiss.dbeaver.ext.generic.model.GenericPackage.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericPackage.schema.name = \u6A21\u5F0F -meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.catalog.name = \u76EE\u5F55 -meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.functionResultType.name = \u7ED3\u679C\u7C7B\u578B -meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.package.name = \u5305 -meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.plainName.name = \u666E\u901A\u540D\u79F0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.procedureType.name = \u7C7B\u578B -meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.schema.name = \u6A21\u5F0F -meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedureParameter.parameterKind.name = \u5B57\u6BB5\u7C7B\u578B -meta.org.jkiss.dbeaver.ext.generic.model.GenericSchema.catalog.name = \u76EE\u5F55 -meta.org.jkiss.dbeaver.ext.generic.model.GenericSchema.description.name = \u6A21\u5F0F\u63CF\u8FF0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericSchema.name.name = \u6A21\u5F0F\u540D\u79F0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.description.name = \u63CF\u8FF0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.incrementBy.name = \u589E\u91CF -meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.lastValue.name = \u503C -meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.maxValue.name = \u6700\u5927\u503C -meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.minValue.name = \u6700\u5C0F\u503C -meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.catalog.name = \u76EE\u5F55 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.description.name = \u8868\u63CF\u8FF0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.rowCount.name = \u884C\u8BA1\u6570 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.schema.name = \u6A21\u5F0F -meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.tableType.name = \u8868\u7C7B\u578B -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.autoGenerated.name = \u81EA\u52A8\u751F\u6210 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.autoIncrement.name = \u81EA\u52A8\u9012\u589E -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.description.name = \u63CF\u8FF0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.inUniqueKey.name = \u952E -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.radix.name = \u57FA\u6570 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableConstraintColumn.attribute.name = \u5B57\u6BB5 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableConstraintColumn.ordinalPosition.name = \u4F4D\u7F6E -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableForeignKey.deferability.name = \u5EF6\u8FDF -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableForeignKeyColumnTable.referencedColumn.name = \u53C2\u7167\u5B57\u6BB5 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndex.cardinality.name = \u57FA\u51C6 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndex.description.name = \u7D22\u5F15\u63CF\u8FF0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndex.qualifier.name = \u9650\u5B9A\u5B50 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndex.unique.name = \u552F\u4E00 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndexColumn.ascending.name = \u5347\u5E8F -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndexColumn.ordinalPosition.name = \u4F4D\u7F6E -meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndexColumn.tableColumn.name = \u5B57\u6BB5 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTrigger.description.name = \u63CF\u8FF0 -meta.org.jkiss.dbeaver.ext.generic.model.GenericTrigger.name.name = \u540D\u79F0 +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) +# Copyright (C) 2012 Brook.Tran (Brook.Tran.C@gmail.com) + +dialog.connection.header = \u901A\u7528JDBC\u8FDE\u63A5\u8BBE\u7F6E + +editor.source.name = \u8D44\u6E90 + +tree.column.node.name = \u5217 +tree.columns.node.name = \u5217 +tree.dataType.node.name = \u6570\u636E\u7C7B\u578B +tree.dataTypes.node.name = \u6570\u636E\u7C7B\u578B +tree.foreign_key.node.name = \u5916\u952E +tree.foreign_key_columns.node.name = \u5916\u952E\u5217 +tree.foreign_keys.node.name = \u5916\u952E +tree.index.node.name = \u7D22\u5F15 +tree.index_columns.node.name= \u5F15\u7528 +tree.indexes.node.name = \u7D22\u5F15 +tree.package.node.name = \u5305 +tree.packages.node.name = \u5305 +tree.procedure.node.name = \u5B58\u50A8\u8FC7\u7A0B +tree.procedure_columns.node.name = \u5B58\u50A8\u8FC7\u7A0B\u5217 +tree.procedures.node.name = \u5B58\u50A8\u8FC7\u7A0B +tree.reference.node.name = \u5F15\u7528\u5217 +tree.reference_columns.node.name = \u5F15\u7528\u5217 +tree.references.node.name = \u5F15\u7528 +tree.sequence.node.name = \u5E8F\u5217 +tree.sequences.node.name = \u5E8F\u5217 +tree.sub_table.node.name = \u5B50\u8868 +tree.table.node.name = \u8868 +tree.tables.node.name= \u8868 +tree.trigger.node.name = \u89E6\u53D1\u5668 +tree.triggers.node.name = \u89E6\u53D1\u5668 +tree.tview.node.name = \u89C6\u56FE +tree.tviews.node.name = \u89C6\u56FE +tree.uni_key.columns.node.name = \u552F\u4E00\u952E\u5217 +tree.uni_key.node.name = \u552F\u4E00\u952E +tree.uni_keys.node.name = \u552F\u4E00\u952E + +meta.org.jkiss.dbeaver.ext.generic.model.GenericCatalog.name.name = \u76EE\u5F55\u540D\u79F0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.description.name = \u63CF\u8FF0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.maxScale.name = \u6700\u5927\u6807\u5EA6 +meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.minScale.name = \u6700\u5C0F\u6807\u5EA6 +meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericDataType.precision.name = \u7CBE\u5EA6 +meta.org.jkiss.dbeaver.ext.generic.model.GenericPackage.catalog.name = \u76EE\u5F55 +meta.org.jkiss.dbeaver.ext.generic.model.GenericPackage.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericPackage.schema.name = \u6A21\u5F0F +meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.catalog.name = \u76EE\u5F55 +meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.functionResultType.name = \u7ED3\u679C\u7C7B\u578B +meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.package.name = \u5305 +meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.plainName.name = \u666E\u901A\u540D\u79F0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.procedureType.name = \u7C7B\u578B +meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedure.schema.name = \u6A21\u5F0F +meta.org.jkiss.dbeaver.ext.generic.model.GenericProcedureParameter.parameterKind.name = \u5B57\u6BB5\u7C7B\u578B +meta.org.jkiss.dbeaver.ext.generic.model.GenericSchema.catalog.name = \u76EE\u5F55 +meta.org.jkiss.dbeaver.ext.generic.model.GenericSchema.description.name = \u6A21\u5F0F\u63CF\u8FF0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericSchema.name.name = \u6A21\u5F0F\u540D\u79F0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.description.name = \u63CF\u8FF0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.incrementBy.name = \u589E\u91CF +meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.lastValue.name = \u503C +meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.maxValue.name = \u6700\u5927\u503C +meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.minValue.name = \u6700\u5C0F\u503C +meta.org.jkiss.dbeaver.ext.generic.model.GenericSequence.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.catalog.name = \u76EE\u5F55 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.description.name = \u8868\u63CF\u8FF0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.rowCount.name = \u884C\u8BA1\u6570 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.schema.name = \u6A21\u5F0F +meta.org.jkiss.dbeaver.ext.generic.model.GenericTable.tableType.name = \u8868\u7C7B\u578B +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.autoGenerated.name = \u81EA\u52A8\u751F\u6210 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.autoIncrement.name = \u81EA\u52A8\u9012\u589E +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.description.name = \u63CF\u8FF0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.inUniqueKey.name = \u952E +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableColumn.radix.name = \u57FA\u6570 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableConstraintColumn.attribute.name = \u5B57\u6BB5 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableConstraintColumn.ordinalPosition.name = \u4F4D\u7F6E +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableForeignKey.deferability.name = \u5EF6\u8FDF +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableForeignKeyColumnTable.referencedColumn.name = \u53C2\u7167\u5B57\u6BB5 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndex.cardinality.name = \u57FA\u51C6 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndex.description.name = \u7D22\u5F15\u63CF\u8FF0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndex.qualifier.name = \u9650\u5B9A\u5B50 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndex.unique.name = \u552F\u4E00 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndexColumn.ascending.name = \u5347\u5E8F +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndexColumn.ordinalPosition.name = \u4F4D\u7F6E +meta.org.jkiss.dbeaver.ext.generic.model.GenericTableIndexColumn.tableColumn.name = \u5B57\u6BB5 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTrigger.description.name = \u63CF\u8FF0 +meta.org.jkiss.dbeaver.ext.generic.model.GenericTrigger.name.name = \u540D\u79F0 meta.org.jkiss.dbeaver.ext.generic.model.GenericTrigger.table.name = \u8868 \ No newline at end of file diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_it.properties b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_it.properties rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_it.properties diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.generic.nls/src/org/jkiss/dbeaver/ext/generic/GenericResources_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.h2.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.h2.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.h2.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.h2.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.h2.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.h2.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.h2.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.h2.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.h2.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.h2.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.h2.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.h2.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.h2.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.h2.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.h2.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.h2.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.h2.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.h2.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.h2.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.h2.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.h2.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.h2.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.h2.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.h2.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.hsqldb.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.hsqldb.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.hsqldb.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.hsqldb.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.hsqldb.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.hsqldb.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.import_config.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.import_config.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.import_config.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.import_config.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.import_config.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.import_config.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.import_config.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.import_config.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.import_config.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.import_config.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.import_config.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.import_config.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.import_config.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.informix.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.informix.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.informix.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.informix.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.informix.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.informix.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.informix.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.informix.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.informix.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.informix.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.informix.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.informix.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.informix.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.informix.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.informix.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.informix.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.informix.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.informix.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.informix.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.informix.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.informix.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.informix.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.informix.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.informix.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.mssql.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mssql.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.mssql.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mssql.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.mssql.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mssql.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.mssql.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mssql.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.mssql.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mssql.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.mssql.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mssql.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.mssql.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_it.properties b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_it.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_it.properties diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/OSGI-INF/l10n/bundle_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_it.properties b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_it.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_it.properties diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.mysql.nls/src/org/jkiss/dbeaver/ext/mysql/MySQLResources_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.netezza.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.netezza.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.netezza.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.netezza.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.netezza.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.netezza.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.netezza.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.netezza.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.netezza.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.netezza.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.netezza.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.netezza.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.netezza.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_it.properties b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_it.properties rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_it.properties diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/OSGI-INF/l10n/bundle_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_it.properties b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_it.properties rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_it.properties diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.oracle.nls/src/org/jkiss/dbeaver/ext/oracle/OracleResources_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.phoenix.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.phoenix.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.phoenix.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.phoenix.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.phoenix.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.phoenix.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.phoenix.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.phoenix.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.phoenix.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.phoenix.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.phoenix.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.phoenix.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.postgresql.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.postgresql.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.postgresql.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.postgresql.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.postgresql.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.postgresql.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.postgresql.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.postgresql.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.postgresql.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.postgresql.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.postgresql.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.postgresql.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.sample.database.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sample.database.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.sample.database.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sample.database.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.sample.database.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sample.database.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.sample.database.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sample.database.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.sample.database.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sample.database.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.sample.database.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sample.database.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.sqlite.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sqlite.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.sqlite.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sqlite.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.sqlite.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sqlite.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.sqlite.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sqlite.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/OSGI-INF/l10n/bundle_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.sqlite.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sqlite.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.sqlite.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.sqlite.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.teradata.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.teradata.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.teradata.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.teradata.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.teradata.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.teradata.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.teradata.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.teradata.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.teradata.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.teradata.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.teradata.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.teradata.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.teradata.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.locks.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.locks.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.locks.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.locks.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.locks.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.locks.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.svg.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.svg.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.svg.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.svg.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.svg.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.ui.svg.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.vertica.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.vertica.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.vertica.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.vertica.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.vertica.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.vertica.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.vertica.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.vertica.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ext.vertica.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.vertica.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.vertica.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.vertica.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.vertica.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.ext.wmi.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.wmi.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ext.wmi.nls/.project b/nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.wmi.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ext.wmi.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.wmi.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ext.wmi.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.wmi.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/OSGI-INF/l10n/bundle_zh.properties diff --git a/bundles/org.jkiss.dbeaver.ext.wmi.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.wmi.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ext.wmi.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ext.wmi.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ext.wmi.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.model.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.model.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.model.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.model.nls/.project b/nls/bundles/org.jkiss.dbeaver.model.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/.project rename to nls/bundles/org.jkiss.dbeaver.model.nls/.project diff --git a/bundles/org.jkiss.dbeaver.model.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.model.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.model.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_zh.properties b/nls/bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_zh.properties similarity index 98% rename from bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_zh.properties rename to nls/bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_zh.properties index 9f0ef56560..be1b75e82f 100644 --- a/bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_zh.properties +++ b/nls/bundles/org.jkiss.dbeaver.model.nls/OSGI-INF/l10n/bundle_zh.properties @@ -1,77 +1,77 @@ -# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) - -Bundle-Name = DBeaver Model - -Bundle-Vendor = JKISS - -extension-point.org.jkiss.dbeaver.application.name = DBeaver \u5E94\u7528\u7A0B\u5E8F - -meta.org.jkiss.dbeaver.model.DBPNamedObject.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.data.DBDValueLocator.entity.name = \u8868 -meta.org.jkiss.dbeaver.model.data.DBDValueLocator.uniqueKey.name = \u952E -meta.org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.autoGenerated.description = \u81EA\u52A8\u751F\u6210 (\u81EA\u52A8\u9012\u589E) \u5B57\u6BB5 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.autoGenerated.name = \u81EA\u52A8 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.entityName.name = \u8868\u540D -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.label.description = \u5B57\u6BB5\u6807\u7B7E\uFF08\u5982\u679C\u5728SQL\u67E5\u8BE2\u4E2D\u91CD\u5B9A\u4E49\u4E86\u540D\u79F0\u4F1A\u968F\u4E4B\u53D8\u5316\uFF09 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.label.name = \u6807\u7B7E -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.maxLength.name = \u6700\u5927\u957F\u5EA6 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.name.description = \u6E90\u5B57\u6BB5\u540D\u79F0 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.ordinalPosition.description = \u5B57\u6BB5\u987A\u5E8F\u4F4D\u7F6E -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.ordinalPosition.name = # -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.precision.name = \u7CBE\u5EA6 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.required.name = \u975E\u7A7A -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.scale.name = \u6807\u5EA6 -meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.typeName.name = \u7C7B\u578B -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTable.name.name = \u8868\u540D -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.defaultValue.name = \u7F3A\u7701 -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.maxLength.description = \u6309\u5B57\u8282\u8BA1\u7684\u6570\u636E\u7C7B\u578B\u957F\u5EA6. \u5BF9\u4E8E\u6570\u503C\u7C7B\u578B\u5B83\u4E0E\u6570\u636E\u7CBE\u5EA6\uFF08\u6700\u5927\u4F4D\u6570\uFF09\u76F8\u540C\u3002 -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.maxLength.name = \u957F\u5EA6 -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.name.name = \u5B57\u6BB5\u540D -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.required.name = \u975E\u7A7A -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.typeName.name = \u6570\u636E\u7C7B\u578B -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableConstraint.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableForeignKey.deleteRule.name = On Delete -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableForeignKey.referencedConstraint.name = \u4F9D\u8D56\u5BF9\u8C61 -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableForeignKey.referencedTable.name = \u4F9D\u8D56\u8868 -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableForeignKey.updateRule.name = On Update -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableIndex.indexType.name = \u7D22\u5F15\u7C7B\u578B -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableIndex.name.name = \u7D22\u5F15\u540D -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableIndex.table.name = \u8868 -meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableObject.table.name = \u8868 -meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.autoGenerated.name = \u751F\u6210\u7684 -meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.entityName.name = \u5B9E\u4F53 -meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.label.name = \u6807\u7B7E -meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.ordinalPosition.name = # -meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.typeName.name = \u7C7B\u578B -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.autoGenerated.name = \u81EA\u52A8\u751F\u6210\u7684 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.maxLength.description = \u6700\u5927\u5B57\u6BB5\u957F\u5EA6 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.maxLength.name = \u957F\u5EA6 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.name.name = \u5B57\u6BB5\u540D -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.ordinalPosition.name = # -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.precision.name = \u7CBE\u5EA6 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.required.name = \u975E\u7A7A -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.scale.description = \u6570\u503C\u6570\u636E\u7C7B\u578B\u7684\u6807\u5EA6\uFF08\u5C0F\u6570\u4F4D\u6570\u7684\u6700\u5927\u503C\uFF09 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.scale.name = \u6807\u5EA6 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.typeName.name = \u6570\u636E\u7C7B\u578B -meta.org.jkiss.dbeaver.model.impl.struct.AbstractProcedure.description.name = \u5B58\u50A8\u8FC7\u7A0B\u63CF\u8FF0 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractProcedure.name.name = \u5B58\u50A8\u8FC7\u7A0B\u540D\u79F0 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractTable.name.name = \u8868\u540D\u79F0 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractTableConstraint.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractTableConstraint.table.name = \u6240\u6709\u8005 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractTableConstraint.type.name = \u7C7B\u578B -meta.org.jkiss.dbeaver.model.impl.struct.AbstractTrigger.actionTiming.name = Timing -meta.org.jkiss.dbeaver.model.impl.struct.AbstractTrigger.description.name = \u89E6\u53D1\u5668\u63CF\u8FF0 -meta.org.jkiss.dbeaver.model.impl.struct.AbstractTrigger.manipulationType.name = \u7C7B\u578B -meta.org.jkiss.dbeaver.model.impl.struct.AbstractTrigger.name.name = \u89E6\u53D1\u5668\u540D\u79F0 -meta.org.jkiss.dbeaver.model.navigator.DBNDatabaseFolder.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.navigator.DBNDatabaseObject.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.navigator.DBNLocalFolder.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.navigator.DBNProjectDatabases.name.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.navigator.DBNResource.nodeName.name = \u540D\u79F0 -meta.org.jkiss.dbeaver.model.navigator.DBNResource.resourceLastModified.name = \u4E0A\u6B21\u4FEE\u6539\u7684 -meta.org.jkiss.dbeaver.model.navigator.DBNResource.resourceLocation.name = \u4F4D\u7F6E -meta.org.jkiss.dbeaver.model.navigator.DBNResource.resourcePath.name = \u8DEF\u5F84 -meta.org.jkiss.dbeaver.model.navigator.DBNResource.resourceSize.name = \u5927\u5C0F -meta.org.jkiss.dbeaver.model.navigator.DBNRoot.name.name = \u540D\u79F0 +# Copyright (C) 2017 Liu, Yuanyuan (liuyuanyuan@highgo.com) + +Bundle-Name = DBeaver Model + +Bundle-Vendor = JKISS + +extension-point.org.jkiss.dbeaver.application.name = DBeaver \u5E94\u7528\u7A0B\u5E8F + +meta.org.jkiss.dbeaver.model.DBPNamedObject.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.data.DBDValueLocator.entity.name = \u8868 +meta.org.jkiss.dbeaver.model.data.DBDValueLocator.uniqueKey.name = \u952E +meta.org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.autoGenerated.description = \u81EA\u52A8\u751F\u6210 (\u81EA\u52A8\u9012\u589E) \u5B57\u6BB5 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.autoGenerated.name = \u81EA\u52A8 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.entityName.name = \u8868\u540D +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.label.description = \u5B57\u6BB5\u6807\u7B7E\uFF08\u5982\u679C\u5728SQL\u67E5\u8BE2\u4E2D\u91CD\u5B9A\u4E49\u4E86\u540D\u79F0\u4F1A\u968F\u4E4B\u53D8\u5316\uFF09 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.label.name = \u6807\u7B7E +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.maxLength.name = \u6700\u5927\u957F\u5EA6 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.name.description = \u6E90\u5B57\u6BB5\u540D\u79F0 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.ordinalPosition.description = \u5B57\u6BB5\u987A\u5E8F\u4F4D\u7F6E +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.ordinalPosition.name = # +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.precision.name = \u7CBE\u5EA6 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.required.name = \u975E\u7A7A +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.scale.name = \u6807\u5EA6 +meta.org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCColumnMetaData.typeName.name = \u7C7B\u578B +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTable.name.name = \u8868\u540D +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.defaultValue.name = \u7F3A\u7701 +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.maxLength.description = \u6309\u5B57\u8282\u8BA1\u7684\u6570\u636E\u7C7B\u578B\u957F\u5EA6. \u5BF9\u4E8E\u6570\u503C\u7C7B\u578B\u5B83\u4E0E\u6570\u636E\u7CBE\u5EA6\uFF08\u6700\u5927\u4F4D\u6570\uFF09\u76F8\u540C\u3002 +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.maxLength.name = \u957F\u5EA6 +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.name.name = \u5B57\u6BB5\u540D +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.required.name = \u975E\u7A7A +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableColumn.typeName.name = \u6570\u636E\u7C7B\u578B +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableConstraint.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableForeignKey.deleteRule.name = On Delete +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableForeignKey.referencedConstraint.name = \u4F9D\u8D56\u5BF9\u8C61 +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableForeignKey.referencedTable.name = \u4F9D\u8D56\u8868 +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableForeignKey.updateRule.name = On Update +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableIndex.indexType.name = \u7D22\u5F15\u7C7B\u578B +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableIndex.name.name = \u7D22\u5F15\u540D +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableIndex.table.name = \u8868 +meta.org.jkiss.dbeaver.model.impl.jdbc.struct.JDBCTableObject.table.name = \u8868 +meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.autoGenerated.name = \u751F\u6210\u7684 +meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.entityName.name = \u5B9E\u4F53 +meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.label.name = \u6807\u7B7E +meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.ordinalPosition.name = # +meta.org.jkiss.dbeaver.model.impl.local.LocalResultSetColumn.typeName.name = \u7C7B\u578B +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.autoGenerated.name = \u81EA\u52A8\u751F\u6210\u7684 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.maxLength.description = \u6700\u5927\u5B57\u6BB5\u957F\u5EA6 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.maxLength.name = \u957F\u5EA6 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.name.name = \u5B57\u6BB5\u540D +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.ordinalPosition.name = # +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.precision.name = \u7CBE\u5EA6 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.required.name = \u975E\u7A7A +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.scale.description = \u6570\u503C\u6570\u636E\u7C7B\u578B\u7684\u6807\u5EA6\uFF08\u5C0F\u6570\u4F4D\u6570\u7684\u6700\u5927\u503C\uFF09 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.scale.name = \u6807\u5EA6 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractAttribute.typeName.name = \u6570\u636E\u7C7B\u578B +meta.org.jkiss.dbeaver.model.impl.struct.AbstractProcedure.description.name = \u5B58\u50A8\u8FC7\u7A0B\u63CF\u8FF0 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractProcedure.name.name = \u5B58\u50A8\u8FC7\u7A0B\u540D\u79F0 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractTable.name.name = \u8868\u540D\u79F0 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractTableConstraint.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractTableConstraint.table.name = \u6240\u6709\u8005 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractTableConstraint.type.name = \u7C7B\u578B +meta.org.jkiss.dbeaver.model.impl.struct.AbstractTrigger.actionTiming.name = Timing +meta.org.jkiss.dbeaver.model.impl.struct.AbstractTrigger.description.name = \u89E6\u53D1\u5668\u63CF\u8FF0 +meta.org.jkiss.dbeaver.model.impl.struct.AbstractTrigger.manipulationType.name = \u7C7B\u578B +meta.org.jkiss.dbeaver.model.impl.struct.AbstractTrigger.name.name = \u89E6\u53D1\u5668\u540D\u79F0 +meta.org.jkiss.dbeaver.model.navigator.DBNDatabaseFolder.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.navigator.DBNDatabaseObject.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.navigator.DBNLocalFolder.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.navigator.DBNProjectDatabases.name.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.navigator.DBNResource.nodeName.name = \u540D\u79F0 +meta.org.jkiss.dbeaver.model.navigator.DBNResource.resourceLastModified.name = \u4E0A\u6B21\u4FEE\u6539\u7684 +meta.org.jkiss.dbeaver.model.navigator.DBNResource.resourceLocation.name = \u4F4D\u7F6E +meta.org.jkiss.dbeaver.model.navigator.DBNResource.resourcePath.name = \u8DEF\u5F84 +meta.org.jkiss.dbeaver.model.navigator.DBNResource.resourceSize.name = \u5927\u5C0F +meta.org.jkiss.dbeaver.model.navigator.DBNRoot.name.name = \u540D\u79F0 diff --git a/bundles/org.jkiss.dbeaver.model.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.model.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.model.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.model.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.model.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.model.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_it.properties b/nls/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_it.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_it.properties rename to nls/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_it.properties diff --git a/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_ru.properties b/nls/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_ru.properties rename to nls/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_ru.properties diff --git a/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_zh.properties b/nls/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_zh.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_zh.properties rename to nls/bundles/org.jkiss.dbeaver.model.nls/src/org/jkiss/dbeaver/model/messages/ModelResources_zh.properties diff --git a/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.runtime.ide.core.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/.project b/nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.runtime.ide.core.nls/.project rename to nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/.project diff --git a/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.runtime.ide.core.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.runtime.ide.core.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.runtime.ide.core.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.runtime.ide.core.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/pom.xml diff --git a/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/src/org/jkiss/dbeaver/runtime/internal/ide/core/ide_core_messages_ru.properties b/nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/src/org/jkiss/dbeaver/runtime/internal/ide/core/ide_core_messages_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.runtime.ide.core.nls/src/org/jkiss/dbeaver/runtime/internal/ide/core/ide_core_messages_ru.properties rename to nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls/src/org/jkiss/dbeaver/runtime/internal/ide/core/ide_core_messages_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ui.nls/.classpath b/nls/bundles/org.jkiss.dbeaver.ui.nls/.classpath similarity index 100% rename from bundles/org.jkiss.dbeaver.ui.nls/.classpath rename to nls/bundles/org.jkiss.dbeaver.ui.nls/.classpath diff --git a/bundles/org.jkiss.dbeaver.ui.nls/.project b/nls/bundles/org.jkiss.dbeaver.ui.nls/.project similarity index 100% rename from bundles/org.jkiss.dbeaver.ui.nls/.project rename to nls/bundles/org.jkiss.dbeaver.ui.nls/.project diff --git a/bundles/org.jkiss.dbeaver.ui.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.dbeaver.ui.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.dbeaver.ui.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.dbeaver.ui.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.dbeaver.ui.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.dbeaver.ui.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ui.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.dbeaver.ui.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.dbeaver.ui.nls/build.properties b/nls/bundles/org.jkiss.dbeaver.ui.nls/build.properties similarity index 100% rename from bundles/org.jkiss.dbeaver.ui.nls/build.properties rename to nls/bundles/org.jkiss.dbeaver.ui.nls/build.properties diff --git a/bundles/org.jkiss.dbeaver.ui.nls/pom.xml b/nls/bundles/org.jkiss.dbeaver.ui.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.dbeaver.ui.nls/pom.xml rename to nls/bundles/org.jkiss.dbeaver.ui.nls/pom.xml diff --git a/bundles/org.jkiss.utils.nls/.classpath b/nls/bundles/org.jkiss.utils.nls/.classpath similarity index 100% rename from bundles/org.jkiss.utils.nls/.classpath rename to nls/bundles/org.jkiss.utils.nls/.classpath diff --git a/bundles/org.jkiss.utils.nls/.project b/nls/bundles/org.jkiss.utils.nls/.project similarity index 100% rename from bundles/org.jkiss.utils.nls/.project rename to nls/bundles/org.jkiss.utils.nls/.project diff --git a/bundles/org.jkiss.utils.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.utils.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.utils.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.utils.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.utils.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.utils.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.utils.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.utils.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.utils.nls/build.properties b/nls/bundles/org.jkiss.utils.nls/build.properties similarity index 100% rename from bundles/org.jkiss.utils.nls/build.properties rename to nls/bundles/org.jkiss.utils.nls/build.properties diff --git a/bundles/org.jkiss.utils.nls/pom.xml b/nls/bundles/org.jkiss.utils.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.utils.nls/pom.xml rename to nls/bundles/org.jkiss.utils.nls/pom.xml diff --git a/bundles/org.jkiss.wmi.nls/.classpath b/nls/bundles/org.jkiss.wmi.nls/.classpath similarity index 100% rename from bundles/org.jkiss.wmi.nls/.classpath rename to nls/bundles/org.jkiss.wmi.nls/.classpath diff --git a/bundles/org.jkiss.wmi.nls/.project b/nls/bundles/org.jkiss.wmi.nls/.project similarity index 100% rename from bundles/org.jkiss.wmi.nls/.project rename to nls/bundles/org.jkiss.wmi.nls/.project diff --git a/bundles/org.jkiss.wmi.nls/META-INF/MANIFEST.MF b/nls/bundles/org.jkiss.wmi.nls/META-INF/MANIFEST.MF similarity index 100% rename from bundles/org.jkiss.wmi.nls/META-INF/MANIFEST.MF rename to nls/bundles/org.jkiss.wmi.nls/META-INF/MANIFEST.MF diff --git a/bundles/org.jkiss.wmi.nls/OSGI-INF/l10n/bundle_ru.properties b/nls/bundles/org.jkiss.wmi.nls/OSGI-INF/l10n/bundle_ru.properties similarity index 100% rename from bundles/org.jkiss.wmi.nls/OSGI-INF/l10n/bundle_ru.properties rename to nls/bundles/org.jkiss.wmi.nls/OSGI-INF/l10n/bundle_ru.properties diff --git a/bundles/org.jkiss.wmi.nls/build.properties b/nls/bundles/org.jkiss.wmi.nls/build.properties similarity index 100% rename from bundles/org.jkiss.wmi.nls/build.properties rename to nls/bundles/org.jkiss.wmi.nls/build.properties diff --git a/bundles/org.jkiss.wmi.nls/pom.xml b/nls/bundles/org.jkiss.wmi.nls/pom.xml similarity index 100% rename from bundles/org.jkiss.wmi.nls/pom.xml rename to nls/bundles/org.jkiss.wmi.nls/pom.xml diff --git a/features/org.jkiss.dbeaver.ce.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ce.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ce.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ce.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ce.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ce.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ce.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ce.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ce.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ce.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ce.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ce.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ce.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ce.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ce.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ce.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ce.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ce.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ce.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ce.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ext.db2.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ext.db2.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ext.db2.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.db2.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ext.db2.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.db2.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ext.db2.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.db2.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ext.db2.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.db2.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ext.db2.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ext.exasol.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ext.exasol.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ext.exasol.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.exasol.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ext.exasol.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.exasol.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ext.generic.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ext.generic.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ext.generic.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.generic.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ext.generic.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.generic.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ext.generic.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.generic.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ext.generic.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.generic.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ext.generic.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ext.mysql.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ext.mysql.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ext.mysql.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.mysql.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ext.mysql.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.mysql.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ext.office.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ext.office.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ext.office.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ext.office.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ext.office.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ext.office.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.office.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ext.office.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ext.office.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ext.office.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.office.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ext.office.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ext.office.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ext.office.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.office.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ext.office.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ext.office.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ext.office.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.office.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ext.office.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ext.oracle.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ext.oracle.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ext.oracle.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.oracle.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ext.oracle.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.oracle.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ext.wmi.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ext.wmi.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ext.wmi.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.wmi.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ext.wmi.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ext.wmi.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.ide.nls.feature/.project b/nls/features/org.jkiss.dbeaver.ide.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.ide.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.ide.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.ide.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.ide.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.ide.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.ide.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.ide.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.ide.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.ide.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.ide.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.ide.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.ide.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.ide.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.ide.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.ide.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.ide.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.ide.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.ide.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.rcp.nls.feature/.project b/nls/features/org.jkiss.dbeaver.rcp.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.rcp.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.rcp.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.rcp.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.rcp.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.rcp.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.rcp.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.rcp.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.rcp.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.rcp.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.rcp.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.rcp.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.rcp.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.rcp.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.rcp.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.rcp.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.rcp.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.rcp.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.rcp.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.runtime.nls.feature/.project b/nls/features/org.jkiss.dbeaver.runtime.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.runtime.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.runtime.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.runtime.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.runtime.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.runtime.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.runtime.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.runtime.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.runtime.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.runtime.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.runtime.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.runtime.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.runtime.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.runtime.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.runtime.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.runtime.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.runtime.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.runtime.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.runtime.nls.feature/pom.xml diff --git a/features/org.jkiss.dbeaver.standalone.nls.feature/.project b/nls/features/org.jkiss.dbeaver.standalone.nls.feature/.project similarity index 100% rename from features/org.jkiss.dbeaver.standalone.nls.feature/.project rename to nls/features/org.jkiss.dbeaver.standalone.nls.feature/.project diff --git a/features/org.jkiss.dbeaver.standalone.nls.feature/build.properties b/nls/features/org.jkiss.dbeaver.standalone.nls.feature/build.properties similarity index 100% rename from features/org.jkiss.dbeaver.standalone.nls.feature/build.properties rename to nls/features/org.jkiss.dbeaver.standalone.nls.feature/build.properties diff --git a/features/org.jkiss.dbeaver.standalone.nls.feature/feature.properties b/nls/features/org.jkiss.dbeaver.standalone.nls.feature/feature.properties similarity index 100% rename from features/org.jkiss.dbeaver.standalone.nls.feature/feature.properties rename to nls/features/org.jkiss.dbeaver.standalone.nls.feature/feature.properties diff --git a/features/org.jkiss.dbeaver.standalone.nls.feature/feature.xml b/nls/features/org.jkiss.dbeaver.standalone.nls.feature/feature.xml similarity index 100% rename from features/org.jkiss.dbeaver.standalone.nls.feature/feature.xml rename to nls/features/org.jkiss.dbeaver.standalone.nls.feature/feature.xml diff --git a/features/org.jkiss.dbeaver.standalone.nls.feature/pom.xml b/nls/features/org.jkiss.dbeaver.standalone.nls.feature/pom.xml similarity index 100% rename from features/org.jkiss.dbeaver.standalone.nls.feature/pom.xml rename to nls/features/org.jkiss.dbeaver.standalone.nls.feature/pom.xml diff --git a/pom.xml b/pom.xml index 639140469c..0e45641b37 100644 --- a/pom.xml +++ b/pom.xml @@ -20,8 +20,8 @@ - modules/org.jkiss.utils - modules/org.jkiss.wmi + bundles/org.jkiss.utils + bundles/org.jkiss.wmi plugins/org.jkiss.dbeaver.runtime.ide.core plugins/org.jkiss.dbeaver.core @@ -70,75 +70,69 @@ features/org.jkiss.dbeaver.ce.feature - features/org.jkiss.dbeaver.rcp.nls.feature + nls/features/org.jkiss.dbeaver.rcp.nls.feature - bundles/org.jkiss.utils.nls - bundles/org.jkiss.dbeaver.model.nls - bundles/org.jkiss.dbeaver.runtime.ide.core.nls - bundles/org.jkiss.dbeaver.core.nls - bundles/org.jkiss.dbeaver.ui.nls - bundles/org.jkiss.dbeaver.ext.erd.nls - bundles/org.jkiss.dbeaver.ext.import_config.nls - bundles/org.jkiss.dbeaver.ext.ui.locks.nls - features/org.jkiss.dbeaver.runtime.nls.feature - - - bundles/org.jkiss.dbeaver.ext.generic.nls - bundles/org.jkiss.dbeaver.ext.derby.nls - bundles/org.jkiss.dbeaver.ext.firebird.nls - bundles/org.jkiss.dbeaver.ext.h2.nls - bundles/org.jkiss.dbeaver.ext.hsqldb.nls - bundles/org.jkiss.dbeaver.ext.informix.nls - bundles/org.jkiss.dbeaver.ext.mssql.nls - bundles/org.jkiss.dbeaver.ext.netezza.nls - bundles/org.jkiss.dbeaver.ext.phoenix.nls - bundles/org.jkiss.dbeaver.ext.postgresql.nls - bundles/org.jkiss.dbeaver.ext.sqlite.nls - bundles/org.jkiss.dbeaver.ext.teradata.nls - bundles/org.jkiss.dbeaver.ext.vertica.nls - features/org.jkiss.dbeaver.ext.generic.nls.feature - - - bundles/org.jkiss.dbeaver.ext.db2.nls - features/org.jkiss.dbeaver.ext.db2.nls.feature - - - bundles/org.jkiss.dbeaver.ext.exasol.nls - features/org.jkiss.dbeaver.ext.exasol.nls.feature + nls/bundles/org.jkiss.utils.nls + nls/bundles/org.jkiss.dbeaver.model.nls + nls/bundles/org.jkiss.dbeaver.runtime.ide.core.nls + nls/bundles/org.jkiss.dbeaver.core.nls + nls/bundles/org.jkiss.dbeaver.ui.nls + nls/bundles/org.jkiss.dbeaver.ext.erd.nls + nls/bundles/org.jkiss.dbeaver.ext.import_config.nls + nls/bundles/org.jkiss.dbeaver.ext.ui.locks.nls + nls/features/org.jkiss.dbeaver.runtime.nls.feature - - bundles/org.jkiss.dbeaver.ext.mysql.nls - features/org.jkiss.dbeaver.ext.mysql.nls.feature - - - bundles/org.jkiss.dbeaver.ext.oracle.nls - features/org.jkiss.dbeaver.ext.oracle.nls.feature + + nls/bundles/org.jkiss.dbeaver.ext.generic.nls + nls/bundles/org.jkiss.dbeaver.ext.derby.nls + nls/bundles/org.jkiss.dbeaver.ext.firebird.nls + nls/bundles/org.jkiss.dbeaver.ext.h2.nls + nls/bundles/org.jkiss.dbeaver.ext.hsqldb.nls + nls/bundles/org.jkiss.dbeaver.ext.informix.nls + nls/bundles/org.jkiss.dbeaver.ext.mssql.nls + nls/bundles/org.jkiss.dbeaver.ext.netezza.nls + nls/bundles/org.jkiss.dbeaver.ext.phoenix.nls + nls/bundles/org.jkiss.dbeaver.ext.postgresql.nls + nls/bundles/org.jkiss.dbeaver.ext.sqlite.nls + nls/bundles/org.jkiss.dbeaver.ext.teradata.nls + nls/bundles/org.jkiss.dbeaver.ext.vertica.nls + nls/features/org.jkiss.dbeaver.ext.generic.nls.feature - - bundles/org.jkiss.wmi.nls - bundles/org.jkiss.dbeaver.ext.wmi.nls - features/org.jkiss.dbeaver.ext.wmi.nls.feature + + nls/bundles/org.jkiss.dbeaver.ext.db2.nls + nls/features/org.jkiss.dbeaver.ext.db2.nls.feature + nls/bundles/org.jkiss.dbeaver.ext.exasol.nls + nls/features/org.jkiss.dbeaver.ext.exasol.nls.feature + nls/bundles/org.jkiss.dbeaver.ext.mysql.nls + nls/features/org.jkiss.dbeaver.ext.mysql.nls.feature + nls/bundles/org.jkiss.dbeaver.ext.oracle.nls + nls/features/org.jkiss.dbeaver.ext.oracle.nls.feature + nls/bundles/org.jkiss.wmi.nls + nls/bundles/org.jkiss.dbeaver.ext.wmi.nls + nls/features/org.jkiss.dbeaver.ext.wmi.nls.feature - bundles/org.jkiss.dbeaver.ext.sample.database.nls - bundles/org.jkiss.dbeaver.core.application.nls - features/org.jkiss.dbeaver.standalone.nls.feature + nls/bundles/org.jkiss.dbeaver.ext.sample.database.nls + nls/bundles/org.jkiss.dbeaver.core.application.nls + nls/features/org.jkiss.dbeaver.standalone.nls.feature - features/org.jkiss.dbeaver.ce.nls.feature + nls/features/org.jkiss.dbeaver.ce.nls.feature - bundles/org.jkiss.dbeaver.core.eclipse.nls - features/org.jkiss.dbeaver.ide.nls.feature + nls/bundles/org.jkiss.dbeaver.core.eclipse.nls + nls/features/org.jkiss.dbeaver.ide.nls.feature - bundles/org.jkiss.dbeaver.data.office.nls - features/org.jkiss.dbeaver.ext.office.nls.feature + nls/bundles/org.jkiss.dbeaver.data.office.nls + nls/features/org.jkiss.dbeaver.ext.office.nls.feature - bundles/org.jkiss.dbeaver.ext.ui.svg.nls - features/org.jkiss.dbeaver.ext.ui.svg.nls.feature + nls/bundles/org.jkiss.dbeaver.ext.ui.svg.nls + nls/features/org.jkiss.dbeaver.ext.ui.svg.nls.feature + + product/standalone -- GitLab