package net.prietopalacios.josemanuel.i18n.translate;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.junit.Test;
/**
* Permite coger la parte a traducir de un properties, posteriormente inserta el texto traducido en el properties
*/
public class InternacionalizaProperties {
@Test
public void cogePropertiesEnGallegoYcapturasSoloElTextoATraducir_MeLoPasasEnEsteFicheroDeSalida() throws IOException{
File salida = new File("src/test/resources/salida.txt");
FileInputStream fis = new FileInputStream("src/test/resources/lenguaje_gl_utf-8.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
FileWriter fw = new FileWriter(salida.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
while (true) {
String line = br.readLine();
if(line == null) break;
if(line.contains("=")){
String[] equals = line.split("=");
bw.write(equals[1] + "n");
}
}
bw.close();
}
@Test
public void leeElFicheroSalidaAnteriorYMeLoSeparasEnBloquesDe2500Caracteres() throws IOException{
File salida = new File("src/test/resources/salida2.txt");
FileInputStream fis = new FileInputStream("src/test/resources/salida.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
FileWriter fw = new FileWriter(salida.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
String bloque = "";
int cont = 0;
int contBloques = 0;
while (true) {
String line = br.readLine();
if(line == null) break;
cont += line.length();
if(cont > 2000){
bw.write(bloque);
bw.write("n");
bw.write("n");
bw.write("n");
contBloques++;
cont = 0;
bloque = line + "n";
cont += line.length();
}else{
bloque += line + "n";
}
}
bw.write("n");
bw.write("Han sido " + contBloques + " bloques.");
bw.close();
}
@Test
/**
* CUIDADO: el traductor de la Xunta hay cosas que no las entiende, como | `... o el codigo html
*
* @throws IOException
*/
public void elTextoTraducidoInsertaloEnUnProperties() throws IOException{
File salida = new File("src/test/resources/Language_gl.properties");
FileWriter fw = new FileWriter(salida.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
FileInputStream fis = new FileInputStream("src/test/resources/lenguaje_gl_utf-8.txt");
BufferedReader original = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
FileInputStream fis2 = new FileInputStream("src/test/resources/textEnGalego.txt");
BufferedReader traduccion = new BufferedReader(new InputStreamReader(fis2, "UTF-8"));
while (true) {
String lineaOriginal = original.readLine();
if(lineaOriginal == null) break;
if(lineaOriginal.contains("=")){
String lineaTraducida = traduccion.readLine();
String[] lineasOriginales = lineaOriginal.split("=");
bw.write(lineasOriginales[0] + insertaTabComoEnOriginal(lineaOriginal) + "= ");
if(lineasOriginales[1].contains(" <a id")){
bw.write(lineasOriginales[1] + "n");
}else{
bw.write(lineaTraducida + "n");
}
}else{
bw.write(lineaOriginal + "n");
}
}
bw.close();
}
private String insertaTabComoEnOriginal(String lineaOriginal) {
String xtab = "";
for (int i = 0; i < cuentaTabuladores(lineaOriginal); i++) {
xtab += "t";
}
return xtab;
}
public int cuentaTabuladores(String linea){
int cont = 0;
char[] array = linea.toCharArray();
for (int i = 0; i < array.length; i++) {
if(array[i] == '\' && array[i + 1] == 't'){
cont++;
}
}
return cont;
}
}