Astral-codex/translator.cpp

214 lines
5.0 KiB
C++
Raw Permalink Normal View History

2024-12-18 16:26:30 +00:00
#include <string>
#include "translator.h"
2024-12-18 16:37:17 +00:00
namespace translation {
2024-12-20 13:20:26 +00:00
std::string translateFromAstral(const std::string& input) {
2024-12-18 16:37:17 +00:00
std::string translatedText{};
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
for (std::size_t i = 0; i < input.length(); i++) {
switch (input[i]) {
case ';':
translatedText.push_back('a');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '@':
translatedText.push_back('b');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '*':
translatedText.push_back('c');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '<':
translatedText.push_back('d');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '&':
translatedText.push_back('e');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '(':
translatedText.push_back('f');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '"':
translatedText.push_back('g');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case ')':
translatedText.push_back('h');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '[':
translatedText.push_back('i');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
// MISSING J
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
// MISSING K
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '|':
translatedText.push_back('l');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
// MISSING M
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '/':
translatedText.push_back('n');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '?':
translatedText.push_back('o');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '+':
translatedText.push_back('p');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
// MISSING Q
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case ']':
translatedText.push_back('r');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '{':
translatedText.push_back('s');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '}':
translatedText.push_back('t');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case '.':
translatedText.push_back('u');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
// MISSING V
2024-12-18 16:26:30 +00:00
2024-12-20 13:20:26 +00:00
case '-':
2024-12-18 16:37:17 +00:00
translatedText.push_back('w');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
// MISSING X
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
// MISSING Y
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
// MISSING Z
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
case ' ':
translatedText.push_back(' ');
break;
2024-12-18 16:26:30 +00:00
2024-12-18 16:37:17 +00:00
default:
translatedText.push_back('?');
break;
}
2024-12-18 16:26:30 +00:00
}
2024-12-18 16:37:17 +00:00
return translatedText;
2024-12-18 16:26:30 +00:00
}
2024-12-20 13:20:26 +00:00
std::string translateToAstral(const std::string& input) {
std::string translatedText{};
for (std::size_t i = 0; i < input.length(); i++) {
switch (input[i]) {
case 'a':
translatedText.push_back(';');
break;
case 'b':
translatedText.push_back('@');
break;
case 'c':
translatedText.push_back('*');
break;
case 'd':
translatedText.push_back('<');
break;
case 'e':
translatedText.push_back('&');
break;
case 'f':
translatedText.push_back('(');
break;
case 'g':
translatedText.push_back('"');
break;
case 'h':
translatedText.push_back(')');
break;
case 'i':
translatedText.push_back('[');
break;
// MISSING J
// MISSING K
case 'l':
translatedText.push_back('|');
break;
// MISSING M
case 'n':
translatedText.push_back('/');
break;
case 'o':
translatedText.push_back('?');
break;
case 'p':
translatedText.push_back('+');
break;
// MISSING Q
case 'r':
translatedText.push_back(']');
break;
case 's':
translatedText.push_back('{');
break;
case 't':
translatedText.push_back('}');
break;
case 'u':
translatedText.push_back('.');
break;
// MISSING V
case 'w':
translatedText.push_back('-');
break;
// MISSING X
// MISSING Y
// MISSING Z
case ' ':
translatedText.push_back(' ');
break;
default:
translatedText.push_back('E');
break;
}
}
return translatedText;
}
2024-12-18 16:26:30 +00:00
}