Fix properties encoding / issue #6

Properties files should be saved by using the charset provided by the file.
This commit is contained in:
Marcel Haßlinger 2021-04-23 22:32:26 +02:00
parent 2a7c55cd4e
commit 895bdbbe7f

View File

@ -11,10 +11,7 @@ import de.marhali.easyi18n.util.TranslationsUtil;
import org.jetbrains.annotations.NotNull;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.*;
import java.util.*;
import java.util.function.Consumer;
@ -46,7 +43,7 @@ public class PropertiesTranslatorIO implements TranslatorIO {
for (VirtualFile file : files) {
locales.add(file.getNameWithoutExtension());
Properties properties = new Properties();
properties.load(new InputStreamReader(file.getInputStream(), file.getCharset()));;
properties.load(new InputStreamReader(file.getInputStream(), file.getCharset()));
readProperties(file.getNameWithoutExtension(), properties, nodes);
}
@ -70,8 +67,9 @@ public class PropertiesTranslatorIO implements TranslatorIO {
String fullPath = directoryPath + "/" + locale + "." + FILE_EXTENSION;
VirtualFile file = LocalFileSystem.getInstance().findFileByIoFile(new File(fullPath));
ByteArrayOutputStream content = new ByteArrayOutputStream();
StringWriter content = new StringWriter();
properties.store(content, "I18n " + locale + " keys");
file.setBinaryContent(content.toString().getBytes(file.getCharset()));
}