diff --git a/src/qtapp/mdemList.cpp b/src/qtapp/mdemList.cpp index bc1f795..ae9ac13 100644 --- a/src/qtapp/mdemList.cpp +++ b/src/qtapp/mdemList.cpp @@ -294,7 +294,7 @@ void updateMdemInfo(std::string filename, bool isChanged) { std::tm* tm = std::localtime(¤tMdemBuffer->trainedAt); char buffer[100]; std::strftime(buffer, sizeof(buffer), "%d.%m.%Y %H:%M", tm); - ss << "Last practiced: " << std::string(buffer); + ss << "Pēdējā mācīšanās reize: " << std::string(buffer); } lastPracticeLabel->setText(QString::fromStdString(ss.str())); } else { @@ -330,7 +330,7 @@ Mdem* makeMdem() { mdem->hFront.addWidget(&mdem->wFrontText); mdem->hFront.addStretch(1); - mdem->editButton.setText("Edit"); + mdem->editButton.setText("Rediģēt"); QObject::connect( &mdem->editButton, &QToolButton::clicked, @@ -349,7 +349,7 @@ Mdem* makeMdem() { ); mdem->hFront.addWidget(&mdem->editButton); - mdem->deleteButton.setText("Delete"); + mdem->deleteButton.setText("Dzēst"); QObject::connect( &mdem->deleteButton, &QToolButton::clicked, @@ -375,7 +375,7 @@ Mdem* makeMdem() { ); mdem->hFront.addWidget(&mdem->deleteButton); - mdem->toggleVisibility.setText("Show"); + mdem->toggleVisibility.setText("Parādīt"); mdem->hFront.addWidget(&mdem->toggleVisibility); // Back @@ -403,10 +403,10 @@ Mdem* makeMdem() { QObject::connect(&mdem->toggleVisibility, &QToolButton::clicked, [mdem]() { if (mdem->wBack.isVisible()) { mdem->wBack.hide(); - mdem->toggleVisibility.setText("Show"); + mdem->toggleVisibility.setText("Parādīt"); } else { mdem->wBack.show(); - mdem->toggleVisibility.setText("Hide"); + mdem->toggleVisibility.setText("Slēpt"); } showBacklabels(mdem); }); @@ -464,14 +464,14 @@ void switchPage(int pageIdx) { int l = 0; char buffer[50]; - snprintf(buffer, sizeof(buffer), "Page: %d", pageIdx + 1); + snprintf(buffer, sizeof(buffer), "Lappuse: %d", pageIdx + 1); pagination->paginationLabel.setText(buffer); // Adjust mdem amount, hide widgets in mdems for (auto& mdem : mdems) { if (mdem->wBack.isVisible()) { mdem->wBack.hide(); - mdem->toggleVisibility.setText("Show"); + mdem->toggleVisibility.setText("Parādīt"); } } @@ -598,7 +598,7 @@ void reloadMdem(std::string path) { end = std::chrono::high_resolution_clock::now(); showTimes = settings->value(SETTING_SHOW_TIMES).toBool(); if (showTimes) { - std::cout << showTime("I/O time") << std::endl; + std::cout << showTime("I/O laiks") << std::endl; } debug = settings->value(SETTING_DEBUG).toBool(); auto res = transpile(content); @@ -613,7 +613,7 @@ void reloadMdem(std::string path) { } if (settings->value(SETTING_DEBUG).toBool()) { - std::cout << std::format("Last trained at: {}", currentMdemBuffer->trainedAt) + std::cout << std::format("Pēdējās mācīšanās reize: {}", currentMdemBuffer->trainedAt) << std::endl; } @@ -621,7 +621,7 @@ void reloadMdem(std::string path) { errorView->box.hide(); } else { currentMdemBuffer->trainedAt = 0; - std::cout << std::format("Compilation error: {}", res.error) << std::endl; + std::cout << std::format("Transpilācijas kļūda: {}", res.error) << std::endl; for (auto question: res.value.questions) { delete question; @@ -632,7 +632,7 @@ void reloadMdem(std::string path) { errorView->label.setText( QString::fromStdString( std::format( - "Error while transpiling {}: {} ({}:{})", + "Kļūda, transpilējot {}: {} ({}:{})", filename, res.error, res.row, @@ -649,12 +649,12 @@ void reloadMdem(std::string path) { switchPage(0); updateMdemInfo(filename, false); } else { - std::cout << std::format("Could not open the file: {}", currentPath.toStdString()) << std::endl; + std::cout << std::format("Nevar atvert failu: {}", currentPath.toStdString()) << std::endl; } for (auto mdem: mdems) { mdem->wBack.hide(); - mdem->toggleVisibility.setText("Show"); + mdem->toggleVisibility.setText("Parādīt"); } hideQuestionElements(); } @@ -669,7 +669,7 @@ void pickDirectory(QString directory) { QMessageBox::information( nullptr, "Error", - "The directory that is specified as the default memorybase does not exist." + "Direktorijs, kas ir norādīts kā noklusētais, neeksistē." ); return; } @@ -706,7 +706,7 @@ void setupEditorSave() { } QMessageBox::information( nullptr, - "Editing error", + "Rediģēšanas kļūda", QString::fromStdString(res.error) ); } else { @@ -714,8 +714,8 @@ void setupEditorSave() { if (res.value.questions.size() <= 0) { QMessageBox::information( nullptr, - "Editing error", - "There are no questions in your input." + "Rediģēšanas kļūda", + "Jūsu ievadē nav jautājumu." ); } else if (res.value.questions.size() == 1) { auto oldQuestion = editMdem->question; @@ -735,16 +735,16 @@ void setupEditorSave() { } else { QMessageBox::information( nullptr, - "Editing error", - "There are more than question in your input. Please enter one." + "Rediģēšanas kļūda", + "Jūsu ievadē ir vairāki jautājumi. Lūdzu ievadiet vienu!" ); } } else { if (res.value.questions.size() <= 0) { QMessageBox::information( nullptr, - "Editing error", - "There are no questions in your input." + "Rediģēšanas kļūda", + "Jūsu ievadē nav jautājumu." ); } else { currentMdemBuffer->questions.insert( @@ -772,7 +772,7 @@ void saveMdem() { showTimes = settings->value(SETTING_SHOW_TIMES).toBool(); if (showTimes) { - std::cout << showTime("Saving time") << std::endl; + std::cout << showTime("Saglabāšanas laiks") << std::endl; } } @@ -804,8 +804,8 @@ QMainWindow *initMdemListWindow() { QMenuBar *menuBar = new QMenuBar; QFileDialog *fileDialog = new QFileDialog; - QMenu *menu = new QMenu("File"); - actionOpen = menu->addAction("Open memorybase"); + QMenu *menu = new QMenu("Fails"); + actionOpen = menu->addAction("Atvert memorybase"); QObject::connect( actionOpen, &QAction::triggered, @@ -822,7 +822,7 @@ QMainWindow *initMdemListWindow() { } ); - openSettings = menu->addAction("Settings"); + openSettings = menu->addAction("Iestatījumi"); QObject::connect( openSettings, &QAction::triggered, @@ -830,7 +830,7 @@ QMainWindow *initMdemListWindow() { settingsWindow->show(); }); - actionHelp = menu->addAction("Help"); + actionHelp = menu->addAction("Palīdzība"); QObject::connect( actionHelp, &QAction::triggered, @@ -846,7 +846,7 @@ QMainWindow *initMdemListWindow() { { // Editor. editorWindow = new QMainWindow; - editorWindow->setWindowTitle("QScintilla Simple Editor"); + editorWindow->setWindowTitle("Jautājumu redaktors"); editorWindow->resize(800, 600); QWidget *wEditor = new QWidget; QVBoxLayout *vlEditor = new QVBoxLayout; @@ -864,7 +864,7 @@ QMainWindow *initMdemListWindow() { auto btnSaveEditor = new QPushButton; editorButtons->setLayout(buttonLayout); - btnSaveEditor->setText(QString::fromStdString("Save")); + btnSaveEditor->setText(QString::fromStdString("Saglabāt")); QObject::connect( btnSaveEditor, &QToolButton::clicked, @@ -957,14 +957,14 @@ QMainWindow *initMdemListWindow() { ); // Button content. - toolbar->btnAdd.setText("Add"); - toolbar->btnSave.setText("Save"); - toolbar->btnLoad.setText("Load"); - toolbar->btnPractice.setText("Practice"); + toolbar->btnAdd.setText("Pievienot"); + toolbar->btnSave.setText("Saglabāt"); + toolbar->btnLoad.setText("Ielādēt"); + toolbar->btnPractice.setText("Mācīties"); - toolbar->cbAlgorithm.addItem("Spaced", SPACED); - toolbar->cbAlgorithm.addItem("Random", RANDOM); - toolbar->cbAlgorithm.addItem("Primary", PRIMARY); + toolbar->cbAlgorithm.addItem("Intervālu", SPACED); + toolbar->cbAlgorithm.addItem("Nejaušais", RANDOM); + toolbar->cbAlgorithm.addItem("Primārais", PRIMARY); // Add buttons. hlButtonsTop->addWidget(&toolbar->btnAdd); @@ -1014,7 +1014,7 @@ QMainWindow *initMdemListWindow() { for (int col = 1; col < model->columnCount(); ++col) { mdemList->hideColumn(col); } - model->setHeaderData(0, Qt::Horizontal, QObject::tr("Custom Name")); + /*model->setHeaderData(0, Qt::Horizontal, QObject::tr("Custom name"));*/ leftLayout->addWidget(mdemList); } diff --git a/src/qtapp/settings.cpp b/src/qtapp/settings.cpp index 49eed9a..f0417f1 100644 --- a/src/qtapp/settings.cpp +++ b/src/qtapp/settings.cpp @@ -59,7 +59,6 @@ #include #include "mdemList.h" -#include "api.h" #include "qscilexer.h" QSettings *settings; @@ -71,14 +70,14 @@ QWidget *initSettings () { settings = new QSettings(settingsFile, QSettings::IniFormat); auto* settingsWindow = new QWidget; - settingsWindow->setWindowTitle("Settings"); + settingsWindow->setWindowTitle("Iestatījumi"); auto top = new QWidget; auto hlTop = new QVBoxLayout; top->setLayout(hlTop); auto settingsLabel = new QLabel; - settingsLabel->setText("Settings"); + settingsLabel->setText("Iestatījumi"); settingsLabel->setStyleSheet( "font-size: 20px;" ); @@ -87,16 +86,16 @@ QWidget *initSettings () { auto formLayout = new QFormLayout; auto* mbaseInput = new QLineEdit; - auto* browseButton = new QPushButton("Browse"); + auto* browseButton = new QPushButton("Izvēlēties"); auto* pathLayout = new QHBoxLayout; pathLayout->addWidget(mbaseInput); pathLayout->addWidget(browseButton); - formLayout->addRow("Default memorybase:", pathLayout); + formLayout->addRow("Noklusējuma memorybase:", pathLayout); QObject::connect(browseButton, &QPushButton::clicked, [mbaseInput]() { QString dir = QFileDialog::getExistingDirectory( nullptr, - "Select Config Directory", + "Izvēlēties noklusēto direktoriju", mbaseInput->text() ); if (!dir.isEmpty()) { @@ -110,37 +109,37 @@ QWidget *initSettings () { auto characterWrap = new QSpinBox; characterWrap->setRange(30, 150); - formLayout->addRow("Character wrap in code gen [30-150]:", characterWrap); + formLayout->addRow("Rindas pārnešanas platums jautājumu teksta ģenerēšanā [30-150]:", characterWrap); auto* timezone = new QSpinBox; timezone->setRange(-12, 12); - formLayout->addRow("Timezone as number (e.g. +2 as 2):", timezone); + formLayout->addRow("Laika zona (e.g. +2 as 2):", timezone); auto* notRemembered = new QDoubleSpinBox; notRemembered->setRange(0, 100); - formLayout->addRow("Not remembered:", notRemembered); + formLayout->addRow("Neatcerējos:", notRemembered); auto* hard = new QDoubleSpinBox; hard->setRange(0, 100); - formLayout->addRow("Hard:", hard); + formLayout->addRow("Grūti:", hard); auto* medium = new QDoubleSpinBox; medium->setRange(0, 100); - formLayout->addRow("Medium:", medium); + formLayout->addRow("Vidēji:", medium); auto* easy = new QDoubleSpinBox; easy->setRange(0, 100); - formLayout->addRow("Easy:", easy); + formLayout->addRow("Viegli:", easy); auto* debug = new QCheckBox; - formLayout->addRow("Debug:", debug); + formLayout->addRow("Atkļūdošana:", debug); auto* showTimes = new QCheckBox; - formLayout->addRow("Show times in the console:", showTimes); + formLayout->addRow("Rādīt laikus komandrindā:", showTimes); auto btnLayout = new QHBoxLayout; - auto btnSaveSettings = new QPushButton("Save"); - auto btnLoad = new QPushButton("Load"); + auto btnSaveSettings = new QPushButton("Saglabāt"); + auto btnLoad = new QPushButton("Ielādēt"); auto mainLayout = new QVBoxLayout; btnLayout->addWidget(btnSaveSettings); btnLayout->addWidget(btnLoad); @@ -172,9 +171,9 @@ QWidget *initSettings () { auto updateSettingsLabel = [settingsLabel](bool isChanged) { if (isChanged) { - settingsLabel->setText("Settings *"); + settingsLabel->setText("Iestatījumi *"); } else { - settingsLabel->setText("Settings"); + settingsLabel->setText("Iestatījumi"); } }; diff --git a/src/qtapp/trainWindow.cpp b/src/qtapp/trainWindow.cpp index 47b3278..45164e4 100644 --- a/src/qtapp/trainWindow.cpp +++ b/src/qtapp/trainWindow.cpp @@ -669,7 +669,7 @@ QMainWindow *initTrainWindow() { auto topLeftSpacer = new QSpacerItem(50, 50, QSizePolicy::Expanding, QSizePolicy::Minimum); auto btnSaveProgress = new QToolButton(); - btnSaveProgress->setText("Save progress"); + btnSaveProgress->setText("Saglabāt progresu"); hTopButtons->addItem(topLeftSpacer); hTopButtons->addWidget(btnSaveProgress); @@ -696,7 +696,6 @@ QMainWindow *initTrainWindow() { { // Make question text. lQuestionText = new QLabel(); - lQuestionText->setText("What is the capital of Latvia?"); lQuestionText->setWordWrap(true); lQuestionText->setStyleSheet(QString( "QLabel {" @@ -720,7 +719,6 @@ QMainWindow *initTrainWindow() { { // Make answer text. answerText = new QLabel(); - answerText->setText("- Riga\n- Second line"); answerText->setWordWrap(true); answerText->setStyleSheet(QString( "QLabel {" @@ -799,25 +797,25 @@ QMainWindow *initTrainWindow() { setCooldownHours(48); } }); - btnNotRemembered->setText("Not remembered (Z)"); + btnNotRemembered->setText("Neatcerējos (Z)"); addShortcut("Z", []() { if (btnNotRemembered->isVisible()) { btnNotRemembered->click(); } }); - btnHard->setText("Hard (X)"); + btnHard->setText("Grūti (X)"); addShortcut("X", []() { if (btnHard->isVisible()) { btnHard->click(); } }); - btnMedium->setText("Medium (C)"); + btnMedium->setText("Vidēji (C)"); addShortcut("C", []() { if (btnMedium->isVisible()) { btnMedium->click(); } }); - btnEasy->setText("Easy (V)"); + btnEasy->setText("Viegli (V)"); addShortcut("V", []() { if (btnEasy->isVisible()) { btnEasy->click(); @@ -846,10 +844,10 @@ QMainWindow *initTrainWindow() { vButtonBox->addWidget(actionButtons); actionButtons->setLayout(hButtons); - btnTriggerAnswer->setText("Show answer"); + btnTriggerAnswer->setText("Parādīt atbildi"); btnTriggerAnswer->hide(); - btnNext->setText("Next"); + btnNext->setText("Nākamais"); QObject::connect(btnNext, &QToolButton::clicked, []() { setupNextQuestion(); }); diff --git a/src/transpiler/lexer.cpp b/src/transpiler/lexer.cpp index 2ef48c5..545ca55 100644 --- a/src/transpiler/lexer.cpp +++ b/src/transpiler/lexer.cpp @@ -167,7 +167,7 @@ Result> tokenizeMdem(const std::string& content) { if (!identifierStarted) { return { tokens, - "Cannot end identifier if it is not started", + "Nevar beigt identifikatoru, ja tas nav iesākts", tokens[i].row, tokens[i].column }; @@ -245,12 +245,12 @@ Result> tokenizeMdem(const std::string& content) { ); if (debug) { - std::cout << "SECTION: Lexer output:\n"; - std::cout << std::format("Token count: {}", tokens.size()) << std::endl; + std::cout << "SECTION: LEXER:\n"; + std::cout << std::format("Tekstvienību daudzums: {}", tokens.size()) << std::endl; for (const Token& token : tokens) { std::cout << token.toString(); } - std::cout << "SECTION END: Lexer output\n"; + std::cout << "SECTION END: LEXER\n"; } return {tokens, ""}; @@ -258,18 +258,18 @@ Result> tokenizeMdem(const std::string& content) { std::string Token::toString(const TokenType* ttype) { switch (*ttype) { - case TokenType::TextFragment: return "text fragment"; - case TokenType::QuestionEnd: return "question end symbol"; - case TokenType::MatchGroupEnd: return "match group end"; - case TokenType::ElementDashStart: return "dash element start"; - case TokenType::ElementOrderModifier: return "order element modifier"; - case TokenType::ElementPlusStart: return "plus element start"; - case TokenType::Cooldown: return "cooldown"; - case TokenType::CooldownStart: return "start of cooldown"; - case TokenType::CooldownEnd: return "end of cooldown"; - case TokenType::StartOfFile: return "start of the file"; - case TokenType::EndOfFile: return "end of file"; - default: return "unrecognized token"; + case TokenType::TextFragment: return "teksta fragments"; + case TokenType::QuestionEnd: return "jautājuma beigas"; + case TokenType::MatchGroupEnd: return "grupas beigas"; + case TokenType::ElementDashStart: return "svītras elementa sākums"; + case TokenType::ElementOrderModifier: return "secības elementa sākums"; + case TokenType::ElementPlusStart: return "plusa elementa sākums"; + case TokenType::Cooldown: return "pārtraukums"; + case TokenType::CooldownStart: return "pātraukuma sākums"; + case TokenType::CooldownEnd: return "pātraukuma beigas"; + case TokenType::StartOfFile: return "faila sākums"; + case TokenType::EndOfFile: return "faila beigas"; + default: return "neatpazīta tekstvienība"; } } diff --git a/src/transpiler/parser.cpp b/src/transpiler/parser.cpp index b955dc6..6aa57da 100644 --- a/src/transpiler/parser.cpp +++ b/src/transpiler/parser.cpp @@ -90,7 +90,7 @@ Result ValidateGrammar(const std::vector& tokens) { }; return { .error=std::format( - "Invalid token sequence: {} cannot precede {}", + "Nekorekta tekstvienību secība: {} nevar būt pirms {}", std::string(capitalize(Token::toString(&token.tokenType))), std::string(capitalize(Token::toString(&nextToken.tokenType))) ), @@ -133,7 +133,7 @@ Result parseQuestions(const std::vector& tokens) { size_t i = 0; if (debug) { - std::cout << "SECTION: Parser output:\n"; + std::cout << "SECTION: PARSER:\n"; } auto isInBounds = [tokens](size_t i) { @@ -147,7 +147,7 @@ Result parseQuestions(const std::vector& tokens) { std::istringstream ss(datetime); ss >> std::get_time(&tm, format.c_str()); if (ss.fail()) { - throw std::runtime_error("Failed to parse datetime string"); + throw std::runtime_error("Neizdevās nolasīt datuma un laiku"); } std::time_t time = timegm(&tm); return time; @@ -156,7 +156,7 @@ Result parseQuestions(const std::vector& tokens) { time = parseToUTCTime(tokens[i].content.c_str(), "%d.%m.%Y %H:%M"); } catch (std::exception e) { return makeResult( - std::format("cannot parse the time - {}", e.what()), + std::format("Parsēšanas kļūda - {}", e.what()), tokens[i] ); } @@ -175,7 +175,7 @@ Result parseQuestions(const std::vector& tokens) { // Start element parsing & add to the offset. if (isInBounds(i + 1) && tokens[i + 1].tokenType == TokenType::ElementOrderModifier) { return makeResult( - "cannot have order modifier ('^') in the question definition", + "Nevar izmantot secības modifikatoru ('^') jautājuma sākumā", tokens[i + 1] ); } @@ -184,7 +184,7 @@ Result parseQuestions(const std::vector& tokens) { cooldown = std::stod(tokens[i + 2].content); } catch (std::exception e) { return makeResult( - "error parsing cooldown", + "kļūda nolasot pārtraukumu", tokens[i + 1] ); } @@ -214,7 +214,7 @@ Result parseQuestions(const std::vector& tokens) { if (offset == 5 && tokens[i + 5].tokenType != TokenType::QuestionEnd) { // Cannot place the identifier on the ordinary element. return makeResult( - "Invalid identifier placement", + "Nepareiza idenfikatora izvietošana", tokens[i] ); } @@ -235,19 +235,19 @@ Result parseQuestions(const std::vector& tokens) { isOrderQuestion = true; if (!isDash) { return makeResult( - "order questions can only be used with dashes ('-')", + "secības jautājumus var izmantot tikai ar svītrām ('-')", tokens[i] ); } if (isGroupQuestion) { return makeResult( - "question with groups cannot be ordered ('-^' and ':')", + "jautājumos ar grupām nevar būt secības elementu ('-^' and ':')", tokens[i] ); } if (isInBounds(i + 3) && tokens[i + 3].tokenType == TokenType::MatchGroupEnd) { return makeResult( - "cannot have groups in order question('-^' and ':')", + "secības jautājumā nevar būt grupas ('-^' and ':')", tokens[i] ); } @@ -257,7 +257,7 @@ Result parseQuestions(const std::vector& tokens) { isGroupQuestion = true; if (!isDash) { return makeResult( - "group questions can only be used with dashes ('-')", + "grupas jautājumus var definēt tikai ar svītru elementiem ('-')", tokens[i] ); } @@ -338,19 +338,19 @@ Result parseQuestions(const std::vector& tokens) { } } else if (tokens[i].tokenType == TokenType::EndOfFile) { if (debug) { - std::cout << "File terminated: EndOfFile\n"; + std::cout << "Fails beidzās: EndOfFile\n"; } break; } else { return makeResult( - "Unexpected token encountered", + "Negaidīta tekstvienība", tokens[i] ); } } if (debug) { - std::cout << "SECTION END: Parser output:\n"; + std::cout << "SECTION END: PARSER:\n"; } return makeResult( "", @@ -372,7 +372,7 @@ std::string MultiElementQuestion::toString() const { ss << opener << " " << choice.answer << "; "; } return std::format( - "\nsection:{}\nid:{}\n{}\n{}", + "\nsekcija:{}\npārtraukums:{}\n{}\n{}", section, cooldown, questionText, @@ -390,7 +390,7 @@ std::string GroupQuestion::toString() const { ss << "; "; } return std::format( - "\nsection:{}\nid:{}\n{}\n{}", + "\nsekcija:{}\npārtraukums:{}\n{}\n{}", section, cooldown, questionText,