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
2 changes: 1 addition & 1 deletion src/com/lang/Language.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package com.lang;

public enum Language {
ENGLISH, RUSSIAN;
ENGLISH, UKRAINIAN;
}
1 change: 1 addition & 0 deletions src/com/lang/LanguageDetector.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.List;
import java.util.Map;

@Component
public class LanguageDetector {

private Map<Language, List<String>> mapping;
Expand Down
6 changes: 2 additions & 4 deletions src/com/main/AppConfiguration.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package com.main;

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

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

//TODO: Implement me
}
28 changes: 24 additions & 4 deletions src/com/main/Dictionary.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,22 @@
import java.util.List;
import java.util.Map;

@Component
public class Dictionary {

private static final String DICT = "E:\\HomeTaskWeek11\\dict\\english.dict";

@Autowired
ResourceLoader resourceLoader;

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;
String translateWord = word;
if (getDictionary(language).get(word) != null) {
translateWord = getDictionary(language).get(word);
}
return translateWord;
}

private Map<String, String> getDictionary(Language language) {
Expand All @@ -27,7 +36,18 @@ private Map<String, String> getDictionary(Language language) {
}

private Map<String, String> loadDictionary(Language language) {
//TODO: Implement me
return null;
List<String> words = resourceLoader.load(DICT);
Map<String, String> dictionary = new HashMap<String, String>();
for(String word : words){
int index = word.indexOf("=");
if(language == Language.ENGLISH){
dictionary.put(word.substring(0, index), word.substring(index+1, word.length()));
}else if(language == Language.UKRAINIAN){
dictionary.put(word.substring(index+1, word.length()), word.substring(0, index));
}
}
return dictionary;
}


}
10 changes: 9 additions & 1 deletion src/com/main/Main.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
package com.main;

import com.lang.Language;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import java.util.Map;
import java.util.StringTokenizer;

public class Main {


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");
String translation = translator.translate("E:/some_text.txt");
System.out.println(translation);

}
}
13 changes: 9 additions & 4 deletions src/com/main/ResourceLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,18 @@
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();
if (Files.exists(Paths.get(source))) {
try {
return Files.readAllLines(Paths.get(source), Charset.defaultCharset());
} catch (IOException e) {
e.printStackTrace();
}
}else{
System.err.println("Dictionary not found!");
}
return new ArrayList<String>();
}
Expand Down
20 changes: 18 additions & 2 deletions src/com/main/TextSource.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,25 @@
package com.main;

import org.springframework.stereotype.Component;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

@Component
public class TextSource {

public String getText(String path) {
//TODO: Implement me
return null;
String text = "";
if (Files.exists(Paths.get(path))) {
try {
text = new String(Files.readAllBytes(Paths.get(path)));
} catch (IOException e) {
e.printStackTrace();
}
}else {
System.err.println("File not found!");
}
return text;
}
}
26 changes: 22 additions & 4 deletions src/com/main/Translator.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,32 @@
package com.main;

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

import javax.annotation.PostConstruct;

@Service
public class Translator {

@Autowired
TextSource textSource;

@Autowired
Dictionary dictionary;

@Autowired
LanguageDetector languageDetector;

public String translate(String source) {
//TODO: Implement me
return null;
String text = textSource.getText(source);
Language language = languageDetector.detectLanguage(text);
String textMas[] = text.split("\\s+");
StringBuilder sb = new StringBuilder();
for(int i = 0; i < textMas.length; i++){
sb.append(dictionary.translate(textMas[i], language) + " ");
}
return sb.toString();
}

}