Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/com/enums/Language.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.enums;

public enum Language {
ENGLISH, RUSSIAN;
}
5 changes: 0 additions & 5 deletions src/com/lang/Language.java

This file was deleted.

28 changes: 15 additions & 13 deletions src/com/lang/LanguageDetector.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
package com.lang;

import com.enums.Language;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Component
public class LanguageDetector {

private Map<Language, List<String>> mapping;
private Map<Language, List<String>> mapping;

public Language detectLanguage(String text) {
if (mapping == null) {
initMapping();
}
for (Language language : mapping.keySet()) {
//Some weird logic to detect language
}
return Language.ENGLISH;
}
public Language detectLanguage(String text) {
if (mapping == null) {
initMapping();
}
for (Language language : mapping.keySet()) {
//Some weird logic to detect language
}
return Language.ENGLISH;
}

private void initMapping() {
mapping = new HashMap<Language, List<String>>();
}
private void initMapping() {
mapping = new HashMap<Language, List<String>>();
}
}
9 changes: 7 additions & 2 deletions src/com/main/AppConfiguration.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
package com.main;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

@Configuration
@ComponentScan("com")
public class AppConfiguration {

//TODO: Implement me
@Bean
Translator translator() {
return new Translator();
}

}
52 changes: 31 additions & 21 deletions src/com/main/Dictionary.java
Original file line number Diff line number Diff line change
@@ -1,33 +1,43 @@
package com.main;

import com.lang.Language;
import com.enums.Language;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Component
public class Dictionary {

private Map<Language, Map<String, String>> dictionaries = new HashMap<Language, Map<String, String>>();

public String translate(String word, Language language) {
//TODO: Implement me
return null;
}

private Map<String, String> getDictionary(Language language) {
Map<String, String> dictionary = dictionaries.get(language);
if (null == dictionary) {
dictionary = loadDictionary(language);
dictionaries.put(language, dictionary);
}
return dictionary;
}

private Map<String, String> loadDictionary(Language language) {
//TODO: Implement me
return null;
}
@Autowired
ResourceLoader resourceLoader;

private Map<Language, Map<String, String>> dictionaries = new HashMap<Language, Map<String, String>>();

public String translate(String word, Language language) {
Map<String, String> dictionary = getDictionary(language);
String translation = dictionary.get(word);
return dictionary.get(word) != null ? translation : word;
}

private Map<String, String> getDictionary(Language language) {
Map<String, String> dictionary = dictionaries.get(language);
if (null == dictionary) {
dictionary = loadDictionary(language);
dictionaries.put(language, dictionary);
}
return dictionary;
}

private Map<String, String> loadDictionary(Language language) {
Map<String, String> dictionary = new HashMap<>();
List<String> stringList = resourceLoader.load("dict/" + language.toString().toLowerCase() + ".dict");
for (String line : stringList) {
String[] split = line.split("=");
dictionary.put(split[0].replace("\uFEFF", ""), split[1]);
}
return dictionary;
}
}
9 changes: 4 additions & 5 deletions src/com/main/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class Main {
public static void main(String[] args) throws BeansException {
public static void main(String[] args) throws BeansException {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfiguration.class);
Translator translator = context.getBean(Translator.class);

String translation = translator.translate("d:/1.txt");
System.out.println(translation);
}
String translation = translator.translate("d:/test.txt");
System.out.println(translation);
}
}
17 changes: 9 additions & 8 deletions src/com/main/ResourceLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
import java.util.ArrayList;
import java.util.List;

@Component
public class ResourceLoader {

public List<String> load(String source) {
try {
return Files.readAllLines(Paths.get(source), Charset.defaultCharset());
} catch (IOException e) {
e.printStackTrace();
}
return new ArrayList<String>();
}
public List<String> load(String source) {
try {
return Files.readAllLines(Paths.get(source), Charset.defaultCharset());
} catch (IOException e) {
e.printStackTrace();
}
return new ArrayList<>();
}
}
19 changes: 15 additions & 4 deletions src/com/main/TextSource.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
package com.main;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class TextSource {

public String getText(String path) {
//TODO: Implement me
return null;
}
@Autowired
ResourceLoader resourceLoader;

public String getText(String path) {
StringBuilder stringBuilder = new StringBuilder();
for (String line : resourceLoader.load(path)) {
stringBuilder.append(line).append("\n");
}
return stringBuilder.toString();
}

}
24 changes: 19 additions & 5 deletions src/com/main/Translator.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,28 @@
package com.main;

import com.enums.Language;
import com.lang.LanguageDetector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

@Component
public class Translator {

@Autowired
LanguageDetector languageDetector;
@Autowired
Dictionary dictionary;
@Autowired
TextSource textSource;

public String translate(String source) {
//TODO: Implement me
return null;
}
String text = textSource.getText(source);
Language language = languageDetector.detectLanguage(text);
StringBuilder translation = new StringBuilder();
for (String word : text.split("\\W")) {
translation.append(dictionary.translate(word, language)).append(" ");
}
return translation.toString();
}

}