Skip to content

Commit

Permalink
Added Spanish Wikivoyage support
Browse files Browse the repository at this point in the history
  • Loading branch information
cafeina-software committed Feb 26, 2018
1 parent 7d2abc7 commit 10c6f40
Show file tree
Hide file tree
Showing 3 changed files with 235 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import org.wikivoyage.listings.language.german.German;
import org.wikivoyage.listings.language.russian.Russian;
import org.wikivoyage.listings.language.french.French;
import org.wikivoyage.listings.language.espanol.Espanol;

import java.util.LinkedList;
import java.util.List;
Expand All @@ -16,7 +17,8 @@ public class Languages {
new English(),
new Russian(),
new French(),
new German()
new German(),
new Espanol()
};
private static Language defaultLanguage = languages[0];

Expand Down
135 changes: 135 additions & 0 deletions src/main/java/org/wikivoyage/listings/language/espanol/Espanol.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
package org.wikivoyage.listings.language.espanol;

import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;

import org.wikivoyage.listings.entity.Listing;
import org.wikivoyage.listings.input.template.TemplateNode;
import org.wikivoyage.listings.input.template.TemplateToStringConverter;
import org.wikivoyage.listings.language.Language;
/*import org.wikivoyage.listings.language.es.template.DeadLinkTemplateToStringConverter;*/

/**
* Características de la edición en español de Wikiviajes.
*/
public class Espanol implements Language
{
@Override
public String getLanguageCode() {
return "es";
}

/**
* Todos los tipos de listados que se pueden encontrar en la edición en español de Wikiviajes.
*/
@Override
public HashSet<String> getListingTemplates()
{
HashSet<String> listingTemplates = new HashSet<>();

listingTemplates.add("listado");
listingTemplates.add("ver");
listingTemplates.add("hacer");
listingTemplates.add("comprar");
listingTemplates.add("comer");
listingTemplates.add("beber");
listingTemplates.add("dormir");
listingTemplates.add("evento");

return listingTemplates;
}

/**
* El nombre del lugar, el único elemento requerido.
*/
@Override
public String getNameElement() {
return "nombre";
}

/**
* Convertir las plantillas de listado en un objeto POI (punto de interés) de Wikiviajes.
*/
@Override
public Listing parseListingTemplate(String article, TemplateNode template, String poiType) {
// Type
if (poiType==null) {/*
if (template.getNameLowercase().equals("listado")) {
if (template.hasArgument("tipo")) {
poiType = template.getArgument("tipo");
} else {
poiType = "otro";
}
} else {
poiType = template.getNameLowercase();
}
*/
switch (template.getNameLowercase ()) {
case "ver":
poiType = "see";
break;
case "hacer":
case "evento":
poiType = "do";
break;
case "comprar":
poiType = "buy";
break;
case "comer":
poiType = "eat";
break;
case "beber":
poiType = "drink";
break;
case "dormir":
poiType = "sleep";
break;
case "listado":
default:
poiType = "listing";
break;
}
}

return new Listing(
article,
poiType,
template.getArgument("nombre"),
template.getArgument("alt"),
template.getArgument("wikidata"),
template.getArgument("wikipedia"),
template.getArgument("dirección"),
template.getArgument("indicaciones"),
template.getArgument("tlf"),
template.getArgument("tlf_gratuito"),
template.getArgument("email"),
template.getArgument("fax"),
template.getArgument("url"),
template.getArgument("horario"),
template.getArgument("hora_entrada"),
template.getArgument("hora_salida"),
template.getArgument("imagen"),
template.getArgument("precio"),
template.getArgument("lat"),
template.getArgument("long"),
"", // No hay un parámetro "Wi-Fi"
"", // No hay un parámetro "accesibilidad"
template.getArgument("lastedit"),
template.getArgument("descripción"),
getLanguageCode()
);
}

@Override
public List<TemplateToStringConverter> getTemplateConverters() {
List<TemplateToStringConverter> converters = new LinkedList<>();
/*converters.add(new DeadLinkTemplateToStringConverter());*/
return converters;
}

@Override
public String getFlagElement() {
return "flag";
}
}
97 changes: 97 additions & 0 deletions wikivoyage-listings.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Archivo de órdenes de inicio de Wikivoyage listings para WIndows
@rem
@rem ##########################################################################

@REM elimina archivos de registro de sesiones anteriores si existen
if exist debug.log (
del /F /Q debug.log
)

@rem Inicia ámbito local para las varialbes en líneas de comando de Windows NT
if "%OS%"=="Windows_NT" setlocal

@rem Aquí se pueden añadir opciones para JVM
set DEFAULT_JVM_OPTS=

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args

:win9xME_args.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*
goto execute

:4NT_args
set CMD_LINE_ARGS=%$

:execute
set BZIP2=%APP_HOME%\lib\bzip2-20090327.jar
set COMMONS_COMPRESS=%APP_HOME%\lib\commons-compress-1.9.jar
set COMMONS_LOGGING=%APP_HOME%\lib\commons-logging-1.1.1.jar
set COMMONS_VALIDATOR=%APP_HOME%\lib\commons-validator-1.5.0.jar
set GNU_TROVE_OSMAND=%APP_HOME%\lib\gnu-trove-osmand.jar
set LOG4J_LOGGER=%APP_HOME%\lib\log4j-1.2.17.jar
set JCOMMANDER=%APP_HOME%\lib\jcommander-1.30.jar
set JSON=%APP_HOME%\lib\json-20170516.jar
set JUNIDECODE=%APP_HOME%\lib\junidecode-0.1.jar
set KXML2=%APP_HOME%\lib\kxml2-2.3.0.jar
set OSMAND_CORE=%APP_HOME%\lib\OsmAnd-core.jar
set OSMAND_MAPCREATOR=%APP_HOME%\lib\OsmAndMapCreator.jar
set SQLITE_JDBC=%APP_HOME%\lib\sqlite-jdbc-3.7.6.3-20110609.081603-3.jar
set SWC_ENGINE=%APP_HOME%\lib\swc-engine-2.0.0-jar-with-dependencies.jar

REM Ejecuta el programa Java con argumentos
"%JAVA_EXE%" -Xmx1024m -cp "%APP_HOME%/wikivoyage-listings.jar;%APP_HOME%/build/libs/wikivoyage-listings.jar;%BZIP2%;%COMMONS_COMPRESS%;%COMMONS_LOGGING%;%COMMONS_VALIDATOR%;%GNU_TROVE_OSMAND%;%JCOMMANDER%;%JSON%;%JUNIDECODE%;%KXML2%;%LOG4J_LOGGER%;%OSMAND_CORE%;%OSMAND_MAPCREATOR%;%SQLITE_JDBC%;%SWC_ENGINE%;%APP_HOME%/config/" org.wikivoyage.listings.Main %CMD_LINE_ARGS%

:end
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:loquesea

0 comments on commit 10c6f40

Please sign in to comment.