Первый коммит

This commit is contained in:
Igor I
2023-11-06 13:50:17 +06:00
commit 5fa2fe0d57
295 changed files with 65554 additions and 0 deletions

41
.classpath Normal file
View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="test" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

0
.metadata/.lock Normal file
View File

44
.metadata/.log Normal file
View File

@ -0,0 +1,44 @@
!SESSION 2023-11-03 14:21:07.017 -----------------------------------------------
eclipse.buildId=4.29.0.20230907-1200
java.version=17.0.8.1
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ru_RU
Framework arguments: -product org.eclipse.epp.package.jee.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
!ENTRY org.eclipse.emf.ecore 2 0 2023-11-03 14:21:30.834
!MESSAGE Both 'org.eclipse.jst.j2ee.core' and 'org.eclipse.jst.j2ee.core' register a package for 'application.xmi'
!ENTRY ch.qos.logback.classic 1 0 2023-11-03 14:21:31.045
!MESSAGE Activated before the state location was initialized. Retry after the state location is initialized.
!ENTRY ch.qos.logback.classic 1 0 2023-11-03 14:22:08.054
!MESSAGE Logback config file: O:\projects\Workspace_Java\CCALM_TOMCAT\.metadata\.plugins\org.eclipse.m2e.logback\logback.2.2.0.20230625-0847.xml
!ENTRY org.eclipse.jface 2 0 2023-11-03 14:22:10.937
!MESSAGE Keybinding conflicts occurred. They may interfere with normal accelerator operation.
!SUBENTRY 1 org.eclipse.jface 2 0 2023-11-03 14:22:10.937
!MESSAGE A conflict occurred for CTRL+SHIFT+T:
Binding(CTRL+SHIFT+T,
ParameterizedCommand(Command(org.eclipse.jdt.ui.navigate.open.type,Open Type,
Open a type in a Java editor,
Category(org.eclipse.ui.category.navigate,Navigate,null,true),
WorkbenchHandlerServiceHandler("org.eclipse.jdt.ui.navigate.open.type"),
,,true),null),
org.eclipse.ui.defaultAcceleratorConfiguration,
org.eclipse.ui.contexts.window,,,system)
Binding(CTRL+SHIFT+T,
ParameterizedCommand(Command(org.eclipse.lsp4e.symbolinworkspace,Go to Symbol in Workspace,
,
Category(org.eclipse.lsp4e.category,Language Servers,null,true),
WorkbenchHandlerServiceHandler("org.eclipse.lsp4e.symbolinworkspace"),
,,true),null),
org.eclipse.ui.defaultAcceleratorConfiguration,
org.eclipse.ui.contexts.window,,,system)
!ENTRY org.eclipse.egit.ui 2 0 2023-11-03 14:22:15.356
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Users\ivanov.i'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

Binary file not shown.

View File

@ -0,0 +1,3 @@
eclipse.preferences.version=1
encoding=UTF-8
version=1

View File

@ -0,0 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.internal.ui.navigator.layout=2
org.eclipse.jdt.internal.ui.navigator.librariesnode=true
org.eclipse.jdt.ui.formatterprofiles.version=23
spelling_locale_initialized=true
typefilter_migrated_2=true
useAnnotationsPrefPage=true
useQuickDiffPrefPage=true

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.jsch.core.hasChangedDefaultWin32SshHome=true

View File

@ -0,0 +1,2 @@
areThereWebServices=false
eclipse.preferences.version=1

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.m2e.discovery.pref.projects=

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
mylyn.attention.migrated=true

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true

View File

@ -0,0 +1,4 @@
eclipse.preferences.version=1
migrated.task.repositories.secure.store=true
org.eclipse.mylyn.tasks.ui.filters.nonmatching=true
org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true

View File

@ -0,0 +1,2 @@
browsers=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<web-browsers current\="0">\r\n<system/>\r\n<external location\="C\:\\Program Files\\Internet Explorer\\iexplore.exe" name\="%browserInternetExplorer"/>\r\n<external location\="C\:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe" name\="Microsoft Edge"/>\r\n<external location\="C\:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" name\="Chrome"/>\r\n</web-browsers>
eclipse.preferences.version=1

View File

@ -0,0 +1,4 @@
eclipse.preferences.version=1
platformState=1698999668405
quickStart=false
tipsAndTricks=true

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.ui.navigator.ProjectExplorer.filterActivation=\:org.eclipse.jdt.java.ui.filters.HidePackageDeclaration\:org.eclipse.jdt.java.ui.filters.HideOutputFolder\:org.eclipse.buildship.ui.navigator.filter.gradle.subProject\:org.eclipse.ui.navigator.resources.nested.HideTopLevelProjectIfNested\:org.eclipse.buildship.ui.navigator.filter.gradle.buildfolder\:org.eclipse.jdt.java.ui.filters.HideEmptyInnerPackages\:org.eclipse.jst.j2ee.navigator.ui.filters.jetemitters\:org.eclipse.jdt.java.ui.filters.HideInnerClassFiles\:org.eclipse.ui.navigator.resources.filters.startsWithDot\:org.eclipse.jdt.java.ui.filters.HideEmptyLibraryContainers\:org.eclipse.jdt.java.ui.filters.HideImportDeclaration\:org.eclipse.jdt.java.ui.filters.HideSyntheticMembers\:org.eclipse.mylyn.tasks.ui.navigator.filters.tasks\:org.eclipse.ui.navigator.resources.nested.HideFolderWhenProjectIsShownAsNested\:

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
showIntro=false

View File

@ -0,0 +1,14 @@
//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false
//org.eclipse.ui.commands/state/org.eclipse.wst.xml.views.XPathView.processor.xpathprocessor/org.eclipse.ui.commands.radioState=xpath10
PLUGINS_NOT_ACTIVATED_ON_STARTUP=;org.eclipse.m2e.discovery;
SAVE_AUTOMATICALLY=true
eclipse.preferences.version=1
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_END=41,41,41
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_BG_START=43,44,45
org.eclipse.ui.workbench.ACTIVE_NOFOCUS_TAB_TEXT_COLOR=204,204,204
org.eclipse.ui.workbench.ACTIVE_TAB_BG_END=41,41,41
org.eclipse.ui.workbench.ACTIVE_TAB_BG_START=43,44,45
org.eclipse.ui.workbench.ACTIVE_TAB_TEXT_COLOR=221,221,221
org.eclipse.ui.workbench.INACTIVE_TAB_BG_END=49,53,56
org.eclipse.ui.workbench.INACTIVE_TAB_BG_START=59,64,66
org.eclipse.ui.workbench.INACTIVE_TAB_TEXT_COLOR=187,187,187

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
processedSchemes=,eclipse+command,eclipse+mpc

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>.org.eclipse.egit.core.cmp</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1 @@
java

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<typeInfoHistroy/>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<qualifiedTypeNameHistroy/>

View File

@ -0,0 +1 @@
2023-11-03 14:22:15,281 [Worker-1: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is not available. Remote download required.

View File

@ -0,0 +1,41 @@
<configuration scan="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${org.eclipse.m2e.log.console.threshold:-OFF}</level> <!-- change to DEBUG to mimic '-consolelog' behaviour -->
</filter>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${org.eclipse.m2e.log.dir}/0.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>${org.eclipse.m2e.log.dir}/%i.log</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="EclipseLog" class="org.eclipse.m2e.logback.appender.EclipseLogAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<appender name="MavenConsoleLog" class="org.eclipse.m2e.logback.appender.MavenConsoleAppender">
</appender>
<root level="INFO">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
<appender-ref ref="EclipseLog" />
<appender-ref ref="MavenConsoleLog" />
</root>
</configuration>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<setup:Workspace
xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
name="workspace"/>

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
</section>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<state reopen="false"/>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<workingSetManager>
<workingSet editPageId="org.eclipse.jdt.internal.ui.DynamicSourcesWorkingSet" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1698999731955_0" label="Java Main Sources" name="Java Main Sources"/>
<workingSet editPageId="org.eclipse.jdt.internal.ui.DynamicSourcesWorkingSet" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1698999731962_1" label="Java Test Sources" name="Java Test Sources"/>
<workingSet aggregate="true" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1698999733362_2" label="Window Working Set" name="Aggregate for window 1698999733362"/>
</workingSetManager>

3
.metadata/version.ini Normal file
View File

@ -0,0 +1,3 @@
#Fri Nov 03 14:22:07 ALMT 2023
org.eclipse.core.runtime=2
org.eclipse.platform=4.29.0.v20230903-1000

69
.project Normal file
View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>CCALM_TOMCAT</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.springframework.ide.eclipse.core.springbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.springframework.ide.eclipse.core.springnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
<linkedResources>
<link>
<name>src/main/java/tctable/Point.java</name>
<type>1</type>
<location>O:/projects/Workspace_Android/ASDC/app/src/main/java/tctable/Point.java</location>
</link>
<link>
<name>src/main/java/tctable/TCField.java</name>
<type>1</type>
<location>O:/projects/Workspace_Android/ASDC/app/src/main/java/tctable/TCField.java</location>
</link>
<link>
<name>src/main/java/tctable/TCTable.java</name>
<type>1</type>
<location>O:/projects/Workspace_Android/ASDC/app/src/main/java/tctable/TCTable.java</location>
</link>
<link>
<name>src/main/java/tctable/Tools.java</name>
<type>1</type>
<location>O:/projects/Workspace_Android/ASDC/app/src/main/java/tctable/Tools.java</location>
</link>
</linkedResources>
</projectDescription>

View File

@ -0,0 +1,13 @@
eclipse.preferences.version=1
encoding//src/main/java/messages_az.properties_not_used=UTF-8
encoding//src/main/java/messages_en.properties_not_used=UTF-8
encoding//src/main/java/messages_hy.properties_not_used=UTF-8
encoding//src/main/java/messages_ka.properties_not_used=UTF-8
encoding//src/main/java/messages_kg.properties_not_used=UTF-8
encoding//src/main/java/messages_ps.properties_not_used=UTF-8
encoding//src/main/java/messages_ru.properties_not_used=UTF-8
encoding//src/main/java/messages_tg.properties_not_used=UTF-8
encoding//src/main/java/messages_tk.properties_not_used=UTF-8
encoding//src/main/java/messages_uz.properties_not_used=UTF-8
encoding//src/main/java/not_used=UTF-8
encoding//src/main/webapp/WEB-INF/views/excel.jsp=UTF-8

View File

@ -0,0 +1,16 @@
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.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -0,0 +1,5 @@
XDOCLETBUILDERACTIVE=true
XDOCLETHOME=
XDOCLETUSEGLOBAL=true
XDOCLETVERSION=1.2.1
eclipse.preferences.version=1

View File

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="CCALM-1.0.0-BUILD-SNAPSHOT">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
<property name="java-output-path" value="target/classes"/>
<property name="context-root" value="CCALM"/>
</wb-module>
</project-modules>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="jst.web"/>
<fixed facet="jst.java"/>
<installed facet="jst.java" version="1.8"/>
<installed facet="jst.web" version="3.1"/>
</faceted-project>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.wst.jsdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>

View File

@ -0,0 +1 @@
org.eclipse.wst.jsdt.launching.JRE_CONTAINER

View File

@ -0,0 +1 @@
Global

View File

@ -0,0 +1,6 @@
DELEGATES_PREFERENCE=delegateValidatorListorg.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator\=org.eclipse.wst.wsdl.validation.internal.eclipse.Validator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator\=org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator;
USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.wst.common.componentcore.internal.ModuleCoreValidator;org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidator;org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator;org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.wst.common.componentcore.internal.ModuleCoreValidator;org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidator;org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator;org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
USER_PREFERENCE=overrideGlobalPreferencesfalse
disabled=06target
eclipse.preferences.version=1

View File

@ -0,0 +1,78 @@
#Mon Oct 18 12:37:52 EDT 2010
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.osgi.org/xmlns/blueprint/v1.0.0=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/aop=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/batch=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/beans=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/context=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/faces=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/flex=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/file=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/http=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/httpinvoker=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/ip=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/jdbc=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/jms=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/jmx=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/mail=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/rmi=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/security=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/stream=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/ws=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/integration/xml=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/jdbc=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/jee=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/jms=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/lang=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/mvc=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/osgi=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/osgi-compendium=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/oxm=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/p=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/security=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/task=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/tx=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/util=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/web-services=
//org.springframework.ide.eclipse.beans.core.default.version.http\://www.springframework.org/schema/webflow-config=
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.osgi.org/xmlns/blueprint/v1.0.0=bp
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/aop=aop
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/batch=batch
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/beans=beans
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/context=context
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/faces=faces
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/flex=flex
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration=int
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/file=int-file
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/http=int-http
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/httpinvoker=int-httpinvoker
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/ip=int-ip
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/jdbc=int-jdbc
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/jms=int-jms
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/jmx=int-jmx
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/mail=int-mail
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/rmi=int-rmi
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/security=int-security
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/stream=int-stream
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/ws=int-ws
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/integration/xml=int-xml
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/jdbc=jdbc
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/jee=jee
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/jms=jms
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/lang=lang
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/mvc=mvc
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/osgi=osgi
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/osgi-compendium=osgix
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/oxm=oxm
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/p=p
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/security=sec
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/task=task
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/tx=tx
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/util=util
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/web-services=ws
//org.springframework.ide.eclipse.beans.core.prefix.http\://www.springframework.org/schema/webflow-config=flow
eclipse.preferences.version=1
org.springframework.ide.eclipse.beans.core.default.version.check.classpath=true
org.springframework.ide.eclipse.beans.core.enable.project.preferences=false
org.springframework.ide.eclipse.beans.core.ignoreMissingNamespaceHandler=false
org.springframework.ide.eclipse.beans.core.loadNamespaceHandlerFromClasspath=false

View File

@ -0,0 +1,69 @@
#Tue Apr 20 16:59:06 EDT 2010
eclipse.preferences.version=1
org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true
org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=true
org.springframework.ide.eclipse.core.builders.enable.osgibundleupdater=false
org.springframework.ide.eclipse.core.enable.project.preferences=false
org.springframework.ide.eclipse.core.validator.enable.com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.server.quickfix.manifestvalidator=false
org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false
org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.applicationSymbolicNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.applicationVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleActivationPolicyRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleActivatorRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleManifestVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleSymbolicNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.exportPackageRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.importRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.parsingProblemsRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.requireBundleRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.AvoidDriverManagerDataSource-com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ImportElementsAtTopRulee-com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ParentBeanSpecifiesAbstractClassRule-com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.RefElementRule-com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.TooManyBeansInFileRule-com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UnnecessaryValueElementRule-com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UseBeanInheritance-com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.legacyxmlusage.jndiobjectfactory-com.springsource.sts.bestpractices.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importBundleVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importLibraryVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importPackageVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.requireBundleVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.autowire.autowire-org.springframework.ide.eclipse.beans.core.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.toolAnnotation-org.springframework.ide.eclipse.beans.core.beansvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true
org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true

13
.springBeans Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
<version>1</version>
<pluginVersion><![CDATA[2.5.0.201010141000-RC1]]></pluginVersion>
<configSuffixes>
<configSuffix><![CDATA[xml]]></configSuffix>
</configSuffixes>
<enableImports><![CDATA[true]]></enableImports>
<configs>
</configs>
<configSets>
</configSets>
</beansProjectDescription>

12
GettextDB/settings.ini Normal file
View File

@ -0,0 +1,12 @@
[main]
db_url = jdbc\:postgresql\://10.1.7.74\:5432/pilot
db_user =
db_password =
[path0]
path = O\:\\projects\\Workspace_Java\\CCALM_TOMCAT
check = trt(
extensions = (.*\\.java$)||(.*\\.xml$)||(.*\\.js$)
pattern = [0-9|a-z|A-Z|_]+
type = 1

257
pom.xml Normal file
View File

@ -0,0 +1,257 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>kz.locust</groupId>
<artifactId>CCALM</artifactId>
<name>Locust</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.8</java-version>
<org.springframework-version>5.0.0.RELEASE</org.springframework-version>
<org.aspectj-version>1.8.12</org.aspectj-version>
<org.slf4j-version>1.7.25</org.slf4j-version>
</properties>
<dependencies>
<!--dependency>
<groupId>org.gdal</groupId>
<artifactId>gdal</artifactId>
<version>1.11.2</version>
</dependency-->
<!-- https://mvnrepository.com/artifact/org.gdal/gdal -->
<!--dependency>
<groupId>org.gdal</groupId>
<artifactId>gdal</artifactId>
<version>2.4.0</version>
<scope>system</scope>
<systemPath>C:\Program Files\GDAL\java\gdal.jar</systemPath>
</dependency-->
<!-- https://mvnrepository.com/artifact/org.gdal/gdal -->
<dependency>
<groupId>org.gdal</groupId>
<artifactId>gdal</artifactId>
<version>2.4.0</version>
<scope>system</scope>
<systemPath>O:\projects\_Libs\gdal-2.4.0.jar</systemPath>
</dependency>
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20200518</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/edu.ucar/netcdfAll -->
<!--dependency>
<groupId>edu.ucar</groupId>
<artifactId>netcdfAll</artifactId>
<version>4.6.8</version>
<scope>system</scope>
<systemPath>C:\Users\ivanov.i\.m2\repository\ucar\netcdfAll-4.6.8.jar</systemPath>
</dependency-->
<!-- https://mvnrepository.com/artifact/edu.ucar/netcdfAll -->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>netcdfAll</artifactId>
<version>5.3.1</version>
<scope>system</scope>
<systemPath>O:\projects\_Libs\netcdfAll-5.3.1.jar</systemPath>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload http://www.baeldung.com/spring-file-upload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.13.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.1</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>org.test.int1.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,408 @@
package kz.locust.CCALM;
import java.io.BufferedReader;
import java.io.File;
//import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
//import java.io.OutputStream;
//import java.io.UnsupportedEncodingException;
//import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//import java.util.zip.CRC32;
//import java.util.zip.Checksum;
import javax.servlet.ServletContext;
//import javax.servlet.http.Part;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.springframework.core.io.ClassPathResource;
//import org.apache.commons.io.FileUtils;
//import org.springframework.core.io.FileSystemResource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
//import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.multipart.MultipartFile;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import tools.User;
@Controller
public class AcceptEXCEL implements ServletContextAware {
private ServletContext context;
@Override
public void setServletContext(ServletContext context) {
this.context=context;
}
@RequestMapping(value = "/AcceptCSV", method = { RequestMethod.GET, RequestMethod.POST })
public String acceptCSV(@ModelAttribute User user, Model model,@RequestParam(required=false,name="file") MultipartFile file,@RequestParam(required=false,name="skip",defaultValue = "0") Boolean skip) {
String db_url="";
String db_login="";
String db_password="";
//Load DB configuration from "config.xml"
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain=doc.getDocumentElement();
NodeList nl=nMain.getChildNodes();
for (int i = 0; i <nl.getLength(); i++)
{
if(nl.item(i).getNodeName().equals("db-url"))
db_url=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-login"))
db_login=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-password"))
db_password=nl.item(i).getTextContent();
}
} catch (Exception e) {
e.printStackTrace();
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
} catch (Exception ex) {
}
String sqlData="";
String json="{\"type\": \"FeatureCollection\",\"features\":[";
String table="<table border=\"1\">";
table+="<tr style=\"background-color: #e0e0e0;\"><th>№</th><th>Latitude (Широта)</th><th>Longitude (Долгота)</th><th>Oblast (область)</th><th>District (Район)</th><th>Сельский округ</th><th>Хозяйство или местность</th><th>Вид саранчи</th><th>Фаза</th><th>ЭПВ</th><th>Заселено Га</th><th>Дата</th></tr>";
//row+="<td>"+i+"</td><td>"+locust.lat+"</td><td>"+locust.lon+"</td><td>"+locust.region+" = "+locust.region_id+"</td><td>"+locust.district+" = "+locust.district_id+"</td><td>"+locust.terrain+"</td><td>"+locust.village+"<td>";
if (file!=null && !file.isEmpty()) {
BufferedReader reader;
try {
int i=1; //for testing
reader = new BufferedReader(new InputStreamReader(file.getInputStream(), "UTF-8"));
//reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
if(skip) line = reader.readLine();
while (line != null) {
StringBuffer data=new StringBuffer(line);
Boolean error=false;
Locust locust = new Locust();
try {
String lat=CutBeforeFirst(data,";");
if(lat.equals("46.3104.6")) lat="46.31046";
if(lat.equals("43.21303.")) lat="43.21303";
if(lat.equals("43.26067.")) lat="43.26067";
if(lat.equals("43.20181.")) lat="43.20181";
if(lat.equals("43.20181.")) lat="43.20181";
if(lat.equals("43.74691.")) lat="43.74691";
if(lat.equals("43.41954.")) lat="43.41954";
if(lat.equals("43.78288.")) lat="43.78288";
if(lat.equals("43.26260.")) lat="43.26260";
if(lat.equals("43.79702.")) lat="43.79702";
if(lat.equals("43.64891.")) lat="43.64891";
if(lat.equals("43.64891.")) lat="43.64891";
if(lat.equals("43.42271.")) lat="43.42271";
if(lat.equals("43.64891.")) lat="43.64891";
if(lat.equals("43.89990.")) lat="43.89990";
if(lat.equals("43.96273.")) lat="43.96273";
if(lat.equals("43.26907.")) lat="43.26907";
if(lat.equals("43.26630.")) lat="43.26630";
if(lat.equals("43.50605.")) lat="43.50605";
if(lat.equals("43.74965.")) lat="43.74965";
if(lat.equals("43.20813.")) lat="43.20813";
if(lat.equals("43.23298.")) lat="43.23298";
if(lat.equals("43.74774.")) lat="43.74774";
if(lat.equals("43.77144.")) lat="43.77144";
if(lat.equals("43.58847.")) lat="43.58847";
if(lat.equals("43.58944.")) lat="43.58944";
if(lat.equals("4342755.")) lat="43.42755";
if(lat.equals("43.80416.")) lat="43.80416";
if(lat.equals("43.79536.")) lat="43.79536";
if(lat.equals("50.75 767")) lat="50.75767";
if(lat.equals("50.77 542")) lat="50.77542";
if(lat.equals("50.85 140")) lat="50.85140";
if(lat.equals("50.79 773")) lat="50.79773";
if(lat.equals("50.63 469")) lat="50.63469";
if(lat.equals("51.23 130")) lat="51.23130";
if(lat.equals("51.03 220")) lat="51.03220";
if(lat.equals("51.38 922")) lat="51.38922";
if(lat.equals("51.06.940")) lat="51.06940";
if(lat.equals("51.08 273")) lat="51.08273";
if(lat.equals("50.96 705")) lat="50.96705";
if(lat.equals("51.03 021")) lat="51.03021";
if(lat.equals("51.01 764")) lat="51.01764";
if(lat.equals("50.99 388")) lat="50.99388";
if(lat.equals("50.50 509")) lat="50.50509";
if(lat.equals("43.109.94")) lat="43.10994";
if(lat.equals("50.11.926")) lat="50.11926";
if(lat.equals("50.04.966")) lat="50.04966";
if(lat.equals("49.26.385")) lat="49.26385";
if(lat.equals("49.26.251")) lat="49.26251";
if(lat.equals("49.25.307")) lat="49.25307";
if(lat.equals("44.4930.")) lat="49.25307";
locust.lat=Double.parseDouble(lat);
String lon=CutBeforeFirst(data,";");
if(lon.equals("51.25 560")) lon="51.25560";
if(lon.equals("51.25 099")) lon="51.25099";
if(lon.equals("51.26 378")) lon="51.26378";
if(lon.equals("51.25 235")) lon="51.25235";
if(lon.equals("51.83 107")) lon="51.83107";
if(lon.equals("51.71 702")) lon="51.71702";
if(lon.equals("52.21 390")) lon="52.21390";
if(lon.equals("52.10 873")) lon="52.10873";
if(lon.equals("51.85 606")) lon="51.85606";
if(lon.equals("52.41 085")) lon="52.41085";
if(lon.equals("52.36 125")) lon="52.36125";
if(lon.equals("51. 56 025")) lon="51.56025";
if(lon.equals("51.56 786")) lon="51.56786";
if(lon.equals("51.57 946")) lon="51.57946";
if(lon.equals("51.16 758")) lon="51.16758";
if(lon.equals("85.09.142")) lon="85.09142";
locust.lon=Double.parseDouble(lon);
}catch(Exception ex)
{
error=true;
}
locust.region=CutBeforeFirst(data,";");
//Выбираю ID области
Statement stt = null;
ResultSet rs = null;
try {
if(locust.region.equals("Алматинский")) locust.region="Алматинская";
if(locust.region.equals("Туркестанский")) locust.region="Туркестанская";
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql_query = "select id from main.countriesregions where name like '%"+locust.region+"%';";
rs = stt.executeQuery(sql_query);
if (rs != null) {
try {
if (rs.next()) {
locust.region_id=rs.getString(1);
}
rs.close();
} catch (SQLException ex) {
}
}
} catch (SQLException ex) {
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
//Выбираю id региона (main.countriesdistricts)
locust.district_id="";
locust.district=CutBeforeFirst(data,";");
stt = null;
rs = null;
try {
if(locust.district.equals("Сарканский ")) locust.district="Саркандский";
if(locust.district.equals("Уйгуский")) locust.district="Уйгурский";
if(locust.district.equals("г.Капшагай")) locust.district="Капчагайский городской округ";
if(locust.district.equals("Каратальскиий")) locust.district="Каратальский";
if(locust.district.equals("г. Талдыкорган")) locust.district="Талдыкорганский";
if(locust.district.equals("г Атырау ")) locust.district="Атырауский городской округ";
if(locust.district.equals("г. Атырау")) locust.district="Атырауский городской округ";
if(locust.district.equals("Кызылкуга")) locust.district="Кзылкогинский район";
if(locust.district.equals("Курчумский ")) locust.district="Куршимский район";
if(locust.district.equals("г.Семей")) locust.district="Семипалатинский городской округ";
if(locust.region_id.equals("4") && locust.district.equals("Жамбылский")) locust.district="Джамбулский район";
if(locust.district.equals("Т.Рыскуловский")) locust.district="Рыскуловский район";
if(locust.district.equals("Шуйский")) locust.district="Чуйский район";
if(locust.district.equals("Сарысуский")) locust.district="Сары-Суйский район";
if(locust.district.equals("Федоровский")) locust.district="Фёдоровский район";
if(locust.district.equals("Жангельдинский")) locust.district="Джангельдинский район";
if(locust.district.equals("Сырдария")) locust.district="Сырдарьинский район";
if(locust.district.equals("Кызылорда")) locust.district="Кызылординский городской округ";
if(locust.district.equals("к.Кызылорда")) locust.district="Кызылординский городской округ";
if(locust.district.equals("Аралский")) locust.district="Аральский район";
if(locust.district.equals("Шиелі")) locust.district="Шиелийский район";
if(locust.region_id.equals("11") && locust.district.equals("Аксуский")) locust.district="Аксуйский городской округ";
if(locust.region_id.equals("11") && locust.district.equals("Аксуский")) locust.district="Аксуйский городской округ";
if(locust.region_id.equals("11") && locust.district.equals("Ақсуский")) locust.district="Аксуйский городской округ";
if(locust.district.equals("Аққулы")) locust.district="Аккулинский район";
if(locust.district.equals("Аккулы")) locust.district="Аккулинский район";
if(locust.district.equals("Тереңкөл")) locust.district="Теренкольский";
if(locust.district.equals("г. Павлодар")) locust.district="Павлодарский городской округ";
if(locust.district.equals("Екибастузский")) locust.district="Экибастузский городской округ";
if(locust.district.equals("Шербактнский")) locust.district="Щербактинский район";
if(locust.district.equals("Толебиский ")) locust.district="Толебийский район";
if(locust.district.equals("г.Шымкент Абайский ")) locust.district="Шымкентский городской округ";
if(locust.district.equals("г.Шымкент Каратауский ")) locust.district="Шымкентский городской округ";
if(locust.district.equals("Баянауыл")) locust.district="Баянаул";
if(locust.district.equals("Екібастұз")) locust.district="Экибастуз";
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql_query = "select id from main.countriesdistricts where region_id="+locust.region_id+" and name like '%"+locust.district+"%';";
rs = stt.executeQuery(sql_query);
if (rs != null) {
try {
if (rs.next()) {
locust.district_id=rs.getString(1);
}
rs.close();
} catch (SQLException ex) {
}
}
} catch (SQLException ex) {
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
//Сельский округ
locust.terrain=CutBeforeFirst(data,";");
//Хозяйство или местность
locust.village=CutBeforeFirst(data,";");
//Вид саранчи
locust.locust=CutBeforeFirst(data,";");
locust.locust_id="";
if(locust.locust.equals(" итальянский прус")) locust.locust_id="1";
if(locust.locust.equals("итальянский прус")) locust.locust_id="1";
if(locust.locust.equals("Итальянский прус")) locust.locust_id="1";
if(locust.locust.equals("итальянский прус ")) locust.locust_id="1";
if(locust.locust.equals("Азиатская саранча")) locust.locust_id="3";
if(locust.locust.equals("азиатская саранча")) locust.locust_id="3";
if(locust.locust.equals("нестадные")) locust.locust_id="4";
if(locust.locust.equals("нестадные саранчовые")) locust.locust_id="4";
if(locust.locust.equals("Нестадные саранчевые")) locust.locust_id="4";
if(locust.locust.equals("Нестадная саранча ")) locust.locust_id="4";
if(locust.locust.equals("Нестадная саранча")) locust.locust_id="4";
if(locust.locust.equals("нестадная саранча")) locust.locust_id="4";
if(locust.locust.equals("Мароккская саранча")) locust.locust_id="2";
//фаза саранчи
locust.phase=CutBeforeFirst(data,";");
locust.locust_have="3";
if(locust.phase.equals("кубышки")) locust.locust_have="2";
if(locust.phase.equals("личинки")) locust.locust_have="3";
if(locust.phase.equals("имаго")) locust.locust_have="5";
locust.evp=CutBeforeFirst(data,";"); //ЭФП
locust.size=CutBeforeFirst(data,";"); //Заселённая площадь
locust.size=locust.size.replace(",",".");
locust.date=CutBeforeFirst(data,";"); //Дата
String row="<tr>";
if(error==true || locust.lat==0 || locust.lon==0 || locust.region_id.equals("") || locust.district_id.equals("") || locust.terrain.equals("") || locust.locust_id.equals("")) {
row="<tr bgcolor=\"red\">";
}
row+="<td>"+i+"</td><td>"+locust.lat+"</td><td>"+locust.lon+"</td><td>"+locust.region+" = "+locust.region_id+"</td><td>"+locust.district+" = "+locust.district_id+"</td><td>"+locust.terrain+"</td><td>"+locust.village+"</td><td>"+locust.locust+" = "+locust.locust_id+"</td><td>"+locust.phase+" = "+locust.locust_have+"</td><td>"+locust.evp+"</td><td>"+locust.size+"</td><td>"+locust.date+"</td>";
row+="</tr>\n";
table += row;
i++;
json+=" \n{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":["+locust.lon+","+locust.lat+"]},\"properties\":{\"oblast\":\""+locust.region.replace("\"", "'")+"\",\"district\":\""+locust.district.replace("\"", "'")+"\",\"region\":\""+locust.terrain.replace("\"", "'")+"\",\"village\":\""+locust.village.replace("\"", "'")+"\",\"phase\":\""+locust.phase+"\",\"locust\":\""+locust.locust+"\",\"evp\": \""+locust.evp+"\",\"ga\": \""+locust.size+"\",\"date\": \""+locust.date+"\"}},";
sqlData+="insert into main.frmlocust(country_id,region_id,district,terrain,village,lon1,lat1,locust_type_id,locust_have,locust_populated,date)values(5,"+locust.region_id+",'"+locust.district.trim()+"','"+locust.terrain.trim()+"','"+locust.village.trim()+"',"+locust.lon+","+locust.lat+","+locust.locust_id+","+locust.locust_have+","+locust.size+",TO_DATE('"+locust.date+"','DD.MM.YYYY'));\n";
if(i>5000) break;
line=reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}else {
table="CSV file is empty! "+skip;
}
table += "</table>";
json=json.substring(0,json.length()-1); //Удаляю последнюю запятую
json+="\n]}";
model.addAttribute("PreviewTable",table);
model.addAttribute("PreviewGEOJSON",json);
model.addAttribute("PreviewSQL",sqlData);
return "excel";
}
//---------------------------------------------------------------------------
public static String CutBeforeFirst(StringBuffer str,String ch)
{
int pos=str.indexOf(ch);
String result="";
if(pos==-1)
{
result.concat(str.toString());
str.delete(0,str.length());
}else
{
result=str.substring(0,pos);
str.delete(0,pos+1);
}
return result;
}
//---------------------------------------------------------------------------
class Locust{
double lon;
double lat;
String region; //Область
String region_id;
String district; //Район
String district_id;
String terrain; //Название месности
String village; //Хозяйство или местность
String locust; //Вид саранчи
String locust_id; //Вид саранчи
String phase; //Фаза саранчи
String locust_have; //id Фазы саранчи
String evp; //ЭФП
String size; //Заселённая площадь
String date; //Дата
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,226 @@
package kz.locust.CCALM;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.io.Reader;
import java.io.StringWriter;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
//import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Random;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
//import org.apache.commons.fileupload.FileItem;
//import org.apache.commons.fileupload.disk.DiskFileItemFactory;
//import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.multipart.MultipartFile;
import org.w3c.dom.CharacterData;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSSerializer;
import org.xml.sax.InputSource;
import tctable.Tools;
import tools.EmailUtility;
import tools.PreparedStatementNamed;
import tools.User;
@Controller
@SessionAttributes( { "user" })
public class DataJSON implements ServletContextAware {
private static final Logger logger = LoggerFactory.getLogger(DataJSON.class);
private ServletContext context;
//If not created object "user", create him.
@ModelAttribute("user")
public User populatePerson() {
return new User("none");
}
@RequestMapping(value = "/get_companies",method = {RequestMethod.POST,RequestMethod.GET}, produces = "application/json;charset=UTF-8")
@ResponseBody
public String getCompanies(@ModelAttribute User user,@RequestParam(required=false,name="country_id") String country_id,@RequestParam(required=false,name="lng") String language_id) {
int errorCode=0;
String errorMessage="";
//Load configuration from "config.xml"
String db_url = "";
String db_login = "";
String db_password = "";
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
}
} catch (Exception ex) {
errorCode=1;
errorMessage+="Internal server error, settings.";
logger.info(ex.getMessage());
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
if (conn != null) {
logger.info("Connect is OK!");
} else {
errorCode=1;
errorMessage+="An error occurred while connecting to the database!";
}
} catch (Exception ex) {
logger.info(ex.getMessage());
errorCode=1;
errorMessage+="An error occurred while connecting to the database!";
}
try {
Statement stt0 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
stt0.executeUpdate("SET TIME ZONE 'UTC';");
//stt0.executeUpdate("SET TIME ZONE 'Asia/Almaty';");
stt0.close();
} catch (SQLException ex) {
logger.info(ex.getMessage());
errorCode=1;
errorMessage+="Failed to execute SQL query!";
}
JSONObject doc=null;
JSONArray array=new JSONArray(); //Результирующий набор данных
String sql_query = "";
Statement stt=null;
ResultSet rs=null;
try {
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
sql_query = "select id,name from main.companies where del=false and name is not null and name!='' and (${country_id} is null or country_id=${country_id})";
PreparedStatementNamed stmtn = new PreparedStatementNamed(conn, sql_query);
if(country_id==null || country_id.equals(""))
stmtn.setNULLInt("country_id");
else
stmtn.setInt("country_id",Integer.parseInt(country_id));
PreparedStatement stmt=stmtn.getPreparedStatement();
rs = stmt.executeQuery();
if (rs != null) {
try {
while(rs.next()) {
JSONObject obj = new JSONObject();
obj.put("id", rs.getLong("id"));
if(rs.getObject("name")!=null)
obj.put("name", rs.getString("name"));
array.put(obj);
}
rs.close();
} catch (SQLException ex) {
errorCode=4;
errorMessage+="Internal server error, sampling.";
ex.printStackTrace();
logger.info(ex.getMessage());
}
}
} catch (SQLException ex) {
errorCode=5;
errorMessage+="Internal server error, query. ";
ex.printStackTrace();
logger.info(ex.getMessage());
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
if(errorCode!=0) {
JSONObject obj = new JSONObject();
obj.put("errorCode",errorCode);
obj.put("errorMessage", errorMessage);
return obj.toString();
}else {
JSONObject obj = new JSONObject();
obj.put("errorCode",0);
obj.put("errorMessage", "");
if(doc!=null)
obj.put("indicator",doc.getString("indicator"));
obj.put("data",array);
return obj.toString();
}
}
@Override
public void setServletContext(ServletContext servletContext) {
this.context=servletContext;
}
}

View File

@ -0,0 +1,365 @@
package kz.locust.CCALM;
import org.gdal.gdal.Band;
import org.gdal.gdal.Dataset;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;
import javax.servlet.ServletContext;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
/*import ucar.ma2.Array;
import ucar.nc2.Dimension;
import ucar.nc2.Variable;
import ucar.nc2.dataset.NetcdfDataset;*/
@Controller
public class DownloadNDVI implements ServletContextAware {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(DownloadNDVI.class);
private ServletContext context;
@RequestMapping(value = "/DownloadNDVI",method = RequestMethod.GET,produces = "text/html;charset=UTF-8")
@ResponseBody
public Object ajaxTamer(@RequestParam(required=false,name="forecast") String forecast) {
//String forecast = request.getParameter("forecast"); //Date like as "000".
//response.setContentType("text/html");
//PrintWriter out = response.getWriter();
String result="";
result+="Start!<br>";
//http://gis-lab.info/forum/viewtopic.php?style=1&t=15764
gdal.AllRegister();
Dataset dataset=gdal.Open("O:\\Desctop\\NDVI_from_HDF\\1\\MOD13Q1.A2019049.h27v12.006.2019073153055.hdf" , gdalconstConstants.GA_ReadOnly);
Band o=(Band)dataset.GetRasterBand(1);
long flen=o.getXSize()*o.getYSize();
result+=flen;
/*
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
//Load DB configuration from "config.xml"
String db_url = "";
String db_login = "";
String db_password = "";
String data_dir = "";
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("data-dir"))
data_dir = nl.item(i).getTextContent();
}
} catch (Exception ex) {
logger.info(ex.getMessage());
}
data_dir+="temp"+File.separator;
File dir = new File(data_dir);
if (!dir.exists()) dir.mkdirs();
//response.getWriter().append("Served at: ").append(request.getContextPath());
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
logger.info("Connect is OK!");
result+="Connect is OK!<br>";
}else
{
logger.info("<br>Connect is ERROR<br>");
result+="Connect is ERROR!<br>";
}
}catch(Exception e)
{
logger.info("<br>Connect Exception:"+e.getMessage()+"<br>");
result+="Connect Exception:"+e.getMessage()+"<br>";
}
//Example request: http://localhost:8080/CCALM/DownloadWeather?forecast=000
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String date=dateFormat.format(new Date()); //Date like as "20170327".
String time = "00"; //00 hours,06 hours,12 hours and 18 hours
//String forecast = request.getParameter("forecast"); //Date like as "000".
String measurement = "TSOIL:0-0.1 m below ground";
//String measurement = "TSOIL:0.1-0.4 m below ground";
//Build URL to download
String URL = "https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs."+date+time+"/gfs.t"+time+"z.pgrb2.0p25.f"+forecast;
//URL = "http://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.2017091200/gfs.t00z.pgrb2.0p25.f000";
WeatherDownload wd = new WeatherDownload();
if(wd.download(URL+".idx", data_dir+"text.idx", "0", ""))
{
result+="Download "+URL+".idx"+" to "+data_dir+"text.idx"+"<br>";
String strPos1="";
String strPos2="";
//Read file and find required line.
try {
BufferedReader br = new BufferedReader(new FileReader(data_dir+"text.idx"));
String line;
while ((line = br.readLine()) != null)
{
//if (line.contains("TSOIL:0-0.1 m below ground"))
if (line.contains(measurement))
{
strPos1=line;
strPos2=br.readLine();
break;
}
}
br.close();
} catch (IOException ex) {
logger.info(ex.getMessage());
result+=ex.getMessage()+"<br>";
}
if(!strPos1.equals(""))
{
//String strPos1 = "250:146339365:d=2017022818:TSOIL:0-0.1 m below ground:anl:"
StringBuffer answer1=new StringBuffer(strPos1);
CutBeforeFirst(answer1,":");
String posStart = CutBeforeFirst(answer1,":");
StringBuffer answer2=new StringBuffer(strPos2);
CutBeforeFirst(answer2,":");
String posEnd = CutBeforeFirst(answer2,":");
if(posEnd==null || posEnd.equals("")) posEnd=""; else
{
posEnd=String.valueOf(Long.parseLong(posEnd)-1);
}
wd.download(URL, data_dir+"text.f000", String.valueOf(posStart), String.valueOf(posEnd));
}
}else
{
result+="Not download "+URL+".idx"+" to "+data_dir+"text.idx"+"<br>";
}
Array dataArrayLat=null;
Array dataArrayLon=null;
Array dataArrayTmp=null;
try {
// open netcdf/grib/grib2 file from argument
NetcdfDataset gid = NetcdfDataset.openDataset(data_dir+"text.f000");
//logger.info("Desc: " + gid.getDescription());
logger.info(gid.getDetailInfo());
//logger.info("Feature type: " + gid.getFeatureType().toString());
// get all grid tables in the file
List<Variable> variables = gid.getReferencedFile().getVariables();
for (int i = 0; i < variables.size(); i++)
{
System.out.print(variables.get(i).getName()+" ");
//LatLon_Projection, lat, lon, reftime, time, depth_below_surface_layer, depth_below_surface_layer_bounds, Soil_temperature_depth_below_surface_layer
if(variables.get(i).getName().equals("reftime"))
{
logger.info("");
logger.info("Description = "+variables.get(i).getDescription());
logger.info("DimensionsString = "+variables.get(i).getDimensionsString());
logger.info("DataType = "+variables.get(i).getDataType());
logger.info("UnitsString = "+variables.get(i).getUnitsString()); //Hour since 2017-02-28T18:00:00Z
}
if(variables.get(i).getName().equals("lon"))
{
dataArrayLon = variables.get(i).read();
}
if(variables.get(i).getName().equals("lat"))
{
dataArrayLat = variables.get(i).read();
}
if(variables.get(i).getName().equals("Soil_temperature_depth_below_surface_layer"))
{
//Section sec=new Section();
dataArrayTmp = variables.get(i).read();
//for(int j=0;j<dataArrayTmp.getSize();j++)
//{
// logger.info(j+") "+dataArrayTmp.getFloat(j)+",");
//}
}
}
logger.info("");
List<Dimension> dims = gid.getDimensions();
logger.info("dims.size() = " + dims.size());
Iterator<Dimension> dimIt = dims.iterator();
while( dimIt.hasNext()) {
Dimension dim = dimIt.next();
logger.info("Dim = " + dim);
logger.info("Dim name = "+dim.getName());
}
dimIt = null;
Statement st=null;
try {
st = conn.createStatement();
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
try {
st.executeUpdate("BEGIN TRANSACTION;");
} catch (SQLException ex) {
logger.info(ex.getMessage());
logger.info(ex.getMessage());
}
result+="Size="+dataArrayLat.getSize()+"<br>";
int pos=0;
for(int nLat=0;nLat<dataArrayLat.getSize();nLat++)
{
for(int nLon=0;nLon<dataArrayLon.getSize();nLon++)
{
//WGS84 Bounds: -180.0000, -90.0000, 180.0000, 90.0000
//Projected Bounds: -180.0000, -90.0000, 180.0000, 90.0000
double lon = dataArrayLon.getFloat(nLon);
if(lon>180) lon=lon-360;
double lat = dataArrayLat.getFloat(nLat);
if(lat>29 && lat<67 && lon>17 && lon<180) //Central Asia
{
if(!Float.isNaN(dataArrayTmp.getFloat(pos))) //On the water none temperatyre.
{
String country_id="";
ResultSet rs=null;
try {
rs = st.executeQuery("select c.id from main.countries c where ST_Contains(c.geom,ST_SetSRID(st_makepoint("+lon+","+lat+"),4326)) limit 1");
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
if (rs != null) {
try {
if (rs.next())
country_id=rs.getString(1);
rs.close();
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
}
if(country_id!=null && !country_id.equals("") && !country_id.equals("null"))
{
//logger.info(lon + "," + lat +","+dataArrayTmp.getFloat(pos));
try {
//String sql="insert into weather(weather_type_id,date,hours,val,geom)values(1,cast(to_timestamp('"+date+" "+time+"', 'YYYYMMDD HH24') as timestamp without time zone),"+forecast+","+dataArrayTmp.getFloat(pos)+",ST_SetSRID(st_makepoint("+lon+","+lat+"),4326));";
//String sql="insert into main.weather(weather_type_id,date,hours,val,geom,country_id)values(1,cast(to_timestamp('"+date+" "+time+"', 'YYYYMMDD HH24') as timestamp without time zone),"+forecast+","+dataArrayTmp.getFloat(pos)+",ST_SetSRID(st_makepoint("+lon+","+lat+"),4326),(select c.id from main.countries c where ST_Contains(c.geom,ST_SetSRID(st_makepoint("+lon+","+lat+"),4326)) limit 1));";
String sql="insert into main.weather(weather_type_id,date,hours,val,geom,country_id)values(1,cast(to_timestamp('"+date+" "+time+"', 'YYYYMMDD HH24') as timestamp without time zone),"+forecast+","+dataArrayTmp.getFloat(pos)+",ST_SetSRID(st_makepoint("+lon+","+lat+"),4326),"+country_id+");";
st.executeUpdate(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
}
}
}
pos++;
}
}
//Cut data pise for Russia
try {
//String sql="update weather w set country_id=null where country_id=7 and not ST_Contains((select geom from main.countriesregions where id=97),w.geom);";
String sql="update main.weather w set country_id=null where country_id=7 and not ST_Contains(ST_SetSRID(ST_GeomFromText('POLYGON((10.00 66.00,10.00 40.00,179.00 40.00,179.00 66.00,10.00 66.00))'),4326),w.geom);";
st.executeUpdate(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
//Delete values where country_id is null
try {
String sql="delete from main.weather where country_id is null;";
st.executeUpdate(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
//Delete all old values
try {
String sql="delete from main.weather where date!=(select max(date) from main.weather limit 1);";
st.executeUpdate(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
logger.info(ex.getMessage());
}
try {
st.executeUpdate("END TRANSACTION;");
} catch (SQLException ex) {
logger.info(ex.getMessage());
logger.info(ex.getMessage());
}
gid.close();
} catch (IOException ex) {
//Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
System.out.print("ERROR!");
}
try {conn.close();} catch (SQLException ex) {logger.info(ex.getMessage());}
result+="End!<br>";
*/
return result;
}
//---------------------------------------------------------------------------
@Override
public void setServletContext(ServletContext context) {
this.context=context;
}
//---------------------------------------------------------------------------
public static String CutBeforeFirst(StringBuffer str,String ch)
{
int pos=str.indexOf(ch);
String result="";
if(pos==-1)
{
result.concat(str.toString());
str.delete(0,str.length());
}else
{
result=str.substring(0,pos);
str.delete(0,pos+1);
}
return result;
}
}

View File

@ -0,0 +1,470 @@
package kz.locust.CCALM;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.TimeZone;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletContext;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
//import main.DownloadFromHTTP;
import kz.locust.CCALM.WeatherDownload;
import ucar.ma2.Array;
import ucar.nc2.Dimension;
import ucar.nc2.Variable;
import ucar.nc2.dataset.NetcdfDataset;
@Controller
public class DownloadWeather implements ServletContextAware {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(DownloadWeather.class);
private ServletContext context;
@RequestMapping(value = "/DownloadWeather",method = RequestMethod.GET,produces = "text/html;charset=UTF-8")
@ResponseBody
public Object ajaxTamer(@RequestParam(required=false,name="forecast") String forecast,@RequestParam(required=false,name="date") String date) {
//String forecast = request.getParameter("forecast"); //Date like as "000".
//response.setContentType("text/html");
//PrintWriter out = response.getWriter();
String result="";
result+="Start!<br>";
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
//Load DB configuration from "config.xml"
String db_url = "";
String db_login = "";
String db_password = "";
String data_dir = "";
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("data-dir"))
data_dir = nl.item(i).getTextContent();
}
} catch (Exception ex) {
logger.info(ex.getMessage());
}
data_dir+="temp"+File.separator;
File dir = new File(data_dir);
if (!dir.exists()) dir.mkdirs();
//response.getWriter().append("Served at: ").append(request.getContextPath());
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
logger.info("Connect is OK!");
result+="Connect is OK!<br>";
}else
{
logger.info("<br>Connect is ERROR<br>");
result+="Connect is ERROR!<br>";
}
}catch(Exception e)
{
logger.info("<br>Connect Exception:"+e.getMessage()+"<br>");
result+="Connect Exception:"+e.getMessage()+"<br>";
}
//Example request: http://ccalm.org/DownloadWeather?forecast=000&date=20210531
//Example request: http://localhost:8080/CCALM/DownloadWeather?forecast=000
//Example request: http://127.0.0.1:8080/CCALM/DownloadWeather?forecast=000
if(date==null || date.equals(""))
{
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
date=dateFormat.format(new Date()); //Date like as "20170327".
}
String time = "00"; //00 hours,06 hours,12 hours and 18 hours
//String forecast = request.getParameter("forecast"); //Date like as "000".
String measurement = "TSOIL:0-0.1 m below ground";
//String measurement = "TSOIL:0.1-0.4 m below ground";
//Build URL to download
String URL = "https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs."+date+"/"+time+"/atmos/gfs.t"+time+"z.pgrb2.0p25.f"+forecast;
File f = new File(data_dir+"text.idx");
if(f.exists()) {
if (!f.delete()) {
System.out.println("Failed to delete the file.");
}
}
WeatherDownload wd = new WeatherDownload();
if(wd.download(URL+".idx", data_dir+"text.idx", "0", ""))
{
result+="Download "+URL+".idx"+" to "+data_dir+"text.idx"+"<br>";
String strPos1="";
String strPos2="";
//Read file and find required line.
try {
BufferedReader br = new BufferedReader(new FileReader(data_dir+"text.idx"));
String line;
while ((line = br.readLine()) != null)
{
//if (line.contains("TSOIL:0-0.1 m below ground"))
if (line.contains(measurement))
{
strPos1=line;
strPos2=br.readLine();
break;
}
}
br.close();
} catch (IOException ex) {
logger.info(ex.getMessage());
result+=ex.getMessage()+"<br>";
}
if(!strPos1.equals(""))
{
//String strPos1 = "250:146339365:d=2017022818:TSOIL:0-0.1 m below ground:anl:"
StringBuffer answer1=new StringBuffer(strPos1);
CutBeforeFirst(answer1,":");
String posStart = CutBeforeFirst(answer1,":");
StringBuffer answer2=new StringBuffer(strPos2);
CutBeforeFirst(answer2,":");
String posEnd = CutBeforeFirst(answer2,":");
if(posEnd==null || posEnd.equals("")) posEnd=""; else
{
posEnd=String.valueOf(Long.parseLong(posEnd)-1);
}
wd.download(URL, data_dir+"text.f000", String.valueOf(posStart), String.valueOf(posEnd));
}
}else
{
result+="Not download "+URL+".idx"+" to "+data_dir+"text.idx"+"<br>";
}
Array dataArrayLat=null;
Array dataArrayLon=null;
Array dataArrayTmp=null;
try {
// open netcdf/grib/grib2 file from argument
NetcdfDataset gid = NetcdfDataset.openDataset(data_dir+"text.f000");
//logger.info("Desc: " + gid.getDescription());
logger.info(gid.getDetailInfo());
//logger.info("Feature type: " + gid.getFeatureType().toString());
// get all grid tables in the file
List<Variable> variables = gid.getReferencedFile().getVariables();
for (int i = 0; i < variables.size(); i++)
{
System.out.print(variables.get(i).getName()+" ");
//LatLon_Projection, lat, lon, reftime, time, depth_below_surface_layer, depth_below_surface_layer_bounds, Soil_temperature_depth_below_surface_layer
if(variables.get(i).getName().equals("reftime"))
{
logger.info("");
logger.info("Description = "+variables.get(i).getDescription());
logger.info("DimensionsString = "+variables.get(i).getDimensionsString());
logger.info("DataType = "+variables.get(i).getDataType());
logger.info("UnitsString = "+variables.get(i).getUnitsString()); //Hour since 2017-02-28T18:00:00Z
}
if(variables.get(i).getName().equals("lon"))
{
dataArrayLon = variables.get(i).read();
}
if(variables.get(i).getName().equals("lat"))
{
dataArrayLat = variables.get(i).read();
}
if(variables.get(i).getName().equals("Soil_temperature_depth_below_surface_layer"))
{
//Section sec=new Section();
dataArrayTmp = variables.get(i).read();
/*for(int j=0;j<dataArrayTmp.getSize();j++)
{
logger.info(j+") "+dataArrayTmp.getFloat(j)+",");
}*/
}
}
logger.info("");
List<Dimension> dims = gid.getDimensions();
logger.info("dims.size() = " + dims.size());
Iterator<Dimension> dimIt = dims.iterator();
while( dimIt.hasNext()) {
Dimension dim = dimIt.next();
logger.info("Dim = " + dim);
logger.info("Dim name = "+dim.getName());
}
dimIt = null;
Statement st=null;
try {
st = conn.createStatement();
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
try {
st.executeUpdate("BEGIN TRANSACTION;");
} catch (SQLException ex) {
logger.info(ex.getMessage());
logger.info(ex.getMessage());
}
result+="Size="+dataArrayLat.getSize()+"<br>";
int pos=0;
for(int nLat=0;nLat<dataArrayLat.getSize();nLat++)
{
for(int nLon=0;nLon<dataArrayLon.getSize();nLon++)
{
//WGS84 Bounds: -180.0000, -90.0000, 180.0000, 90.0000
//Projected Bounds: -180.0000, -90.0000, 180.0000, 90.0000
double lon = dataArrayLon.getFloat(nLon);
if(lon>180) lon=lon-360;
double lat = dataArrayLat.getFloat(nLat);
if(lat>29 && lat<67 && lon>17 && lon<180) //Central Asia
{
if(!Float.isNaN(dataArrayTmp.getFloat(pos))) //On the water none temperatyre.
{
String country_id="";
ResultSet rs=null;
try {
rs = st.executeQuery("select c.id from main.countries c where ST_Contains(c.geom,ST_SetSRID(st_makepoint("+lon+","+lat+"),4326)) limit 1");
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
if (rs != null) {
try {
if (rs.next())
country_id=rs.getString(1);
rs.close();
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
}
if(country_id!=null && !country_id.equals("") && !country_id.equals("null"))
{
//logger.info(lon + "," + lat +","+dataArrayTmp.getFloat(pos));
try {
//String sql="insert into main.weather(weather_type_id,date,hours,val,geom)values(1,cast(to_timestamp('"+date+" "+time+"', 'YYYYMMDD HH24') as timestamp without time zone),"+forecast+","+dataArrayTmp.getFloat(pos)+",ST_SetSRID(st_makepoint("+lon+","+lat+"),4326));";
//String sql="insert into main.weather(weather_type_id,date,hours,val,geom,country_id)values(1,cast(to_timestamp('"+date+" "+time+"', 'YYYYMMDD HH24') as timestamp without time zone),"+forecast+","+dataArrayTmp.getFloat(pos)+",ST_SetSRID(st_makepoint("+lon+","+lat+"),4326),(select c.id from main.countries c where ST_Contains(c.geom,ST_SetSRID(st_makepoint("+lon+","+lat+"),4326)) limit 1));";
String sql="insert into main.weather(weather_type_id,date,hours,val,geom,country_id)values(1,cast(to_timestamp('"+date+" "+time+"', 'YYYYMMDD HH24') as timestamp without time zone),"+forecast+","+dataArrayTmp.getFloat(pos)+",ST_SetSRID(st_makepoint("+lon+","+lat+"),4326),"+country_id+");";
st.executeUpdate(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
}
}
}
pos++;
}
}
//Cut data piece from big country of Russia
try {
//String sql="update weather w set country_id=null where country_id=7 and not ST_Contains((select geom from main.countriesregions where id=97),w.geom);";
String sql="update main.weather w set country_id=null where country_id=7 and not ST_Contains(ST_SetSRID(ST_GeomFromText('POLYGON((10.00 66.00,10.00 40.00,179.00 40.00,179.00 66.00,10.00 66.00))'),4326),w.geom);";
st.executeUpdate(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
//Delete values where country_id is null
try {
String sql="delete from main.weather where country_id is null;";
st.executeUpdate(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
//Delete all old values аnd not a multiple of 10.
try {
String sql="delete from main.weather where date!=(select max(date) from main.weather limit 1) and ((DATE_PART('doy',date)::INTEGER-1)%10!=0 or ((DATE_PART('doy',date)::INTEGER-1)%10=0 and hours=48));";
st.executeUpdate(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
logger.info(ex.getMessage());
}
try {
st.executeUpdate("END TRANSACTION;");
} catch (SQLException ex) {
logger.info(ex.getMessage());
logger.info(ex.getMessage());
}
gid.close();
} catch (IOException ex) {
//Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
System.out.print("ERROR!");
}
try {conn.close();} catch (SQLException ex) {logger.info(ex.getMessage());}
result+="End!<br>";
return result;
}
//---------------------------------------------------------------------------
@Override
public void setServletContext(ServletContext context) {
this.context=context;
}
//---------------------------------------------------------------------------
public static String CutBeforeFirst(StringBuffer str,String ch)
{
int pos=str.indexOf(ch);
String result="";
if(pos==-1)
{
result.concat(str.toString());
str.delete(0,str.length());
}else
{
result=str.substring(0,pos);
str.delete(0,pos+1);
}
return result;
}
//---------------------------------------------------------------------------
//List of "Soil temperature" dates from database in JSON
@RequestMapping(value = "/WeatherSoilDates",method = RequestMethod.GET,produces = "text/html;charset=UTF-8")
@ResponseBody
public Object ajaxSoilDates() {
boolean error=false;
String result="";
//Load DB configuration from "config.xml"
String db_url = "";
String db_login = "";
String db_password = "";
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
}
} catch (Exception ex) {
logger.info(ex.getMessage());
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
if (conn != null) {
logger.info("Connect is OK!");
} else {
error=true;
result="An error occurred while connecting to the database!";
}
} catch (Exception ex) {
logger.info(ex.getMessage());
error=true;
result="<br>SQLException: "+ex.getMessage()+"<br>";
}
if(!error)
{
Statement st;
try {
st = conn.createStatement();
String sql = "SELECT to_char(date, 'YYYY-MM-DD') as date,hours as hour,DATE_PART('doy',date)-1 as day FROM main.weather group by date,hours order by date,hours";
ResultSet rs = st.executeQuery(sql);
if(rs!=null)
{
boolean exists=false;
result="[";
while (rs.next())
{
exists=true;
try {
result+= "{\"num\":\""+rs.getString("day")+"\", \"hour\":\""+rs.getString("hour")+"\", \"date\":\""+rs.getString("date")+"\"},";
} catch( Exception ex )
{
}
}
if(exists) {
result=result.substring(0, result.length()-1);
result+="]";
}else {
result="[]";
}
}
st.close();
conn.close();
} catch (SQLException ex) {
result="<br>SQLException:"+ex.getMessage()+"<br>";
}
}
return result;
}
//---------------------------------------------------------------------------
}

View File

@ -0,0 +1,278 @@
package kz.locust.CCALM;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import tctable.TCField;
import tctable.TCTable;
@Controller
public class GeoGSON implements ServletContextAware {
private static final Logger logger = LoggerFactory.getLogger(GeoGSON.class);
private ServletContext context;
@RequestMapping(value = "/geojson", method = RequestMethod.GET)
@ResponseBody
public Object home(HttpServletResponse response,@RequestParam(required=false,name="table") String table,@RequestParam(required=false,name="id") String id)
{
boolean error=false;
String result="";
String db_url = "";
String db_login = "";
String db_password = "";
//Load DB configuration from "config.xml"
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
}
} catch (Exception ex) {
logger.info(ex.getMessage());
error=true;
result="<br>SQLException: "+ex.getMessage()+"<br>";
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
if (conn != null) {
logger.info("Connect is OK!");
} else {
error=true;
result="An error occurred while connecting to the database!";
}
} catch (Exception ex) {
logger.info(ex.getMessage());
error=true;
result="<br>SQLException: "+ex.getMessage()+"<br>";
}
if(!error)
{
Statement st;
try {
st = conn.createStatement();
String sql="select id,name,ST_AsGeoJSON(geom,3,0) as geom from main."+table+" where id="+id+";";
ResultSet rs = st.executeQuery(sql);
if(rs!=null)
{
while (rs.next())
{
String geom=null;
try {
geom=rs.getString("geom");
} catch( Exception ex )
{
result="<metadata fn=\"-1\"><![CDATA[SQLException: "+ex.getMessage()+"]]></metadata>";
}
if(geom==null) geom="";
result=geom;
}
}
st.close();
conn.close();
} catch (SQLException ex) {
result="<br>SQLException:"+ex.getMessage()+"<br>";
}
}
return result;
}
@Override
public void setServletContext(ServletContext context) {
this.context=context;
}
//For compilatin android project
//http://127.0.0.1:8080/CCALM/countriesregionspoints
@RequestMapping(value = "/countriesregionspoints", method = RequestMethod.GET)
@ResponseBody
public Object countriesregions(HttpServletResponse response)
{
boolean error=false;
String result="OK<br>";
String db_url = "";
String db_login = "";
String db_password = "";
String data_dir = "";
//Load DB configuration from "config.xml"
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("data-dir"))
data_dir = nl.item(i).getTextContent();
}
} catch (Exception ex) {
logger.info(ex.getMessage());
error=true;
result+="<br>SQLException: "+ex.getMessage()+"<br>";
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
if (conn != null) {
logger.info("Connect is OK!");
} else {
error=true;
result+="An error occurred while connecting to the database!";
}
} catch (Exception ex) {
logger.info(ex.getMessage());
error=true;
result+="<br>SQLException: "+ex.getMessage()+"<br>";
}
if(!error)
{
Statement st,stC;
//Каждую геозонку области записываю в отдельный файл
String sql="select id from main.countriesregions where del=false";
try {
stC = conn.createStatement();
ResultSet rsC = stC.executeQuery(sql);
if(rsC!=null)
{
while (rsC.next())
{
sql="";
//sql+=" select t1.id as country_region_id,(ST_DumpPoints(geom)).path[1] as pos,cast(ST_X((ST_DumpPoints(geom)).geom) as real) lon,cast(ST_Y((ST_DumpPoints(geom)).geom) as real) lat from";
sql+=" select cast(ST_X((ST_DumpPoints(geom)).geom) as real) lon,cast(ST_Y((ST_DumpPoints(geom)).geom) as real) lat from";
sql+=" (";
sql+=" select id,name,ST_Area(t.gone) area,ST_ExteriorRing(gone) as geom from";
sql+=" (select id,name,ST_NumGeometries(geom),(ST_Dump(geom)).geom gone from main.countriesregions where del=false and id="+rsC.getString("id")+") t";
sql+=" )t1";
sql+=" ,";
sql+=" (select id,max(ST_Area(t.gone)) area from";
sql+=" (select id,name,ST_NumGeometries(geom),(ST_Dump(geom)).geom gone from main.countriesregions where del=false and id="+rsC.getString("id")+") t";
sql+=" group by id) t2";
sql+=" where";
sql+=" t1.id=t2.id";
sql+=" and t1.area=t2.area";
st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
try {
if(rs!=null)
{
File targetFile = new File(data_dir+"region_"+rsC.getString("id")+".tbl"); //Андроид не разрешает ресурсы с циферки
OutputStream outStream = new FileOutputStream(targetFile);
TCTable tbl=new TCTable("crcountriesregionspoints",123456);
logger.info("countriesregionspoints");
ResultSetMetaData rsmd = rs.getMetaData();
for(int i=1;i<=rsmd.getColumnCount();i++)
{
logger.info(i+") name="+rsmd.getColumnName(i)+" type="+rsmd.getColumnTypeName(i));
TCField field=new TCField(rsmd.getColumnName(i), rsmd.getColumnTypeName(i));
tbl.addField(field);
}
tbl.getHeader(outStream);
while (rs.next())
{
for(int i=1;i<=rsmd.getColumnCount();i++)
{
if(!rsmd.getColumnTypeName(i).equals("geometry"))
tbl.fields.get(i-1).setValue(rs.getString(i));
else
tbl.fields.get(i-1).setValue(null);
}
//Save binary data to stream
tbl.getCol(outStream);
}
outStream.flush();
outStream.close();
}
rs.close();
st.close();
//response.getOutputStream();
//response.flushBuffer();
} catch (IOException ex) {
result+="<br>SQLException:"+ex.getMessage()+"<br>";
}
}
}
rsC.close();
stC.close();
conn.close();
} catch (SQLException ex) {
// TODO Auto-generated catch block
result+="<br>SQLException:"+ex.getMessage()+"<br>";
}
}
return result;
}
}

View File

@ -0,0 +1,774 @@
package kz.locust.CCALM;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import java.util.Base64;
import java.nio.file.Files;
import tctable.Tools;
@Controller
public class Integration implements ServletContextAware {
private static final int BUFFER_SIZE = 4096;
private static final Logger logger = LoggerFactory.getLogger(Integration.class);
private ServletContext context;
@RequestMapping(value = "/integration/getByTime", method = RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public Object getByTime(HttpServletResponse response,@RequestParam(required=true,name="token") String token,@RequestParam(required=true,name="timeBegin") String timeBegin,@RequestParam(required=false,name="timeEnd") String timeEnd,@RequestParam(required=false,name="type") String type)
{
if(type!=null && type.equals("del"))
return getDataDel(token,timeBegin,timeEnd,null,null);
else
return getData(token,timeBegin,timeEnd,null,null);
}
@RequestMapping(value = "/integration/getByDate", method = RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public Object getByDate(HttpServletResponse response,@RequestParam(required=true,name="token") String token,@RequestParam(required=true,name="dateBegin") String dateBegin,@RequestParam(required=false,name="dateEnd") String dateEnd,@RequestParam(required=false,name="type") String type)
{
if(type!=null && type.equals("del"))
return getDataDel(token,null,null,dateBegin,dateEnd);
else
return getData(token,null,null,dateBegin,dateEnd);
}
//Prepare data for sending to integration servers.
String getData(String token, String timeBegin,String timeEnd,String dateBegin,String dateEnd) {
int errorCode=0;
String errorCodeDescription="";
if(!(
token.equals("DA46DCA8E49D52A12614D4FE4CF4")
|| token.equals("R5375VJERFJKFTGKT8235QFSJHDE")
|| token.equals("QIWGHIEEEEEE732RUEWHDHREU92Z")
|| token.equals("BA46DCA8E49D52A12614D4FE4CF5") //Kazahstan
)) { //Access only for Russians
JSONObject obj = new JSONObject();
obj.put("errorCode",1);
obj.put("errorCodeDescription", "Token is not correct!");
return obj.toString();
}
String db_url="";
String db_login="";
String db_password="";
//Load DB configuration from "config.xml"
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain=doc.getDocumentElement();
NodeList nl=nMain.getChildNodes();
for (int i = 0; i <nl.getLength(); i++)
{
if(nl.item(i).getNodeName().equals("db-url"))
db_url=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-login"))
db_login=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-password"))
db_password=nl.item(i).getTextContent();
}
} catch (Exception e) {
errorCode=2;
errorCodeDescription+="Внутренняя ошибка сервера, настройки. ";
e.printStackTrace();
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
} catch (Exception ex) {
errorCode=3;
errorCodeDescription+="Внутренняя ошибка сервера, база. ";
ex.printStackTrace();
}
JSONArray array=new JSONArray(); //Результирующий набор данных
String sql_query = "";
Statement stt=null;
ResultSet rs=null;
try {
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
sql_query = "select * from main.integration_1(1,?::bigint,?::bigint,TO_TIMESTAMP(?,'YYYY-MM-DD HH24:MI')::timestamp,TO_TIMESTAMP(?,'YYYY-MM-DD HH24:MI')::timestamp);";
//String timeBegin,String timeEnd,String dateBegin,String dateEnd
PreparedStatement stmt=null;
stmt = conn.prepareStatement(sql_query);
stmt.setString(1,timeBegin);
stmt.setString(2,timeEnd);
stmt.setString(3,dateBegin);
stmt.setString(4,dateEnd);
//stmt.execute();
rs = stmt.executeQuery();
//rs = stt.executeQuery(sql_query);
if (rs != null) {
try {
while(rs.next()) {
JSONObject obj = new JSONObject();
obj.put("id", rs.getLong("id"));
obj.put("seq", rs.getLong("seq"));
obj.put("country_name", rs.getString("country_name")); //Страна
obj.put("region_name", rs.getString("region_name")); //Область
obj.put("town_name", rs.getString("town_name")); //Район
obj.put("date", rs.getString("date")); //Дата анкетирования
obj.put("surveyed_area", rs.getDouble("surveyed_area")); //Обследованная площадь га
int cnt1=0;
if(rs.getString("lat1")!=null && rs.getString("lon1")!=null) cnt1++;
if(rs.getString("lat2")!=null && rs.getString("lon2")!=null) cnt1++;
if(rs.getString("lat3")!=null && rs.getString("lon3")!=null) cnt1++;
if(rs.getString("lat4")!=null && rs.getString("lon4")!=null) cnt1++;
if(rs.getString("lat5")!=null && rs.getString("lon5")!=null) cnt1++;
if(rs.getString("lat6")!=null && rs.getString("lon6")!=null) cnt1++;
boolean point=cnt1<=2;
JSONObject geom = new JSONObject();
if(point) {
geom.put("type","Point");
JSONArray crdSub=new JSONArray();
crdSub.put(rs.getDouble("lon1"));
crdSub.put(rs.getDouble("lat1"));
geom.put("coordinates", crdSub);
}else {
geom.put("type","Polygon");
JSONArray crdMain=new JSONArray();
JSONArray crdSub=new JSONArray();
crdMain.put(crdSub);
if(rs.getString("lat1")!=null && rs.getString("lon1")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon1"));
crd.put(rs.getDouble("lat1"));
crdSub.put(crd);
}
if(rs.getString("lat2")!=null && rs.getString("lon2")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon2"));
crd.put(rs.getDouble("lat2"));
crdSub.put(crd);
}
if(rs.getString("lat3")!=null && rs.getString("lon3")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon3"));
crd.put(rs.getDouble("lat3"));
crdSub.put(crd);
}
if(rs.getString("lat4")!=null && rs.getString("lon4")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon4"));
crd.put(rs.getDouble("lat4"));
crdSub.put(crd);
}
if(rs.getString("lat5")!=null && rs.getString("lon5")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon5"));
crd.put(rs.getDouble("lat5"));
crdSub.put(crd);
}
if(rs.getString("lat6")!=null && rs.getString("lon6")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon6"));
crd.put(rs.getDouble("lat6"));
crdSub.put(crd);
}
geom.put("coordinates", crdMain);
}
obj.put("geom", geom);
//Экологическая информация
obj.put("biotope_type", rs.getString("biotope_type"));
obj.put("vegetation", rs.getString("vegetation"));
obj.put("vegetation_cover", rs.getString("vegetation_cover"));
obj.put("air_temperature", rs.getString("air_temperature"));
obj.put("wind_speed", rs.getString("wind_speed"));
//Информация о саранче в том числе кубышки
obj.put("subject_name", rs.getString("subject_name")); //Вид саранчи
obj.put("infested_area", rs.getDouble("infested_area"));//Зараженная область га
// Eggs
obj.put("eggs_bed_area", rs.getDouble("egg_bed_area")); // numeric, --Залежь кубышек
obj.put("eggs_pods_density_from_m2", rs.getDouble("egg_pods_density_from_m2")); // numeric, --Плотность кубышек м2 с
obj.put("eggs_pods_density_to_m2", rs.getDouble("egg_pods_density_to_m2")); // numeric, --Плотность кубышек м2 до
obj.put("eggs_average_number_egg_pod", rs.getDouble("eggs_average_number_egg_pod")); // numeric, --Яйца в среднем в кубышке
obj.put("eggs_viable", rs.getDouble("eggs_viable")); // numeric, --Яйца (% жизнеспособных)
obj.put("eggs_natural_enemies", rs.getString("eggs_natural_enemies")); // character varying, --Естественные враги
// Hoppers (scattered) Личинки (разряженные)
obj.put("hoppers_hatching", rs.getString("hoppers_hatching")); // character varying, --Отрождение
obj.put("hoppers_stages", rs.getString("hoppers_stages")); // character varying, --Возраст личинок
obj.put("hoppers_appearance", rs.getString("hoppers_appearance")); // character varying, --Фаза
obj.put("hoppers_spatial_distribution", rs.getString("hoppers_spatial_distribution")); // character varying, --Пространственное распределени е
obj.put("hoppers_density_from_m2", rs.getDouble("hoppers_density_from_m2")); // numeric, --Плотность личинок от м2
obj.put("hoppers_density_to_m2", rs.getDouble("hoppers_density_to_m2")); // numeric, --Плотность личинок до м2
// Bands Кулиги
obj.put("bands_density_from_m2", rs.getDouble("bands_density_from_m2")); // numeric, --Плотность минимальная в кулиге м2
obj.put("bands_density_to_m2", rs.getDouble("bands_density_to_m2")); // numeric, --Плотность максимальная в кулиге м2
obj.put("bands_sizes_m2", rs.getDouble("bands_sizes_m2")); // numeric, --Размер кулиг М2
obj.put("bands_number_in_ha", rs.getDouble("bands_number_in_ha")); // numeric, --Количество кулиг Га
obj.put("bands_behavior", rs.getString("bands_behavior")); // character varying, -- Поведение
obj.put("bands_stages", rs.getString("bands_stages")); // character varying, -- Возраст личинок
// Adults Имаго
obj.put("adults_fledging", rs.getString("adults_fledging")); // character varying, -- Окрыление
obj.put("adults_maturity", rs.getBoolean("adults_maturity")); // boolean, -- Половозрелость
obj.put("adults_phase", rs.getString("adults_phase")); // character varying, --Фаза
obj.put("adults_spatial_distribution", rs.getString("adults_spatial_distribution")); // character varying, --Пространственное распределение
obj.put("adults_density_ha", rs.getDouble("adults_density_ha")); // numeric, --Плотность имаго га
obj.put("adults_density_m2", rs.getDouble("adults_density_m2")); // numeric, --Плотность имаго м2
obj.put("adults_roosting", rs.getBoolean("adults_roosting")); // boolean, --Питпние и размещение на растениях
obj.put("adults_copulation", rs.getBoolean("adults_copulation")); // boolean, --Спаривание
obj.put("adults_laying", rs.getBoolean("adults_laying")); // boolean, --Яйцекладка
obj.put("adults_flying", rs.getBoolean("adults_flying")); // boolean, --Полёты
// Swarms Стаи
obj.put("swarms_maturity", rs.getBoolean("swarms_maturity")); // boolean, --Половозрелость
obj.put("swarms_density", rs.getString("swarms_density")); // character varying, --Плотность в стае
obj.put("swarms_size", rs.getDouble("swarms_size")); // numeric, --Размер стаи га
obj.put("swarms_count", rs.getDouble("swarms_count")); // numeric, --Число стай
obj.put("swarms_flying_direction", rs.getString("swarms_flying_direction")); // character varying, --Направление полёта
obj.put("swarms_height", rs.getString("swarms_height")); // character varying, --Высота полёта
// Comment
obj.put("description", rs.getString("description"));
//{"type":"Polygon","coordinates":[[[38.513140949068344,46.51316246698309],[38.51303118002319,46.5020304054714],[38.52109926473999,46.50204517540462],[38.521123203096664,46.513073865446586],[38.513140949068344,46.51316246698309]]]}
array.put(obj);
}
rs.close();
} catch (SQLException ex) {
errorCode=4;
errorCodeDescription+="Внутренняя ошибка сервера, выборка. ";
ex.printStackTrace();
logger.info(ex.getMessage());
}
}
} catch (SQLException ex) {
errorCode=5;
errorCodeDescription+="Внутренняя ошибка сервера, запрос. ";
ex.printStackTrace();
logger.info(ex.getMessage());
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
if(errorCode!=0) {
JSONObject obj = new JSONObject();
obj.put("errorCode",errorCode);
obj.put("errorCodeDescription", errorCodeDescription);
return obj.toString();
}else {
return array.toString();
}
}
//Prepare data for sending to integration servers.
String getDataDel(String token, String timeBegin,String timeEnd,String dateBegin,String dateEnd) {
int errorCode=0;
String errorCodeDescription="";
if(!(
token.equals("DA46DCA8E49D52A12614D4FE4CF4")
|| token.equals("R5375VJERFJKFTGKT8235QFSJHDE")
|| token.equals("QIWGHIEEEEEE732RUEWHDHREU92Z")
|| token.equals("BA46DCA8E49D52A12614D4FE4CF5") //Kzahstan
)) { //Access only for Russians
JSONObject obj = new JSONObject();
obj.put("errorCode",1);
obj.put("errorCodeDescription", "Token is not correct!");
return obj.toString();
}
String db_url="";
String db_login="";
String db_password="";
//Load DB configuration from "config.xml"
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain=doc.getDocumentElement();
NodeList nl=nMain.getChildNodes();
for (int i = 0; i <nl.getLength(); i++)
{
if(nl.item(i).getNodeName().equals("db-url"))
db_url=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-login"))
db_login=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-password"))
db_password=nl.item(i).getTextContent();
}
} catch (Exception e) {
errorCode=2;
errorCodeDescription+="Внутренняя ошибка сервера, настройки. ";
e.printStackTrace();
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
} catch (Exception ex) {
errorCode=3;
errorCodeDescription+="Внутренняя ошибка сервера, база. ";
ex.printStackTrace();
}
JSONArray array=new JSONArray(); //Результирующий набор данных
String sql_query = "";
Statement stt=null;
ResultSet rs=null;
try {
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
sql_query = "select * from main.integration_2(1,?::bigint,?::bigint,TO_TIMESTAMP(?,'YYYY-MM-DD HH24:MI')::timestamp,TO_TIMESTAMP(?,'YYYY-MM-DD HH24:MI')::timestamp);";
//String timeBegin,String timeEnd,String dateBegin,String dateEnd
PreparedStatement stmt=null;
stmt = conn.prepareStatement(sql_query);
stmt.setString(1,timeBegin);
stmt.setString(2,timeEnd);
stmt.setString(3,dateBegin);
stmt.setString(4,dateEnd);
//stmt.execute();
rs = stmt.executeQuery();
//rs = stt.executeQuery(sql_query);
if (rs != null) {
try {
while(rs.next()) {
JSONObject obj = new JSONObject();
obj.put("id", rs.getLong("id"));
obj.put("seq", rs.getLong("seq"));
obj.put("country_name", rs.getString("country_name")); //Страна
obj.put("region_name", rs.getString("region_name")); //Область
obj.put("town_name", rs.getString("town_name")); //Район
obj.put("date", rs.getString("date")); //Дата анкетирования
//obj.put("surveyed_area", rs.getDouble("surveyed_area")); //Обследованная площадь га
int cnt1=0;
//lat_center
if(rs.getString("lat1")!=null && rs.getString("lon1")!=null) cnt1++;
if(rs.getString("lat2")!=null && rs.getString("lon2")!=null) cnt1++;
if(rs.getString("lat3")!=null && rs.getString("lon3")!=null) cnt1++;
if(rs.getString("lat4")!=null && rs.getString("lon4")!=null) cnt1++;
if(rs.getString("lat5")!=null && rs.getString("lon5")!=null) cnt1++;
if(rs.getString("lat6")!=null && rs.getString("lon6")!=null) cnt1++;
boolean point=cnt1<=2;
JSONObject geom = new JSONObject();
if(point) {
geom.put("type","Point");
JSONArray crdSub=new JSONArray();
crdSub.put(rs.getDouble("lon_center"));
crdSub.put(rs.getDouble("lat_center"));
geom.put("coordinates", crdSub);
}else {
geom.put("type","Polygon");
JSONArray crdMain=new JSONArray();
JSONArray crdSub=new JSONArray();
crdMain.put(crdSub);
if(rs.getString("lat1")!=null && rs.getString("lon1")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon1"));
crd.put(rs.getDouble("lat1"));
crdSub.put(crd);
}
if(rs.getString("lat2")!=null && rs.getString("lon2")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon2"));
crd.put(rs.getDouble("lat2"));
crdSub.put(crd);
}
if(rs.getString("lat3")!=null && rs.getString("lon3")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon3"));
crd.put(rs.getDouble("lat3"));
crdSub.put(crd);
}
if(rs.getString("lat4")!=null && rs.getString("lon4")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon4"));
crd.put(rs.getDouble("lat4"));
crdSub.put(crd);
}
if(rs.getString("lat5")!=null && rs.getString("lon5")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon5"));
crd.put(rs.getDouble("lat5"));
crdSub.put(crd);
}
if(rs.getString("lat6")!=null && rs.getString("lon6")!=null) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon6"));
crd.put(rs.getDouble("lat6"));
crdSub.put(crd);
}
geom.put("coordinates", crdMain);
}
obj.put("geom", geom);
obj.put("infested_area", rs.getDouble("infested_area")); //double precision,
obj.put("treated_area", rs.getDouble("treated_area")); //numeric,
obj.put("district", rs.getString("district")); //character varying,
obj.put("village", rs.getString("village")); //character varying,
obj.put("terrain", rs.getString("terrain")); //character varying,
obj.put("observer", rs.getString("observer")); //character varying,
obj.put("vegetation_type_name", rs.getString("vegetation_type_name")); //character varying,
obj.put("vegetation_height", rs.getDouble("vegetation_height")); //real,
obj.put("vegetation_cover_name", rs.getString("vegetation_cover_name")); //character varying,
obj.put("vegetation_crop", rs.getString("vegetation_crop")); //character varying,
obj.put("vegetation_damage_name", rs.getString("vegetation_damage_name")); //character varying,
obj.put("vegetation_damage_area", rs.getDouble("vegetation_damage_area")); //double precision,
obj.put("insecticide_name", rs.getString("insecticide_name")); //character varying,
obj.put("insecticide_active_substance", rs.getString("insecticide_active_substance")); //character varying,
obj.put("insecticide_concentration", rs.getString("insecticide_concentration")); //character varying,
obj.put("insecticide_formulation_name", rs.getString("insecticide_formulation_name")); //character varying,
obj.put("insecticide_dose", rs.getDouble("insecticide_dose")); //numeric,
obj.put("insecticide_rate", rs.getDouble("insecticide_rate")); //numeric,
obj.put("insecticide_used_volume", rs.getDouble("insecticide_used_volume")); //numeric,
obj.put("insecticide_number_spores", rs.getDouble("insecticide_number_spores")); //numeric,
obj.put("weather_time_start", rs.getDouble("weather_time_start")); //real,
obj.put("weather_time_end", rs.getDouble("weather_time_end")); //real,
obj.put("weather_temperature_start", rs.getDouble("weather_temperature_start")); //real,
obj.put("weather_temperature_end", rs.getDouble("weather_temperature_end")); //real,
obj.put("weather_humidity_start", rs.getDouble("weather_humidity_start")); //real,
obj.put("weather_humidity_end", rs.getDouble("weather_humidity_end")); //real,
obj.put("weather_wind_speed_start", rs.getDouble("weather_wind_speed_start")); //real,
obj.put("weather_wind_speed_end", rs.getDouble("weather_wind_speed_end")); //real,
obj.put("weather_direction_start", rs.getString("weather_direction_start")); //character varying,
obj.put("weather_direction_end", rs.getString("weather_direction_end")); //character varying,
obj.put("weather_spray_direction_start", rs.getString("weather_spray_direction_start")); //character varying,
obj.put("weather_spray_direction_end", rs.getString("weather_spray_direction_end")); //character varying,
obj.put("subject_name", rs.getString("subject_name")); //character varying,
obj.put("locust_hoppers_name", rs.getString("locust_hoppers_name")); //character varying,
obj.put("locust_imago", rs.getBoolean("locust_imago")); //boolean,
obj.put("locust_density", rs.getDouble("locust_density")); //real,
obj.put("locust_kuliguli", rs.getBoolean("locust_kuliguli")); //boolean,
obj.put("locust_swarm", rs.getBoolean("locust_swarm")); //boolean,
obj.put("locust_sparse", rs.getBoolean("locust_sparse")); //boolean,
obj.put("locust_phase_name", rs.getString("locust_phase_name")); //character varying,
obj.put("spray_platform_name", rs.getString("spray_platform_name")); //character varying,
obj.put("spray_platform_a_name", rs.getString("spray_platform_a_name")); //character varying,
obj.put("spray_platform_g_name", rs.getString("spray_platform_g_name")); //character varying,
obj.put("spray_platform_h_name", rs.getString("spray_platform_h_name")); //character varying,
obj.put("spray_capacity_name", rs.getString("spray_capacity_name")); //character varying,
obj.put("spray_manufacturer_name", rs.getString("spray_manufacturer_name")); //character varying,
obj.put("spray_model_name", rs.getString("spray_model_name")); //character varying,
obj.put("spray_height", rs.getDouble("spray_height")); //numeric,
obj.put("spray_barrier", rs.getBoolean("spray_barrier")); //boolean,
obj.put("spray_barrier_width", rs.getDouble("spray_barrier_width")); //real,
obj.put("spray_barrier_space", rs.getDouble("spray_barrier_space")); //real,
obj.put("spray_speed", rs.getDouble("spray_speed")); //numeric,
obj.put("spray_gps", rs.getBoolean("spray_gps")); //boolean,
obj.put("spray_marking_name", rs.getString("spray_marking_name")); //character varying,
obj.put("efficacy_mortality", rs.getDouble("efficacy_mortality")); //real,
obj.put("efficacy_passed_time", rs.getDouble("efficacy_passed_time")); //numeric,
obj.put("efficacy_mortality_method_name", rs.getString("efficacy_mortality_method_name")); //character varying,
obj.put("safety_clothing", rs.getString("safety_clothing")); //text,
obj.put("safety_clothing_clean", rs.getBoolean("safety_clothing_clean")); //boolean,
obj.put("safety_operator_health", rs.getBoolean("safety_operator_health")); //boolean,
obj.put("description", rs.getString("description")); //character varying,
obj.put("safety_inform", rs.getString("safety_inform")); //text,
obj.put("safety_container_name", rs.getString("safety_container_name")); //text,
obj.put("safety_non_target", rs.getBoolean("safety_non_target")); //boolean,
obj.put("safety_non_target_effect", rs.getString("safety_non_target_effect")); //character varying,
obj.put("safety_incident", rs.getBoolean("safety_incident")); //boolean,
obj.put("safety_incident_effect", rs.getString("safety_incident_effect")); //character varying,
obj.put("comments", rs.getString("comments")); //character varying
array.put(obj);
}
rs.close();
} catch (SQLException ex) {
errorCode=4;
errorCodeDescription+="Внутренняя ошибка сервера, выборка. ";
ex.printStackTrace();
logger.info(ex.getMessage());
}
}
} catch (SQLException ex) {
errorCode=5;
errorCodeDescription+="Внутренняя ошибка сервера, запрос. ";
ex.printStackTrace();
logger.info(ex.getMessage());
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
if(errorCode!=0) {
JSONObject obj = new JSONObject();
obj.put("errorCode",errorCode);
obj.put("errorCodeDescription", errorCodeDescription);
return obj.toString();
}else {
return array.toString();
}
}
@RequestMapping(value = "/integration/getPhoto", method = RequestMethod.GET,produces = "application/json; charset=utf-8")
@ResponseBody
public Object getPhoto(HttpServletResponse response,@RequestParam(required=true,name="token") String token,@RequestParam(required=true,name="id") Long id)
{
int errorCode=0;
String errorCodeDescription="";
if(!(
token.equals("DA46DCA8E49D52A12614D4FE4CF4")
|| token.equals("R5375VJERFJKFTGKT8235QFSJHDE")
|| token.equals("QIWGHIEEEEEE732RUEWHDHREU92Z")
|| token.equals("BA46DCA8E49D52A12614D4FE4CF5") //Казахстан
)) {
JSONObject obj = new JSONObject();
obj.put("errorCode",1);
obj.put("errorCodeDescription", "Token is not correct!");
return obj.toString();
}
String db_url="";
String db_login="";
String db_password="";
String data_dir = "";
//Load DB configuration from "config.xml"
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain=doc.getDocumentElement();
NodeList nl=nMain.getChildNodes();
for (int i = 0; i <nl.getLength(); i++)
{
if(nl.item(i).getNodeName().equals("db-url"))
db_url=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-login"))
db_login=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-password"))
db_password=nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("data-dir"))
data_dir = nl.item(i).getTextContent();
}
} catch (Exception e) {
errorCode=2;
errorCodeDescription+="Внутренняя ошибка сервера, настройки. ";
e.printStackTrace();
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
} catch (Exception ex) {
errorCode=3;
errorCodeDescription+="Внутренняя ошибка сервера, база. ";
ex.printStackTrace();
}
JSONArray array=new JSONArray(); //Результирующий набор данных
String image_name1=null,image_name2=null,image_name3=null;
String sql_query = "";
Statement stt=null;
ResultSet rs=null;
try {
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
sql_query = "select id,image_name1,image_name2,image_name3 from main.frmlocust where id="+String.valueOf(id);
rs = stt.executeQuery(sql_query);
if (rs != null) {
try {
while(rs.next()) {
image_name1=rs.getString("image_name1");
image_name2=rs.getString("image_name2");
image_name3=rs.getString("image_name3");
}
rs.close();
} catch (SQLException ex) {
errorCode=3;
errorCodeDescription+="Внутренняя ошибка сервера (поля). ";
ex.printStackTrace();
}
}
} catch (SQLException ex) {
errorCode=3;
errorCodeDescription+="Внутренняя ошибка сервера, запрос. ";
ex.printStackTrace();
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
if(image_name1!=null) {
String data = getBase64FromFile(data_dir+"data/frmlocust/"+image_name1);
if(data!=null) { //Удалось найти файл локально
JSONObject obj = new JSONObject();
obj.put("name", image_name1);
obj.put("data", data);
array.put(obj);
}else { //Пытаемся найти на другом сервера
data=getBase64FromURL("http://data.ccalm.org/photo/?table=frmlocust&file="+image_name1);
if(data!=null) { //Если скачали с удаленного сервера
JSONObject obj = new JSONObject();
obj.put("name", image_name1);
obj.put("data", data);
array.put(obj);
}
}
}
if(image_name2!=null) {
String data = getBase64FromFile(data_dir+"data/frmlocust/"+image_name2);
if(data!=null) { //Удалось найти файл локально
JSONObject obj = new JSONObject();
obj.put("name", image_name1);
obj.put("data", data);
array.put(obj);
}else { //Пытаемся найти на другом сервера
data=getBase64FromURL("http://data.ccalm.org/photo/?table=frmlocust&file="+image_name2);
if(data!=null) { //Если скачали с удаленного сервера
JSONObject obj = new JSONObject();
obj.put("name", image_name1);
obj.put("data", data);
array.put(obj);
}
}
}
if(image_name3!=null) {
String data = getBase64FromFile(data_dir+"data/frmlocust/"+image_name3);
if(data!=null) { //Удалось найти файл локально
JSONObject obj = new JSONObject();
obj.put("name", image_name1);
obj.put("data", data);
array.put(obj);
}else { //Пытаемся найти на другом сервера
data=getBase64FromURL("http://data.ccalm.org/photo/?table=frmlocust&file="+image_name3);
if(data!=null) { //Если скачали с удаленного сервера
JSONObject obj = new JSONObject();
obj.put("name", image_name1);
obj.put("data", data);
array.put(obj);
}
}
}
if(errorCode!=0) {
JSONObject obj = new JSONObject();
obj.put("errorCode",errorCode);
obj.put("errorCodeDescription", errorCodeDescription);
return obj.toString();
}else {
return array.toString();
}
}
@Override
public void setServletContext(ServletContext servletContext) {
this.context=servletContext;
}
public String getBase64FromFile(String fName) {
String result=null;
File file = new File(fName);
if(file.exists()) {
try {
byte fileData[] = new byte[(int) file.length()];
try (FileInputStream imageInFile = new FileInputStream(file)) {
imageInFile.read(fileData);
}
result=Base64.getEncoder().encodeToString(fileData);
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
}
return result;
}
public String getBase64FromURL(String strURL) {
String result=null;
try
{
URL url = new URL(strURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.connect();
int responseCode = conn.getResponseCode();
if (responseCode / 100 == 2) //Code 206 is "Partial Content"
{
InputStream inputStream = conn.getInputStream();
int bytesRead;
byte[] buffer = new byte[BUFFER_SIZE];
while ((bytesRead = inputStream.read(buffer)) != -1) {
if(result==null) result="";
byte[] encoded = Base64.getEncoder().encode(Tools.subArray(buffer, 0, bytesRead));
result+=new String(encoded);
}
inputStream.close();
}
conn.disconnect();
}
catch (IOException e)
{
}
return result;
}
}

View File

@ -0,0 +1,354 @@
package kz.locust.CCALM;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.CacheControl;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.multipart.MultipartFile;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import tools.User;
/**
* Handles requests for the application home page.
*/
@Controller
@SessionAttributes( { "user" })
public class Main implements ServletContextAware {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private ServletContext context;
private Properties m_props=null;
@Override
public void setServletContext(ServletContext context){
this.context=context;
}
//If not created object "user", create him.
@ModelAttribute("user")
public User populatePerson() {
return new User("none");
}
/**
* Simply selects the home view to render by returning its name.
*/
/*@RequestMapping(value = "/test", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
//Date date = new Date();
//DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
//String formattedDate = dateFormat.format(date);
//model.addAttribute("serverTime", formattedDate );
return "index";
}*/
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/privacy", method = RequestMethod.GET)
public String privacy(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
/*Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );*/
return "privacy";
}
@RequestMapping(value = "/robots.txt")
public void robots(HttpServletResponse response) {
try {
response.getWriter().write("User-agent: *\n");
response.getWriter().write("Disallow: /engine/\n");
response.getWriter().write("Disallow: /resources/\n");
response.getWriter().write("Disallow: /test\n");
response.getWriter().write("Sitemap: https://ccalm.org/sitemap.xml\n");
response.getWriter().write("Host: https://ccalm.org\n");
} catch (IOException e) {
logger.info(e.getMessage());
}
}
@RequestMapping(value = "/sitemap.xml")
public void sitemap(HttpServletResponse response) {
try {
response.getWriter().write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n"
+ " <url>\n"
+ " <loc>https://ccalm.org</loc>\n"
+ " </url>\n"
+ "</urlset>\n");
} catch (IOException e) {
logger.info(e.getMessage());
}
}
/**
* Testing new main index page
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home2(@ModelAttribute User user, Model model,@RequestParam(required=false,name="lng") String language_id) {
//logger.info("Welcome home! The client locale is {}.", locale);
if(language_id!=null && !language_id.equals("")) user.language_id=language_id;
logger.info("user.id="+user.id+" user.name="+user.name+" user.language_id="+user.language_id);
String db_url="";
String db_login="";
String db_password="";
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain=doc.getDocumentElement();
NodeList nl=nMain.getChildNodes();
for (int i = 0; i <nl.getLength(); i++)
{
if(nl.item(i).getNodeName().equals("db-url"))
db_url=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-login"))
db_login=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-password"))
db_password=nl.item(i).getTextContent();
}
} catch (Exception e) {
e.printStackTrace();
}
//Get language from database
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
System.out.println("Connect is OK!");
}else
{
System.out.println("<br>Connect is ERROR<br>");
}
}catch(Exception e)
{
System.out.println("<br>Connect Exception:"+e.getMessage()+"<br>");
}
try {
Statement st = conn.createStatement();
ResultSet rs=null;
if(user.id!=null){
if(language_id!=null && !language_id.equals(""))
{
//Set the language for the current user if it is transferred.
user.language_id=language_id;
try {
st.execute("update main._users set language_id='"+user.language_id+"' where id="+user.id);
} catch( SQLException ex )
{
System.out.println("<br>SQLException:"+ex.getMessage()+"<br>");
}
}
//Select language for current user
try {
String sql="select language_id,country_id from main._users u where u.id="+String.valueOf(user.id)+";";
rs = st.executeQuery(sql);
} catch( SQLException ex )
{
System.out.println("<br>SQLException:"+ex.getMessage()+"<br>");
}
if(rs!=null)
{
while (rs.next())
{
user.language_id = rs.getString("language_id");
user.country_id = rs.getString("country_id");
}
}
}
st.close();
} catch( SQLException ex )
{
System.out.println("<br>SQLException:"+ex.getMessage()+"<br>");
}
//Send user name and role
model.addAttribute("uName",user.name+" ("+user.role+")");
model.addAttribute("m_locale",user.language_id);
model.addAttribute("country_id",user.country_id);
//Для перевода выбираю всё что под номером 1 в переводе
try {
m_props = new Properties();
Statement stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql_query = "select identifier,case when '"+user.language_id+"'='666' then translation||'''\"' else translation end as translation from main._translations t where t.del=false and (t.language_id='"+user.language_id+"' or ('"+user.language_id+"'='666' and t.language_id=1)) and translation_type_id=1;";
ResultSet rs = stt.executeQuery(sql_query);
if (rs != null) {
while (rs.next())
{
String identifier = rs.getString("identifier");
String translation = rs.getString("translation");
m_props.setProperty(identifier, translation);
}
rs.close();
}
stt.close();
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
Set<Object> keys = m_props.keySet();
for(Object k:keys){
String key = (String)k;
String val="";
if(val.equals(""))
{
val = m_props.getProperty(key,"");
if(val.equals(""))
{
val = val.replaceAll("_", " ");
}
}
model.addAttribute(key,val);
}
try{ conn.close(); }catch(Exception e){}
return "index";
//return "test";
}
//Returns data for building a map on the first index page
@RequestMapping(value = "/dataindex",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json; charset=utf-8")
@ResponseBody
public Object ajaxIndexData(HttpServletResponse response,@ModelAttribute User user,@RequestParam(required=false,name="date_start",defaultValue = "null") String date_start,@RequestParam(required=false,name="date_end",defaultValue = "null") String date_end, @RequestParam(required=false,name="lng") String language_id) {
String headerValue = CacheControl.maxAge(60, TimeUnit.SECONDS).getHeaderValue();
response.addHeader("Cache-Control", headerValue);
JSONObject result = new JSONObject();
JSONArray array=new JSONArray();
String db_url="";
String db_login="";
String db_password="";
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain=doc.getDocumentElement();
NodeList nl=nMain.getChildNodes();
for (int i = 0; i <nl.getLength(); i++)
{
if(nl.item(i).getNodeName().equals("db-url"))
db_url=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-login"))
db_login=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-password"))
db_password=nl.item(i).getTextContent();
}
} catch (Exception e) {
e.printStackTrace();
}
//Connect to database
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
System.out.println("Connect is OK!");
}else
{
System.out.println("<br>Connect is ERROR<br>");
}
}catch(Exception e)
{
System.out.println("<br>Connect Exception:"+e.getMessage()+"<br>");
}
String sql;
sql = "select * from main.p_dataindex(to_timestamp("+date_start+")::timestamp without time zone,to_timestamp("+date_end+")::timestamp without time zone);";
ResultSet rs = null;
try {
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
logger.info(ex.getMessage());
ex.printStackTrace();
}
try {
while (rs.next()) {
JSONObject rsRez = new JSONObject();
rsRez.put("id",rs.getInt("id"));
rsRez.put("lon",rs.getDouble("lon"));
rsRez.put("lat",rs.getDouble("lat"));
rsRez.put("type",rs.getInt("type"));
rsRez.put("terrain",rs.getString("terrain"));
array.put(rsRez);
}
} catch (SQLException ex) {
logger.info(ex.getMessage());
ex.printStackTrace();
}
result.put("ErrorCode", "0");
result.put("ErrorMessage", "");
result.put("data", array);
if(conn!=null)
{
try {
conn.close();
} catch (SQLException e) {
}
}
return result.toString();
}
}

View File

@ -0,0 +1,697 @@
package kz.locust.CCALM;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.json.JSONObject;
import org.json.JSONArray;
import org.json.JSONException;
import tools.PreparedStatementNamed;
import tools.User;
@Controller
@SessionAttributes( { "user" }) //Сесионный объект
public class Products implements ServletContextAware {
private static final Logger logger = LoggerFactory.getLogger(Products.class);
private ServletContext context;
//If not created object "user", create him.
@ModelAttribute("user")
public User populatePerson() {
return new User("none");
}
@RequestMapping(value = "/get_survey",method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
public String getLocustSurvey(@ModelAttribute User user,@RequestBody(required=false) byte[] reqData,@RequestParam(required=false,name="lng") String language_id) {
int errorCode=0;
String errorMessage="";
//Load configuration from "config.xml"
String db_url = "";
String db_login = "";
String db_password = "";
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
}
} catch (Exception ex) {
errorCode=1;
errorMessage+="Internal server error, settings.";
logger.info(ex.getMessage());
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
if (conn != null) {
logger.info("Connect is OK!");
} else {
errorCode=1;
errorMessage+="An error occurred while connecting to the database!";
}
} catch (Exception ex) {
logger.info(ex.getMessage());
errorCode=1;
errorMessage+="An error occurred while connecting to the database!";
}
try {
Statement stt0 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
//st.executeUpdate("SET TIME ZONE 'UTC';"); зачем коментил?
stt0.executeUpdate("SET TIME ZONE 'Asia/Almaty';"); //Зачем раскоментил? может в начале поставить ещё TimeZone.setDefault(TimeZone.getTimeZone("UTC")); ?
stt0.close();
} catch (SQLException ex) {
logger.info(ex.getMessage());
errorCode=1;
errorMessage+="Failed to execute SQL query!";
}
JSONObject doc=null;
InputStream body;
if(reqData!=null) {
body = new ByteArrayInputStream(reqData);
String text="";
try {
text = new String(body.readAllBytes(), StandardCharsets.UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
logger.info(text);
//JSONParser jsonParser = new JSONParser();
//doc = (JSONObject)jsonParser.parse(text);
//doc = new JSONObject(body);
doc = new JSONObject(text);
}
JSONArray array=new JSONArray(); //Результирующий набор данных
String sql_query = "";
Statement stt=null;
ResultSet rs=null;
try {
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
sql_query = "select id,"
+ " lat1,"
+ " lon1,"
+ " lat2,"
+ " lon2,"
+ " lat3,"
+ " lon3,"
+ " lat4,"
+ " lon4,"
+ " lat5,"
+ " lon5,"
+ " lat6,"
+ " lon6,"
+ " terrain,"
+ " locust_populated,"
+ " eggs_capsules_density,"
+ " eggs_capsules_density_to,"
+ " imago_density,"
+ " larva_density,"
+ " larva_density_to,"
+ " kuliguli_size,"
+ " CASE swarm_maturity WHEN true THEN 1 WHEN false THEN 0 ELSE null END as swarm_maturity,"
+ " swarm_density_id,"
+ " ST_AsGeoJSON(geom) as geom"
+ " from main.frmlocust fl where"
+ " fl.del=false"
+ " and (${country_id} is null or (${country_id}=-1 and fl.country_id in (7,3,4,2)) or (${country_id}=-2 and fl.country_id in (7,1,5,6,8,9,10)) or ${country_id}=fl.country_id)"
+ " and (${region_id} is null or ${region_id}=fl.region_id)"
+ " and (${locust_type_id} is null or ${locust_type_id}=fl.locust_type_id)"
+ " and (${date_start} is null or to_timestamp(${date_start})<=fl.date)"
+ " and (${date_end} is null or to_timestamp(${date_end})>=fl.date)"
+ " and (${device_id} is null or (${device_id} and fl.device_id is not null) or (not ${device_id} and fl.device_id is null))"
+ " and (${registered} is null or (${registered} and (fl.device_id is null or fl.device_id in (select serial from main.terminals where del=false))) or (not ${registered} and (fl.device_id not in (select serial from main.terminals where del=false))))"
+ " and ((${test} is null and (test!=true or test is null)) or ${test}=fl.test)"
+ " order by fl.id desc;";
PreparedStatementNamed stmtn = new PreparedStatementNamed(conn, sql_query);
if(doc!=null) {
stmtn.setInt("_user_id", Integer.parseInt(user.id));
if(doc.isNull("country_id")) stmtn.setNULLInt("country_id");
else stmtn.setInt("country_id",doc.getInt("country_id"));
if(doc.isNull("region_id")) stmtn.setNULLInt("region_id");
else stmtn.setInt("region_id",doc.getInt("region_id"));
if(doc.isNull("locust_type_id")) stmtn.setNULLInt("locust_type_id");
else stmtn.setInt("locust_type_id",doc.getInt("locust_type_id"));
if(doc.isNull("date_start")) stmtn.setNULLInt("date_start");
else stmtn.setInt("date_start",doc.getInt("date_start"));
if(doc.isNull("date_end")) stmtn.setNULLInt("date_end");
else stmtn.setInt("date_end",doc.getInt("date_end"));
if(doc.isNull("device_id")) stmtn.setNULLBoolean("device_id");
else stmtn.setBoolean("device_id",doc.getInt("device_id"));
if(doc.isNull("registered")) stmtn.setNULLBoolean("registered");
else stmtn.setBoolean("registered",doc.getInt("registered"));
if(doc.isNull("test")) stmtn.setNULLBoolean("test");
else stmtn.setBoolean("test",doc.getInt("test"));
}
PreparedStatement stmt=stmtn.getPreparedStatement();
rs = stmt.executeQuery();
if (rs != null) {
try {
while(rs.next()) {
JSONObject obj = new JSONObject();
obj.put("id", rs.getLong("id"));
if(rs.getObject("terrain")!=null)
obj.put("terrain", rs.getString("terrain"));
if(rs.getObject("locust_populated")!=null)
obj.put("locust_populated", rs.getFloat("locust_populated"));
if(rs.getObject("eggs_capsules_density")!=null)
obj.put("eggs_capsules_density", rs.getFloat("eggs_capsules_density"));
if(rs.getObject("eggs_capsules_density_to")!=null)
obj.put("eggs_capsules_density_to", rs.getFloat("eggs_capsules_density_to"));
if(rs.getObject("imago_density")!=null)
obj.put("imago_density", rs.getFloat("imago_density"));
if(rs.getObject("larva_density")!=null)
obj.put("larva_density", rs.getFloat("larva_density"));
if(rs.getObject("larva_density_to")!=null)
obj.put("larva_density_to", rs.getFloat("larva_density_to"));
if(rs.getObject("kuliguli_size")!=null)
obj.put("kuliguli_size", rs.getFloat("kuliguli_size"));
if(rs.getObject("swarm_maturity")!=null)
obj.put("swarm_maturity", rs.getString("swarm_maturity"));
if(rs.getObject("swarm_density_id")!=null)
obj.put("swarm_density_id", rs.getInt("swarm_density_id"));
//obj.put("town_name", rs.getString("town_name")); //Район
//obj.put("date", rs.getString("date")); //Дата анкетирования
//obj.put("surveyed_area", rs.getDouble("surveyed_area")); //Обследованная площадь га
double lat=0;
double lon=0;
int cnt1=0;
if(rs.getString("lat1")!=null && rs.getString("lon1")!=null && rs.getFloat("lat1")!=0 && rs.getFloat("lon1")!=0) {
lat+=rs.getDouble("lat1");
lon+=rs.getDouble("lon1");
cnt1++;
}
if(rs.getString("lat2")!=null && rs.getString("lon2")!=null && rs.getFloat("lat2")!=0 && rs.getFloat("lon2")!=0) {
lat+=rs.getDouble("lat2");
lon+=rs.getDouble("lon2");
cnt1++;
}
if(rs.getString("lat3")!=null && rs.getString("lon3")!=null && rs.getFloat("lat3")!=0 && rs.getFloat("lon3")!=0) {
lat+=rs.getDouble("lat3");
lon+=rs.getDouble("lon3");
cnt1++;
}
if(rs.getString("lat4")!=null && rs.getString("lon4")!=null && rs.getFloat("lat4")!=0 && rs.getFloat("lon4")!=0) {
lat+=rs.getDouble("lat4");
lon+=rs.getDouble("lon4");
cnt1++;
}
if(rs.getString("lat5")!=null && rs.getString("lon5")!=null && rs.getFloat("lat5")!=0 && rs.getFloat("lon5")!=0) {
lat+=rs.getDouble("lat5");
lon+=rs.getDouble("lon5");
cnt1++;
}
if(rs.getString("lat6")!=null && rs.getString("lon6")!=null && rs.getFloat("lat6")!=0 && rs.getFloat("lon6")!=0) {
lat+=rs.getDouble("lat6");
lon+=rs.getDouble("lon6");
cnt1++;
}
if(cnt1>0) {
lat=lat/cnt1;
lon=lon/cnt1;
}
obj.put("lat", lat);
obj.put("lon", lon);
boolean point=cnt1<=2;
JSONObject geom = null;
if(rs.getString("geom")!=null)
{
try {
geom = new JSONObject(rs.getString("geom"));
}catch (JSONException err){
}
}else {
if(point) {
/*geom = new JSONObject();
geom.put("type","Point");
JSONArray crdSub=new JSONArray();
crdSub.put(rs.getDouble("lon1"));
crdSub.put(rs.getDouble("lat1"));
geom.put("coordinates", crdSub);*/
}else {
geom = new JSONObject();
geom.put("type","Polygon");
JSONArray crdMain=new JSONArray();
JSONArray crdSub=new JSONArray();
crdMain.put(crdSub);
if(rs.getString("lat1")!=null && rs.getString("lon1")!=null && rs.getFloat("lat1")!=0 && rs.getFloat("lon1")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon1"));
crd.put(rs.getDouble("lat1"));
crdSub.put(crd);
}
if(rs.getString("lat2")!=null && rs.getString("lon2")!=null && rs.getFloat("lat2")!=0 && rs.getFloat("lon2")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon2"));
crd.put(rs.getDouble("lat2"));
crdSub.put(crd);
}
if(rs.getString("lat3")!=null && rs.getString("lon3")!=null && rs.getFloat("lat3")!=0 && rs.getFloat("lon3")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon3"));
crd.put(rs.getDouble("lat3"));
crdSub.put(crd);
}
if(rs.getString("lat4")!=null && rs.getString("lon4")!=null && rs.getFloat("lat4")!=0 && rs.getFloat("lon4")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon4"));
crd.put(rs.getDouble("lat4"));
crdSub.put(crd);
}
if(rs.getString("lat5")!=null && rs.getString("lon5")!=null && rs.getFloat("lat5")!=0 && rs.getFloat("lon5")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon5"));
crd.put(rs.getDouble("lat5"));
crdSub.put(crd);
}
if(rs.getString("lat6")!=null && rs.getString("lon6")!=null && rs.getFloat("lat6")!=0 && rs.getFloat("lon6")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon6"));
crd.put(rs.getDouble("lat6"));
crdSub.put(crd);
}
geom.put("coordinates", crdMain);
}
}
if(geom!=null)
obj.put("geom", geom);
array.put(obj);
}
rs.close();
} catch (SQLException ex) {
errorCode=4;
errorMessage+="Internal server error, sampling.";
ex.printStackTrace();
logger.info(ex.getMessage());
}
}
} catch (SQLException ex) {
errorCode=5;
errorMessage+="Внутренняя ошибка сервера, запрос. ";
ex.printStackTrace();
logger.info(ex.getMessage());
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
if(errorCode!=0) {
JSONObject obj = new JSONObject();
obj.put("errorCode",errorCode);
obj.put("errorMessage", errorMessage);
return obj.toString();
}else {
JSONObject obj = new JSONObject();
obj.put("errorCode",0);
obj.put("errorMessage", "");
if(doc!=null)
obj.put("indicator",doc.getString("indicator"));
obj.put("data",array);
return obj.toString();
}
}
@RequestMapping(value = "/get_spray",method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
@ResponseBody
public String getSprayMonitoring(@ModelAttribute User user,@RequestBody byte[] reqData,@RequestParam(required=false,name="lng") String language_id) {
int errorCode=0;
String errorMessage="";
//Load configuration from "config.xml"
String db_url = "";
String db_login = "";
String db_password = "";
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
}
} catch (Exception ex) {
errorCode=1;
errorMessage+="Internal server error, settings.";
logger.info(ex.getMessage());
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
if (conn != null) {
logger.info("Connect is OK!");
} else {
errorCode=1;
errorMessage+="An error occurred while connecting to the database!";
}
} catch (Exception ex) {
logger.info(ex.getMessage());
errorCode=1;
errorMessage+="An error occurred while connecting to the database!";
}
try {
Statement stt0 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
//st.executeUpdate("SET TIME ZONE 'UTC';"); зачем коментил?
stt0.executeUpdate("SET TIME ZONE 'Asia/Almaty';");
stt0.close();
} catch (SQLException ex) {
logger.info(ex.getMessage());
errorCode=1;
errorMessage+="Failed to execute SQL query!";
}
JSONObject doc=null;
InputStream body;
if(reqData!=null) {
body = new ByteArrayInputStream(reqData);
String text="";
try {
text = new String(body.readAllBytes(), StandardCharsets.UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
logger.info(text);
//JSONParser jsonParser = new JSONParser();
//doc = (JSONObject)jsonParser.parse(text);
//doc = new JSONObject(body);
doc = new JSONObject(text);
}
JSONArray array=new JSONArray(); //Результирующий набор данных
String sql_query = "";
Statement stt=null;
ResultSet rs=null;
try {
stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
sql_query = "select id,"
+ " lat_center,"
+ " lon_center,"
+ " lat1,"
+ " lon1,"
+ " lat2,"
+ " lon2,"
+ " lat3,"
+ " lon3,"
+ " lat4,"
+ " lon4,"
+ " lat5,"
+ " lon5,"
+ " lat6,"
+ " lon6,"
+ " terrain,"
+ " treated_area,"
+ " infested_area,"
+ " ST_AsGeoJSON(geom) as geom"
+ " from main.frmlocustdel fld where"
+ " fld.del=false"
+ " and (${country_id} is null or (${country_id}=-1 and fld.country_id in (7,3,4,2)) or (${country_id}=-2 and fld.country_id in (7,1,5,6,8,9,10)) or ${country_id}=fld.country_id)"
+ " and (${region_id} is null or ${region_id}=fld.region_id)"
+ " and (${date_start} is null or to_timestamp(${date_start})<=fld.date)"
+ " and (${date_end} is null or to_timestamp(${date_end})>=fld.date)"
+ " and (${device_id} is null or (${device_id} and fld.device_id is not null) or (not ${device_id} and fld.device_id is null))"
+ " and (${registered} is null or (${registered} and (fld.device_id is null or fld.device_id in (select serial from main.terminals where del=false))) or (not ${registered} and (fld.device_id not in (select serial from main.terminals where del=false))))"
+ " and ((${test} is null and (test!=true or test is null)) or ${test}=fld.test)"
+ " order by fld.id desc;";
PreparedStatementNamed stmtn = new PreparedStatementNamed(conn, sql_query);
if(doc!=null) {
stmtn.setInt("_user_id", Integer.parseInt(user.id));
if(doc.isNull("country_id")) stmtn.setNULLInt("country_id");
else stmtn.setInt("country_id",doc.getInt("country_id"));
if(doc.isNull("region_id")) stmtn.setNULLInt("region_id");
else stmtn.setInt("region_id",doc.getInt("region_id"));
if(doc.isNull("locust_type_id")) stmtn.setNULLInt("locust_type_id");
else stmtn.setInt("locust_type_id",doc.getInt("locust_type_id"));
if(doc.isNull("date_start")) stmtn.setNULLInt("date_start");
else stmtn.setInt("date_start",doc.getInt("date_start"));
if(doc.isNull("date_end")) stmtn.setNULLInt("date_end");
else stmtn.setInt("date_end",doc.getInt("date_end"));
if(doc.isNull("device_id")) stmtn.setNULLBoolean("device_id");
else stmtn.setBoolean("device_id",doc.getInt("device_id"));
if(doc.isNull("registered")) stmtn.setNULLBoolean("registered");
else stmtn.setBoolean("registered",doc.getInt("registered"));
if(doc.isNull("test")) stmtn.setNULLBoolean("test");
else stmtn.setBoolean("test",doc.getInt("test"));
}
PreparedStatement stmt=stmtn.getPreparedStatement();
rs = stmt.executeQuery();
if (rs != null) {
try {
while(rs.next()) {
JSONObject obj = new JSONObject();
obj.put("id", rs.getLong("id"));
if(rs.getObject("terrain")!=null)
obj.put("terrain", rs.getString("terrain"));
if(rs.getObject("treated_area")!=null)
obj.put("treated_area", rs.getFloat("treated_area"));
if(rs.getObject("infested_area")!=null)
obj.put("infested_area", rs.getFloat("infested_area"));
double lat=0;
double lon=0;
int cnt1=0;
if(rs.getString("lat1")!=null && rs.getString("lon1")!=null && rs.getFloat("lat1")!=0 && rs.getFloat("lon1")!=0) {
lat+=rs.getDouble("lat1");
lon+=rs.getDouble("lon1");
cnt1++;
}
if(rs.getString("lat2")!=null && rs.getString("lon2")!=null && rs.getFloat("lat2")!=0 && rs.getFloat("lon2")!=0) {
lat+=rs.getDouble("lat2");
lon+=rs.getDouble("lon2");
cnt1++;
}
if(rs.getString("lat3")!=null && rs.getString("lon3")!=null && rs.getFloat("lat3")!=0 && rs.getFloat("lon3")!=0) {
lat+=rs.getDouble("lat3");
lon+=rs.getDouble("lon3");
cnt1++;
}
if(rs.getString("lat4")!=null && rs.getString("lon4")!=null && rs.getFloat("lat4")!=0 && rs.getFloat("lon4")!=0) {
lat+=rs.getDouble("lat4");
lon+=rs.getDouble("lon4");
cnt1++;
}
if(rs.getString("lat5")!=null && rs.getString("lon5")!=null && rs.getFloat("lat5")!=0 && rs.getFloat("lon5")!=0) {
lat+=rs.getDouble("lat5");
lon+=rs.getDouble("lon5");
cnt1++;
}
if(rs.getString("lat6")!=null && rs.getString("lon6")!=null && rs.getFloat("lat6")!=0 && rs.getFloat("lon6")!=0) {
lat+=rs.getDouble("lat6");
lon+=rs.getDouble("lon6");
cnt1++;
}
//lat=lat/cnt1;
//lon=lon/cnt1;
lat=rs.getDouble("lat_center");
lon=rs.getDouble("lon_center");
obj.put("lat", lat);
obj.put("lon", lon);
boolean point=cnt1<=2;
JSONObject geom = null;
if(rs.getString("geom")!=null)
{
try {
geom = new JSONObject(rs.getString("geom"));
}catch (JSONException err){
}
}else {
if(point) {
/*geom = new JSONObject();
geom.put("type","Point");
JSONArray crdSub=new JSONArray();
crdSub.put(rs.getDouble("lon1"));
crdSub.put(rs.getDouble("lat1"));
geom.put("coordinates", crdSub);*/
}else {
geom = new JSONObject();
geom.put("type","Polygon");
JSONArray crdMain=new JSONArray();
JSONArray crdSub=new JSONArray();
crdMain.put(crdSub);
if(rs.getString("lat1")!=null && rs.getString("lon1")!=null && rs.getFloat("lat1")!=0 && rs.getFloat("lon1")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon1"));
crd.put(rs.getDouble("lat1"));
crdSub.put(crd);
}
if(rs.getString("lat2")!=null && rs.getString("lon2")!=null && rs.getFloat("lat2")!=0 && rs.getFloat("lon2")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon2"));
crd.put(rs.getDouble("lat2"));
crdSub.put(crd);
}
if(rs.getString("lat3")!=null && rs.getString("lon3")!=null && rs.getFloat("lat3")!=0 && rs.getFloat("lon3")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon3"));
crd.put(rs.getDouble("lat3"));
crdSub.put(crd);
}
if(rs.getString("lat4")!=null && rs.getString("lon4")!=null && rs.getFloat("lat4")!=0 && rs.getFloat("lon4")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon4"));
crd.put(rs.getDouble("lat4"));
crdSub.put(crd);
}
if(rs.getString("lat5")!=null && rs.getString("lon5")!=null && rs.getFloat("lat5")!=0 && rs.getFloat("lon5")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon5"));
crd.put(rs.getDouble("lat5"));
crdSub.put(crd);
}
if(rs.getString("lat6")!=null && rs.getString("lon6")!=null && rs.getFloat("lat6")!=0 && rs.getFloat("lon6")!=0) {
JSONArray crd=new JSONArray();
crd.put(rs.getDouble("lon6"));
crd.put(rs.getDouble("lat6"));
crdSub.put(crd);
}
geom.put("coordinates", crdMain);
}
}
if(geom!=null)
obj.put("geom", geom);
array.put(obj);
}
rs.close();
} catch (SQLException ex) {
errorCode=4;
errorMessage+="Internal server error, sampling.";
ex.printStackTrace();
logger.info(ex.getMessage());
}
}
} catch (SQLException ex) {
errorCode=5;
errorMessage+="Внутренняя ошибка сервера, запрос. ";
ex.printStackTrace();
logger.info(ex.getMessage());
}finally {
if(rs!=null) try{rs.close();}catch(SQLException ex){}
if(stt!=null) try{stt.close();}catch(SQLException ex){}
}
if(errorCode!=0) {
JSONObject obj = new JSONObject();
obj.put("errorCode",errorCode);
obj.put("errorMessage", errorMessage);
return obj.toString();
}else {
JSONObject obj = new JSONObject();
obj.put("errorCode",0);
obj.put("errorMessage", "");
obj.put("data",array);
return obj.toString();
}
}
@Override
public void setServletContext(ServletContext servletContext) {
this.context=servletContext;
}
}

View File

@ -0,0 +1,498 @@
package kz.locust.CCALM;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import tctable.Tools;
import tools.User;
@Controller
@SessionAttributes( { "user" })
public class QGIS implements ServletContextAware {
private static final Logger logger = LoggerFactory.getLogger(QGIS.class);
private ServletContext context;
private Properties m_props=null;
private String m_props_loc="";
public String m_locale="ru";
//If not created object "user", create him.
@ModelAttribute("user")
public User populatePerson() {
return new User("none");
}
@RequestMapping(value = "/QGIS",method = RequestMethod.GET,produces = "application/octet-stream")
@ResponseBody
public HttpEntity<byte[]> ajaxTamer(@ModelAttribute User user,@RequestParam(required=false,name="day") String day,@RequestParam(required=false,name="name") String name,@RequestParam(required=false,name="time") String time,@RequestParam(required=false,name="time_start") String time_start,@RequestParam(required=false,name="time_end") String time_end,@RequestParam(required=false,name="country_id") String country_id,@RequestParam(required=false,name="locust_type_id") String locust_type_id,@RequestParam(required=false,name="date_start") String date_start,@RequestParam(required=false,name="date_end") String date_end,@RequestParam(required=false,name="registered") String registered,@RequestParam(required=false,name="year") String year,@RequestParam(required=false,name="region_id") String region_id,@RequestParam(required=false,name="country_name") String country_name,@RequestParam(required=false,name="lng") String language_id,HttpServletResponse response)
{
if(language_id!=null && !language_id.equals("")) user.language_id=language_id;
logger.info("user.id="+user.id+" user.name="+user.name+" user.language_id="+user.language_id);
m_locale=user.language_id;
String db_url = "";
String db_login = "";
String db_password = "";
//Load DB configuration from "config.xml"
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
}
} catch (Exception ex) {
logger.info(ex.getMessage());
}
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url, db_login, db_password);
if (conn != null) {
logger.info("Connect is OK!");
}
} catch (Exception ex) {
logger.info(ex.getMessage());
}
//Return content QGIS file.
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename="+name+".qgs");
String fileAsString="";
//Pods (кубышки)
if(name!=null && (name.equals("frmlocust_pods_density") || name.equals("frmlocust_hoppers_density") || name.equals("frmlocust_bands") || name.equals("frmlocust_adults_density") || name.equals("frmlocust_swarms")))
{
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs"));
//String country_id=request.getParameter("country_id");
//String locust_type_id=request.getParameter("locust_type_id");
//String date_start=request.getParameter("date_start");
//String date_end=request.getParameter("date_end");
//String registered=request.getParameter("registered");
//Make SQL
String sql = "1=1";
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
if(country_id.equals("-1"))
{
sql+=" and country_id in (7,3,4,2)";
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql+=" and country_id in (7,1,5,6,8,9,10)";
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql+=" and country_id="+country_id;
sql2+=" and country_id="+country_id;
}
}
if(locust_type_id!=null && !locust_type_id.equals(""))
{
sql+=" and locust_type_id="+locust_type_id;
}
if(date_start!=null && !date_start.equals(""))
{
sql+=" and date>='"+date_start+"'";
}
if(date_end!=null && !date_end.equals(""))
{
sql+=" and date&lt;='"+date_end+"'";
}
if(registered!=null && registered.equals("1"))
{
sql+=" and registered=true";
}else
if(registered!=null && registered.equals("0"))
{
sql+=" and registered=false";
}
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
}
if(name!=null && name.equals("frmlocustdel"))
{
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs"));
//String country_id=request.getParameter("country_id");
//String date_start=request.getParameter("date_start");
//String date_end=request.getParameter("date_end");
//String registered=request.getParameter("registered");
//Make SQL
String sql = "1=1";
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
//sql+=" and country_id="+country_id;
if(country_id.equals("-1"))
{
sql+=" and country_id in (7,3,4,2)";
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql+=" and country_id in (7,1,5,6,8,9,10)";
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql+=" and country_id="+country_id;
sql2+=" and country_id="+country_id;
}
}
if(date_start!=null && !date_start.equals(""))
{
sql+=" and date>='"+date_start+"'";
}
if(date_end!=null && !date_end.equals(""))
{
sql+=" and date&lt;='"+date_end+"'";
}
if(registered!=null && registered.equals("1"))
{
sql+=" and registered=true";
}else
if(registered!=null && registered.equals("0"))
{
sql+=" and registered=false";
}
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
}
if(name!=null && (name.equals("frmlocustinfo_p2") || name.equals("frmlocustinfo_p3") || name.equals("frmlocustinfo_p4")))
{
//String country_id=request.getParameter("country_id");
//String year=request.getParameter("year");
//String locust_type_id=request.getParameter("locust_type_id");
//Make SQL
String sql = "1=1";
if(country_id!=null && !country_id.equals(""))
{
if(country_id.equals("-1"))
{
sql+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql+=" and country_id="+country_id;
}
}
if(locust_type_id!=null && !locust_type_id.equals(""))
{
sql+=" and locust_type_id="+locust_type_id;
}
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs"));
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{year\\}",year);
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
}
if(name!=null && (name.equals("frmlocustinfo_p2r") || name.equals("frmlocustinfo_p3r") || name.equals("frmlocustinfo_p4r")))
{
//String region_id=request.getParameter("region_id");
//String year=request.getParameter("year");
//String locust_type_id=request.getParameter("locust_type_id");
//Make SQL
String sql = "1=1";
if(region_id!=null && !region_id.equals(""))
{
sql+=" and region_id="+region_id;
}
if(locust_type_id!=null && !locust_type_id.equals(""))
{
sql+=" and locust_type_id="+locust_type_id;
}
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs"));
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{year\\}",year);
fileAsString=fileAsString.replaceAll("\\$\\{sql\\}",sql);
}
if(name!=null && name.equals("soil_temperature"))
{
//Make SQL
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
if(country_id.equals("-1"))
{
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql2+=" and country_id="+country_id;
}
}
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs"));
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
fileAsString=fileAsString.replaceAll("\\$\\{time\\}",time);
}
if(name!=null && name.equals("air_temperature"))
{
//Make SQL
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
if(country_id.equals("-1"))
{
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql2+=" and country_id="+country_id;
}
}
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs"));
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
fileAsString=fileAsString.replaceAll("\\$\\{time\\}",time);
}
if(name!=null && name.equals("precipitation"))
{
//Make SQL
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
if(country_id.equals("-1"))
{
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql2+=" and country_id="+country_id;
}
}
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs"));
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
fileAsString=fileAsString.replaceAll("\\$\\{time\\}",time);
}
if(name!=null && name.equals("htc_selyaninov"))
{
//Make SQL
String sql2 = "1=1";
if(country_id!=null && !country_id.equals(""))
{
if(country_id.equals("-1"))
{
sql2+=" and country_id in (7,3,4,2)";
}else if(country_id.equals("-2"))
{
sql2+=" and country_id in (7,1,5,6,8,9,10)";
}else
{
sql2+=" and country_id="+country_id;
}
}
fileAsString = fileToString(context.getRealPath("/resources/QGIS/" + name + ".qgs"));
//Apply variables to text
fileAsString=fileAsString.replaceAll("\\$\\{country\\}",country_name);
fileAsString=fileAsString.replaceAll("\\$\\{sql2\\}",sql2);
fileAsString=fileAsString.replaceAll("\\$\\{time_start\\}",time_start);
fileAsString=fileAsString.replaceAll("\\$\\{time_end\\}",time_end);
}
if(name!=null && name.equals("NDVI"))
{
fileAsString = fileToString(context.getRealPath("/resources/QGIS/NDVI.qgs"));
if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else
fileAsString = fileAsString.replaceAll("\\$\\{day\\}","");
}
if(name!=null && name.equals("NDWI"))
{
fileAsString = fileToString(context.getRealPath("/resources/QGIS/NDWI.qgs"));
if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else
fileAsString = fileAsString.replaceAll("\\$\\{day\\}","");
}
if(name!=null && name.equals("IVI"))
{
fileAsString = fileToString(context.getRealPath("/resources/QGIS/IVI.qgs"));
if(year!=null && year.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{year\\}",year+"_");
else
fileAsString = fileAsString.replaceAll("\\$\\{year\\}","");
}
if(name!=null && name.equals("NDWI_CMP"))
{
fileAsString = fileToString(context.getRealPath("/resources/QGIS/NDWI_CMP.qgs"));
if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else
fileAsString = fileAsString.replaceAll("\\$\\{day\\}","");
}
if(name!=null && name.equals("NDSI"))
{
fileAsString = fileToString(context.getRealPath("/resources/QGIS/NDSI.qgs"));
if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else
fileAsString = fileAsString.replaceAll("\\$\\{day\\}","");
}
if(name!=null && name.equals("SMAP"))
{
fileAsString = fileToString(context.getRealPath("/resources/QGIS/SMAP.qgs"));
if(day!=null && day.length()>0)
fileAsString = fileAsString.replaceAll("\\$\\{day\\}",day+"_");
else
fileAsString = fileAsString.replaceAll("\\$\\{day\\}","");
}
//Send data
fileAsString=getText(conn,fileAsString,user);
return new HttpEntity<byte[]>(fileAsString.getBytes(), headers);
}
@Override
public void setServletContext(ServletContext servletContext) {
this.context=servletContext;
}
public String fileToString(String fName)
{
StringBuilder sb = new StringBuilder();
try
{
InputStream is = new FileInputStream(fName);
BufferedReader buf = new BufferedReader(new InputStreamReader(is));
String line = buf.readLine();
while(line != null)
{
sb.append(line).append("\n");
line = buf.readLine();
}
buf.close();
}
catch (Exception e){
System.out.println("Error: "+e.getMessage());
}
return sb.toString();
}
public String trt(Connection conn,String key,User user)
{
String result="";
ResultSet rs=null;
Statement st = null;
try {
st = conn.createStatement();
String sql = "select case when '"+user.language_id+"'='666' then translation||'''\"' else translation end as translation from main._translations t where t.identifier='"+key+"' and (t.language_id='"+user.language_id+"' or ('"+user.language_id+"'='666' and t.language_id=1));";
rs = st.executeQuery(sql);
if(rs != null) {
if (rs.next()) {
result = rs.getString(1);
}
}
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}finally{
if(st!=null) try{st.close();}catch(SQLException ex) {}
if(rs!=null) try{rs.close();}catch(SQLException ex) {}
}
if(result.equals(""))
{
result = Tools.replaceAll(key,"_", " ");
}
return result;
}
//Translate text by patterns
public String getText(Connection conn,String text,User user) {
int pos1 = 0;
while (true) {
pos1 = text.indexOf("trt('", pos1);
if (pos1 == -1)
break;
int pos2 = text.indexOf("')", pos1);
if (pos2 == -1)
break;
text = text.substring(0, pos1) + trt(conn,text.substring(pos1 + 5, pos2),user) + text.substring(pos2 + 2);
}
return text;
}
}

View File

@ -0,0 +1,500 @@
package kz.locust.CCALM;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Properties;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.text.SimpleDateFormat;
import java.sql.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import tools.EmailUtility;
import tools.User;
import javax.servlet.ServletContext;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware;
@Controller
@SessionAttributes( { "user" }) //Сесионный объект
public class SendMail implements ServletContextAware {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SendMail.class);
private ServletContext context;
private Connection m_conn = null;
private User m_user = null;
//private Properties m_props=null;
public String m_locale="en";
//private HashMap<String, Properties> m_props = new HashMap< String, Properties>();
//If not created object "user", create him.
@ModelAttribute("user")
public User populatePerson() {
return new User("none");
}
@RequestMapping(value = "/SendMail",method = RequestMethod.GET,produces = "text/html;charset=UTF-8")
@ResponseBody
public Object send(@ModelAttribute User user,@RequestParam(required=false,name="lng") String language_id) {
m_user = user;
if(language_id!=null && !language_id.equals(""))
user.language_id=language_id;
logger.info("user.id="+user.id+" user.name="+user.name+" user.language_id="+user.language_id+" user.country_id="+user.country_id);
String result="";
//Load DB configuration from "config.xml"
String db_url = "";
String db_login = "";
String db_password = "";
String mail_host = "";
String mail_port = "";
String mail_login = "";
String mail_password = "";
//String data_dir = "";
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
//if (nl.item(i).getNodeName().equals("data-dir"))
// data_dir = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("mail-host"))
mail_host = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("mail-port"))
mail_port = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("mail-login"))
mail_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("mail-password"))
mail_password = nl.item(i).getTextContent();
}
} catch (Exception ex) {
logger.info(ex.getMessage());
}
//Connect to database
try{
Class.forName("org.postgresql.Driver");
m_conn = DriverManager.getConnection(db_url,db_login,db_password);
if(m_conn!=null)
{
logger.info("Connect is OK!");
result+="Connect is OK!<br>";
}else
{
logger.info("<br>Connect is ERROR<br>");
result+="Connect is ERROR!<br>";
}
}catch(Exception e)
{
logger.info("<br>Connect Exception:"+e.getMessage()+"<br>");
result+="Connect Exception:"+e.getMessage()+"<br>";
}
/*String string = "2016-07-05";
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(string);*/
//int Day_s,Day_e;
//int Month_s,Month_e;
//int Year_s,Year_e;
Calendar calendar_s = Calendar.getInstance();
//calendar_s.setTime(date);
calendar_s.set(Calendar.DATE, 1);
calendar_s.add(Calendar.MONTH, -1); //минус месяц
Calendar calendar_e = Calendar.getInstance();
//calendar_e.setTime(date);
calendar_e.set(Calendar.DATE, 1);
String start_t = String.valueOf(calendar_s.getTimeInMillis()/1000);
String end_t = String.valueOf(calendar_e.getTimeInMillis()/1000);
//Формирую сообщение для каждой страны потом присваиваю пользователям из данной страны
String sql1="select c.id,c.name,u.email,l.short_name as language from main.countries c join main._users u on u.country_id=c.id join main._languages l on l.id=u.language_id where u.del=false and u.mailing=true order by c.name;";
Statement st1;
ResultSet rs1=null;
try {
st1 = m_conn.createStatement();
rs1 = st1.executeQuery(sql1);
} catch (SQLException ex) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
if(rs1!=null)
{
try {
while (rs1.next()) //Пробегаюсь по странам и генерю сообщение
{
String html="<html><body>";
String country_id=rs1.getString("id");
String country_name=rs1.getString("name");
m_locale=rs1.getString("language");
String email = rs1.getString("email");
html="<h2>"+country_name+"</h2>";
result+=html+m_locale;
//Build HTML and send it to e-mail
String sql=""
+"select cr.name region_name,coalesce(t1.danger,0) danger,coalesce(t2.attention,0) attention,coalesce(t3.quietly,0) quietly from\n"
+" main.countriesregions cr\n"
+" left join (SELECT region_id,sum(1) as danger from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and COALESCE(fl.eggs_capsules_density, fl.eggs_capsules_density_to)::double precision + COALESCE(fl.eggs_capsules_density_to, fl.eggs_capsules_density)::double precision / 2::double precision > 1 group by region_id) t1 on cr.id=t1.region_id\n"
+" left join (SELECT region_id,sum(1) as attention from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and COALESCE(fl.eggs_capsules_density, fl.eggs_capsules_density_to)::double precision + COALESCE(fl.eggs_capsules_density_to, fl.eggs_capsules_density)::double precision / 2::double precision > 0 and COALESCE(fl.eggs_capsules_density, fl.eggs_capsules_density_to)::double precision + COALESCE(fl.eggs_capsules_density_to, fl.eggs_capsules_density)::double precision / 2::double precision <= 1 group by region_id) t2 on cr.id=t2.region_id\n"
+" left join (SELECT region_id,sum(1) as quietly from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and COALESCE(fl.eggs_capsules_density, fl.eggs_capsules_density_to)::double precision + COALESCE(fl.eggs_capsules_density_to, fl.eggs_capsules_density)::double precision / 2::double precision = 0 group by region_id) t3 on cr.id=t3.region_id\n"
+"where\n"
+" cr.del=false\n"
+" and (t1.danger is not null or t2.attention is not null or t3.quietly is not null)\n"
+" and cr.country_id="+country_id;
Statement st = m_conn.createStatement();
ResultSet rs=null;
try {
rs = st.executeQuery(sql);
} catch( SQLException ex ) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
html+="<h3>"+trt("Egg_pods_density")+"</h3>";
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
html+=trt("From_date")+": "+sdf.format(new Date(Long.parseLong(start_t)*1000));
html+="<br>"+trt("To_date")+": "+sdf.format(new Date(Long.parseLong(end_t)*1000));
html+="<table border=\"1\" style=\"border-collapse: collapse;\">";
html+="<tr style=\"background-color:#dadada;\"><th>"+trt("Oblast")+"</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_r.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Danger")+"\"<br>("+trt("Egg_pods_density")+" > 1)</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_y.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Attention")+"\"<br>("+trt("Egg_pods_density")+" <= 1)</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_g.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Quietly")+"\"<br>("+trt("Egg_pods_density")+" = 0)</th></tr>";
boolean exists=false;
if(rs!=null)
{
while (rs.next())
{
html+="<tr>";
html+="<td>"+rs.getString("region_name")+"</td>";
html+="<td>"+rs.getString("danger")+"</td>";
html+="<td>"+rs.getString("attention")+"</td>";
html+="<td>"+rs.getString("quietly")+"</td>";
html+="</tr>";
exists=true;
}
}
st.close();
if(!exists) html+="<td colspan=\"4\" style=\"text-align:center;font-weight:bold;\">"+trt("No_data")+"</td>";
html+="</table>";
html+="<a target=\"_blank\" href=\"http://ccalm.org/engine/?&cmd=FrmLocust&country_id="+country_id+"&date_start="+sdf.format(new Date(Long.parseLong(start_t)*1000))+"&date_end="+sdf.format(new Date(Long.parseLong(end_t)*1000))+"&registered=1&indicator=1\">"+trt("Open_data_on_the_map")+"</a>";
html+="<br><br>";
//Adult_density
//плотности имаго
sql=""
+" select cr.name region_name,coalesce(t1.danger,0) danger,coalesce(t2.attention,0) attention,coalesce(t3.quietly,0) quietly from\n"
+" main.countriesregions cr\n"
+" left join (SELECT region_id,sum(1) as danger from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and imago_density >= 5 group by region_id) t1 on cr.id=t1.region_id\n"
+" left join (SELECT region_id,sum(1) as attention from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and imago_density >= 3 and imago_density < 5 group by region_id) t2 on cr.id=t2.region_id\n"
+" left join (SELECT region_id,sum(1) as quietly from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and imago_density <= 2 group by region_id) t3 on cr.id=t3.region_id\n"
+"where\n"
+" cr.del=false\n"
+" and (t1.danger is not null or t2.attention is not null or t3.quietly is not null)\n"
+" and cr.country_id="+country_id;
st = m_conn.createStatement();
rs=null;
try {
rs = st.executeQuery(sql);
} catch( SQLException ex ) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
html+="<h3>"+trt("Adult_density")+"</h3>";
html+=trt("From_date")+": "+sdf.format(new Date(Long.parseLong(start_t)*1000));
html+="<br>"+trt("To_date")+": "+sdf.format(new Date(Long.parseLong(end_t)*1000));
html+="<table border=\"1\" style=\"border-collapse: collapse;\">";
html+="<tr style=\"background-color:#dadada;\"><th>"+trt("Oblast")+"</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_r.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Dangerous")+"\"<br>("+trt("Adult_density")+" >=5)</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_y.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Attention")+"\"<br>("+trt("Adult_density")+" >=3 "+trt("and")+" <5)</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_g.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Quietly")+"\"<br>("+trt("Adult_density")+" <=2)</th></tr>";
exists=false;
if(rs!=null)
{
while (rs.next())
{
html+="<tr>";
html+="<td>"+rs.getString("region_name")+"</td>";
html+="<td>"+rs.getString("danger")+"</td>";
html+="<td>"+rs.getString("attention")+"</td>";
html+="<td>"+rs.getString("quietly")+"</td>";
html+="</tr>";
exists=true;
}
}
st.close();
if(!exists) html+="<td colspan=\"5\" style=\"text-align:center;font-weight:bold;\">"+trt("No_data")+"</td>";
html+="</table>";
html+="<a target=\"_blank\" href=\"http://ccalm.org/engine/?&cmd=FrmLocust&country_id="+country_id+"&date_start="+sdf.format(new Date(Long.parseLong(start_t)*1000))+"&date_end="+sdf.format(new Date(Long.parseLong(end_t)*1000))+"&registered=1&indicator=4\">"+trt("Open_data_on_the_map")+"</a>";
html+="<br><br>";
//Hopper_density
sql=""
+" select cr.name region_name,coalesce(t1.danger,0) danger,coalesce(t2.attention,0) attention,coalesce(t3.quietly,0) quietly from\n"
+" main.countriesregions cr\n"
+" left join (SELECT region_id,sum(1) as danger from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and COALESCE(fl.larva_density, fl.larva_density_to)::double precision + COALESCE(fl.larva_density_to, fl.larva_density)::double precision / 2::double precision >= 5 group by region_id) t1 on cr.id=t1.region_id\n"
+" left join (SELECT region_id,sum(1) as attention from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and COALESCE(fl.larva_density, fl.larva_density_to)::double precision + COALESCE(fl.larva_density_to, fl.larva_density)::double precision / 2::double precision >= 3 and COALESCE(fl.larva_density, fl.larva_density_to)::double precision + COALESCE(fl.larva_density_to, fl.larva_density)::double precision / 2::double precision < 5 group by region_id) t2 on cr.id=t2.region_id\n"
+" left join (SELECT region_id,sum(1) as quietly from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and COALESCE(fl.larva_density, fl.larva_density_to)::double precision + COALESCE(fl.larva_density_to, fl.larva_density)::double precision / 2::double precision <= 2 group by region_id) t3 on cr.id=t3.region_id\n"
+"where\n"
+" cr.del=false\n"
+" and (t1.danger is not null or t2.attention is not null or t3.quietly is not null)\n"
+" and cr.country_id="+country_id;
st = m_conn.createStatement();
rs=null;
try {
rs = st.executeQuery(sql);
} catch( SQLException ex ) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
html+="<h3>"+trt("Hopper_density")+"</h3>";
html+=trt("From_date")+": "+sdf.format(new Date(Long.parseLong(start_t)*1000));
html+="<br>"+trt("To_date")+": "+sdf.format(new Date(Long.parseLong(end_t)*1000));
html+="<table border=\"1\" style=\"border-collapse: collapse;\">";
html+="<tr style=\"background-color:#dadada;\"><th>"+trt("Oblast")+"</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_r.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Dangerous")+"\"<br>("+trt("Hopper_density")+" >=5)</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_y.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Attention")+"\"<br>("+trt("Hopper_density")+" >=3 "+trt("and")+" <5)</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_g.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Quietly")+"\"<br>("+trt("Hopper_density")+" <=2)</th></tr>";
exists=false;
if(rs!=null)
{
while (rs.next())
{
html+="<tr>";
html+="<td>"+rs.getString("region_name")+"</td>";
html+="<td>"+rs.getString("danger")+"</td>";
html+="<td>"+rs.getString("attention")+"</td>";
html+="<td>"+rs.getString("quietly")+"</td>";
html+="</tr>";
exists=true;
}
}
st.close();
if(!exists) html+="<td colspan=\"5\" style=\"text-align:center;font-weight:bold;\">"+trt("No_data")+"</td>";
html+="</table>";
html+="<a target=\"_blank\" href=\"http://ccalm.org/engine/?&cmd=FrmLocust&country_id="+country_id+"&date_start="+sdf.format(new Date(Long.parseLong(start_t)*1000))+"&date_end="+sdf.format(new Date(Long.parseLong(end_t)*1000))+"&registered=1&indicator=2\">"+trt("Open_data_on_the_map")+"</a>";
html+="<br><br>";
sql=""
+" select cr.name region_name,coalesce(t1.danger,0) danger,coalesce(t3.quietly,0) quietly from\n"
+" main.countriesregions cr\n"
+" left join (SELECT region_id,sum(1) as danger from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and (kuliguli_size >= 1 or kuliguli_density>=1 or kuliguli_density_to>=1) group by region_id) t1 on cr.id=t1.region_id\n"
+" left join (SELECT region_id,sum(1) as quietly from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and (kuliguli_size < 1 or kuliguli_size is null) group by region_id) t3 on cr.id=t3.region_id\n"
+" where\n"
+" cr.del=false\n"
+" and (t1.danger is not null or t3.quietly is not null)\n"
+" and cr.country_id="+country_id;
st = m_conn.createStatement();
rs=null;
try {
rs = st.executeQuery(sql);
} catch( SQLException ex ) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
html+="<h3>"+trt("Number_of_bands")+"</h3>";
html+=trt("From_date")+": "+sdf.format(new Date(Long.parseLong(start_t)*1000));
html+="<br>"+trt("To_date")+": "+sdf.format(new Date(Long.parseLong(end_t)*1000));
html+="<table border=\"1\" style=\"border-collapse: collapse;\">";
html+="<tr style=\"background-color:#dadada;\"><th>"+trt("Oblast")+"</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_r.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Dangerous")+"\"<br>("+trt("Number_of_bands")+" >=1)</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_g.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Quietly")+"\"<br>("+trt("Number_of_bands")+" <1)</th></tr>";
exists=false;
if(rs!=null)
{
while (rs.next())
{
html+="<tr>";
html+="<td>"+rs.getString("region_name")+"</td>";
html+="<td>"+rs.getString("danger")+"</td>";
html+="<td>"+rs.getString("quietly")+"</td>";
html+="</tr>";
exists=true;
}
}
st.close();
if(!exists) html+="<td colspan=\"3\" style=\"text-align:center;font-weight:bold;\">"+trt("No_data")+"</td>";
html+="</table>";
html+="<a target=\"_blank\" href=\"http://ccalm.org/engine/?&cmd=FrmLocust&country_id="+country_id+"&date_start="+sdf.format(new Date(Long.parseLong(start_t)*1000))+"&date_end="+sdf.format(new Date(Long.parseLong(end_t)*1000))+"&registered=1&indicator=3\">"+trt("Open_data_on_the_map")+"</a>";
html+="<br><br>";
sql=""
+" select cr.name region_name,coalesce(t1.danger,0) danger,coalesce(t3.quietly,0) quietly from\n"
+" main.countriesregions cr\n"
+" left join (SELECT region_id,sum(1) as danger from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and (swarm_maturity is not null or swarm_density_id is not null) group by region_id) t1 on cr.id=t1.region_id\n"
+" left join (SELECT region_id,sum(1) as quietly from main.frmlocust fl join main.terminals t on t.serial=fl.device_id where fl.del=false and t.del=false and (fl.date>to_timestamp("+start_t+") and fl.date<to_timestamp("+end_t+")) and (swarm_maturity is null and swarm_density_id is null) group by region_id) t3 on cr.id=t3.region_id\n"
+" where\n"
+" cr.del=false\n"
+" and (t1.danger is not null or t3.quietly is not null)\n"
+" and cr.country_id="+country_id;
st = m_conn.createStatement();
rs=null;
try {
rs = st.executeQuery(sql);
} catch( SQLException ex ) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
html+="<h3>"+trt("Number_of_swarms")+"</h3>";
html+=trt("From_date")+": "+sdf.format(new Date(Long.parseLong(start_t)*1000));
html+="<br>"+trt("To_date")+": "+sdf.format(new Date(Long.parseLong(end_t)*1000));
html+="<table border=\"1\" style=\"border-collapse: collapse;\">";
html+="<tr style=\"background-color:#dadada;\"><th>"+trt("Oblast")+"</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_r.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Dangerous")+"\"<br>("+trt("Number_of_swarms")+" >=1)</th><th><img src=\"http://ccalm.org/resources/engine/images/icons/marker_g.png\" alt=\"\" align=\"left\">"+trt("Number_forms")+" \""+trt("Quietly")+"\"<br>("+trt("Number_of_swarms")+" <1)</th></tr>";
exists=false;
if(rs!=null)
{
while (rs.next())
{
html+="<tr>";
html+="<td>"+rs.getString("region_name")+"</td>";
html+="<td>"+rs.getString("danger")+"</td>";
html+="<td>"+rs.getString("quietly")+"</td>";
html+="</tr>";
exists=true;
}
}
st.close();
if(!exists) html+="<td colspan=\"5\" style=\"text-align:center;font-weight:bold;\">"+trt("No_data")+"</td>";
html+="</table>";
html+="<a target=\"_blank\" href=\"http://ccalm.org/engine/?&cmd=FrmLocust&country_id="+country_id+"&date_start="+sdf.format(new Date(Long.parseLong(start_t)*1000))+"&date_end="+sdf.format(new Date(Long.parseLong(end_t)*1000))+"&registered=1&indicator=5\">"+trt("Open_data_on_the_map")+"</a>";
html+="<br><br>";
html+="</body></html>";
/*String mail_host="";
String mail_port="";
String mail_login="";
String mail_password="";*/
try {
EmailUtility.sendEmail(mail_host, mail_port, mail_login, mail_password, email, "Locust statistics", html);
//result = "The e-mail was sent successfully";
} catch (Exception ex) {
ex.printStackTrace();
//result = "There were an error: " + ex.getMessage();
} finally {
//request.setAttribute("Message", resultMessage);
//getServletContext().getRequestDispatcher("/Result.jsp").forward(request, response);
}
html="";
}
} catch (NumberFormatException ex) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
} catch (SQLException ex) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
}
return result;
}
//---------------------------------------------------------------------------
@Override
public void setServletContext(ServletContext servletContext) {
this.context=servletContext;
}
//---------------------------------------------------------------------------
public String trt(String key)
{
String result="";
if(m_conn!=null) {
ResultSet rs=null;
Statement st = null;
try {
st = m_conn.createStatement();
String sql = "select case when '"+m_user.language_id+"'='666' then translation||'''\"' else translation end as translation from main._translations t where t.identifier='"+key+"' and (t.language_id='"+m_user.language_id+"' or ('"+m_user.language_id+"'='666' and t.language_id=1));";
rs = st.executeQuery(sql);
if(rs != null) {
if (rs.next()) {
result = rs.getString(1);
}
}
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}finally{
if(st!=null) try{st.close();}catch(SQLException ex) {}
if(rs!=null) try{rs.close();}catch(SQLException ex) {}
}
}
if(result.equals(""))
{
result = key.replaceAll("_", " ");
}
return result;
}
//---------------------------------------------------------------------------
//Translate text by patterns
public String getText(String text) {
int pos1 = 0;
while (true) {
pos1 = text.indexOf("trt('", pos1);
if (pos1 == -1)
break;
int pos2 = text.indexOf("')", pos1);
if (pos2 == -1)
break;
text = text.substring(0, pos1) + trt(text.substring(pos1 + 5, pos2)) + text.substring(pos2 + 2);
}
return text;
}
//---------------------------------------------------------------------------
}

View File

@ -0,0 +1,47 @@
package kz.locust.CCALM;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import tools.User;
@Controller
@SessionAttributes( { "user" })
public class Session {
//If not created object "user", create him.
@ModelAttribute("user")
public User populatePerson() {
return new User("none");
}
@RequestMapping(value = "/session", method = {RequestMethod.GET, RequestMethod.POST })
@ResponseBody
public Object ajaxTest(@ModelAttribute User user,HttpServletResponse response) {
response.setHeader("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate");
JSONObject obj = new JSONObject();
if(user.id==null || user.id.equals("") || user.id.equals("null"))
obj.put("result", "ERROR");
else {
obj.put("result", "OK");
obj.put("user_id", user.id);
}
return obj.toString();
}
/*class Result
{
public String result;
Result(String result){this.result=result;}
}*/
}

View File

@ -0,0 +1,202 @@
package kz.locust.CCALM;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.HttpEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@Controller
public class TestFiles implements ServletContextAware {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SendMail.class);
private ServletContext context;
@RequestMapping(value = "/TestFiles",method = RequestMethod.GET,produces = "text/html;charset=UTF-8")
@ResponseBody
public Object ajaxTamer()
{
String result="";
//Load DB configuration from "config.xml"
String db_url = "";
String db_login = "";
String db_password = "";
String mail_host = "";
String mail_port = "";
String mail_login = "";
String mail_password = "";
//String data_dir = "";
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain = doc.getDocumentElement();
NodeList nl = nMain.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeName().equals("db-url"))
db_url = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-login"))
db_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("db-password"))
db_password = nl.item(i).getTextContent();
//if (nl.item(i).getNodeName().equals("data-dir"))
// data_dir = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("mail-host"))
mail_host = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("mail-port"))
mail_port = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("mail-login"))
mail_login = nl.item(i).getTextContent();
if (nl.item(i).getNodeName().equals("mail-password"))
mail_password = nl.item(i).getTextContent();
}
} catch (Exception ex) {
logger.info(ex.getMessage());
}
//Connect to database
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
logger.info("Connect is OK!");
result+="Connect is OK!<br>";
}else
{
logger.info("<br>Connect is ERROR<br>");
result+="Connect is ERROR!<br>";
}
}catch(Exception e)
{
logger.info("<br>Connect Exception:"+e.getMessage()+"<br>");
result+="Connect Exception:"+e.getMessage()+"<br>";
}
String sql;
Statement st;
ResultSet rs=null;
result+="image_name1<br><br>";
sql="select image_name1 as name from main.frmlocustdel where image_name1 is not null";
try {
st = conn.createStatement();
rs=null;
try {
rs = st.executeQuery(sql);
} catch( SQLException ex ) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
if(rs!=null)
{
while (rs.next())
{
if(!(new File("/temp/CCALM/data/frmlocustdel/"+rs.getString("name"))).exists())
{
logger.info("update main.frmlocustdel set image_name1=null where image_name1=\""+rs.getString("name")+"\"");
result+="update main.frmlocustdel set image_name1=null where image_name1='"+rs.getString("name")+"';"+"<br>";
}
}
}
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
result+="image_name2<br><br>";
sql="select image_name2 as name from main.frmlocustdel where image_name2 is not null";
try {
st = conn.createStatement();
rs=null;
try {
rs = st.executeQuery(sql);
} catch( SQLException ex ) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
if(rs!=null)
{
while (rs.next())
{
if(!(new File("/temp/CCALM/data/frmlocustdel/"+rs.getString("name"))).exists())
{
logger.info("update main.frmlocustdel set image_name2=null where image_name2=\""+rs.getString("name")+"\"");
result+="update main.frmlocustdel set image_name2=null where image_name2='"+rs.getString("name")+"';"+"<br>";
}
}
}
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
result+="image_name3<br><br>";
sql="select image_name3 as name from main.frmlocustdel where image_name3 is not null";
try {
st = conn.createStatement();
rs=null;
try {
rs = st.executeQuery(sql);
} catch( SQLException ex ) {
result+="<br>Exec Exception:"+ex.getMessage()+"<br>";
}
if(rs!=null)
{
while (rs.next())
{
if(!(new File("/temp/CCALM/data/frmlocustdel/"+rs.getString("name"))).exists())
{
logger.info("update main.frmlocustdel set image_name3=null where image_name3=\""+rs.getString("name")+"\"");
result+="update main.frmlocustdel set image_name3=null where image_name3='"+rs.getString("name")+"';"+"<br>";
}
}
}
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
//---------------------------------------------------------------------------
@Override
public void setServletContext(ServletContext servletContext) {
this.context=servletContext;
}
}

View File

@ -0,0 +1,204 @@
package kz.locust.CCALM;
import java.io.DataInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.util.Set;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.servlet.ServletContext;
import javax.xml.parsers.DocumentBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import tools.User;
/**
* Handles requests for the application home page.
*/
@Controller
@SessionAttributes( { "user" })
public class Translation implements ServletContextAware {
private static final Logger logger = LoggerFactory.getLogger(Translation.class);
private ServletContext context;
//If not created object "user", create him.
@ModelAttribute("user")
public User populatePerson() {
return new User("none");
}
/*public static boolean loadTranslationFromXML(Properties props, InputStream isXML)
{
boolean result=false;
if(isXML!=null)
{
Document doc = null;
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(isXML);
} catch (Exception ex) {
logger.info(ex.getMessage());
}
Node reqNode = doc.getDocumentElement();
Node nextnode=reqNode.getFirstChild();
while(nextnode!=null)
{
if(nextnode.getNodeName().equals("string"))
{
String name=nextnode.getAttributes().getNamedItem("name").getNodeValue();
String val="";
if(nextnode.getFirstChild()!=null)
val=nextnode.getFirstChild().getNodeValue();
//if(props.getProperty(name,"").equals("") && !val.equals(""))
props.setProperty(name, val);
result=true;
}
nextnode = nextnode.getNextSibling();
}
}
return result;
}*/
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/translation", method = RequestMethod.GET)
public String home(@ModelAttribute User user/*, Locale locale*/, Model model) {
Properties props = new Properties();
String db_url="";
String db_login="";
String db_password="";
//Load DB configuration from "config.xml"
try {
//String fullPath = context.getRealPath("/WEB-INF/config.xml");
//File fXmlFile = new File(fullPath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain=doc.getDocumentElement();
NodeList nl=nMain.getChildNodes();
for (int i = 0; i <nl.getLength(); i++)
{
if(nl.item(i).getNodeName().equals("db-url"))
db_url=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-login"))
db_login=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-password"))
db_password=nl.item(i).getTextContent();
}
} catch (Exception e) {
e.printStackTrace();
}
//Get language from database
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
System.out.println("Connect is OK!");
}else
{
System.out.println("<br>Connect is ERROR<br>");
}
}catch(Exception e)
{
System.out.println("<br>Connect Exception:"+e.getMessage()+"<br>");
}
try {
Statement st = conn.createStatement();
ResultSet rs=null;
try {
String sql_query = "select identifier,case when '"+user.language_id+"'='666' then translation||'''\"' else translation end as translation from main._translations t where t.del=false and (t.language_id='"+user.language_id+"' or ('"+user.language_id+"'='666' and t.language_id=1)) and translation_type_id=1 order by identifier;";
rs = st.executeQuery(sql_query);
} catch( SQLException ex )
{
System.out.println("<br>SQLException:"+ex.getMessage()+"<br>");
}
if(rs!=null)
{
while (rs.next())
{
if(rs.getString("translation")!=null)
props.setProperty(rs.getString("identifier"), rs.getString("translation"));
}
}
st.close();
} catch( SQLException ex )
{
System.out.println("<br>SQLException:"+ex.getMessage()+"<br>");
}
try{ conn.close(); }catch(Exception e){}
//Create JavaScript text
/*
InputStream utf8in = getClass().getClassLoader().getResourceAsStream("messages_"+user.lng+".properties");
Reader reader;
try {
reader = new InputStreamReader(utf8in, "UTF-8");
props.load(reader);
} catch (UnsupportedEncodingException e) {
}catch (IOException e) {
}*/
//Переписываю в JavaScript код
String result="";
Set<Object> keys = props.keySet();
for(Object k:keys){
String key = ((String)k).trim();
String val = props.getProperty(key,"");
if(val.equals(""))
{
val = val.replaceAll("_", " ");
}
val = val.replaceAll("'", "`");
result += " ,"+key+":'"+val+"'\n";
}
model.addAttribute("keys",result);
return "translation";
}
@Override
public void setServletContext(ServletContext servletContext) {
this.context=servletContext;
}
}

View File

@ -0,0 +1,128 @@
package kz.locust.CCALM;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
*
* @author ivanov.i
*/
public class WeatherDownload {
private static final int BUFFER_SIZE = 4096;
public boolean download(String strURL,String strFile,String posStart,String posEnd)
{
boolean result=true;
String rez = null;
String inputLine = null;
/*try
{
rez = new String("".getBytes(), "utf-8");
inputLine = new String("".getBytes(), "utf-8");
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}*/
try
{
URL url = new URL(strURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Range","bytes=" + posStart + "-" + posEnd);
conn.connect();
int responseCode = conn.getResponseCode();
if (responseCode / 100 == 2) //Code 206 is "Partial Content"
{
InputStream inputStream = conn.getInputStream();
FileOutputStream outputStream = new FileOutputStream(strFile);
int bytesRead;
byte[] buffer = new byte[BUFFER_SIZE];
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
inputStream.close();
}
conn.disconnect();
}
catch (IOException e)
{
//e.printStackTrace();
result=false;
}
return result;
}
/**
* Downloads a file from a URL
* @param fileURL HTTP URL of the file to be downloaded
* @param saveDir path of the directory to save the file
* @throws IOException
*/
public static void downloadFile(String fileURL, String saveDir)
throws IOException {
URL url = new URL(fileURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
int responseCode = httpConn.getResponseCode();
// always check HTTP response code first
if (responseCode == HttpURLConnection.HTTP_OK) {
String fileName = "";
String disposition = httpConn.getHeaderField("Content-Disposition");
String contentType = httpConn.getContentType();
int contentLength = httpConn.getContentLength();
if (disposition != null) {
// extracts file name from header field
int index = disposition.indexOf("filename=");
if (index > 0) {
fileName = disposition.substring(index + 10,
disposition.length() - 1);
}
} else {
// extracts file name from URL
fileName = fileURL.substring(fileURL.lastIndexOf("/") + 1,
fileURL.length());
}
System.out.println("Content-Type = " + contentType);
System.out.println("Content-Disposition = " + disposition);
System.out.println("Content-Length = " + contentLength);
System.out.println("fileName = " + fileName);
// opens input stream from the HTTP connection
InputStream inputStream = httpConn.getInputStream();
String saveFilePath = saveDir + File.separator + fileName;
// opens an output stream to save into file
FileOutputStream outputStream = new FileOutputStream(saveFilePath);
int bytesRead = -1;
byte[] buffer = new byte[BUFFER_SIZE];
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
inputStream.close();
System.out.println("File downloaded");
} else {
System.out.println("No file to download. Server replied HTTP code: " + responseCode);
}
httpConn.disconnect();
}
}

View File

@ -0,0 +1,544 @@
package kz.locust.CCALM.engine;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.util.Set;
import javax.servlet.ServletContext;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.context.ServletContextAware;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import tools.User;
/**
* Handles requests for the application home page.
*/
@Controller
@SessionAttributes( { "user" })
public class EngineController implements ServletContextAware {
private static final Logger logger = LoggerFactory.getLogger(EngineController.class);
private ServletContext context;
private Properties m_props=null;
//private String m_props_loc="";
//If not created object "user", create him.
@ModelAttribute("user")
public User populatePerson() {
return new User("none");
}
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/engine", method = RequestMethod.GET)
public String home(@ModelAttribute User user, Model model,@RequestParam(required=false,name="lng") String language_id) {
if(language_id!=null && !language_id.equals("")) user.language_id=language_id;
logger.info("user.id="+user.id+" user.name="+user.name+" user.language_id="+user.language_id);
String db_url="";
String db_login="";
String db_password="";
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
//Document doc = dBuilder.parse(fXmlFile);
Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream());
Element nMain=doc.getDocumentElement();
NodeList nl=nMain.getChildNodes();
for (int i = 0; i <nl.getLength(); i++)
{
if(nl.item(i).getNodeName().equals("db-url"))
db_url=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-login"))
db_login=nl.item(i).getTextContent();
if(nl.item(i).getNodeName().equals("db-password"))
db_password=nl.item(i).getTextContent();
}
} catch (Exception e) {
e.printStackTrace();
}
//Get language from database
Connection conn = null;
try{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(db_url,db_login,db_password);
if(conn!=null)
{
System.out.println("Connect is OK!");
}else
{
System.out.println("<br>Connect is ERROR<br>");
}
}catch(Exception e)
{
System.out.println("<br>Connect Exception:"+e.getMessage()+"<br>");
}
try {
Statement st = conn.createStatement();
ResultSet rs=null;
if(user.id!=null){
if(language_id!=null && !language_id.equals(""))
{
//Set the language for the current user if it is transferred.
user.language_id=language_id;
try {
st.execute("update main._users set language_id='"+user.language_id+"' where id="+user.id);
} catch( SQLException ex )
{
System.out.println("<br>SQLException:"+ex.getMessage()+"<br>");
}
}
//Select language for current user
try {
String sql="select language_id,country_id from main._users where id="+String.valueOf(user.id)+";";
rs = st.executeQuery(sql);
} catch( SQLException ex )
{
System.out.println("<br>SQLException:"+ex.getMessage()+"<br>");
}
if(rs!=null)
{
while (rs.next())
{
user.language_id = rs.getString("language_id");
user.country_id = rs.getString("country_id");
}
}
}
st.close();
} catch( SQLException ex )
{
System.out.println("<br>SQLException:"+ex.getMessage()+"<br>");
}
//Send user name and role
model.addAttribute("uName",user.name+" ("+user.role+")");
model.addAttribute("m_locale",user.language_id);
model.addAttribute("country_id",user.country_id);
//Send translation to user
/*InputStream utf8in = getClass().getClassLoader().getResourceAsStream("messages_"+user.lng+".properties");
if(utf8in!=null)
{
Properties props=new Properties();
Reader reader;
try {
reader = new InputStreamReader(utf8in, "UTF-8");
props.load(reader);
} catch (UnsupportedEncodingException e) {
}catch (IOException e) {
}
//Также подгружаю перевод из XML файла Android проекта
Translation.loadTranslationFromXML(props,getClass().getClassLoader().getResourceAsStream("strings_"+user.lng+".xml"));
Set<Object> keys = props.keySet();
for(Object k:keys){
String key = (String)k;
String val="";
//val = trt(conn,key,user); //Если есть то перевод беру из базы данных
if(val.equals(""))
{
val = props.getProperty(key,"");
if(val.equals(""))
{
val = val.replaceAll("_", " ");
}
}
model.addAttribute(key,val);
}
}*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//TODO удалить нужно только для копирования языков в базу (если там их нет)
/*InputStream isXML = getClass().getClassLoader().getResourceAsStream("strings_"+user.lng+".xml");
if(isXML!=null)
{
Document doc = null;
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(isXML);
} catch (Exception ex) {
logger.info(ex.getMessage());
}
Node reqNode = doc.getDocumentElement();
Node nextnode=reqNode.getFirstChild();
while(nextnode!=null)
{
if(nextnode.getNodeName().equals("string"))
{
String name=nextnode.getAttributes().getNamedItem("name").getNodeValue();
String val="";
if(nextnode.getFirstChild()!=null)
val=nextnode.getFirstChild().getNodeValue();
//Если нет то добавляю
boolean exists=false;
try {
Statement st = conn.createStatement();
ResultSet rs=null;
try {
String sql="select t.id from main._translations t join main._languages l on l.id=t.language_id where t.del=false and identifier='"+name+"' and l.short_name='"+user.lng+"';";
rs = st.executeQuery(sql);
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
if(rs!=null)
{
while (rs.next())
{
exists=true;
}
}
st.close();
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
if(exists)
{
logger.info(name+" = "+val+" exists");
//Если идентификатор сушествует то проверяю совпадает ли сам перевод (просто для информации)
boolean equals=false;
try {
Statement st = conn.createStatement();
ResultSet rs=null;
try {
String sql="select t.id from main._translations t join main._languages l on l.id=t.language_id where t.del=false and t.identifier='"+name+"' and t.translation='"+val+"' and l.short_name='"+user.lng+"';";
rs = st.executeQuery(sql);
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
if(rs!=null)
{
while (rs.next())
{
equals=true;
}
}
st.close();
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
if(equals)
{
logger.info(name+" = "+val+" equals");
}else
{
logger.info(name+" = "+val+" not equals");
}
}else
{
logger.info(name+" = "+val+" not exists");
//Вставляю новую запись в базу
try {
Statement st = conn.createStatement();
try {
String sql="insert into main._translations(language_id,identifier,translation,translation_type_id) select (select l.id from main._languages l where l.del=false and l.short_name='"+user.lng+"'),'"+name+"' as identifier,'"+val+"' as translation,3 as translation_type_id;";
st.execute(sql);
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
}
}
nextnode = nextnode.getNextSibling();
}
}*/
//Читаю перевод из properties файлов и записываю в базу под номером 1
/*InputStream utf8in = getClass().getClassLoader().getResourceAsStream("messages_"+user.lng+".properties");
if(utf8in!=null)
{
Properties props=new Properties();
Reader reader;
try {
reader = new InputStreamReader(utf8in, "UTF-8");
props.load(reader);
} catch (UnsupportedEncodingException e) {
}catch (IOException e) {
}
//Также подгружаю перевод из XML файла Android проекта
//Translation.loadTranslationFromXML(props,getClass().getClassLoader().getResourceAsStream("strings_"+user.lng+".xml"));
Set<Object> keys = props.keySet();
for(Object k:keys){
String key = (String)k;
String val = props.getProperty(key,"");
//Если нет то добавляю
boolean exists=false;
try {
Statement st = conn.createStatement();
ResultSet rs=null;
try {
String sql="select t.id from main._translations t join main._languages l on l.id=t.language_id where t.del=false and identifier='"+key+"' and l.short_name='"+user.lng+"' and translation_type_id=1;";
rs = st.executeQuery(sql);
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
if(rs!=null)
{
while (rs.next())
{
exists=true;
}
}
st.close();
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
if(exists)
{
logger.info(key+" = "+val+" exists");
}else
{
logger.info(key+" = "+val+" not exists");
//Вставляю новую запись в базу
try {
Statement st = conn.createStatement();
try {
String sql="insert into main._translations(language_id,identifier,translation,translation_type_id) select (select l.id from main._languages l where l.del=false and l.short_name='"+user.lng+"'),'"+key+"' as identifier,'"+val+"' as translation,1 as translation_type_id;";
st.execute(sql);
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
} catch( SQLException ex )
{
logger.info(ex.getMessage());
}
}
}
}*/
//Для перевода выбираю всё что под номером 1 в переводе
try {
m_props = new Properties();
Statement stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql_query = "select identifier,case when '"+user.language_id+"'='666' then translation||'''\"' else translation end as translation from main._translations t where t.del=false and (t.language_id='"+user.language_id+"' or ('"+user.language_id+"'='666' and t.language_id=1)) and translation_type_id=1;";
ResultSet rs = stt.executeQuery(sql_query);
if (rs != null) {
while (rs.next())
{
String identifier = rs.getString("identifier");
String translation = rs.getString("translation");
m_props.setProperty(identifier, translation);
}
rs.close();
}
stt.close();
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
Set<Object> keys = m_props.keySet();
for(Object k:keys){
String key = (String)k;
String val="";
if(val.equals(""))
{
val = m_props.getProperty(key,"");
if(val.equals(""))
{
val = val.replaceAll("_", " ");
}
}
model.addAttribute(key,val);
}
//Подложка Substrate_head Substrate_tail
String Substrate_head="";
String Substrate_tail="";
if(!user.country_id.equals(""))
{
try {
Statement st = conn.createStatement();
ResultSet rs=null;
try {
String sql="SELECT id,path,description,projection FROM main.layouts where del=false and country_id="+user.country_id+" order by description";
rs = st.executeQuery(sql);
} catch( SQLException ex )
{
}
if(rs!=null)
{
while (rs.next())
{
Substrate_head+=" <option value=\""+rs.getString("id")+"\">"+rs.getString("description")+"</option>\n";
Substrate_tail+="g_Layouts[\""+rs.getString("id")+"\"] = new ol.source.XYZ({\n";
Substrate_tail+=" url: '"+rs.getString("path")+"',\n";
if(rs.getString("projection")!=null && rs.getString("projection").indexOf("EPSG:")!=-1)
Substrate_tail+=" projection: '"+rs.getString("projection")+"',\n";
Substrate_tail+=" });\n";
}
}
st.close();
} catch( SQLException ex )
{
}
}
model.addAttribute("Substrate_head",Substrate_head);
model.addAttribute("Substrate_tail",Substrate_tail);
//Выбираю дату получения NDVI данных по номеру дня
/*{
int maxNum=1;
try {
File folder = new File(ndvi_dir);
File[] listOfFiles = folder.listFiles();
if(listOfFiles!=null)
{
for (int i = 0; i < listOfFiles.length; i++)
{ if (listOfFiles[i].isFile())
{
if(Tools.afterLast(listOfFiles[i].getName(),".").equals("json"))
{
int num=1;
try {
num=1+Integer.valueOf(Tools.beforeLast(listOfFiles[i].getName(),"."));
}catch(Exception ex)
{
System.out.println(ex.getMessage());
}
if(num>maxNum) maxNum=num;
}
}
}
}
}catch(Exception ex)
{
System.out.println(ex.getMessage());
}
Year y = Year.of( Calendar.getInstance().get(Calendar.YEAR) ) ;
model.addAttribute("NDVI_DATE",y.atDay( maxNum ).toString());
model.addAttribute("NDVI_DAY",String.valueOf(maxNum));
}*/
//Выбираю дату получения NDWI данных по номеру дня
/*{
int maxNum=1;
try {
File folder = new File(ndwi_dir);
File[] listOfFiles = folder.listFiles();
if(listOfFiles!=null)
{
for (int i = 0; i < listOfFiles.length; i++)
{ if (listOfFiles[i].isFile())
{
if(Tools.afterLast(listOfFiles[i].getName(),".").equals("json"))
{
int num=1;
try {
num=1+Integer.valueOf(Tools.beforeLast(listOfFiles[i].getName(),"."));
}catch(Exception ex)
{
System.out.println(ex.getMessage());
}
if(num>maxNum) maxNum=num;
}
}
}
}
}catch(Exception ex)
{
System.out.println(ex.getMessage());
}
Year y = Year.of( Calendar.getInstance().get(Calendar.YEAR) ) ;
model.addAttribute("NDWI_DATE",y.atDay( maxNum ).toString());
model.addAttribute("NDWI_DAY",String.valueOf(maxNum));
}*/
try{ conn.close(); }catch(Exception e){}
return "engine/index";
}
@Override
public void setServletContext(ServletContext context){
this.context=context;
}
//Перевести слово по идентификатору из базы а если в базе нет то из файлов перевода
public String trt(Connection conn,String key,User user)
{
String result="";
if(key.equals(""))
return result;
try {
Statement stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql_query = "select case when '"+user.language_id+"'='666' then translation||'''\"' else translation end as translation from main._translations t where t.del=false and identifier='"+key+"' and (t.language_id='"+user.language_id+"' or ('"+user.language_id+"'='666' and t.language_id=1));";
ResultSet rs = stt.executeQuery(sql_query);
if (rs != null) {
try {
if (rs.next())
result=rs.getString(1);
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
rs.close();
}
stt.close();
} catch (SQLException ex) {
logger.info(ex.getMessage());
}
if(result.equals(""))
{
result = key.replaceAll("_", " ");
}
return result;
}
}

View File

@ -0,0 +1,21 @@
package kz.locust.CCALM.recReq;
import java.io.Serializable;
public class RecReq implements Serializable {
private static final long serialVersionUID = 1L;
public int fn;
public int cmd;
public int getFn()
{
return fn;
}
public int getCmd()
{
return cmd;
}
}

View File

@ -0,0 +1,535 @@
language = en
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Language = Language
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,534 @@
language = en
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,535 @@
language = en
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,535 @@
language = en
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,535 @@
language = en
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,534 @@
language = ps
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,540 @@
language = ru
Language = Язык
label_registration = Регистрация
label_login = Войти на сайт
From_DPA = С планшета
Days = Дней
Hours = Часов
Company_User = Компания -> Пользователь
Object_Geofence = Объект > Геозона
Sensor_for_ComboBox = Датчик для выпадающего списка
The_boundary_values_of_the_sensors = Граничные значения датчиков.
CountriesRegions = Границы регионов
Types_of_locust = Виды саранчи
Help = Помощь
Unknown_function = Неизвестная функция!
Not_yet_implemented = Пока не реализовано!
Layout = Слой
Company = Компания
Path = Путь
Description = Описание
Layouts = Слои
Type_of_locust = Вид саранчи
Kind_of_locust = Вид саранчи
Sorting_index = Индекс сортировки
Name = Имя
Types_of_locust = Вид саранчи
Markings = Маркировка
Formulation = Препаративная форма
Vegetation = Растительность
Fledgling = Окрыление
Age = Возраст
Biotop = Биотоп
Capacity = Ёмкость
Capacities = Ёмкости
Borns = Отрождение
Сontainers = Контейнеры
Breeding = Поведение
Containers = Контейнеры
Types_of_operators = Типы операторов
Types_of_operator = Тип оператора
Density_of_vegetation = Густота растительного покрова
Height = Высота
Damage = Повреждения
Density = Плотность
Directions = Направления
Angle = Угол
Methods_of_calculating_mortality = Методы подсчёта смертности
Method_of_calculating_mortality = Метод подсчёта смертности
Phase = Фаза
Condition_of_vegetation = Состояние растительности
Actions_of_bands = Действия кулиги
Behaviors = Поведение
Paintings = Окраска
Painting = Окрас
Enemies = Наличие естественных врагов
Report_by_tablets = Отчёт по планшетам
Country = Страна
From_date = С даты
To_date = По дату
The_tabblet = Планшет
Forms_for_locust_survey = Формы обследования саранчи
Forms_for_spray_monitoring = Формы мониторинга противосаранчовых обработок
Completed_forms_by_tablets = Заполнение форм по планшетам
Filling_forms_by_countries = Заполнение форм по странам
Method_filling_form = Способ заполнения формы
The_tablet_registered = Планшет зарегистрирован
IDENTIFICATION_OF_THE_PLACE = ИДЕНТИФИКАЦИЯ МЕСТА
Region = Область
Regions = Области
Rayon = Район
Rual_district = Сельский округ
Name_of_the_village = Поселок
Farm_or_site = Хозяйство или местность
Name_of_survey_team_leader = Имя лидера команды обследования
Date = Дата
Latitude_of_point = Широта точки
Longitude_of_point = Долгота точки
Surveyed_area_ha = Обследованная площадь(га)
ECOLOGICAL_INFORMATION = ЭКОЛОГИЧЕСКАЯ ИНФОРМАЦИЯ
Type_of_biotope = Тип биотопа
Vegetation_cover = Густота растительного покрова
Air_temperature = Погода: температура воздуха(ºC)
Wind_m_s = Погода: ветер(м/с)
bio_wind = Погода: ветер(м/с)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = ИНФОРМАЦИЯ О САРАНЧОВЫХ (В Т.Ч. КУБЫШКИ)
Present = Присутствуют саранчовые
Locust_species = Вид саранчи
Area_infested_ha = Заселённая площадь(га)
EGGS = ЯЙЦА
Egg_bed_surface_in_ha = Залежь кубышек (площадь га)
Egg_pods_density_m2 = Плотность кубышек (/м²)
Egg_pods_density = Плотность кубышек
Egg_pod = Кубышки
to = до
Eggs_average_number_egg_pod = Яйца (в среднем в кубышке)
Eggs_viable = Яйца(% жизнеспособных)
Natural_enemies_present = Естественны враги
HOPPERS_SCATTERED = ЛИЧИНКИ (РАЗРЕЖЕННЫЕ)
Hatching = Отрождение
Hopper_stages = Возраст личинок
Appearance = Фаза
Behaviour = Поведение
Hopper_density_m2 = Плотность личинок (/м²)
Hopper_density = Плотность личинок
Hopper_density_m2_to = Плотность личинок (/м²) до
HOPPER_BANDS = КУЛИГИ
Minimum_density_in_the_band_in_m2 = Плотность минимальная в кулиге (/м²)
Maximum_density_in_the_band_in_m2 = Плотность максимальная в кулиге (/м²)
Band_sizes_m2 = Размер кулиг (м²)
Number_of_bands = Количество кулиг
Behavior = Поведение
ADULTS = ИМАГО
Fledging = Окрыление
Maturity = Половозрелость
Adult_density_ha = Плотность имаго /га
Adult_density_m2 = Имаго (плотность/м²)
Adult_density = Плотность имаго
Feeding_and_roosting = Питание и размещение на растениях
Copulating = Спаривание
Laying = Яйцекладка
Flying = Полёты
SWARMS = СТАИ
Density_of_swarm = Плотность в стае
Swarm_size_ha = Размер стаи (га)
Number_of_swarms = Число стай
Flying_direction = Направление полёта
Flying_height = Высота полёта
COMMENTS = КОММЕНТАРИИ
Locust_Survey_Form = Форма обследования саранчи
Locust_Survey_Forms = Формы обследования саранчи
From_the_tablet = С планшета
From_WEB_interface = С WEB интерфейса
User = Пользователь
Weather_air_temperature_C = Погода: температура воздуха(ºC)
Weather = Погода
larva_behavior = Поведение
Spray_Monitoring_Form = Форма противосаранчовых обработок
Rural_district = Сельский округ
Name_of_control_team_leader = Имя лидера команды по обработке
Latitude_center_portion = Широта (центр участка)
Longitude_center_portion = Долгота (центр участка)
Area_treated_ha = Обработанная площадь(га)
VEGETATION_DATA = РАСТИТЕЛЬНОСТЬ
Kind = Вид
Type = Тип
type = тип
types = типы
Height_cm = Высота (см)
Crop_name = Наименование сельхозкультуры
Damage_area_ha = Площадь повреждения (га)
INSECTICIDE_DATA = ИНФОРМАЦИЯ ОБ ИНСЕКТИЦИДАХ
Trade_name = Коммерческое название
The_active_substance = Действующее вещество
Concentration_A_S = Концентрация (%)
Dose_rate_l_of_commercial_product_ha = Норма расхода (л коммерческого продукта/гa)
Rate_of_working_solution_l_ha = Расход рабочей жидкости (л/га)
Total_volume_of_working_solution_actually_applied_l = Общий объем использованной рабочей жидкости (л)
Number_of_spores_ml = Концентрация спор(/мл)
WEATHER_CONDITIONS = ПОГОДНЫЕ УСЛОВИЯ
Time_start = Время начала обработки
Time_end = Время окончания обработки
Temperature_start = Температура нач.(°C)
Temperature_end = Температура кон.(°C)
Relative_humidity_start = Отн. влажность воздуха нач.(%)
Relative_humidity_end = Отн. влажность воздуха кон.(%)
Wind_speed_start_m_s = Скорость ветра нач. (м/с)
Wind_speed_end_m_s = Скорость ветра кон. (м/с)
Wind_direction_start = Направление ветра нач.
Wind_direction_end = Направление ветра кон.
Spray_direction_start = Направление опрыскивания нач.
Spray_direction_end = Направление опрыскивания кон.
LOCUST_INFORMATION = ИНФОРМАЦИЯ О САРАНЧОВЫХ (В Т.Ч. КУБЫШКИ)
Imago = Имаго
Density_m2 = Плотность на м²
Bands = Кулиги
Swarms = Стаи
Scattered = Разреженные
SPRAY_APPLICATION = СВЕДЕНИЯ ПО ОПРЫСКИВАНИЮ
Spray_platform = Способ опрыскивания
Aerial = Авиа
Ground = Наземное
Person = Ручное
Spray_type = Вид опрыскивания
Spray_manufacturer = Марка опрыскивателя
Model_sprayer = Модель опрыскивателя
Atomizer_height_above_ground_m = Высота распылителя над поверхностью почвы (м)
Barriers = Барьеры
Barrier_width_m = Ширина барьера (м)
Spacing_of_barriers_m = Промежуток барьера (м)
spray_height = Высота над поверхностью почвы (м)
Forward_speed_km_h = Средняя скорость движения (км/ч)
Antenna_DGPS_used = Антенна: DGPS использовалась
Ground_marking = Наземная маркировка
CONTROL_EFFICACY = КОНТРОЛЬ ЭФФЕКТИВНОСТИ
Biological_efficiency_of_treatment = Биологическая эффективность обработки (%)
Time_after_treatment_hours = Прошло времени после обработки (часов)
Method_of_biological_efficiency_estimation = Метод подсчета биологической эффективности
SAFETY_AND_ENVIRONMENT = БЕЗОПАСНОСТЬ И ОКРУЖАЮЩАЯ СРЕДА
Protective_clothing = Индивидуальные средства защиты
Goggles = Очки
Masks = Маска
Gloves = Перчатки
Overalls = Комбинезон
Caps = Шапка
Boots = Сапоги
Absent = Отсутствуют
Protective_clothing_clean_and_in_good_state = Защитная одежда чистая и в хорошем состоянии?
Operator_accidentally_exposed_to_insecticide_or_feeling_unwell = Оператор случайно подвергся воздействию инсектицида или плохое самочувствие
Inform_abaut_spraying = Оповещенные об обработках
Farmer = Фермер
Shepherd = Пастух
Official = Должностное лицо
Beekeeper = Пчеловод
Villager = Сельский житель
Other = Другие
Empty_containers = Пустые контейнеры
Effect_on_non_terget_organism = Воздействие на нецелевые организмы
If_yes_describe_what_happened_description = Если да, опишите, что произошло
if_Yes_type_of_organisms_and_effects_description = Если Да, тип организмов и эффекты (описание)
If_Yes_type_of_incident_and_reported_by_whom_description = Если Да, тип инцидента и кем сообщен (описание)
Other_environmental_or_health_incident_reported_that_might_have_been_caused_by_the_treatment = Другие инциденты по здоровью или окружающей среде, возникшие при обработке
Comments = Коментарии
Spray_Monitoring_Forms = Формы противосаранчовых обработок
Information_on_the_distribution_of_locust = Информация о распространении и борьбе со стадными саранчовыми
Year = Год
year = год
Inspect_thous_ha = Обследовано (тыс. га)
Infested_thous_ha = Заселено (тыс. га)
Infested_over_ETD_thous_ha = Заселено выше ЭПВ (тыс. га)
Treated_thous_ha = Обработано (тыс. га)
The_tablet = Планшеты
Organization = Организация
Phone_number = Номер телефона
Responsible_person = Ответственное лицо за планшет (инспектор)
Serial_number = Серийный номер
The_tablet_model = Модель планшета
The_tablets = Планшеты
Phone = Телефон
Responsible_person = Ответственное лицо
Change_password = Сменить пароль
Login = Логин
Password = Пароль
New_password = Новый пароль
Repeat_password = Повторить пароль
User_settings = Пользовательские настройки
Named = Наименование
Value = Значение
Values = Значения
Object = Объект
sensor = сенсор
Groups_of_objects = Группы объектов
Object_of_observation = Объект наблюдения
Access = Доступ
Identifier = Идентификатор
Allow = Разрешить
Sensor = Сенсор
objects = объекты
Sensor_values = Показание датчика
Terminal = Терминал
Units_of_measurement = Единицы измерения
Fix_date = Дата фиксации
Messages = Сообщения
Read = Прочтённые
Readed = Прочтённые
Content = Содержание
Date_read = Дата чтения
Date_create = Дата создания
Day_mileage_and_speed = Дневной пробег и скорость
Kilometers_distance = Дистанция км.
Kilometers_distance_without_signal = Дистанция км. без сигнала
Company_site = Сайт компании
Contact_phone = Контактный телефон
Organizations = Организации
Site = Сайт
Users = Пользователи
Terminal_model = Модель терминала
Models_of_terminals = Модели терминалов
Sensor_type = Тип датчика
Sensor_of_devices = Датчик оборудования
Measurement = Измерение
Sensor_model = Модель датчика
Rounded_to = Округлять до
Sensors_models = Модели датчиков
Count_objects = Количество объектов
Group = Группа
Terminals = Терминалы
Stationary = Стационарный
Latitude = Широта
Longitude = Долгота
Icon = Иконка
Objects_of_observation = Объекты наблюдения
Count_of_sensors = Количество датчиков
Icons = Иконки
name = имя
File = Файл
Size = Размер
byte = байт
Geofence = Геозона
Geofences = Геозоны
Coordinate = Координаты
Coordinates_Geofence = Координаты геозоны
Position = Должность
True_position = Правильное положение
outside = снаружи
inside = внутри
Boundary = Граничное
Inform = Информировать
Inside = Внутри
Sensor_of_object = Датчик объекта
Sensors_of_objects = Датчики объектов
Last_value = Последнее значение
Date_of_the_last_value = Дата посл. знач.
Readings = Показание
Devices = Устройства
Sensor_readings = Показание датчика
GPS_readings = GPS показание
Fixation_date = Дата фиксации
Speed = Скорость
Message = Сообщение
Subject = Тема
Creation_date = Дата создания
Contents = Содержимое
User_messages = Сообщения пользователя
Reading_date = Дата прочтения
Users_messages = Сообщения пользователей
Minimum_value = Минимальное значение
Maximum_value = Максимальное значение
Only_on_the_boundary = Только на границе
Action = Действие
Rule = Правило
Actions = Действия
Access_role = Роль доступа
Parental_role = Родительская роль
Role_name = Наименование роли
Role_description = Описание роли
Role = Роль
Surname = Фамилия
Patronymic = Отчество
Phones = Телефоны
Password_expiration = Срок действия пароля
Renewal_password = Продление пароля
days = дней
day = день
S_N_P = Ф.И.О.
Last_enter = Посл. заход
Roles = Роли
User_roles = Пользовательские роли
Synchronization_objects = Объекты синхронизации
Synchronization_service = Сервис синхронизации
Synchronization_order = Порядок синхронизации
The_interval_between_the_update_in_s = Интервал между обн. в (сек)
At_a_time = Записей за раз
Time_of_the_last_synchronization = Времени с последней синхронизации
Service = Сервис
Order = Порядок
Interval = Интервал
Limit = Лимит
Synchronization_services = Сервисы синхронизации
Host = Хост
History = История
Table = Таблица
Field = Поле
Data = Данные
Short_name = Короткое имя
Translation = Перевод
Sprayer_type = Вид опрыскивателя
Sprayers = Опрыскиватели
Sprayer = Опрыскиватель
SprayersTypes = Вид опрыскивателя
Sprayer_type_name = Наименование опрыскивателя
Countries = Страны
Regions = Районы
Automated_system_of_data_collection = Автоматизированная система сбора данных
Download_android_app_Inspector = Скачать андроид приложение инспектора
Run_the_application_of_the_situational_center = Запустить приложение ситуационного центра
For_any_questions_contact_us_at_tel_Fax = По всем интересующим вопросам обращаться по тел./факс
You_are_not_logged_in = Вы не авторизованы!
Not_found_the_requested_node: = Не найден запрошенный узел:
The_number_of_records_is_not_equal_to_one = Количество записей не равно одному!
Filter_options = Параметры фильтра
Time_and_date_of_generation = Время и дата генерации
Creator = Создатель
E_mail_already_exists_in_the_database = Адрес электронной почты уже существует в базе данных!
Registration_form = Форма регистрации
You_have_successfully_registered = Вы успешно зарегистрировались!
Password_sent_to_your_e_mail = Пароль отправлен на ваш е-mail.
Operator_registration_form = Форма регистрации оператора
Security_Code = Защитный код
Update = Обновить
image = рисунок
Registering = Регистрация
Failed_to_send_your_password_to_the_e_mail = Не удалось отправить пароль на электронную почту.
Failed_to_update_the_password = Не удалось обновить пароль.
configuration_section_s = Раздел конфигурации; %s
configuration_option_s = опция конфигурации; %s
Locust_survey = Обследования саранчи
Spray_monitoring = Противосаранчовые обработки
Reports = Отчёты
Report = Отчёт
Map_layers = Слои карты
Administration = Администрирование
Standard_survey_forms = Стандартные формы обследования
Companies = Компании
Report_by_countries = Отчёт по странам
Lists = Справочники
Members = Пользователи
Photo = Фотография
Indicator = Показатель
PDA_registered = Планшеты зарегистрированы
From_PDA = С планшета
From_WEB_interface = С WEB интерфейса
Open_in_a_table_format = Открыть в табличном виде
Request_data = Запросить данные
Not = Нет
Yes = Да
Attention = Внимание
Quietly = Спокойно
Number_forms = Количество форм
Open_data_on_the_map = Открыть данные на карте
No_data = Данные отсутствуют
From_date = С даты
To_date = По дату
or = или
Dangerous = Опасно
Distribution_of_locust = Распространение и борьба со стадными саранчовыми
Hide = Скрыть
For_what_year = За какой год
Displayed_data = Отображаемые данные
Automated_system_of_data_collection_ASDC = Автоматизированная система сбора данных (ASDC)
Invalid_username_and_or_password = Неверный логин и/или пароль!
CIT_Italian_locust = CIT - итальянский прус
DMA_Moroccan_locust = DMA - мароккская саранча
LMI_Asian_migratory_locust = LMI - азиатская перелетная саранча
Substrate = Подложка
Change_login_password = Изменить логин/пароль
Displaying_data = Отображение данных
Show_data = Отобразить данные
All_types = Все виды
All_kinds = Все виды
Maps_of_areas_infested_above_Economic_Threshold_ET = Карты площадей, заселенных с плотностями выше экономического порога вредоносности (ЭПВ)
Maps_of_treated_areas_above_ET = Карты обработанных площадей выше ЭПВ
Map_of_the_level_of_threat = Карта уровня угрозы
Download_QGIS_project = Скачать QGIS проект
Danger = Опасно
Caution = Внимание
Calm = Спокойно
Increase = Подъём
Decrease = Спад
On_the_same_level = На том же уровне
Normal_Multiyear_average_level = Нормальный/Среднемноголетний уровень
Device_id = Идентификатор устройства
All_countries_of_CCA = Страны КЦА
The_Caucasus_countries_and_Russia = Страны Кавказа и Россия
Countries_of_Central_Asia_and_Russia = Станы Центральной Азии и Россия
from = от
The_forecast_of_hatching_periods = Прогноз инкубационного периода
Weather_forecast = Прогноз погоды
soil_temperature = температура почвы
Soil_temperature = Температура почвы
Passwords_did_not_match = Пароли не совпадают!
The_s_is_not_Email = Логин «%s» не электронная почта!
Password_changed_successfully = Пароль успешно изменен.
Failed_to_change_password = Не удалось изменить пароль.
Check_the_entered_data = Проверьте введенные данные.
for_ = для
Earth_temperature = Температура земли
Point = Точка
Forecast_of_hours = Часы прогноза
hours = часов
Change_login_password = Сменить логин/пароль
Type = Тип
Legend = Легенда
Spraying = Опрыскивание
Chart = График
Average = Среднее
Percent = Процент
For_s_year = За %s год
and = и
Time_and_date_of_generation = Дата создания
Filter_options = Параметры фильтра
Export_to_Excel = Экспорт в Excel
Preparing_of_report = Подготовка отчёта
Download_report = Скачать отчёт
Old_password = Старый пароль
Not_filled_Email_address = Не заполнен email
Wrong_XML_document = Неверный XML-документ
Please_enter_a_valid_email_address = Пожалуйста, введите правильный адрес электронной почты
For_new_users = Для новых пользователей
For_returning_users = Для вернувшихся пользователей
Phone = Телефон
Log_in = Авторизоваться
Registration = Регистрация
Authorization = Авторизация
Password_recovery = Восстановление пароля
The_s_field_is_empty = Не заполнено поле "%s"
New_user_is_registered = Новый пользователь зарегистрирован.
The_password_has_been_sent_to_you_by_Email = Пароль отправлен вам на Email.
Others = Другие
District = Район
Districts = Районы
All = Всё
Region = Область
Edit = Редактировать
thous_ha = тыс. га
Thous_ha = Тыс. га
Average = Среднее
Year = Год
Deviation = Отклонение
Dev_of_average = Откл. от среднего
Cancel = Отмена
Responsible_person_for_data_verification = Ответственное лицо по верификации данных
Upload = Загрузить
Delete = Удалить
Download = Скачать
Repeat_the_addition_of_the_entry = Повторить добавление записи
Apply = Применить
Calcel = Закрыть
Hoppers = Личинки (разреженные)
Kuliguli = Кулиги
Adult = Имаго
Restore = Восстановить
Add_more = Добавить ещё
Successfully_added_data = Данные успешно добавлены
Are_you_sure_you_want_to_delete_the_entries = Вы действительно хотите удалить записи?
Increase_by_1 = Увеличить на 1
Decrease_by_1 = Уменьшить на 1
No_results_were_found_for_your_search = По вашему запросу ничего не найдено!
Selection = Выбор
Add_record = Добавить запись
Delete_record = Удалить записи
Filtering = Фильтровать
Invert_selection = Инвертировать выделение
No_locust = Нет саранчи
Triple_rinsed=Трижды промытые
Punctured=Проколотые
Taken_back_to_base=Возвращенные на базу
Left_in_field=Оставленные в поле
Buried=Закопанные
Burned=Сожженные

View File

@ -0,0 +1,535 @@
language = en
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,535 @@
language = en
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,535 @@
language = en
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

534
src/main/java/not_used Normal file
View File

@ -0,0 +1,534 @@
language = en
Language = Language
label_registration = Registration
label_login = Log In
Types_of_locust = Kinds of locust
Unknown_function = Unknown function!
Not_yet_implemented = Not yet implemented!
Type_of_locust = Type of locust
Kind_of_locust = Kind of locust
Name = Name
Types_of_locust = Kinds of locust
Age = Age
Biotop = Biotop
Sorting_index = Index of sorting
Capacity = Capacity
Capacities = Capacities
Types_of_operators = Types of operators
Types_of_operator = Types of operator
Density_of_vegetation = Density of vegetation
Damage = Damage
Density = Density
Directions = Directions
Angle = Angle
Methods_of_calculating_mortality = Methods of calculating mortality
Method_of_calculating_mortality = Method of calculating mortality
Phase = Phase
Condition_of_vegetation = Vegetation state
Actions_of_bands = Actions of hopper bands
Behaviors = Behaviour
Paintings = Paintings
Painting = Painting
Report_by_inspectors = Report by inspectors
From_date = From date
To_date = To date
Surname = Surname
Patronymic = Patronymic
Completed_questionnaires_locusts = Completed questionnaires locusts
Completed_questionnaires_for_the_destruction_of_locusts = Completed questionnaires for the destruction of locusts
FrmLocust = FrmLocust
User = User
Photo = Photo
Photo_name = Photo name
Country = Country
Area = Area
Region = Region
District = District
Observer = Observer
Date = Date
Terrain = Terrain
Latitude = Latitude
Longitude = Longitude
bio_hectare = Surveyed area (ha)
bio_biotope = Type of habitat
bio_greenery = Vegetation
bio_greenery_cover = The vegetation cover
bio_temperature = Weather: air temperature (ºC)
Weather = Weather
bio_wind = Weather: wind (m/s)
Wind_m_s = Weather: wind (m/s)
LOCUST_INFORMATION_INCLUDING_EGG_PODS = _LOCUST INFORMATION (INCLUDING EGG-PODS)
Air_temperature = Weather: air temperature (ºC)
locust_have = Present locusts
locust_populated = Populated area (ha)
eggs_capsules_area = Deposit egg capsules (area in m²)
eggs_capsules_density = Potbelly (density per m²)
Egg_bed_surface_in_ha = Egg-bed (surface in m²)
eggs_capsules = Eggs (average per pod)
eggs_live = Eggs (% viable)
eggs_enemies = The presence of natural enemies (what?)
larva_born = Born
larva_age = Age
larva_painting = Painting
larva_behavior = Behavior
larva_density = Density (per m²)
kuliguli_age = Mean age
kuliguli_density = Tighter. in the swarm (in m²)
kuliguli_size = Swarms size (m²)
kuliguli_count = By swarms
kuliguli_action = Behavior
imago_wing = Stand on the wing
imago_maturity = Maturity
imago_phase = Phase
imago_action = Behavior
imago_density = Density (per he.)
imago_copulation = Mating or egg-laying
imago_flying = Flying
swarm_maturity = Maturity
swarm_density = Density (per m²)
swarm_size = Size rooms (per km²)
swarm_count = Count of swarms
swarm_copulation = Mating or egg-laying
swarm_flying = Flying
swarm_height = Height
Description = Description
Inspector = Inspector
Changed = Changed
Lon = Longitude
Lat = Latitude
locust_type = Kind of locust
imago_laying = Egg-laying
swarm_laying = Egg-laying
Comments = Comments
Locust_Survey_Forms = Locust survey forms
Spray_Monitoring_Forms = Spray monitoring forms
FrmLocustDel = Standard forms for locust
infested_area = Populated area (ha)
treated_area = Cultivated area (ha)
vegetation_type = Type (wild, cultural)
Vegetation_type = Vegetation type
vegetation_height = Height (m)
vegetation_cover = Vegetation cover (%)
vegetation_crop = Vegetation
vegetation_damage = Damage to vegetation cover (%)
vegetation_damage_area = Area damage
insecticide_name = Commercial name
The_active_substance = The active substance
insecticide_concentration = Concentration (%)
insecticide_formulation = Formulation
insecticide_dose = Consumption rate (l/ha)
insecticide_rate = Working fluid flow (l/ha)
insecticide_expiry_date = Expiration
insecticide_mixed = Do insecticide mixed with water or solvent?
insecticide_mixed_name = Solvent
insecticide_mixed_ratio = If so, in what proportion (%)
weather_time_start = Start time
weather_time_end = End time
weather_temperature_start = Temperature at the start (°C)
weather_temperature_end = Temperature at the end (°C)
weather_humidity_start = Humidity start (%)
weather_humidity_end = Humidity end (%)
weather_wind_speed_start = Wind speed at the start (m/s)
weather_wind_speed_end = Wind speed at the end (m/s)
weather_direction_start = Start direction
weather_direction_end = End direction
weather_spray_direction_start = Spray direction at the start
weather_spray_direction_end = Spray direction at the end
locust_speciese = Species
locust_hoppers = Instar larvae
locust_density = Density (per m²)
spray_platform = Spray platform
spray_operator = Operator of spraying
spray_operator_name = Name of operator
spray_manufacturer_name = Brand sprayer
spray_model_name = Model of sprayer
spray_date_calibration = Date of last calibration
spray_height = Atomizer height above ground (m)
spray_width = Width (m)
spray_barrier = Barriers (m)
spray_speed = Speed (km/h)
spray_gps = Antenna: GPS used
spray_marking = Ground marking
efficacy_mortality = Locust mortality (%)
efficacy_passed_time = Elapsed time after working
efficacy_mortality_method = Method of counting mortality
safety_clothing = What protective clothing used operator
safety_inform = Who was notified about the workings?
safety_non_target = Impact on non-target organisms
safety_non_target_effect = If yes, what?
description = description
locust_kuliguli = Kuligi
locust_swarm = Swarms
locust_sparse = Sparse
Air_platform = Air platform
Ground_platform = Ground platform
Hand_platform = Hand platform
Type_of_operator = Type of operator
spray_barrier_width = Width (m)
spray_barrier_space = Space (m)
Terminal = Terminal
Named = Name
Phone = Phone
Serial_number = Serial number
Terminal_model = Terminal model
Terminals = Terminals
Coordinates_Geofence = Coordinates of geozone
Geofence = Geozone
Change_password = Change password
Login = Login
Password = Password
New_password = New password
Repeat_password = Repeat password
User_settings = User settings
Value = Value
Company = Company
Values = Values
Object = Object
sensor = sensor
Groups_of_objects = Groups of objects
Object_of_observation = Object of observation
Access = Access
Identifier = Identifier
Allow = Allow
Sensor = Sensor
objects = objects
Sensor_values = Sensor values
Units_of_measurement = Units of measurement
Fix_date = Fix date
Messages = Messages
Read = Read
Readed = Read
Content = Content
Date_read = Read date
Date_create = Date of creation
Day_mileage_and_speed = Day mileage and speed
Kilometers_distance = Kilometers distance
Kilometers_distance_without_signal = Kilometers distance without signal
Company_site = Company site
Contact_phone = Contact phone
Site = Site
Users = Users
Models_of_terminals = Models of terminals
Sensor_type = Sensor type
Sensor_of_devices = Sensor of devices
Measurement = Measurement
Sensor_model = Sensor model
Rounded_to = Approximately count to
Sensors_models = Sensors models
Count_objects = Number of objects
Group = Group
Stationary = Stationary
Icon = Icon
Objects_of_observation = Objects of observation
Count_of_sensors = Number of sensors
Icons = Icons
name = name
File = File
Size = Size
byte = byte
Geofences = Geozones
Geofence = Geozone
Coordinate = Coordinate
Position = Position
True_position = Right location
outside = outside
inside = inside
Boundary = Boundary
Inform = Inform
Inside = Inside
Sensor_of_object = Sensor of object
Sensors_of_objects = Sensors of objects
Last_value = Last value
Date_of_the_last_value = Date of the last value
Readings = Measerement
Devices = Devices
Sensor_readings = Sensor readings
GPS_readings = GPS data
Fixation_date = Date of fixing
Speed = Speed
Message = Message
Subject = Subject
Creation_date = Date of creation
Contents = Contents
User_messages = User messages
Reading_date = Reading date
Users_messages = Users messages
The_boundary_values_of_the_sensors = The limit values of the sensors
Minimum_value = Minimum value
Maximum_value = Maximum value
Only_on_the_boundary = Only on the boundary
Action = Action
Rule = Rule
Actions = Actions
Access_role = Access role
Parental_role = Parental_role
Role_name = Role name
Role_description = Role description
Role = Role
Phones = Phones
Password_expiration = Password expiration
Renewal_password = Renewal password
days = days
day = day
S_N_P = S.N.P.
Last_enter = Last enter
Roles = Roles
User_roles = User roles
Synchronization_objects = Synchronization objects
Synchronization_service = Synchronization service
Synchronization_order = Synchronization order
The_interval_between_the_update_in_s = The interval between the update in (s)
At_a_time = Records per one time
Time_of_the_last_synchronization = Time of the last synchronization
Service = Service
Order = Order
Interval = Interval
Limit = Limit
Synchronization_services = Synchronization services
Host = Host
History = History
Table = Table
Field = Field
Data = Data
Short_name = Short name
Translation = Translation
Sprayer_type = Sprayer type
Sprayers = Sprayers
Sprayer = Sprayer
Sprayer_type_name = Sprayer type name
Countries = Countries
Regions = Regions
Automated_system_of_data_collection = Automated system of data collection
Download_android_app_Inspector = Download the android app of Inspector
Run_the_application_of_the_situational_center = Run the application of the situational center
For_any_questions_contact_us_at_tel_Fax = Contact us by phone/fax
Your_session_is_canceled = Your session is canceled!
Simultaneous_operation_of_multiple_users = Simultaneous operation of multiple users!
You_are_not_logged_in = You are not logged in!
Not_found_the_requested_node: = Not found the requested node:
The_number_of_records_is_not_equal_to_one = The number of records is not equal to one!
Registration_Form_Inspector = Registration Form Inspector
Post = Post
The_device_ID = The device ID
Security_Code = Security Code
Update = Update
image = image
Registering = Registering
configuration_section_s = configuration section; %s
configuration_option_s = configuration option; %s
Locust_survey = Locust survey
Spray_monitoring = Spray monitoring
Reports = Reports
Report = Report
Map_layers = Map layers
Administration = Administration
Completed_forms_by_tablets = Completed forms by tablets
Filling_forms_by_countries = Filling forms by countries
Standard_survey_forms = Standard survey forms
Companies = Companies
Report_by_countries = Report by countries
Lists = Lists
Members = Members
Photo = Photo
Egg_pods_density_m2 = Egg-pods (density/m²)
Egg_pods_density = Egg-pods density
Egg_pod = Egg-pod
Eggs_average_number_egg_pod = Eggs (average number egg pod)
Number_forms = Number of forms
Open_data_on_the_map = Open data on the map
From_date = From date
To_date = To date
Distribution_of_locust = Information on the distribution of locust
Hide = Hide
For_what_year = For what year
Invalid_username_and_or_password = Invalid username and/or password!
Automated_system_of_data_collection_ASDC = Automated system of data collection (ASDC)
Method_filling_form = Method of filling the form
From_PDA = From tablet
From_WEB_interface = From WEB interface
PDA_registered = PDA registered
Yes = Yes
Not = Not
Displayed_data = Displayed data
Adult_density_m2 = Adult (density/m²)
Adult_density = Adult density
Hopper_density_m2 = Hopper (density/m²)
Swarms = Swarms
Bands = Hopper bands
Band_sizes_m2 = Band sizes (m²)
Open_in_a_table_format = Open in a table format
Request_data = Request data
Method_filling_form = Method filling form
From_DPA = From DPA
From_WEB_interface = From WEB interface
PDA_registered = Tablets registered
Yes = Yes
Not = Not
Open_in_a_table_format = Open in a table format
Request_data = Request data
Displayed_data = Displayed data
Open_in_a_table_format = Open in a table format
Request_data = Request data
The_tablet = The tablet
Spray_Monitoring_Form = Spray Monitoring Form
Information_on_the_distribution_of_locust = Information about locusts distribution and its control
Organization = Organization
User_roles = User_roles
Layout = Layer
Markings = Markings
Formulation = Formulation
Fledgling = Fledgling
Borns = Hatching
Breeding = Behaviour
Containers = Containers
Height = Height
Enemies = Natural enemies present
Report_by_tablets = Tablets report
Value = Value
Days = Days
Hours = Hours
Company_User = Company->User
Object_Geofence = Object->Geozone
Sensor_for_ComboBox = Sensor for drop-down list
SprayersTypes = Sprayers Types
CountriesRegions = The boundaries of Regions
CIT_Italian_locust = CIT - Italian locust
DMA_Moroccan_locust = DMA - Moroccan locust
LMI_Asian_migratory_locust = LMI - Asian migratory locust
Substrate = Substrate
Displaying_data = Displaying data
Show_data = Show data
All_types = All types
All_kinds = All kinds
Maps_of_areas_infested_above_Economic_Threshold_ET = Maps of areas infested above Economic Threshold (ET)
Maps_of_treated_areas_above_ET = Maps of treated areas above ET
Map_of_the_level_of_threat = Map of the level of threat
Download_QGIS_project = Download QGIS project
Caution = Caution
Calm = Calm
Danger = Danger
Increase = Increase
Decrease = Decrease
On_the_same_level = On the same level
Normal_Multiyear_average_level = Normal/Multiyear average level
Device_id = Device id
All_countries_of_CCA = All countries of CCA
The_Caucasus_countries_and_Russia = The Caucasus countries and Russia
Countries_of_Central_Asia_and_Russia = Countries of Central Asia and Russia
The_forecast_of_hatching_periods = The forecast of hatching periods
Weather_forecast = Weather forecast
soil_temperature = soil temperature
Soil_temperature = Soil temperature
Passwords_did_not_match = Passwords do not coincide!
The_s_is_not_Email = The "%s" is not Email!
Password_changed_successfully = Password changed successfully.
Failed_to_change_password = Failed to change password.
Check_the_entered_data = Check the entered data.
for_ = for
Earth_temperature = Earth temperature
Point = Point
Forecast_of_hours = Hours of forecast
hours = hours
Change_login_password = Change login/password
Type = Type
Legend = Legend
Spraying = Spraying
Chart = Chart
Percent = Percent
For_s_year = For %s year
and = and
Time_and_date_of_generation = Time and date of generation
Filter_options = Filter_options
Export_to_Excel = Export to Excel
Preparing_of_report = Preparing of report
Download_report = Download report
Old_password = Old password
Not_filled_Email_address = Not filled Email address
Wrong_XML_document = Wrong XML document
Organizations = Organizations
Vegetation = Vegetation
Please_enter_a_valid_email_address = Please enter a valid Email address
Log_in = Log in
Registration = Registration
Password_recovery = Password recovery
The_s_field_is_empty = The "%s" field is empty
New_user_is_registered = New user is registered.
The_password_has_been_sent_to_you_by_Email = The password has been sent to you by Email.
Others = Others
Absent = Absent
No_data = No data
District = District
Districts = Districts
The_tablets = The tablets
Other = Other
Regions = Oblasts
Region = Oblast
All = All
Edit = Edit
thous_ha = thous. ha
Thous_ha = Thous. ha
Average = Average
Year = Year
Deviation = Deviation
Dev_of_average = Dev. of average
Average = Average
Layouts = Layers
The_tabblet = Tablet
Forms_for_locust_survey = Locust Survey Form
Forms_for_spray_monitoring = Spray Monitoring Form
The_tablet_registered = The tablet is registered
Area_infested_ha = Infested area (ha)
Minimum_density_in_the_band_in_m2 = Minimum band density (/m²)
Maximum_density_in_the_band_in_m2 = Maximum band density (/m²)
Adult_density_ha = Adult density (/ha)
Adult_density_m2 = Adult density (/m²)
Feeding_and_roosting = Feeding and roosting
Density_of_swarm = Swarm density
Swarm_size_ha = Swarm size (ha)
Number_of_swarms = Number of swarms
Flying_direction = Flying direction
Flying_height = Flying height
Weather_air_temperature_C = Weather: air temperature (ºC)
Locust_Survey_Form = Locust Survey Form
Locust_Survey_Forms = Locust survey forms
Latitude_center_portion = Latitude (site center)
Longitude_center_portion = Longitude (site center)
INSECTICIDE_DATA = Insecticide information
Concentration_A_S = Concentration (%)
Relative_humidity_start = Relative humidity at the start (%)
Relative_humidity_end = Relative humidity at the end (%)
Wind_direction_start = Wind direction at the start
Wind_direction_end = Wind direction at the end
Density_m2 = Density (/m2)
Model_sprayer = Sprayer model
Biological_efficiency_of_treatment = Biological efficiency of treatment (%)
Inform_abaut_spraying = Informed about spraying
Inspect_thous_ha = Surveyed (thous. ha)
Responsible_person = Responsible person for the tablet (inspector)
Upload = Upload
Delete = Delete
Download = Download
Hoppers = Hoppers (scattered)
Kuliguli = Bands
Adult = Adult
Restore = Restore
Add_more = Add more
Successfully_added_data = Successfully added data
Are_you_sure_you_want_to_delete_the_entries = Are you sure you want to delete the entries?
Increase_by_1 = Increase by 1
Decrease_by_1 = Decrease by 1
No_results_were_found_for_your_search = No results were found for your search!
Selection = Selection
Add_record = Add record
Delete_record = Delete record
Filtering = Filtering
Invert_selection = Invert selection
Antenna_DGPS_used = Antenna: DGPS used
No_locust = No locust
Total_volume_of_working_solution_actually_applied_l = Total volume of working solution actually applied (l)
Triple_rinsed=Triple_rinsed
Punctured=Punctured
Taken_back_to_base=Taken_back_to_base
Left_in_field=Left_in_field
Buried=Buried
Burned=Burned

View File

@ -0,0 +1,65 @@
//From: http://www.codejava.net/java-ee/jsp/sending-e-mail-with-jsp-servlet-and-javamail
package tools;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* A utility class for sending e-mail messages
* @author www.codejava.net
*
*/
public class EmailUtility {
public static void sendEmail(String host, String port,
final String userName, final String password, String toAddress,
String subject, String message) throws AddressException,
MessagingException
{
// sets SMTP server properties
Properties properties = new Properties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", port);
properties.put("mail.smtp.auth", "true");
//properties.put("mail.smtp.starttls.enable","true"); STARTTLS requested but already using SSL
properties.put("mail.smtp.EnableSSL.enable","true");
properties.put("mail.smtp.socketFactory.port", port);
properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
//properties.put("mail.debug", "true");
// creates a new session with an authenticator
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
};
Session session = Session.getInstance(properties, auth);
//creates a new e-mail message
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(userName));
InternetAddress[] toAddresses = { new InternetAddress(toAddress) };
msg.setRecipients(Message.RecipientType.TO, toAddresses);
msg.setSubject(subject);
msg.setSentDate(new Date());
//msg.setText(message);
msg.setContent(message, "text/html; charset=utf-8");
// sends the e-mail
Transport.send(msg);
}
}

View File

@ -0,0 +1,94 @@
package tools;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PreparedStatementNamed {
private class HMap{
public String name = "";
public int pos = -1;
public HMap(String name,int pos) {
this.name = name;
this.pos = pos;
}
}
private List< HMap > fields = new ArrayList< HMap >();
private PreparedStatement m_prepStmt;
public PreparedStatementNamed(Connection conn, String sql) throws SQLException {
int cnt=0;
int pos = 0;
while((pos = sql.indexOf("${")) != -1) {
int end = sql.substring(pos).indexOf("}");
if (end == -1)
end = sql.length();
else
end += pos+1;
cnt++;
fields.add(new HMap(sql.substring(pos+2,end-1),cnt));
sql = sql.substring(0, pos) + "?" + sql.substring(end); //Removing a parameter from a string
}
m_prepStmt = conn.prepareStatement(sql);
}
public void setInt(String name, int value) throws SQLException {
for(int i=0;i<fields.size();i++) {
if(fields.get(i).name.equals(name)) {
m_prepStmt.setInt(fields.get(i).pos, value);
}
}
}
public void setBoolean(String name, int value) throws SQLException {
for(int i=0;i<fields.size();i++) {
if(fields.get(i).name.equals(name)) {
if(value==0)
m_prepStmt.setBoolean(fields.get(i).pos, false);
else
m_prepStmt.setBoolean(fields.get(i).pos, true);
}
}
}
public void setNULLInt(String name) throws SQLException {
for(int i=0;i<fields.size();i++) {
if(fields.get(i).name.equals(name)) {
m_prepStmt.setNull(fields.get(i).pos,Types.INTEGER);
}
}
}
public void setNULLBoolean(String name) throws SQLException {
for(int i=0;i<fields.size();i++) {
if(fields.get(i).name.equals(name)) {
m_prepStmt.setNull(fields.get(i).pos,Types.BOOLEAN);
}
}
}
/*private int getIndex(String name) {
size()
} */
public PreparedStatement getPreparedStatement() {
return m_prepStmt;
}
/*public ResultSet executeQuery() throws SQLException {
return m_prepStmt.executeQuery();
}
public void close() throws SQLException {
m_prepStmt.close();
}*/
}

View File

@ -0,0 +1,21 @@
package tools;
public class STools {
public static String CutBeforeFirst(StringBuffer str,String ch)
{
int pos=str.indexOf(ch);
String result="";
if(pos==-1)
{
result.concat(str.toString());
str.delete(0,str.length());
}else
{
result=str.substring(0,pos);
str.delete(0,pos+1);
}
return result;
}
}

View File

@ -0,0 +1,44 @@
package tools;
public class User {
public String id; //User id from database
public String name; //Name Surname Patronymic
public String language_id; //User language
public String role; //User role
public String country_id; //User role
public User()
{
id="null"; //null <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> SQL <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ${_user_id} <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
name="___";
language_id="1";
role="___";
country_id="";
}
public User(String name)
{
super();
id="null";
this.name=name;
language_id="1";
role="___";
country_id="";
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void Logout()
{
id="null";
name="___";
language_id="1";
role="___";
country_id="";
}
}

View File

@ -0,0 +1,2 @@
spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=50MB

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<config>
<db-url>jdbc:postgresql://91.201.214.156:5432/CCALM</db-url>
<!--db-url>jdbc:postgresql://127.0.0.1:5432/CCALM</db-url-->
<!--db-url>jdbc:postgresql://192.168.0.83:5432/CCALM</db-url-->
<db-login>postgres</db-login>
<db-password>PasSecrKey1</db-password>
<mail-host>smtp.yandex.ru</mail-host>
<mail-port>465</mail-port>
<mail-login>info@ccalm.org</mail-login>
<mail-password>fu2lpsoGPGiq1xlRm8ag</mail-password>
<!--data-dir>O:\temp\CCALM\</data-dir-->
<data-dir>/temp/CCALM/</data-dir>
<metadata>engine/metadata.xml</metadata>
</config>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="kz.locust.CCALM">
<level value="info" />
</logger>
<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger>
<logger name="org.springframework.beans">
<level value="info" />
</logger>
<logger name="org.springframework.context">
<level value="info" />
</logger>
<logger name="org.springframework.web">
<level value="info" />
</logger>
<!-- Root Logger -->
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root>
</log4j:configuration>

Binary file not shown.

Binary file not shown.

Binary file not shown.

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