# HG changeset patch # User Michiel Broek # Date 1655747723 -7200 # Node ID fe6346211b5b1af740d7e1bb7af03b791a6f9b15 # Parent 2a97905cb63771f2d1dab3e6824479b263b63485 Finally the translation of string arrays is working. diff -r 2a97905cb637 -r fe6346211b5b src/EditProduct.cpp --- a/src/EditProduct.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProduct.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -287,7 +287,7 @@ ui->st_guideEdit->setText(product->st_guide); ui->st_catEdit->setText(product->st_category); ui->st_catnrEdit->setText(QString("%1").arg(product->st_category_number)); - ui->st_typeEdit->setText(style_types[product->st_type]); + ui->st_typeEdit->setText(QCoreApplication::translate("BeerType", g_style_types[product->st_type])); ui->nameEdit->setText(product->name); ui->codeEdit->setText(product->code); ui->birthEdit->setText(product->birth.toString("dd MMM yyyy")); @@ -298,11 +298,11 @@ ui->boil_timeEdit->setValue(product->boil_time); ui->efficiencyEdit->setValue(product->efficiency); if (product->divide_type > 0) - ui->splitatEdit->setText(QString(tr("%1, part %2 of %3").arg(prod_split[product->divide_type]) + ui->splitatEdit->setText(QString(tr("%1, part %2 of %3").arg(QCoreApplication::translate("Splitter", g_prod_split[product->divide_type])) .arg(product->divide_part + 1) .arg(product->divide_parts + 1))); else - ui->splitatEdit->setText(prod_split[product->divide_type]); + ui->splitatEdit->setText(QCoreApplication::translate("Splitter", g_prod_split[product->divide_type])); ui->est_ogEdit->setValue(product->est_og); ui->est_ogShow->setRange(product->st_og_min, product->st_og_max); ui->est_ogShow->setPrecision(3); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductExport.cpp --- a/src/EditProductExport.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductExport.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -784,7 +784,7 @@ stageEdit->setObjectName(QString::fromUtf8("stageEdit")); stageEdit->setGeometry(QRect(810, 80, 113, 23)); stageEdit->setReadOnly(true); - stageEdit->setText(prod_stages[product->stage]); + stageEdit->setText(QCoreApplication::translate("ProdStages", g_prod_stages[product->stage])); QLabel *splitatLabel = new QLabel(dialog); splitatLabel->setObjectName(QString::fromUtf8("splitatLabel")); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductTab1.cpp --- a/src/EditProductTab1.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductTab1.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -79,7 +79,7 @@ ui->st_guideEdit->setText(product->st_guide); ui->st_catEdit->setText(product->st_category); ui->st_catnrEdit->setText(QString("%1").arg(product->st_category_number)); - ui->st_typeEdit->setText(style_types[product->st_type]); + ui->st_typeEdit->setText(QCoreApplication::translate("BeerType", g_style_types[product->st_type])); ui->est_ogShow->setRange(query.value(7).toDouble(), query.value(8).toDouble()); ui->est_fgShow->setRange(query.value(9).toDouble(), query.value(10).toDouble()); @@ -220,14 +220,14 @@ stage = PROD_STAGE_MATURE; if (product->stage != stage) { - qDebug() << "setStage() change state:" << prod_stages[product->stage] << "to:" << prod_stages[stage]; + qDebug() << "setStage() change state:" << g_prod_stages[product->stage] << "to:" << g_prod_stages[stage]; product->stage = stage; is_changed(); } else { - qDebug() << "setStage() stage:" << prod_stages[stage]; + qDebug() << "setStage() stage:" << g_prod_stages[stage]; } - ui->stageEdit->setText(prod_stages[stage]); + ui->stageEdit->setText(QCoreApplication::translate("ProdStages", g_prod_stages[stage])); /* Tab 1, generic */ ui->typeEdit->setDisabled(stage > PROD_STAGE_WAIT); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductTab10.cpp --- a/src/EditProductTab10.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductTab10.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -339,7 +339,7 @@ axisY->setTickCount(11); axisY->setMinorTickCount(1); axisY->setLabelFormat("%i"); - axisY->setTitleText("Temp"); + axisY->setTitleText(tr("Temp °C")); axisY->setLabelsFont(QFont("Helvetica", 8, QFont::Normal)); chart->addAxis(axisY, Qt::AlignLeft); pv_air->attachAxis(axisY); @@ -350,7 +350,7 @@ axisYR->setRange(0, 100); axisYR->setTickCount(11); axisYR->setLabelFormat("%i"); - axisYR->setTitleText("Power %"); + axisYR->setTitleText(tr("Power %")); axisYR->setLabelsFont(QFont("Helvetica", 8, QFont::Normal)); chart->addAxis(axisYR, Qt::AlignRight); pwr_cool->attachAxis(axisYR); @@ -400,7 +400,7 @@ battery ->append(timestamp, query.value("battery").toDouble()); } - temperature->setName(tr("Temperature °C")); + temperature->setName(tr("Temp °C")); temperature->setColor(QColorConstants::Svg::red); density->setName(tr("SG")); QPen pen(QColorConstants::Svg::navy); @@ -428,14 +428,14 @@ QValueAxis *axisYT = new QValueAxis; axisYT->setTickCount(10); axisYT->setLabelFormat("%.1f"); - axisYT->setTitleText(tr("Temp °C")); + axisYT->setTitleText(tr("Temperature °C")); axisYT->setLabelsFont(QFont("Helvetica", 8, QFont::Normal)); chart->addAxis(axisYT, Qt::AlignRight); temperature->attachAxis(axisYT); QValueAxis *axisYD = new QValueAxis; axisYD->setTickCount(10); - axisYD->setLabelFormat("%.4f"); + axisYD->setLabelFormat("%.3f"); axisYD->setTitleText("SG"); axisYD->setLabelsFont(QFont("Helvetica", 8, QFont::Normal)); chart->addAxis(axisYD, Qt::AlignLeft); @@ -444,7 +444,7 @@ QValueAxis *axisYB = new QValueAxis; axisYB->setTickCount(10); axisYB->setLabelFormat("%.2f"); - axisYB->setTitleText(tr("Battery")); + axisYB->setTitleText(tr("Battery volt")); axisYB->setLabelsFont(QFont("Helvetica", 8, QFont::Normal)); chart->addAxis(axisYB, Qt::AlignRight); battery->attachAxis(axisYB); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductTab2.cpp --- a/src/EditProductTab2.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductTab2.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -25,7 +25,7 @@ /* Mashing */ ui->tun_volumeEdit->setValue(product->eq_tun_volume); - ui->tun_materialEdit->setText(tun_materials[product->eq_tun_material]); + ui->tun_materialEdit->setText(QCoreApplication::translate("TunMaterial", g_tun_materials[product->eq_tun_material])); ui->mash_volumeEdit->setValue(product->eq_mash_volume); ui->mash_maxEdit->setValue(product->eq_mash_max); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductTab3.cpp --- a/src/EditProductTab3.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductTab3.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -87,15 +87,15 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 2, item); - item = new QTableWidgetItem(fermentable_types[product->fermentables.at(i).type]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableType", g_fermentable_types[product->fermentables.at(i).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 3, item); - item = new QTableWidgetItem(fermentable_graintypes[product->fermentables.at(i).graintype]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableGraintype", g_fermentable_graintypes[product->fermentables.at(i).graintype])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 4, item); - item = new QTableWidgetItem(fermentable_added[product->fermentables.at(i).added]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableAdded", g_fermentable_added[product->fermentables.at(i).added])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 5, item); @@ -843,11 +843,11 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->fermentablesTable->setItem(product->fermentables_row, 2, item); - item = new QTableWidgetItem(fermentable_types[product->fermentables.at(product->fermentables_row).type]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableType", g_fermentable_types[product->fermentables.at(product->fermentables_row).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(product->fermentables_row, 3, item); - item = new QTableWidgetItem(fermentable_graintypes[product->fermentables.at(product->fermentables_row).graintype]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableGraintype", g_fermentable_graintypes[product->fermentables.at(product->fermentables_row).graintype])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(product->fermentables_row, 4, item); @@ -895,7 +895,7 @@ qDebug() << "ferment_added_changed()" << product->fermentables_row << val; product->fermentables[product->fermentables_row].added = val; - QTableWidgetItem *item = new QTableWidgetItem(fermentable_added[val]); + QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("FermentableAdded", g_fermentable_added[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(product->fermentables_row, 5, item); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductTab4.cpp --- a/src/EditProductTab4.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductTab4.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -70,11 +70,11 @@ ui->hopsTable->setItem(i, 0, new QTableWidgetItem(product->hops.at(i).origin)); ui->hopsTable->setItem(i, 1, new QTableWidgetItem(product->hops.at(i).name)); - item = new QTableWidgetItem(hop_types[product->hops.at(i).type]); + item = new QTableWidgetItem(QCoreApplication::translate("HopTypes", g_hop_types[product->hops.at(i).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(i, 2, item); - item = new QTableWidgetItem(hop_forms[product->hops.at(i).form]); + item = new QTableWidgetItem(QCoreApplication::translate("HopForm", g_hop_forms[product->hops.at(i).form])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(i, 3, item); @@ -82,7 +82,7 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->hopsTable->setItem(i, 4, item); - item = new QTableWidgetItem(hop_useat[product->hops.at(i).useat]); + item = new QTableWidgetItem(QCoreApplication::translate("HopUse", g_hop_useat[product->hops.at(i).useat])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(i, 5, item); @@ -444,11 +444,13 @@ ui->hopsTable->setItem(product->hops_row, 0, new QTableWidgetItem(product->hops.at(product->hops_row).origin)); ui->hopsTable->setItem(product->hops_row, 1, new QTableWidgetItem(product->hops.at(product->hops_row).name)); - item = new QTableWidgetItem(hop_types[product->hops.at(product->hops_row).type]); + QString hoptype = QCoreApplication::translate("HopTypes", g_hop_types[product->hops.at(product->hops_row).type]); + item = new QTableWidgetItem(hoptype); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(product->hops_row, 2, item); - item = new QTableWidgetItem(hop_forms[product->hops.at(product->hops_row).form]); + + item = new QTableWidgetItem(QCoreApplication::translate("HopForm", g_hop_forms[product->hops.at(product->hops_row).form])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(product->hops_row, 3, item); @@ -504,7 +506,7 @@ qDebug() << "hop_useat_changed()" << product->hops_row << val; product->hops[product->hops_row].useat = val; - QTableWidgetItem *item = new QTableWidgetItem(hop_useat[val]); + QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("HopUse", g_hop_useat[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(product->hops_row, 5, item); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductTab5.cpp --- a/src/EditProductTab5.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductTab5.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -71,11 +71,11 @@ ui->miscsTable->setItem(i, 0, new QTableWidgetItem(product->miscs.at(i).name)); - item = new QTableWidgetItem(misc_types[product->miscs.at(i).type]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscType", g_misc_types[product->miscs.at(i).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(i, 1, item); - item = new QTableWidgetItem(misc_uses[product->miscs.at(i).use_use]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscUse", g_misc_uses[product->miscs.at(i).use_use])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(i, 2, item); @@ -423,11 +423,11 @@ mnameEdit->setText(product->miscs.at(product->miscs_row).name); ui->miscsTable->setItem(product->miscs_row, 0, new QTableWidgetItem(product->miscs.at(product->miscs_row).name)); - item = new QTableWidgetItem(misc_types[product->miscs.at(product->miscs_row).type]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscType", g_misc_types[product->miscs.at(product->miscs_row).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(product->miscs_row, 1, item); - item = new QTableWidgetItem(misc_uses[product->miscs.at(product->miscs_row).use_use]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscUse", g_misc_uses[product->miscs.at(product->miscs_row).use_use])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(product->miscs_row, 2, item); useatEdit->setCurrentIndex(product->miscs.at(product->miscs_row).use_use); @@ -504,7 +504,7 @@ query.first(); this->mselectEdit->addItem(""); // Start with empty value for (int i = 0; i < query.size(); i++) { - this->mselectEdit->addItem(query.value(0).toString()+ " (" + misc_types[query.value(1).toInt()] + ") " + + this->mselectEdit->addItem(query.value(0).toString()+ " (" + QCoreApplication::translate("MiscType", g_misc_types[query.value(1).toInt()]) + ") " + QString("%1 %2").arg(query.value(3).toDouble() * 1000.0, 3, 'f', 2, '0').arg(query.value(2).toInt()?"gr":"ml")); query.next(); } @@ -517,7 +517,7 @@ qDebug() << "misc_useat_changed" << val; product->miscs[product->miscs_row].use_use = val; - item = new QTableWidgetItem(misc_uses[val]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscUse", g_misc_uses[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(product->miscs_row, 2, item); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductTab6.cpp --- a/src/EditProductTab6.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductTab6.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -65,11 +65,11 @@ ui->yeastsTable->setItem(i, 1, new QTableWidgetItem(product->yeasts.at(i).laboratory)); ui->yeastsTable->setItem(i, 2, new QTableWidgetItem(product->yeasts.at(i).product_id)); - item = new QTableWidgetItem(yeast_forms[product->yeasts.at(i).form]); + item = new QTableWidgetItem(QCoreApplication::translate("YeastForm", g_yeast_forms[product->yeasts.at(i).form])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->yeastsTable->setItem(i, 3, item); - item = new QTableWidgetItem(yeast_use[product->yeasts.at(i).use]); + item = new QTableWidgetItem(QCoreApplication::translate("YeastUse", g_yeast_use[product->yeasts.at(i).use])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->yeastsTable->setItem(i, 4, item); @@ -146,8 +146,8 @@ ui->yeastsTable->setEditTriggers(QAbstractItemView::NoEditTriggers); - for (int i = 0; i < starters.size(); i++) { - ui->stmethodEdit->addItem(starters[i]); + for (int i = 0; i < 3; i++) { + ui->stmethodEdit->addItem(QCoreApplication::translate("YeastStarter", g_yeast_starter[i])); } ui->stmethodEdit->setCurrentIndex(product->starter_type); } @@ -382,7 +382,7 @@ } } ui->starterTable->setRowCount(step); - item = new QTableWidgetItem(starters[stype]); + item = new QTableWidgetItem(QCoreApplication::translate("YeastStarter", g_yeast_starter[stype])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->starterTable->setItem(step -1, 0, item); @@ -442,7 +442,7 @@ if (product->prop_volume[step] > 0) { result = calcStep(product->prop_volume[step] * 1000, product->prop_type[step], tcells); ui->starterTable->setRowCount(step + 1); - item = new QTableWidgetItem(starters[product->prop_type[step]]); + item = new QTableWidgetItem(QCoreApplication::translate("YeastStarter", g_yeast_starter[product->prop_type[step]])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->starterTable->setItem(step, 0, item); @@ -843,7 +843,7 @@ ui->yeastsTable->setItem(product->yeasts_row, 1, new QTableWidgetItem(product->yeasts.at(product->yeasts_row).laboratory)); ui->yeastsTable->setItem(product->yeasts_row, 2, new QTableWidgetItem(product->yeasts.at(product->yeasts_row).product_id)); - item = new QTableWidgetItem(yeast_forms[product->yeasts.at(product->yeasts_row).form]); + item = new QTableWidgetItem(QCoreApplication::translate("YeastForm", g_yeast_forms[product->yeasts.at(product->yeasts_row).form])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->yeastsTable->setItem(product->yeasts_row, 3, item); @@ -907,7 +907,7 @@ qDebug() << "yeast_useat_changed()" << product->yeasts_row << val; product->yeasts[product->yeasts_row].use = val; - QTableWidgetItem *item = new QTableWidgetItem(yeast_use[val]); + QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("YeastUse", g_yeast_use[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->yeastsTable->setItem(product->yeasts_row, 5, item); is_changed(); diff -r 2a97905cb637 -r fe6346211b5b src/EditProductTab7.cpp --- a/src/EditProductTab7.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditProductTab7.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -61,7 +61,7 @@ ui->mashsTable->setItem(i, 0, new QTableWidgetItem(product->mashs.at(i).step_name)); - item = new QTableWidgetItem(step_types[product->mashs.at(i).step_type]); + item = new QTableWidgetItem(QCoreApplication::translate("StepType", g_step_types[product->mashs.at(i).step_type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->mashsTable->setItem(i, 1, item); diff -r 2a97905cb637 -r fe6346211b5b src/EditRecipe.cpp --- a/src/EditRecipe.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditRecipe.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -179,7 +179,7 @@ ui->st_guideEdit->setText(recipe->st_guide); ui->st_catEdit->setText(recipe->st_category); ui->st_catnrEdit->setText(QString("%1").arg(recipe->st_category_number)); - ui->st_typeEdit->setText(style_types[recipe->st_type]); + ui->st_typeEdit->setText(QCoreApplication::translate("BeerType", g_style_types[recipe->st_type])); ui->nameEdit->setText(recipe->name); ui->notesEdit->setPlainText(recipe->notes); ui->typeEdit->setCurrentIndex(recipe->type); diff -r 2a97905cb637 -r fe6346211b5b src/EditRecipeTab1.cpp --- a/src/EditRecipeTab1.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditRecipeTab1.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -73,7 +73,7 @@ ui->st_guideEdit->setText(recipe->st_guide); ui->st_catEdit->setText(recipe->st_category); ui->st_catnrEdit->setText(QString("%1").arg(recipe->st_category_number)); - ui->st_typeEdit->setText(style_types[recipe->st_type]); + ui->st_typeEdit->setText(QCoreApplication::translate("BeerType", g_style_types[recipe->st_type])); ui->est_ogShow->setRange(query.value(7).toDouble(), query.value(8).toDouble()); ui->est_fgShow->setRange(query.value(9).toDouble(), query.value(10).toDouble()); diff -r 2a97905cb637 -r fe6346211b5b src/EditRecipeTab2.cpp --- a/src/EditRecipeTab2.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditRecipeTab2.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -86,15 +86,15 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 2, item); - item = new QTableWidgetItem(fermentable_types[recipe->fermentables.at(i).type]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableType", g_fermentable_types[recipe->fermentables.at(i).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 3, item); - item = new QTableWidgetItem(fermentable_graintypes[recipe->fermentables.at(i).graintype]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableGraintype", g_fermentable_graintypes[recipe->fermentables.at(i).graintype])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 4, item); - item = new QTableWidgetItem(fermentable_added[recipe->fermentables.at(i).added]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableAdded", g_fermentable_added[recipe->fermentables.at(i).added])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 5, item); @@ -740,11 +740,11 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->fermentablesTable->setItem(recipe->fermentables_row, 2, item); - item = new QTableWidgetItem(fermentable_types[recipe->fermentables.at(recipe->fermentables_row).type]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableType", g_fermentable_types[recipe->fermentables.at(recipe->fermentables_row).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(recipe->fermentables_row, 3, item); - item = new QTableWidgetItem(fermentable_graintypes[recipe->fermentables.at(recipe->fermentables_row).graintype]); + item = new QTableWidgetItem(QCoreApplication::translate("FermentableGraintype", g_fermentable_graintypes[recipe->fermentables.at(recipe->fermentables_row).graintype])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(recipe->fermentables_row, 4, item); @@ -786,7 +786,7 @@ qDebug() << "ferment_added_changed()" << recipe->fermentables_row << val; recipe->fermentables[recipe->fermentables_row].added = val; - QTableWidgetItem *item = new QTableWidgetItem(fermentable_added[val]); + QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("FermentableAdded", g_fermentable_added[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->fermentablesTable->setItem(recipe->fermentables_row, 5, item); diff -r 2a97905cb637 -r fe6346211b5b src/EditRecipeTab3.cpp --- a/src/EditRecipeTab3.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditRecipeTab3.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -69,11 +69,11 @@ ui->hopsTable->setItem(i, 0, new QTableWidgetItem(recipe->hops.at(i).origin)); ui->hopsTable->setItem(i, 1, new QTableWidgetItem(recipe->hops.at(i).name)); - item = new QTableWidgetItem(hop_types[recipe->hops.at(i).type]); + item = new QTableWidgetItem(QCoreApplication::translate("HopTypes", g_hop_types[recipe->hops.at(i).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(i, 2, item); - item = new QTableWidgetItem(hop_forms[recipe->hops.at(i).form]); + item = new QTableWidgetItem(QCoreApplication::translate("HopForm", g_hop_forms[recipe->hops.at(i).form])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(i, 3, item); @@ -81,7 +81,7 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->hopsTable->setItem(i, 4, item); - item = new QTableWidgetItem(hop_useat[recipe->hops.at(i).useat]); + item = new QTableWidgetItem(QCoreApplication::translate("HopUse", g_hop_useat[recipe->hops.at(i).useat])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(i, 5, item); @@ -435,11 +435,13 @@ ui->hopsTable->setItem(recipe->hops_row, 0, new QTableWidgetItem(recipe->hops.at(recipe->hops_row).origin)); ui->hopsTable->setItem(recipe->hops_row, 1, new QTableWidgetItem(recipe->hops.at(recipe->hops_row).name)); - item = new QTableWidgetItem(hop_types[recipe->hops.at(recipe->hops_row).type]); + QString hoptype = QCoreApplication::translate("HopTypes", g_hop_types[recipe->hops.at(recipe->hops_row).type]); + item = new QTableWidgetItem(hoptype); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(recipe->hops_row, 2, item); - item = new QTableWidgetItem(hop_forms[recipe->hops.at(recipe->hops_row).form]); + item = new QTableWidgetItem(QCoreApplication::translate("HopForm", g_hop_forms[recipe->hops.at(recipe->hops_row).form])); + //item = new QTableWidgetItem(hop_forms[recipe->hops.at(recipe->hops_row).form]); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(recipe->hops_row, 3, item); @@ -481,7 +483,7 @@ void EditRecipe::hop_useat_changed(int val) { recipe->hops[recipe->hops_row].useat = val; - QTableWidgetItem *item = new QTableWidgetItem(hop_useat[val]); + QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("HopUse", g_hop_useat[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(recipe->hops_row, 5, item); @@ -507,7 +509,7 @@ void EditRecipe::hop_form_changed(int val) { recipe->hops[recipe->hops_row].form = val; - QTableWidgetItem *item = new QTableWidgetItem(hop_forms[val]); + QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("HopForm", g_hop_forms[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->hopsTable->setItem(recipe->hops_row, 3, item); diff -r 2a97905cb637 -r fe6346211b5b src/EditRecipeTab4.cpp --- a/src/EditRecipeTab4.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditRecipeTab4.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -70,11 +70,11 @@ ui->miscsTable->setItem(i, 0, new QTableWidgetItem(recipe->miscs.at(i).name)); - item = new QTableWidgetItem(misc_types[recipe->miscs.at(i).type]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscType", g_misc_types[recipe->miscs.at(i).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(i, 1, item); - item = new QTableWidgetItem(misc_uses[recipe->miscs.at(i).use_use]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscUse", g_misc_uses[recipe->miscs.at(i).use_use])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(i, 2, item); @@ -395,11 +395,11 @@ mnameEdit->setText(recipe->miscs.at(recipe->miscs_row).name); ui->miscsTable->setItem(recipe->miscs_row, 0, new QTableWidgetItem(recipe->miscs.at(recipe->miscs_row).name)); - item = new QTableWidgetItem(misc_types[recipe->miscs.at(recipe->miscs_row).type]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscType", g_misc_types[recipe->miscs.at(recipe->miscs_row).type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(recipe->miscs_row, 1, item); - item = new QTableWidgetItem(misc_uses[recipe->miscs.at(recipe->miscs_row).use_use]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscUse", g_misc_uses[recipe->miscs.at(recipe->miscs_row).use_use])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(recipe->miscs_row, 2, item); useatEdit->setCurrentIndex(recipe->miscs.at(recipe->miscs_row).use_use); @@ -467,7 +467,7 @@ query.first(); this->mselectEdit->addItem(""); // Start with empty value for (int i = 0; i < query.size(); i++) { - this->mselectEdit->addItem(query.value(0).toString()+ " (" + misc_types[query.value(1).toInt()] + ") " + + this->mselectEdit->addItem(query.value(0).toString()+ " (" + QCoreApplication::translate("MiscType", g_misc_types[query.value(1).toInt()]) + ") " + QString("%1 %2").arg(query.value(3).toDouble() * 1000.0, 3, 'f', 2, '0').arg(query.value(2).toInt()?"gr":"ml")); query.next(); } @@ -480,7 +480,7 @@ qDebug() << "misc_useat_changed" << val; recipe->miscs[recipe->miscs_row].use_use = val; - item = new QTableWidgetItem(misc_uses[val]); + item = new QTableWidgetItem(QCoreApplication::translate("MiscUse", g_misc_uses[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->miscsTable->setItem(recipe->miscs_row, 2, item); diff -r 2a97905cb637 -r fe6346211b5b src/EditRecipeTab5.cpp --- a/src/EditRecipeTab5.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditRecipeTab5.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -64,11 +64,11 @@ ui->yeastsTable->setItem(i, 1, new QTableWidgetItem(recipe->yeasts.at(i).laboratory)); ui->yeastsTable->setItem(i, 2, new QTableWidgetItem(recipe->yeasts.at(i).product_id)); - item = new QTableWidgetItem(yeast_forms[recipe->yeasts.at(i).form]); + item = new QTableWidgetItem(QCoreApplication::translate("YeastForm", g_yeast_forms[recipe->yeasts.at(i).form])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->yeastsTable->setItem(i, 3, item); - item = new QTableWidgetItem(yeast_use[recipe->yeasts.at(i).use]); + item = new QTableWidgetItem(QCoreApplication::translate("YeastUse", g_yeast_use[recipe->yeasts.at(i).use])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->yeastsTable->setItem(i, 4, item); @@ -373,7 +373,7 @@ ui->yeastsTable->setItem(recipe->yeasts_row, 1, new QTableWidgetItem(recipe->yeasts.at(recipe->yeasts_row).laboratory)); ui->yeastsTable->setItem(recipe->yeasts_row, 2, new QTableWidgetItem(recipe->yeasts.at(recipe->yeasts_row).product_id)); - item = new QTableWidgetItem(yeast_forms[recipe->yeasts.at(recipe->yeasts_row).form]); + item = new QTableWidgetItem(QCoreApplication::translate("YeastForm", g_yeast_forms[recipe->yeasts.at(recipe->yeasts_row).form])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->yeastsTable->setItem(recipe->yeasts_row, 3, item); @@ -427,7 +427,7 @@ qDebug() << "yeast_useat_changed()" << recipe->yeasts_row << val; recipe->yeasts[recipe->yeasts_row].use = val; - QTableWidgetItem *item = new QTableWidgetItem(yeast_use[val]); + QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("YeastUse", g_yeast_use[val])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->yeastsTable->setItem(recipe->yeasts_row, 5, item); is_changed(); diff -r 2a97905cb637 -r fe6346211b5b src/EditRecipeTab6.cpp --- a/src/EditRecipeTab6.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/EditRecipeTab6.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -57,7 +57,7 @@ ui->mashsTable->setItem(i, 0, new QTableWidgetItem(recipe->mashs.at(i).step_name)); - item = new QTableWidgetItem(step_types[recipe->mashs.at(i).step_type]); + item = new QTableWidgetItem(QCoreApplication::translate("StepType", g_step_types[recipe->mashs.at(i).step_type])); item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); ui->mashsTable->setItem(i, 1, item); diff -r 2a97905cb637 -r fe6346211b5b src/InventoryFermentables.cpp --- a/src/InventoryFermentables.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/InventoryFermentables.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -115,8 +115,8 @@ this->tableFermentables->setItem(ridx, 0, new QTableWidgetItem(query.value(6).toString())); this->tableFermentables->setItem(ridx, 1, new QTableWidgetItem(query.value(7).toString())); this->tableFermentables->setItem(ridx, 2, new QTableWidgetItem(query.value(1).toString())); - this->tableFermentables->setItem(ridx, 3, new QTableWidgetItem(fermentable_types[query.value(2).toInt()])); - this->tableFermentables->setItem(ridx, 4, new QTableWidgetItem(fermentable_graintypes[query.value(20).toInt()])); + this->tableFermentables->setItem(ridx, 3, new QTableWidgetItem(QCoreApplication::translate("FermentableType", g_fermentable_types[query.value(2).toInt()]))); + this->tableFermentables->setItem(ridx, 4, new QTableWidgetItem(QCoreApplication::translate("FermentableGraintype", g_fermentable_graintypes[query.value(20).toInt()]))); w = QString("%1 EBC").arg(query.value(4).toDouble(), 1, 'f', 0, '0' ); QTableWidgetItem *item = new QTableWidgetItem(w); item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); diff -r 2a97905cb637 -r fe6346211b5b src/InventoryHops.cpp --- a/src/InventoryHops.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/InventoryHops.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -115,8 +115,8 @@ for (int ridx = 0 ; ridx < query.size() ; ridx++ ) { this->tableHops->setItem(ridx, 0, new QTableWidgetItem(query.value(12).toString())); /* Origin */ this->tableHops->setItem(ridx, 1, new QTableWidgetItem(query.value(1).toString())); /* Name */ - this->tableHops->setItem(ridx, 2, new QTableWidgetItem(hop_types[query.value(9).toInt()])); /* Type */ - this->tableHops->setItem(ridx, 3, new QTableWidgetItem(hop_forms[query.value(10).toInt()])); /* Form */ + this->tableHops->setItem(ridx, 2, new QTableWidgetItem(g_hop_types[query.value(9).toInt()])); /* Type */ + this->tableHops->setItem(ridx, 3, new QTableWidgetItem(QCoreApplication::translate("HopForm", g_hop_forms[query.value(10).toInt()]))); /* Form */ w = QString("%1 %").arg(query.value(2).toDouble(), 2, 'f', 1, '0' ); /* Alpha% */ QTableWidgetItem *item = new QTableWidgetItem(w); item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); diff -r 2a97905cb637 -r fe6346211b5b src/InventoryMiscs.cpp --- a/src/InventoryMiscs.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/InventoryMiscs.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -109,21 +109,21 @@ query.first(); for (int ridx = 0 ; ridx < query.size() ; ridx++ ) { this->tableMiscs->setItem(ridx, 0, new QTableWidgetItem(query.value(1).toString())); /* Name */ - this->tableMiscs->setItem(ridx, 1, new QTableWidgetItem(misc_types[query.value(2).toInt()])); /* Type */ - this->tableMiscs->setItem(ridx, 2, new QTableWidgetItem(misc_uses[query.value(3).toInt()])); /* Use */ + this->tableMiscs->setItem(ridx, 1, new QTableWidgetItem(QCoreApplication::translate("MiscType", g_misc_types[query.value(2).toInt()])));/* Type */ + this->tableMiscs->setItem(ridx, 2, new QTableWidgetItem(QCoreApplication::translate("MiscUse", g_misc_uses[query.value(3).toInt()]))); /* Use */ w = QString(""); /* Use time */ if (query.value(4).toInt() > 0) { if (query.value(4).toInt() == 1) - w = QString("1 minute"); + w = QString(tr("1 minute")); else if (query.value(4).toInt() < 180) - w = QString("%1 minutes").arg(query.value(4).toInt()); + w = QString(tr("%1 minutes")).arg(query.value(4).toInt()); else if (query.value(4).toInt() < 1440) - w = QString("%1 hours").arg(query.value(4).toInt() / 60); + w = QString(tr("%1 hours")).arg(query.value(4).toInt() / 60); else if (query.value(4).toInt() == 1440) - w = QString("1 day"); + w = QString(tr("1 day")); else - w = QString("%1 days").arg(query.value(4).toInt() / 1440); + w = QString(tr("%1 days")).arg(query.value(4).toInt() / 1440); } QTableWidgetItem *item = new QTableWidgetItem(w); item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); diff -r 2a97905cb637 -r fe6346211b5b src/InventoryYeasts.cpp --- a/src/InventoryYeasts.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/InventoryYeasts.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -119,8 +119,8 @@ this->tableYeasts->setItem(ridx, 0, new QTableWidgetItem(query.value(4).toString())); /* Laboratory */ this->tableYeasts->setItem(ridx, 1, new QTableWidgetItem(query.value(5).toString())); /* Product id */ this->tableYeasts->setItem(ridx, 2, new QTableWidgetItem(query.value(1).toString())); /* Name */ - this->tableYeasts->setItem(ridx, 3, new QTableWidgetItem(yeast_types[query.value(2).toInt()])); /* Type */ - this->tableYeasts->setItem(ridx, 4, new QTableWidgetItem(yeast_forms[query.value(3).toInt()])); /* Form */ + this->tableYeasts->setItem(ridx, 3, new QTableWidgetItem(QCoreApplication::translate("YeastType", g_yeast_types[query.value(2).toInt()])));/* Type */ + this->tableYeasts->setItem(ridx, 4, new QTableWidgetItem(QCoreApplication::translate("YeastForm", g_yeast_forms[query.value(3).toInt()])));/* Form */ w = QString("%1 %").arg(query.value(9).toDouble(), 2, 'f', 1, '0' ); /* Attenuation% */ QTableWidgetItem *item = new QTableWidgetItem(w); item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); diff -r 2a97905cb637 -r fe6346211b5b src/PrinterDialog.cpp --- a/src/PrinterDialog.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/PrinterDialog.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -105,7 +105,7 @@ y = 120; } painter.fillRect( 20, y, 715, 20, (i % 2) ? c_line1:c_line2); - painter.drawText( 20, y+4, 80, 20, Qt::AlignLeft, fermentable_types[query.value(0).toInt()]); + painter.drawText( 20, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("FermentableType", g_fermentable_types[query.value(0).toInt()])); painter.drawText(100, y+4, 100, 20, Qt::AlignLeft, query.value(2).toString()); painter.drawText(200, y+4, 260, 20, Qt::AlignLeft, query.value(1).toString()); w = QString("%1 kg").arg(query.value(3).toDouble(), 10, 'f', 3); @@ -154,7 +154,7 @@ painter.fillRect( 20, y, 715, 20, (i % 2) ? c_line1:c_line2); painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, query.value(2).toString()); painter.drawText(140, y+4, 240, 20, Qt::AlignLeft, query.value(0).toString()); - painter.drawText(380, y+4, 80, 20, Qt::AlignLeft, hop_forms[query.value(1).toInt()]); + painter.drawText(380, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("HopForm", g_hop_forms[query.value(1).toInt()])); if (query.value(3).toDouble() < 0.6) w = QString("%1 gr").arg(query.value(3).toDouble() * 1000.0, 10, 'f', 1); else @@ -251,7 +251,7 @@ y = 120; } painter.fillRect( 20, y, 715, 20, (i % 2) ? c_line1:c_line2); - painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, misc_types[query.value(1).toInt()]); + painter.drawText( 20, y+4, 120, 20, Qt::AlignLeft, QCoreApplication::translate("MiscType", g_misc_types[query.value(1).toInt()])); painter.drawText(140, y+4, 320, 20, Qt::AlignLeft, query.value(0).toString()); if (query.value(2).toInt()) w = QString("%1 gr").arg(query.value(3).toDouble() * 1000.0, 10, 'f', 1); @@ -301,8 +301,8 @@ painter.fillRect( 20, y, 715, 20, (i % 2) ? c_line1:c_line2); painter.drawText( 20, y+4, 180, 20, Qt::AlignLeft, query.value(0).toString()); painter.drawText(200, y+4, 230, 20, Qt::AlignLeft, query.value(5).toString()); - painter.drawText(430, y+4, 80, 20, Qt::AlignCenter, yeast_types[query.value(1).toInt()]); - painter.drawText(510, y+4, 80, 20, Qt::AlignCenter, yeast_forms[query.value(2).toInt()]); + painter.drawText(430, y+4, 80, 20, Qt::AlignCenter, QCoreApplication::translate("YeastType", g_yeast_types[query.value(1).toInt()])); + painter.drawText(510, y+4, 80, 20, Qt::AlignCenter, QCoreApplication::translate("YeastForm", g_yeast_forms[query.value(2).toInt()])); if (query.value(2).toInt() == 0) w = QString("%1 %2").arg(query.value(3).toDouble(), 10, 'f', 1).arg(y_unit[query.value(2).toInt()]); @@ -328,7 +328,7 @@ painter.setFont(QFont("Helvetica", 9, QFont::Normal)); painter.fillRect( 20, y, 330, 20, c_line1); painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Brew type")); - painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, recipe_types[recipe->type]); + painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QCoreApplication::translate("Recipe_type", g_recipe_types[recipe->type])); painter.fillRect(405, y, 330, 20, c_line1); painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Efficiency")); painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 %").arg(recipe->efficiency, 1, 'f', 1)); @@ -392,9 +392,9 @@ cost_fermentables += cost; if (recipe->fermentables.at(i).type == 0) - soort = fermentable_graintypes[recipe->fermentables.at(i).graintype]; + soort = QCoreApplication::translate("FermentableGraintype", g_fermentable_graintypes[recipe->fermentables.at(i).graintype]); else - soort = fermentable_types[recipe->fermentables.at(i).type]; + soort = QCoreApplication::translate("FermentableType", g_fermentable_types[recipe->fermentables.at(i).type]); if (recipe->fermentables.at(i).amount > 100) amount = QString("%1 kg").arg(recipe->fermentables.at(i).amount, 1, 'f', 1); @@ -411,7 +411,7 @@ painter.drawText(285, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(recipe->fermentables.at(i).percentage, 1, 'f', 1)); painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(recipe->fermentables.at(i).yield, 1, 'f', 1)); painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, soort); - painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, fermentable_added[recipe->fermentables.at(i).added]); + painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("FermentableAdded", g_fermentable_added[recipe->fermentables.at(i).added])); painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); y += 20; @@ -442,11 +442,11 @@ recipe->ibu_method, 0, recipe->hops.at(i).time, 0, recipe->boil_time); if (recipe->hops.at(i).useat == 2 || recipe->hops.at(i).useat == 4) // Boil or Whirlpool - use = hop_useat[recipe->hops.at(i).useat] + QString(" %1 min").arg(recipe->hops.at(i).time); + use = QCoreApplication::translate("HopUse", g_hop_useat[recipe->hops.at(i).useat]) + QString(" %1 min").arg(recipe->hops.at(i).time); else if (recipe->hops.at(i).useat == 5) // Dryhop - use = hop_useat[recipe->hops.at(i).useat] + QString(" %1 days").arg(recipe->hops.at(i).time / 1440); + use = QCoreApplication::translate("HopUse", g_hop_useat[recipe->hops.at(i).useat]) + QString(" %1 days").arg(recipe->hops.at(i).time / 1440); else - use = hop_useat[recipe->hops.at(i).useat]; + use = QCoreApplication::translate("HopUse", g_hop_useat[recipe->hops.at(i).useat]); if (recipe->hops.at(i).amount > 1) amount = QString("%1 kg").arg(recipe->hops.at(i).amount, 1, 'f', 3); @@ -457,7 +457,7 @@ painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, recipe->hops.at(i).name + " (" + recipe->hops.at(i).origin + ")"); painter.drawText(285, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(recipe->hops.at(i).alpha, 1, 'f', 1)); painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(ibu, 1, 'f', 1)); - painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, hop_forms[recipe->hops.at(i).form]); + painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("HopForm", g_hop_forms[recipe->hops.at(i).form])); painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, use); painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); @@ -495,8 +495,8 @@ recipe->yeasts.at(i).product_id + " (" + recipe->yeasts.at(i).name + ")"); painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(recipe->yeasts.at(i).attenuation, 1, 'f', 1)); - painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, yeast_forms[recipe->yeasts.at(i).form]); - painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, yeast_use[recipe->yeasts.at(i).use]); + painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("YeastForm", g_yeast_forms[recipe->yeasts.at(i).form])); + painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("YeastUse", g_yeast_use[recipe->yeasts.at(i).use])); painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); y += 20; @@ -528,9 +528,9 @@ cost_miscs += cost; if (recipe->miscs.at(i).use_use == 2) - use = misc_uses[recipe->miscs.at(i).use_use] + QString(" %1 min").arg(recipe->miscs.at(i).time); + use = QCoreApplication::translate("MiscUse", g_misc_uses[recipe->miscs.at(i).use_use]) + QString(" %1 min").arg(recipe->miscs.at(i).time); else - use = misc_uses[recipe->miscs.at(i).use_use]; + use = QCoreApplication::translate("MiscUse", g_misc_uses[recipe->miscs.at(i).use_use]); if (recipe->miscs.at(i).type == 4) // Water agent painter.fillRect( 20, y, 715, 20, mw_line); @@ -541,7 +541,7 @@ else painter.fillRect( 20, y, 715, 20, mo_line); painter.drawText( 20, y+4, 410, 20, Qt::AlignLeft, recipe->miscs.at(i).name); - painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, misc_types[recipe->miscs.at(i).type]); + painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("MiscType", g_misc_types[recipe->miscs.at(i).type])); painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, use); painter.drawText(605, y+4, 60, 20, Qt::AlignRight, QString("%1 %2").arg(recipe->miscs.at(i).amount * 1000.0, 1, 'f', 1).arg(recipe->miscs.at(i).amount_is_weight ? "gr":"ml")); @@ -576,7 +576,7 @@ for (int i = 0; i < recipe->mashs.size(); i++) { painter.fillRect( 20, y, 715, 20, line); painter.drawText( 20, y+4, 160, 20, Qt::AlignLeft, recipe->mashs.at(i).step_name); - painter.drawText(180, y+4, 80, 20, Qt::AlignLeft, step_types[recipe->mashs.at(i).step_type]); + painter.drawText(180, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("StepType", g_step_types[recipe->mashs.at(i).step_type])); painter.drawText(260, y+4, 60, 20, Qt::AlignRight, QString("%1").arg(recipe->mashs.at(i).step_temp, 1, 'f', 1)); painter.drawText(325, y+4, 60, 20, Qt::AlignRight, QString("%1").arg(recipe->mashs.at(i).end_temp, 1, 'f', 1)); painter.drawText(390, y+4, 60, 20, Qt::AlignRight, QString("%1").arg(recipe->mashs.at(i).step_time, 1, 'f', 0)); @@ -704,7 +704,7 @@ painter.setFont(QFont("Helvetica", 9, QFont::Normal)); painter.fillRect( 20, y, 330, 20, c_line1); painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Brew type")); - painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, recipe_types[product->type]); + painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QCoreApplication::translate("RecipeType", g_recipe_types[product->type])); painter.fillRect(405, y, 330, 20, c_line1); painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Efficiency")); painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 %").arg(product->efficiency, 1, 'f', 1)); @@ -757,12 +757,12 @@ painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, product->st_name); painter.fillRect(405, y, 330, 20, c_line1); painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Stage")); - painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, prod_stages[product->stage]); + painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QCoreApplication::translate("ProdStages", g_prod_stages[product->stage])); if (product->divide_parts) { y += 20; painter.fillRect( 20, y, 330, 20, c_line1); painter.drawText( 20, y+4, 150, 20, Qt::AlignLeft, tr("Split batch")); - painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, prod_split[product->divide_type]); + painter.drawText(170, y+4, 180, 20, Qt::AlignLeft, QCoreApplication::translate("Splitter", g_prod_split[product->divide_type])); painter.fillRect(405, y, 330, 20, c_line1); painter.drawText(405, y+4, 150, 20, Qt::AlignLeft, tr("Batch number")); painter.drawText(555, y+4, 180, 20, Qt::AlignLeft, QString("%1 of %2").arg(product->divide_part + 1).arg(product->divide_parts + 1)); @@ -789,9 +789,9 @@ cost_fermentables += cost; if (product->fermentables.at(i).type == 0) - soort = fermentable_graintypes[product->fermentables.at(i).graintype]; + soort = QCoreApplication::translate("FermentableGraintype", g_fermentable_graintypes[product->fermentables.at(i).graintype]); else - soort = fermentable_types[product->fermentables.at(i).type]; + soort = QCoreApplication::translate("FermentableType", g_fermentable_types[product->fermentables.at(i).type]); if (product->fermentables.at(i).amount > 100) amount = QString("%1 kg").arg(product->fermentables.at(i).amount, 1, 'f', 1); @@ -811,7 +811,7 @@ painter.drawText(285, y+4, 70, 20, Qt::AlignRight, ""); painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(product->fermentables.at(i).yield, 1, 'f', 1)); painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, soort); - painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, fermentable_added[product->fermentables.at(i).added]); + painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("FermentableAdded", g_fermentable_added[product->fermentables.at(i).added])); painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); y += 20; @@ -842,11 +842,11 @@ product->ibu_method, product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time); if (product->hops.at(i).useat == 2 || product->hops.at(i).useat == 4) // Boil or Whirlpool - use = hop_useat[product->hops.at(i).useat] + QString(" %1 min").arg(product->hops.at(i).time); + use = QCoreApplication::translate("HopUse", g_hop_useat[product->hops.at(i).useat]) + QString(" %1 min").arg(product->hops.at(i).time); else if (product->hops.at(i).useat == 5) // Dryhop - use = hop_useat[product->hops.at(i).useat] + QString(" %1 days").arg(product->hops.at(i).time / 1440); + use = QCoreApplication::translate("HopUse", g_hop_useat[product->hops.at(i).useat]) + QString(" %1 days").arg(product->hops.at(i).time / 1440); else - use = hop_useat[product->hops.at(i).useat]; + use = QCoreApplication::translate("HopUse", g_hop_useat[product->hops.at(i).useat]); if (product->hops.at(i).amount > 1) amount = QString("%1 kg").arg(product->hops.at(i).amount, 1, 'f', 3); @@ -857,7 +857,7 @@ painter.drawText( 20, y+4, 260, 20, Qt::AlignLeft, product->hops.at(i).name + " (" + product->hops.at(i).origin + ")"); painter.drawText(285, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(product->hops.at(i).alpha, 1, 'f', 1)); painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1").arg(ibu, 1, 'f', 1)); - painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, hop_forms[product->hops.at(i).form]); + painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("HopForm", g_hop_forms[product->hops.at(i).form])); painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, use); painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); @@ -895,8 +895,8 @@ product->yeasts.at(i).product_id + " (" + product->yeasts.at(i).name + ")"); painter.drawText(360, y+4, 70, 20, Qt::AlignRight, QString("%1%").arg(product->yeasts.at(i).attenuation, 1, 'f', 1)); - painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, yeast_forms[product->yeasts.at(i).form]); - painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, yeast_use[product->yeasts.at(i).use]); + painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("YeastForm", g_yeast_forms[product->yeasts.at(i).form])); + painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("YeastUse", g_yeast_use[product->yeasts.at(i).use])); painter.drawText(605, y+4, 60, 20, Qt::AlignRight, amount); painter.drawText(670, y+4, 60, 20, Qt::AlignRight, QString("%1 €").arg(cost, 1, 'f', 3)); y += 20; @@ -944,9 +944,9 @@ cost_miscs += cost; if (product->miscs.at(i).use_use == 2) - use = misc_uses[product->miscs.at(i).use_use] + QString(" %1 min").arg(product->miscs.at(i).time); + use = QCoreApplication::translate("MiscUse", g_misc_uses[product->miscs.at(i).use_use]) + QString(" %1 min").arg(product->miscs.at(i).time); else - use = misc_uses[product->miscs.at(i).use_use]; + use = QCoreApplication::translate("MiscUse", g_misc_uses[product->miscs.at(i).use_use]); if (product->miscs.at(i).type == 4) // Water agent painter.fillRect( 20, y, 715, 20, mw_line); @@ -957,7 +957,7 @@ else painter.fillRect( 20, y, 715, 20, mo_line); painter.drawText( 20, y+4, 410, 20, Qt::AlignLeft, product->miscs.at(i).name); - painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, misc_types[product->miscs.at(i).type]); + painter.drawText(435, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("MiscType", g_misc_types[product->miscs.at(i).type])); painter.drawText(520, y+4, 80, 20, Qt::AlignLeft, use); painter.drawText(605, y+4, 60, 20, Qt::AlignRight, QString("%1 %2").arg(product->miscs.at(i).amount * 1000.0, 1, 'f', 1).arg(product->miscs.at(i).amount_is_weight ? "gr":"ml")); @@ -992,7 +992,7 @@ for (int i = 0; i < product->mashs.size(); i++) { painter.fillRect( 20, y, 715, 20, line); painter.drawText( 20, y+4, 160, 20, Qt::AlignLeft, product->mashs.at(i).step_name); - painter.drawText(180, y+4, 80, 20, Qt::AlignLeft, step_types[product->mashs.at(i).step_type]); + painter.drawText(180, y+4, 80, 20, Qt::AlignLeft, QCoreApplication::translate("StepType", g_step_types[product->mashs.at(i).step_type])); painter.drawText(260, y+4, 60, 20, Qt::AlignRight, QString("%1").arg(product->mashs.at(i).step_temp, 1, 'f', 1)); painter.drawText(325, y+4, 60, 20, Qt::AlignRight, QString("%1").arg(product->mashs.at(i).end_temp, 1, 'f', 1)); painter.drawText(390, y+4, 60, 20, Qt::AlignRight, QString("%1").arg(product->mashs.at(i).step_time, 1, 'f', 0)); @@ -1149,7 +1149,7 @@ painter.fillRect( 20, y, 715, 20, c_line1); painter.drawText( 20, y+4, 20, 20, Qt::AlignCenter, QString("%1").arg(i + 1)); painter.drawText( 40, y+4, 250, 20, Qt::AlignLeft, product->mashs.at(i).step_name); - painter.drawText(290, y+4, 120, 20, Qt::AlignLeft, step_types[product->mashs.at(i).step_type]); + painter.drawText(290, y+4, 120, 20, Qt::AlignLeft, QCoreApplication::translate("StepType", g_step_types[product->mashs.at(i).step_type])); painter.drawText(400, y+4, 110, 20, Qt::AlignLeft, QString("%1 - %2°C"). arg(product->mashs.at(i).step_temp, 1, 'f', 1).arg(product->mashs.at(i).end_temp, 1, 'f', 1)); painter.drawText(510, y+4, 75, 20, Qt::AlignLeft, QString("%1").arg(product->mashs.at(i).step_time, 1, 'f', 0)); @@ -2132,7 +2132,8 @@ if (product->divide_type && product->divide_type == moment) { *y += 20; painter->setFont(QFont("Helvetica", 14, QFont::Bold)); - painter->drawText(20, *y, 715, 20, Qt::AlignCenter, QString(tr("%1 split the batch here!")).arg(prod_split[product->divide_type])); + painter->drawText(20, *y, 715, 20, Qt::AlignCenter, + QString(tr("%1 split the batch here!")).arg(QCoreApplication::translate("Splitter", g_prod_split[product->divide_type]))); painter->setFont(QFont("Arial", 10, QFont::Normal)); *y += 26; return true; diff -r 2a97905cb637 -r fe6346211b5b src/ProdInprod.cpp --- a/src/ProdInprod.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/ProdInprod.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -105,15 +105,15 @@ this->tableInprod->setItem(ridx, 3, new QTableWidgetItem(query.value("name").toString())); int stage = query.value("stage").toInt(); - QString fase = prod_stages[stage]; + QString fase = QCoreApplication::translate("ProdStages", g_prod_stages[stage]); if (stage == PROD_STAGE_BREW) { - fase = prod_stages[stage] + tr(" on ") + query.value("brew_date_start").toDate().toString("dd MMM yyyy"); + fase = QCoreApplication::translate("ProdStages", g_prod_stages[stage]) + tr(" on ") + query.value("brew_date_start").toDate().toString("dd MMM yyyy"); } else if (stage == PROD_STAGE_CARBONATION) { int timeDiff = query.value("package_date").toDate().daysTo(QDate::currentDate()); - fase = prod_stages[stage] + QString(tr(" day %1 of day 14")).arg(timeDiff); + fase = QCoreApplication::translate("ProdStages", g_prod_stages[stage]) + QString(tr(" day %1 of day 14")).arg(timeDiff); } else if (stage == PROD_STAGE_MATURE) { int timeDiff = query.value("package_date").toDate().daysTo(QDate::currentDate()) - 14; - fase = prod_stages[stage] + QString(tr(" day %1 of day 28")).arg(timeDiff); + fase = QCoreApplication::translate("ProdStages", g_prod_stages[stage]) + QString(tr(" day %1 of day 28")).arg(timeDiff); } this->tableInprod->setItem(ridx, 4, new QTableWidgetItem(fase)); diff -r 2a97905cb637 -r fe6346211b5b src/global.cpp --- a/src/global.cpp Sun Jun 19 19:42:29 2022 +0200 +++ b/src/global.cpp Mon Jun 20 19:55:23 2022 +0200 @@ -22,161 +22,161 @@ Recipe *recipe; Product *product; -const QStringList prod_stages({ - QObject::tr("Plan"), - QObject::tr("Wait"), - QObject::tr("Brew"), - QObject::tr("Primary"), - QObject::tr("Secondary"), - QObject::tr("Tertiary"), - QObject::tr("Package"), - QObject::tr("Carbonation"), - QObject::tr("Mature"), - QObject::tr("Taste"), - QObject::tr("Ready"), - QObject::tr("Closed") -}); +const char * const g_prod_stages[12] = { + QT_TRANSLATE_NOOP("ProdStages", "Plan"), + QT_TRANSLATE_NOOP("ProdStages", "Wait"), + QT_TRANSLATE_NOOP("ProdStages", "Brew"), + QT_TRANSLATE_NOOP("ProdStages", "Primary"), + QT_TRANSLATE_NOOP("ProdStages", "Secondary"), + QT_TRANSLATE_NOOP("ProdStages", "Tertiary"), + QT_TRANSLATE_NOOP("ProdStages", "Package"), + QT_TRANSLATE_NOOP("ProdStages", "Carbonation"), + QT_TRANSLATE_NOOP("ProdStages", "Mature"), + QT_TRANSLATE_NOOP("ProdStages", "Taste"), + QT_TRANSLATE_NOOP("ProdStages", "Ready"), + QT_TRANSLATE_NOOP("ProdStages", "Closed") +}; -const QStringList prod_split({ - QObject::tr("Not divided"), - QObject::tr("After mash"), - QObject::tr("After boil"), - QObject::tr("After cooling"), - QObject::tr("After primary"), - QObject::tr("After secondary"), - QObject::tr("After tertiary") -}); +const char * const g_prod_split[7] = { + QT_TRANSLATE_NOOP("Splitter", "Not divided"), + QT_TRANSLATE_NOOP("Splitter", "After mash"), + QT_TRANSLATE_NOOP("Splitter", "After boil"), + QT_TRANSLATE_NOOP("Splitter", "After cooling"), + QT_TRANSLATE_NOOP("Splitter", "After primary"), + QT_TRANSLATE_NOOP("Splitter", "After secondary"), + QT_TRANSLATE_NOOP("Splitter", "After tertiary") +}; -const QStringList recipe_types({ - QObject::tr("Extract"), - QObject::tr("Partial Mash"), - QObject::tr("All Grain") -}); +const char * const g_recipe_types[3] = { + QT_TRANSLATE_NOOP("RecipeType", "Extract"), + QT_TRANSLATE_NOOP("RecipeType", "Partial Mash"), + QT_TRANSLATE_NOOP("RecipeType", "All Grain") +}; -const QStringList style_types({ - QObject::tr("Lager"), - QObject::tr("Ale"), - QObject::tr("Mead"), - QObject::tr("Wheat"), - QObject::tr("Mixed"), - QObject::tr("Cider") -}); +const char * const g_style_types[6] = { + QT_TRANSLATE_NOOP("BeerType", "Lager"), + QT_TRANSLATE_NOOP("BeerType", "Ale"), + QT_TRANSLATE_NOOP("BeerType", "Mead"), + QT_TRANSLATE_NOOP("BeerType", "Wheat"), + QT_TRANSLATE_NOOP("BeerType", "Mixed"), + QT_TRANSLATE_NOOP("BeerType", "Cider") +}; -const QStringList fermentable_types({ - QObject::tr("Grain"), - QObject::tr("Sugar"), - QObject::tr("Extract"), - QObject::tr("Dry extract"), - QObject::tr("Adjunct") -}); +const char * const g_fermentable_types[5] = { + QT_TRANSLATE_NOOP("FermentableType", "Grain"), + QT_TRANSLATE_NOOP("FermentableType", "Sugar"), + QT_TRANSLATE_NOOP("FermentableType", "Extract"), + QT_TRANSLATE_NOOP("FermentableType", "Dry extract"), + QT_TRANSLATE_NOOP("FermentableType", "Adjunct") +}; -const QStringList fermentable_graintypes({ - QObject::tr("Base"), - QObject::tr("Roast"), - QObject::tr("Crystal"), - QObject::tr("Kilned"), - QObject::tr("Sour Malt"), - QObject::tr("Special"), - QObject::tr("No malt") -}); +const char * const g_fermentable_graintypes[7] = { + QT_TRANSLATE_NOOP("FermentableGraintype", "Base"), + QT_TRANSLATE_NOOP("FermentableGraintype", "Roast"), + QT_TRANSLATE_NOOP("FermentableGraintype", "Crystal"), + QT_TRANSLATE_NOOP("FermentableGraintype", "Kilned"), + QT_TRANSLATE_NOOP("FermentableGraintype", "Sour Malt"), + QT_TRANSLATE_NOOP("FermentableGraintype", "Special"), + QT_TRANSLATE_NOOP("FermentableGraintype", "No malt") +}; -const QStringList fermentable_added({ - QObject::tr("Mash"), - QObject::tr("Boil"), - QObject::tr("Fermentation"), - QObject::tr("Lagering"), - QObject::tr("Bottle"), - QObject::tr("Kegs") -}); +const char * const g_fermentable_added[6] = { + QT_TRANSLATE_NOOP("FermentableAdded", "Mash"), + QT_TRANSLATE_NOOP("FermentableAdded", "Boil"), + QT_TRANSLATE_NOOP("FermentableAdded", "Fermentation"), + QT_TRANSLATE_NOOP("FermentableAdded", "Lagering"), + QT_TRANSLATE_NOOP("FermentableAdded", "Bottle"), + QT_TRANSLATE_NOOP("FermentableAdded", "Kegs") +}; -const QStringList hop_types({ - QObject::tr("Bittering"), - QObject::tr("Aroma"), - QObject::tr("Both") -}); +const char * const g_hop_types[3] = { + QT_TRANSLATE_NOOP("HopTypes", "Bittering"), + QT_TRANSLATE_NOOP("HopTypes", "Aroma"), + QT_TRANSLATE_NOOP("HopTypes", "Both") +}; -const QStringList hop_forms({ - QObject::tr("Pellet"), - QObject::tr("Plug"), - QObject::tr("Leaf"), - QObject::tr("Leaf wet"), - QObject::tr("Cryo"), - QObject::tr("Extract") -}); +const char * const g_hop_forms[6] = { + QT_TRANSLATE_NOOP("HopForm", "Pellet"), + QT_TRANSLATE_NOOP("HopForm", "Plug"), + QT_TRANSLATE_NOOP("HopForm", "Leaf"), + QT_TRANSLATE_NOOP("HopForm", "Leaf wet"), + QT_TRANSLATE_NOOP("HopForm", "Cryo"), + QT_TRANSLATE_NOOP("HopForm", "Extract") +}; -const QStringList hop_useat({ - QObject::tr("Mash"), - QObject::tr("First wort"), - QObject::tr("Boil"), - QObject::tr("Aroma"), - QObject::tr("Whirlpool"), - QObject::tr("Dry hop"), - QObject::tr("Bottling") -}); +const char * const g_hop_useat[7] = { + QT_TRANSLATE_NOOP("HopUse", "Mash"), + QT_TRANSLATE_NOOP("HopUse", "First wort"), + QT_TRANSLATE_NOOP("HopUse", "Boil"), + QT_TRANSLATE_NOOP("HopUse", "Aroma"), + QT_TRANSLATE_NOOP("HopUse", "Whirlpool"), + QT_TRANSLATE_NOOP("HopUse", "Dry hop"), + QT_TRANSLATE_NOOP("HopUse", "Bottling") +}; -const QStringList misc_types({ - QObject::tr("Spice"), - QObject::tr("Herb"), - QObject::tr("Flavor"), - QObject::tr("Fining"), - QObject::tr("Water agent"), - QObject::tr("Yeast nutrient"), - QObject::tr("Other") -}); +const char * const g_misc_types[7] = { + QT_TRANSLATE_NOOP("MiscType", "Spice"), + QT_TRANSLATE_NOOP("MiscType", "Herb"), + QT_TRANSLATE_NOOP("MiscType", "Flavor"), + QT_TRANSLATE_NOOP("MiscType", "Fining"), + QT_TRANSLATE_NOOP("MiscType", "Water agent"), + QT_TRANSLATE_NOOP("MiscType", "Yeast nutrient"), + QT_TRANSLATE_NOOP("MiscType", "Other") +}; -const QStringList misc_uses({ - QObject::tr("Starter"), - QObject::tr("Mash"), - QObject::tr("Boil"), - QObject::tr("Primary"), - QObject::tr("Secondary"), - QObject::tr("Bottling") -}); +const char * const g_misc_uses[6] = { + QT_TRANSLATE_NOOP("MiscUse", "Starter"), + QT_TRANSLATE_NOOP("MiscUse", "Mash"), + QT_TRANSLATE_NOOP("MiscUse", "Boil"), + QT_TRANSLATE_NOOP("MiscUse", "Primary"), + QT_TRANSLATE_NOOP("MiscUse", "Secondary"), + QT_TRANSLATE_NOOP("MiscUse", "Bottling") +}; -const QStringList yeast_types({ - QObject::tr("Lager"), - QObject::tr("Ale"), - QObject::tr("Wheat"), - QObject::tr("Wine"), - QObject::tr("Champagne"), - QObject::tr("Brett"), - QObject::tr("Kveik"), - QObject::tr("Hybrid") -}); +const char * const g_yeast_types[8] = { + QT_TRANSLATE_NOOP("YeastType", "Lager"), + QT_TRANSLATE_NOOP("YeastType", "Ale"), + QT_TRANSLATE_NOOP("YeastType", "Wheat"), + QT_TRANSLATE_NOOP("YeastType", "Wine"), + QT_TRANSLATE_NOOP("YeastType", "Champagne"), + QT_TRANSLATE_NOOP("YeastType", "Brett"), + QT_TRANSLATE_NOOP("YeastType", "Kveik"), + QT_TRANSLATE_NOOP("YeastType", "Hybrid") +}; -const QStringList yeast_forms({ - QObject::tr("Liquid"), - QObject::tr("Dry"), - QObject::tr("Slant"), - QObject::tr("Culture"), - QObject::tr("Frozen"), - QObject::tr("Bottle"), - QObject::tr("Dried") -}); +const char * const g_yeast_forms[7] = { + QT_TRANSLATE_NOOP("YeastForm", "Liquid"), + QT_TRANSLATE_NOOP("YeastForm", "Dry"), + QT_TRANSLATE_NOOP("YeastForm", "Slant"), + QT_TRANSLATE_NOOP("YeastForm", "Culture"), + QT_TRANSLATE_NOOP("YeastForm", "Frozen"), + QT_TRANSLATE_NOOP("YeastForm", "Bottle"), + QT_TRANSLATE_NOOP("YeastForm", "Dried") +}; -const QStringList yeast_use({ - QObject::tr("Primary"), - QObject::tr("Secondary"), - QObject::tr("Tertiary"), - QObject::tr("Bottle") -}); +const char * const g_yeast_use[4] = { + QT_TRANSLATE_NOOP("YeastUse", "Primary"), + QT_TRANSLATE_NOOP("YeastUse", "Secondary"), + QT_TRANSLATE_NOOP("YeastUse", "Tertiary"), + QT_TRANSLATE_NOOP("YeastUse", "Bottle") +}; -const QStringList starters({ - QObject::tr("Stirred"), - QObject::tr("Shaken"), - QObject::tr("Simple") -}); +const char * const g_yeast_starter[3] = { + QT_TRANSLATE_NOOP("YeastStarter", "Stirred"), + QT_TRANSLATE_NOOP("YeastStarter", "Shaken"), + QT_TRANSLATE_NOOP("YeastStarter", "Simple") +}; -const QStringList step_types({ - QObject::tr("Infusion"), - QObject::tr("Temperature"), - QObject::tr("Decoction") -}); +const char * const g_step_types[3] = { + QT_TRANSLATE_NOOP("StepType", "Infusion"), + QT_TRANSLATE_NOOP("StepType", "Temperature"), + QT_TRANSLATE_NOOP("StepType", "Decoction") +}; -const QStringList tun_materials({ - QObject::tr("Stainless Steel"), - QObject::tr("Aluminium"), - QObject::tr("Plastics"), - QObject::tr("Copper") -}); +const char * const g_tun_materials[4] = { + QT_TRANSLATE_NOOP("TunMaterial", "Stainless Steel"), + QT_TRANSLATE_NOOP("TunMaterial", "Aluminium"), + QT_TRANSLATE_NOOP("TunMaterial", "Plastics"), + QT_TRANSLATE_NOOP("TunMaterial", "Copper") +}; diff -r 2a97905cb637 -r fe6346211b5b src/global.h --- a/src/global.h Sun Jun 19 19:42:29 2022 +0200 +++ b/src/global.h Mon Jun 20 19:55:23 2022 +0200 @@ -681,10 +681,10 @@ PROD_STAGE_CLOSED }; -extern const QStringList prod_stages; -extern const QStringList prod_split; -extern const QStringList recipe_types; -extern const QStringList style_types; +extern const char * const g_prod_stages[]; +extern const char * const g_prod_split[]; +extern const char * const g_recipe_types[]; +extern const char * const g_style_types[]; enum FermentableTypes { FERMENTABLE_TYPE_GRAIN, @@ -694,7 +694,7 @@ FERMENTABLE_TYPE_ADJUCT }; -extern const QStringList fermentable_types; +extern const char * const g_fermentable_types[]; enum FermentableGraintypes { FERMENTABLE_GRAINTYPE_BASE, @@ -706,7 +706,7 @@ FERMENTABLE_GRAINTYPE_NO_MALT }; -extern const QStringList fermentable_graintypes; +extern const char * const g_fermentable_graintypes[]; enum FermentableAdded { FERMENTABLE_ADDED_MASH, @@ -717,7 +717,7 @@ FERMENTABLE_ADDED_KEGS }; -extern const QStringList fermentable_added; +extern const char * const g_fermentable_added[]; enum HopTypes { HOP_TYPE_BITTERING, @@ -725,7 +725,7 @@ HOP_TYPE_BOTH }; -extern const QStringList hop_types; +extern const char * const g_hop_types[]; enum HopForms { HOP_FORMS_PELLET, @@ -736,7 +736,7 @@ HOP_FORMS_EXTRACT }; -extern const QStringList hop_forms; +extern const char * const g_hop_forms[]; enum HopUseat { HOP_USEAT_MASH, @@ -748,7 +748,7 @@ HOP_USEAT_BOTTLING }; -extern const QStringList hop_useat; +extern const char * const g_hop_useat[]; enum MiscTypes { MISC_TYPES_SPICE, @@ -760,7 +760,7 @@ MISC_TYPES_OTHER }; -extern const QStringList misc_types; +extern const char * const g_misc_types[]; enum MiscUses { MISC_USES_STARTER, @@ -771,7 +771,7 @@ MISC_USES_BOTTLING }; -extern const QStringList misc_uses; +extern const char * const g_misc_uses[]; enum YeastTypes { YEAST_TYPES_LAGER, @@ -784,7 +784,7 @@ YEAST_TYPES_HYBRID }; -extern const QStringList yeast_types; +extern const char * const g_yeast_types[]; enum YeastForms { YEAST_FORMS_LIQUID, @@ -796,7 +796,7 @@ YEAST_FORMS_DRIED }; -extern const QStringList yeast_forms; +extern const char * const g_yeast_forms[]; enum YeastUse { YEAST_USE_PRIMARY, @@ -805,7 +805,7 @@ YEAST_USE_BOTTLE }; -extern const QStringList yeast_use; +extern const char * const g_yeast_use[]; enum Starters { STARTERS_STIRRED, @@ -813,8 +813,8 @@ STARTERS_SIMPLE }; -extern const QStringList starters; -extern const QStringList step_types; -extern const QStringList tun_materials; +extern const char * const g_yeast_starter[]; +extern const char * const g_step_types[]; +extern const char * const g_tun_materials[]; #endif diff -r 2a97905cb637 -r fe6346211b5b translations/bmsapp_en.ts --- a/translations/bmsapp_en.ts Sun Jun 19 19:42:29 2022 +0200 +++ b/translations/bmsapp_en.ts Mon Jun 20 19:55:23 2022 +0200 @@ -33,6 +33,39 @@ + BeerType + + + Lager + + + + + Ale + + + + + Mead + + + + + Wheat + + + + + Mixed + + + + + Cider + + + + EditEquipment @@ -438,58 +471,97 @@ - - - - - + + + + + % - + + Kg + + + + + + € + + + + °WK - - - + + + Yes - - + + yyyy-MM-dd - + Quit - + Save - + Delete - + Lintner: - + °L + + Set the tht date to today. + + + + + + + + ... + + + + + Clear tht date + + + + + Set the production date to today. + + + + + Clear production date + + + Grain @@ -580,58 +652,58 @@ - + BMSapp - Add new fermentable - + BMSapp - Edit fermentable %1 - + Edit Fermentable - - Name empty or too short. - - - - Origin empty or too short. + Name empty or too short. + Origin empty or too short. + + + + Supplier empty or too short. - - + + Database error - - + + MySQL error: %1 %2 %3 - + Fermentable changed - + This fermentable has been modified. Save changes? @@ -689,113 +761,152 @@ - - + + Kg + + + + + + € + + + + + yyyy-MM-dd - + Quit - + Save - + Delete - + Type hop: - + Origin: - + Substitudes: - - + + Hop Stability Index - + HSI: - + Total oil: - + Humulene: - + Caryophyllene: - + Myrcene: - + Cohumulone: - + Form: - + Alpha %: - + Beta %: - + Always on stock: - + Country and place of origin - + Substitutes that can be used for this hop - + Yes + + Set the production date to today. + + + + + + + + ... + + + + + Clear production date + + + + + Clear tht date + + + + + Set the tht date to today. + + + Bittering @@ -836,52 +947,57 @@ - + + Extract + + + + BMSapp - Add new hop - + BMSapp - Edit hop %1 - - + + Edit Hop - + Name empty or too short. - + Origin empty or too short. - - + + Database error - - + + MySQL error: %1 %2 %3 - + Hop changed - + This hop has been modified. Save changes? @@ -939,63 +1055,103 @@ - + + + gr + + + + + + € + + + + yyyy-MM-dd - + Quit - + Save - - Delete - - - + Delete + + + + Type: - + Amount is weight: - + Use at: - + Time: - + Use for: - + Always on stock: - - + + Yes + + Clear production date + + + + + + + + ... + + + + + Set the production date to today. + + + + + Clear tht date + + + + + Set the tht date to today. + + + Spice @@ -1061,46 +1217,51 @@ - + BMSapp - Add new misc ingredient - + BMSapp - Edit misc ingredient %1 - + Edit Misc - + Name empty or too short. - - + + Database error - - + + MySQL error: %1 %2 %3 - + + ml + + + + Misc changed - + The ingredient has been modified. Save changes? @@ -1321,7 +1482,7 @@ - + Bitterness IBU: @@ -1599,8 +1760,8 @@ - - + + Set or clear date @@ -1626,8 +1787,9 @@ - - + + + ... @@ -1700,7 +1862,7 @@ - + dd-MM-yyyy @@ -1712,7 +1874,7 @@ - + Mash @@ -2369,6 +2531,7 @@ + Brew log chart @@ -2630,72 +2793,77 @@ - + + Show carbonation log: + + + + Tasting - - Taste date: - - - + Taste date: + + + + Taste rate: - + Color: - + Transparency: - + Head: - + Aroma: - + Taste: - + Aftertaste: - + Mouthfeel: - + Notes: - + Edit the tasting date. - + Export - + Print @@ -2756,6 +2924,7 @@ + Air @@ -2765,48 +2934,48 @@ - + %1, part %2 of %3 - + BMSapp - Add new product - + BMSapp - Edit product %1 - - + + Edit Product - + Name empty or too short. - + No beerstyle selected. - + Delete product - + Product changed - + The product has been modified. Save changes? @@ -2904,7 +3073,7 @@ - + Delete %1 @@ -2936,7 +3105,7 @@ - + Use at: @@ -2949,7 +3118,7 @@ - + In stock: @@ -2962,7 +3131,7 @@ - + Boil @@ -3006,6 +3175,7 @@ + Time @@ -3050,8 +3220,8 @@ - - + + @@ -3059,8 +3229,8 @@ - - + + @@ -3068,17 +3238,17 @@ - + Current hop: - + Origin: - + @@ -3087,27 +3257,27 @@ - + Select hop: - - First wort - - - - Aroma - - - - - Whirlpool + First wort + Aroma + + + + + Whirlpool + + + + Dry hop @@ -3153,6 +3323,7 @@ + Bottling @@ -3321,6 +3492,7 @@ + SG @@ -3698,6 +3870,11 @@ + + Temperature °C or Power % + + + Refractometer Brix: @@ -3723,6 +3900,61 @@ + + Fermenter log + + + + + Beer + + + + + Chiller + + + + + + + Date + + + + + + + Temp °C + + + + + Power % + + + + + iSpindel log + + + + + Battery + + + + + + Temperature °C + + + + + Battery volt + + + Confirm package @@ -3733,6 +3965,21 @@ + + Carbonation log + + + + + Pressure bar + + + + + Bar + + + Confirm tasting @@ -4568,7 +4815,7 @@ - + Bitterness IBU: @@ -4754,7 +5001,7 @@ - + Mash @@ -5126,6 +5373,7 @@ + Extract @@ -5309,7 +5557,7 @@ - + Use at: @@ -5322,7 +5570,7 @@ - + In stock: @@ -5335,7 +5583,7 @@ - + Boil @@ -5434,8 +5682,8 @@ - - + + @@ -5443,8 +5691,8 @@ - - + + @@ -5452,17 +5700,17 @@ - + Current hop: - + Origin: - + @@ -5471,62 +5719,62 @@ - + Alpha percent: - + Hop form: - + Select hop: - - First wort - - - - Aroma - - - - - Whirlpool + First wort + Aroma + + + + + Whirlpool + + + + Dry hop - - Pellet - - - - - Plug - - - - - Leaf - - - - Wet leaf + Pellet + Plug + + + + + Leaf + + + + + Wet leaf + + + + Cryo @@ -5572,6 +5820,7 @@ + Bottling @@ -6264,179 +6513,213 @@ - - + + + € + + + + + yyyy-MM-dd - + Quit - + Save - + Delete - + Product id: - + Product number, name or code - + Type: - + Form: - + Laboratory: - + Best for: - + Yeast bank: - + POF+: - + STA1 (diastatic): - + Yeast laboratory - + Yeast bank remark - + Best used in these style of beers - - - - + + + + Yes - + Min. temperature °C: - + Max. temperature °C: - + Attenuatiom %: - + Alcohol tolerance %: - + Flocculation: - - + + Billion cells/gram: - + Max. reuse: - + Pitch temperature °C: - + Harvest time: - - + + grams / 100 litres - - + + at this gravity - + Pitch from gr/hl: - + Pitch upto gr/hl: - + Bacteria: - + Harvest top: - - + + @ + + Clear tht date + + + + + + + + ... + + + + + Clear production date + + + + + Set the production date to today. + + + + + Set the tht date to today. + + + Lager @@ -6532,97 +6815,285 @@ - + Price per pack: - + Inventory Packs: - + Billion cells/pack: - + Price per Kg: - + Inventory gram: - + Price per litre: - + Inventory ml: - + Billion cells/ml: - + BMSapp - Add new yeast - + BMSapp - Edit yeast %1 - + Edit Yeast - - Name empty or too short. - - - + Name empty or too short. + + + + Laboratory empty or too short. - - + + Database error - - + + MySQL error: %1 %2 %3 - + Yeast changed - + The yeast has been modified. Save changes? + FermentableAdded + + + Mash + + + + + Boil + + + + + Fermentation + + + + + Lagering + + + + + Bottle + + + + + Kegs + + + + + FermentableGraintype + + + Base + + + + + Roast + + + + + Crystal + + + + + Kilned + + + + + Sour Malt + + + + + Special + + + + + No malt + + + + + FermentableType + + + Grain + + + + + Sugar + + + + + Extract + + + + + Dry extract + + + + + Adjunct + + + + + HopForm + + + Pellet + + + + + Plug + + + + + Leaf + + + + + Leaf wet + + + + + Cryo + + + + + Extract + + + + + HopTypes + + + Bittering + + + + + Aroma + + + + + Both + + + + + HopUse + + + Mash + + + + + First wort + + + + + Boil + + + + + Aroma + + + + + Whirlpool + + + + + Dry hop + + + + + Bottling + + + + ImportXML @@ -6983,6 +7454,31 @@ + + 1 minute + + + + + %1 minutes + + + + + %1 hours + + + + + 1 day + + + + + %1 days + + + Total items: %1 @@ -7412,6 +7908,77 @@ + MiscType + + + Spice + + + + + Herb + + + + + Flavor + + + + + Fining + + + + + Water agent + + + + + Yeast nutrient + + + + + Other + + + + + MiscUse + + + Starter + + + + + Mash + + + + + Boil + + + + + Primary + + + + + Secondary + + + + + Bottling + + + + PrinterDialog @@ -8695,29 +9262,29 @@ - + %1 split the batch here! - + Inventory - + Yeastbank - + Date and time - - + + Beer style @@ -9130,6 +9697,69 @@ + ProdStages + + + Plan + + + + + Wait + + + + + Brew + + + + + Primary + + + + + Secondary + + + + + Tertiary + + + + + Package + + + + + Carbonation + + + + + Mature + + + + + Taste + + + + + Ready + + + + + Closed + + + + ProfileFerments @@ -9428,452 +10058,6 @@ - - - Extract - - - - - Partial Mash - - - - - All Grain - - - - - - Lager - - - - - - Ale - - - - - Mead - - - - - - Wheat - - - - - Mixed - - - - - Cider - - - - - Grain - - - - - Sugar - - - - - Dry extract - - - - - Adjunct - - - - - Base - - - - - Roast - - - - - Crystal - - - - - Kilned - - - - - Sour Malt - - - - - Special - - - - - No malt - - - - - - - Mash - - - - - - - Boil - - - - - Fermentation - - - - - Lagering - - - - - - - Bottle - - - - - Kegs - - - - - Bittering - - - - - - Aroma - - - - - Both - - - - - Pellet - - - - - Plug - - - - - Leaf - - - - - Leaf wet - - - - - Cryo - - - - - First wort - - - - - Whirlpool - - - - - Dry hop - - - - - Spice - - - - - Herb - - - - - Flavor - - - - - Fining - - - - - Water agent - - - - - Yeast nutrient - - - - - Other - - - - - Starter - - - - - Stainless Steel - - - - - Aluminium - - - - - Plastics - - - - - Copper - - - - - - - Primary - - - - - Plan - - - - - Wait - - - - - Brew - - - - - - - Secondary - - - - - Package - - - - - Carbonation - - - - - Mature - - - - - Taste - - - - - Ready - - - - - Closed - - - - - Not divided - - - - - After mash - - - - - After boil - - - - - After cooling - - - - - After primary - - - - - After secondary - - - - - After tertiary - - - - - Bottling - - - - - Wine - - - - - Champagne - - - - - Brett - - - - - Kveik - - - - - Hybrid - - - - - Liquid - - - - - Dry - - - - - Slant - - - - - Culture - - - - - Frozen - - - - - Dried - - - - - - Tertiary - - - - - Stirred - - - - - Shaken - - - - - Simple - - - - - Infusion - - - - - Temperature - - - - - Decoction - - - @@ -9901,6 +10085,24 @@ + RecipeType + + + Extract + + + + + Partial Mash + + + + + All Grain + + + + RecipesTree @@ -10235,4 +10437,205 @@ + + Splitter + + + Not divided + + + + + After mash + + + + + After boil + + + + + After cooling + + + + + After primary + + + + + After secondary + + + + + After tertiary + + + + + StepType + + + Infusion + + + + + Temperature + + + + + Decoction + + + + + TunMaterial + + + Stainless Steel + + + + + Aluminium + + + + + Plastics + + + + + Copper + + + + + YeastForm + + + Liquid + + + + + Dry + + + + + Slant + + + + + Culture + + + + + Frozen + + + + + Bottle + + + + + Dried + + + + + YeastStarter + + + Stirred + + + + + Shaken + + + + + Simple + + + + + YeastType + + + Lager + + + + + Ale + + + + + Wheat + + + + + Wine + + + + + Champagne + + + + + Brett + + + + + Kveik + + + + + Hybrid + + + + + YeastUse + + + Primary + + + + + Secondary + + + + + Tertiary + + + + + Bottle + + + diff -r 2a97905cb637 -r fe6346211b5b translations/bmsapp_nl.ts --- a/translations/bmsapp_nl.ts Sun Jun 19 19:42:29 2022 +0200 +++ b/translations/bmsapp_nl.ts Mon Jun 20 19:55:23 2022 +0200 @@ -46,6 +46,39 @@ + BeerType + + + Lager + Ondergist + + + + Ale + Bovengist + + + + Mead + Mede + + + + Wheat + Tarwebier + + + + Mixed + Gemengd + + + + Cider + Cider + + + EditEquipment @@ -471,58 +504,97 @@ - - - - - + + + + + % % - + + Kg + Kg + + + + + € + + + + °WK °WK - - - + + + Yes Ja - - + + yyyy-MM-dd yyyy-MM-dd - + Quit Terug - + Save Bewaar - + Delete Verwijder - + Lintner: Lintner: - + °L °L + + Set the tht date to today. + Zet de tht datum op vandaag. + + + + + + + ... + ... + + + + Clear tht date + Verwijder de tht datum + + + + Set the production date to today. + Zet de productie datum op vandaag. + + + + Clear production date + Verwijder de productie datum + + Grain Mout @@ -613,46 +685,46 @@ Fusten - + BMSapp - Add new fermentable BMSapp - Nieuw vergistbaar ingredient - + BMSapp - Edit fermentable %1 BMSapp - Wijzig vergistbaar ingredient %1 - + Edit Fermentable Wijzig vergistbaar ingredient - - Name empty or too short. - De naam is leeg of te kort. - - - Origin empty or too short. - Herkomst leeg of te kort. + Name empty or too short. + De naam is leeg of te kort. + Origin empty or too short. + Herkomst leeg of te kort. + + + Supplier empty or too short. Leverancier leeg of te kort. - - + + Database error Database fout - - + + MySQL error: %1 %2 %3 @@ -661,12 +733,12 @@ %3 - + Fermentable changed Vergistbaar ingredient gewijzigd - + This fermentable has been modified. Save changes? Dit vergistbaar ingredient is gewijzigd. Wijzigingen opslaan? @@ -730,113 +802,152 @@ Opmerkingen en gebruik tips. - - + + Kg + Kg + + + + + € + + + + + yyyy-MM-dd yyyy-MM-dd - + Quit Terug - + Save Bewaar - + Delete Verwijder - + Type hop: Soort hop: - + Origin: Herkomst: - + Substitudes: Vervangers: - - + + Hop Stability Index Hop Stabiliteit Index - + HSI: HSI: - + Total oil: Totaal olie: - + Humulene: - + Caryophyllene: - + Myrcene: - + Cohumulone: - + Form: Vorm: - + Alpha %: Alpha %: - + Beta %: Beta %: - + Always on stock: Altijd in voorraad: - + Country and place of origin Land van herkomst - + Substitutes that can be used for this hop Vervangers die gebruikt kunnen worden - + Yes Ja + + Set the production date to today. + Zet de productie datum op vandaag. + + + + + + + ... + ... + + + + Clear production date + Verwijder de productie datum + + + + Clear tht date + Verwijder de tht datum + + + + Set the tht date to today. + Zet de tht datum op vandaag. + + Bittering Bitterhop @@ -877,40 +988,45 @@ Cryo hop - + + Extract + Extract + + + BMSapp - Add new hop BMSapp - Nieuwe hop - + BMSapp - Edit hop %1 BMSapp - Wijzig hop %1 - - + + Edit Hop Wijzig hop - + Name empty or too short. De naam is leeg of te kort. - + Origin empty or too short. Herkomst leeg of te kort. - - + + Database error Database fout - - + + MySQL error: %1 %2 %3 @@ -919,12 +1035,12 @@ %3 - + Hop changed Hop gewijzigd - + This hop has been modified. Save changes? Deze hop is gewijzigd. Wijzigingen opslaan? @@ -988,63 +1104,103 @@ Opmerkingen en gebruik tips. - + + + gr + gr + + + + + € + + + + yyyy-MM-dd yyyy-MM-dd - + Quit Terug - + Save Bewaar - - Delete - Verwijder - - + Delete + Verwijder + + + Type: Soort: - + Amount is weight: Eenheid is gewicht: - + Use at: Toevoegen bij: - + Time: Tijd: - + Use for: Toepassing: - + Always on stock: Altijd in voorraad: - - + + Yes Ja + + Clear production date + Verwijder de productie datum + + + + + + + ... + ... + + + + Set the production date to today. + Zet de productie datum op vandaag. + + + + Clear tht date + Verwijder de tht datum + + + + Set the tht date to today. + Zet de tht datum op vandaag. + + Spice Specerij @@ -1110,34 +1266,34 @@ Bottelen - + BMSapp - Add new misc ingredient BMSapp - Nieuw overig ingredient - + BMSapp - Edit misc ingredient %1 BMSapp - Wijzig overig ingredient %1 - + Edit Misc Wijzig ingredient - + Name empty or too short. De naam is leeg of te kort. - - + + Database error Database fout - - + + MySQL error: %1 %2 %3 @@ -1146,12 +1302,17 @@ %3 - + + ml + ml + + + Misc changed Ingredient gewijzigd - + The ingredient has been modified. Save changes? Dit ingredient is gewijzigd. Wijzigingen opslaan? @@ -1378,7 +1539,7 @@ - + Bitterness IBU: Bitterheid IBU: @@ -1660,8 +1821,8 @@ - - + + Set or clear date Zet of wis datum @@ -1687,8 +1848,9 @@ - - + + + ... ... @@ -1761,7 +1923,7 @@ - + dd-MM-yyyy dd-MM-yyyy @@ -1773,7 +1935,7 @@ - + Mash Maischen @@ -2474,6 +2636,7 @@ + Brew log chart Brouw log grafiek @@ -2740,72 +2903,77 @@ Wijzig de verpakkings datum. - + + Show carbonation log: + Toon carbonatie log: + + + Tasting Proeven - - Taste date: - Proeven datum: - - + Taste date: + Proeven datum: + + + Taste rate: Beoordeling cijfer: - + Color: Kleur: - + Transparency: Helderheid: - + Head: Schuim: - + Aroma: Geur: - + Taste: Smaak: - + Aftertaste: Nasmaak: - + Mouthfeel: Mondgevoel: - + Notes: Opmerkingen: - + Edit the tasting date. Wijzig de datum van proeven. - + Export Exporteer - + Print Print @@ -2866,6 +3034,7 @@ + Air Lucht @@ -2883,7 +3052,7 @@ MySQL fout: record %1 niet gevonden - + %1, part %2 of %3 %1, deel %2 van %3 @@ -2892,28 +3061,28 @@ Koken %1 minuten - + BMSapp - Add new product BMSapp - Nieuw product - + BMSapp - Edit product %1 BMSapp - Wijzig product %1 - - + + Edit Product Wijzig Product - + Name empty or too short. De naam is leeg of te kort. - + No beerstyle selected. Geen bierstijl gekozen. @@ -2926,17 +3095,17 @@ %3 - + Delete product Verwijder product - + Product changed Product gewijzigd - + The product has been modified. Save changes? Het product is gewijzigd. Wijzigingen opslaan? @@ -3034,7 +3203,7 @@ - + Delete %1 Verwijder %1 @@ -3066,7 +3235,7 @@ - + Use at: Toevoegen bij: @@ -3079,7 +3248,7 @@ - + In stock: @@ -3092,7 +3261,7 @@ - + Boil Koken @@ -3136,6 +3305,7 @@ + Time Tijd @@ -3180,8 +3350,8 @@ Verwijder hop - - + + @@ -3189,8 +3359,8 @@ Tijd in minuten: - - + + @@ -3198,17 +3368,17 @@ Tijd in dagen: - + Current hop: Huidige hop: - + Origin: Herkomst: - + @@ -3217,27 +3387,35 @@ Gewicht in gr: - + Select hop: Kies hop: - - First wort - Maischhop - - - Aroma - Aromahop - - - - Whirlpool - Hopstand + First wort + Maischhop + Aroma + Aromahop + + + Bittering + Bitterhop + + + Both + Beide + + + + Whirlpool + Hopstand + + + Dry hop Koudhop @@ -3283,6 +3461,7 @@ Nagisting/lagering + Bottling Bottelen @@ -3451,6 +3630,7 @@ + SG SG @@ -3837,6 +4017,11 @@ cm + + Temperature °C or Power % + Temperatuur °C of Power % + + Refractometer Brix: Refractometer Brix: @@ -3862,6 +4047,61 @@ Bevesting dat de nagisting datum en gegevens kloppen + + Fermenter log + Gistkast log + + + + Beer + Bier + + + + Chiller + Koeler + + + + + + Date + Datum + + + + + + Temp °C + Temp °C + + + + Power % + Power % + + + + iSpindel log + iSpindel log + + + + Battery + Batterij + + + + + Temperature °C + Temperatuur °C + + + + Battery volt + Batterij volt + + Confirm package Bevestig verpakken @@ -3872,6 +4112,21 @@ Bevestig dat het bier verpakt is en de gegevens kloppen + + Carbonation log + Carbonatie log + + + + Pressure bar + Druk in bar + + + + Bar + Bar + + Confirm tasting Bevestig proeven @@ -4741,7 +4996,7 @@ - + Bitterness IBU: Bitterheid IBU: @@ -4931,7 +5186,7 @@ - + Mash Maischen @@ -5308,6 +5563,7 @@ + Extract Extract @@ -5507,7 +5763,7 @@ - + Use at: Toevoegen bij: @@ -5520,7 +5776,7 @@ - + In stock: @@ -5533,7 +5789,7 @@ - + Boil Koken @@ -5632,8 +5888,8 @@ Verwijder hop - - + + @@ -5641,8 +5897,8 @@ Tijd in minuten: - - + + @@ -5650,17 +5906,17 @@ Tijd in dagen: - + Current hop: Huidige hop: - + Origin: Herkomst: - + @@ -5669,7 +5925,7 @@ Gewicht in gr: - + Alpha percent: Alpha procent: @@ -5678,57 +5934,57 @@ Alpha percentage: - + Hop form: Hop vorm: - + Select hop: Kies hop: - - First wort - Maischhop - - - Aroma - Aromahop - - - - Whirlpool - Whirlpool hop + First wort + Maischhop + Aroma + Aromahop + + + + Whirlpool + Whirlpool hop + + + Dry hop Koudhop - - Pellet - Pellets - - - - Plug - Plugs - - - - Leaf - Bloemen - - - Wet leaf - Nat, vers + Pellet + Pellets + Plug + Plugs + + + + Leaf + Bloemen + + + + Wet leaf + Nat, vers + + + Cryo Cryo hop @@ -5774,6 +6030,7 @@ Nagisting/lagering + Bottling Bottelen @@ -6487,179 +6744,213 @@ Opmerkingen en gebruik tips. - - + + + € + + + + + yyyy-MM-dd yyyy-MM-dd - + Quit Terug - + Save Bewaar - + Delete Verwijder - + Product id: Product code: - + Product number, name or code Product nummer, naam of code - + Type: Soort: - + Form: Vorm: - + Laboratory: Laboratorium: - + Best for: Geschikt voor: - + Yeast bank: Gist bank: - + POF+: POF+: - + STA1 (diastatic): STA1 (diastatic): - + Yeast laboratory Gist laboratorium - + Yeast bank remark Gistbank opmerkingen - + Best used in these style of beers Geschikt voor deze bierstijlen - - - - + + + + Yes Ja - + Min. temperature °C: Min. temperatuur °C: - + Max. temperature °C: Max. temperatuur °C: - + Attenuatiom %: Vergistingsgraad %: - + Alcohol tolerance %: Alcohol tolerantie %: - + Flocculation: Flocculatie: - - + + Billion cells/gram: Miljard cellen/gram: - + Max. reuse: Max. hergebruik: - + Pitch temperature °C: Ent temperatuur °C: - + Harvest time: Oogst tijd: - - + + grams / 100 litres grammen per 100 liter - - + + at this gravity op deze densiteit - + Pitch from gr/hl: Ent vanaf gr/hl: - + Pitch upto gr/hl: Ent tot gr/hl: - + Bacteria: Bevat bacterien: - + Harvest top: Oogst van boven: - - + + @ @ + + Clear tht date + Verwijder de tht datum + + + + + + + ... + ... + + + + Clear production date + Verwijder de productie datum + + + + Set the production date to today. + Zet de productie datum op vandaag. + + + + Set the tht date to today. + Zet de tht datum op vandaag. + + Lager Ondergist @@ -6755,80 +7046,80 @@ Zeer hoog - + Price per pack: Prijs per pak: - + Inventory Packs: Voorraad pakken: - + Billion cells/pack: Miljard cellen/pak: - + Price per Kg: Prijs per kg: - + Inventory gram: Voorraad gram: - + Price per litre: Prijs per liter: - + Inventory ml: Voorraad ml: - + Billion cells/ml: Miljard cellen/ml: - + BMSapp - Add new yeast BMSapp - Nieuwe gist - + BMSapp - Edit yeast %1 BMSapp - Wijzig gist %1 - - - Edit Yeast - Wijzig gist - - - - Name empty or too short. - De naam is leeg of te kort. - - + + Edit Yeast + Wijzig gist + + + + Name empty or too short. + De naam is leeg of te kort. + + + Laboratory empty or too short. Laboratorium leeg of te kort. - - + + Database error Database fout - - + + MySQL error: %1 %2 %3 @@ -6837,12 +7128,12 @@ %3 - + Yeast changed Gist gewijzigd - + The yeast has been modified. Save changes? Deze gist is gewijzigd. Wijzigingen opslaan? @@ -6854,6 +7145,217 @@ + FermentableAdded + + + Mash + Maischen + + + + Boil + Koken + + + + Fermentation + Hoofdvergisting + + + + Lagering + Nagisting/lagering + + + + Bottle + Bottelen + + + + Kegs + Fusten + + + + FermentableGraintype + + + Base + Basismout + + + + Roast + Geroosterde mout + + + + Crystal + Cara/crystal mout + + + + Kilned + Geëeste mout + + + + Sour Malt + Zuurmout + + + + Special + Speciale mout + + + + No malt + Geen mout + + + + FermentableType + + + Grain + Mout + + + + Sugar + Suiker + + + + Extract + + + + + Dry extract + Droog extract + + + + Adjunct + Ongemout graan + + + + HopForm + + + Pellet + Pellets + + + + Plug + Plugs + + + + Leaf + Bloemen + + + + Leaf wet + Nat, vers + + + + Cryo + Cryo hop + + + + Extract + Extract + + + + HopForms + + Pellet + Pellets + + + Plug + Plugs + + + Leaf + Bloemen + + + Leaf wet + Nat, vers + + + Cryo + Cryo hop + + + + HopTypes + + + Bittering + Bitterhop + + + + Aroma + Aromahop + + + + Both + Beide + + + + HopUse + + + Mash + Maischen + + + + First wort + Eerste wort + + + + Boil + Koken + + + + Aroma + Vlamuit + + + + Whirlpool + Hopstand + + + + Dry hop + Koudhop + + + + Bottling + Bottelen + + + ImportXML @@ -7306,6 +7808,31 @@ Wijzig + + 1 minute + 1 minuut + + + + %1 minutes + %1 minuten + + + + %1 hours + %1 uren + + + + 1 day + 1 dag + + + + %1 days + %1 dagen + + Spice Specerij @@ -7855,6 +8382,77 @@ + MiscType + + + Spice + Specerij + + + + Herb + Kruid + + + + Flavor + Smaakstof + + + + Fining + Klaringsmiddel + + + + Water agent + Brouwzout + + + + Yeast nutrient + Gistvoeding + + + + Other + Anders + + + + MiscUse + + + Starter + Starter + + + + Mash + Maischen + + + + Boil + Koken + + + + Primary + Hoofdgisting + + + + Secondary + Nagisting/lagering + + + + Bottling + Bottelen + + + PrinterDialog Grain @@ -9262,29 +9860,29 @@ Gemeten: - + %1 split the batch here! %1 splits de batch hier! - + Inventory Inventaris - + Yeastbank Gistbank - + Date and time Datum en tijd - - + + Beer style Bierstijl @@ -9345,7 +9943,7 @@ day %1 of day 28 - dat %1 van dag 28 + dag %1 van dag 28 @@ -9697,6 +10295,69 @@ + ProdStages + + + Plan + Plan + + + + Wait + Wacht + + + + Brew + Brouwen + + + + Primary + Hoofdgisting + + + + Secondary + Nagisting + + + + Tertiary + Lageren + + + + Package + Verpakken + + + + Carbonation + Carbonatie + + + + Mature + Rijpen + + + + Taste + Proeven + + + + Ready + Gereed + + + + Closed + Gesloten + + + ProfileFerments @@ -9997,450 +10658,348 @@ dagen, - - Extract - Extract - - - + Extract + + Partial Mash - Deelmaisch - - - + Deelmaisch + + All Grain - Mout - - - - + Mout + + Lager - Ondergist - - - - + Ondergist + + Ale - Bovengist - - - + Bovengist + + Mead - Mede - - - - + Mede + + Wheat - Tarwebier - - - + Tarwebier + + Mixed - Gemengd - - - + Gemengd + + Cider - Cider - - - + Cider + + Grain - Mout - - - + Mout + + Sugar - Suiker - - - + Suiker + + Dry extract - Droog extract - - - + Droog extract + + Adjunct - Ongemout graan - - - + Ongemout graan + + Base - Basismout - - - + Basismout + + Roast - Geroosterde mout - - - + Geroosterde mout + + Crystal - Cara- of crystalmout - - - + Cara- of crystalmout + + Kilned - Geëeste mout - - - + Geëeste mout + + Sour Malt - Zuurmout - - - + Zuurmout + + Special - Speciale mout - - - + Speciale mout + + No malt - Geen mout - - - - - + Geen mout + + Mash - Maischen - - - - - + Maischen + + Boil - Koken - - - + Koken + + Fermentation - Hoofdvergisting - - - + Hoofdvergisting + + Lagering - Nagisting/lagering - - - - - + Nagisting/lagering + + Bottle - Bottelen - - - + Bottelen + + Kegs - Fusten - - - + Fusten + + Bittering - Bitterhop - - - - + Bitterhop + + Aroma - Aromahop - - - + Aromahop + + Both - Beide - - - + Beide + + Pellet - Pellets - - - + Pellets + + Plug - Plugs - - - + Plugs + + Leaf - Bloemen - - - + Bloemen + + Leaf wet - Nat, vers - - - + Nat, vers + + Cryo - Cryo hop - - - + Cryo hop + + First wort - Maischhop - - - + Maischhop + + Whirlpool - Whirlpool - - - + Whirlpool + + Dry hop - Koudhop - - - + Koudhop + + Spice - Specerij - - - + Specerij + + Herb - Kruid - - - + Kruid + + Flavor - Smaakstof - - - + Smaakstof + + Fining - Klaringsmiddel - - - + Klaringsmiddel + + Water agent - Brouwzout - - - + Brouwzout + + Yeast nutrient - Gistvoeding - - - + Gistvoeding + + Other - Anders - - - + Anders + + Starter - Starter - - - + Starter + + Stainless Steel - RVS - - - + RVS + + Aluminium - Aluminium - - - + Aluminium + + Plastics - Kunststof - - - + Kunststof + + Copper - Koper - - - - - + Koper + + Primary - Hoofdgisting - - - + Hoofdgisting + + Plan - Plan - - - + Plan + + Wait - Wacht - - - + Wacht + + Brew - Brouwen - - - - - + Brouwen + + Secondary - Nagisting/lagering - - - + Nagisting/lagering + + Package - Verpakken - - - + Verpakken + + Carbonation - Carbonatie - - - + Carbonatie + + Mature - Rijpen - - - + Rijpen + + Taste - Proeven - - - + Proeven + + Ready - Gereed - - - + Gereed + + Closed - Gesloten - - - + Gesloten + + Not divided - Niet gesplitst - - - + Niet gesplitst + + After mash - Na maischen - - - + Na maischen + + After boil - Na koken - - - + Na koken + + After cooling - Na koelen - - - + Na koelen + + After primary - Na hoofdgisting - - - + Na hoofdgisting + + After secondary - Na nagisting - - - + Na nagisting + + After tertiary - Na lageren - - - + Na lageren + + Bottling - Bottelen - - - + Bottelen + + Wine - Wijngist - - - + Wijngist + + Champagne - Champagnegist - - - + Champagnegist + + Brett - Brett - - - + Brett + + Kveik - Kveik - - - + Kveik + + Hybrid - Hybride - - - + Hybride + + Liquid - Vloeibaar - - - + Vloeibaar + + Dry - Droog - - - + Droog + + Slant - Schuine buis - - - + Schuine buis + + Culture - Slurry - - - + Slurry + + Frozen - Ingevroren - - - + Ingevroren + + Dried - Gedroogd - - - - + Gedroogd + + Tertiary - Nagisten - - - + Nagisten + + Stirred - Geroerd - - - + Geroerd + + Shaken - Geschud - - - + Geschud + + Simple - Simpel - - - + Simpel + + Infusion - Infusie - - - + Infusie + + Temperature - Verwarmen - - - + Verwarmen + + Decoction - Decoctie + Decoctie @@ -10472,6 +11031,24 @@ + RecipeType + + + Extract + Vloeibaar extract + + + + Partial Mash + Deelmaisch + + + + All Grain + Mout + + + RecipesTree @@ -10818,4 +11395,205 @@ Wijzigingen opslaan? + + Splitter + + + Not divided + Niet gesplitst + + + + After mash + Na maischen + + + + After boil + Na koken + + + + After cooling + Na koelen + + + + After primary + Na hoofdgisting + + + + After secondary + Na nagisting + + + + After tertiary + Na lageren + + + + StepType + + + Infusion + Infusie + + + + Temperature + Verwarmen + + + + Decoction + Decoctie + + + + TunMaterial + + + Stainless Steel + RVS + + + + Aluminium + Aluminium + + + + Plastics + Kunststof + + + + Copper + Koper + + + + YeastForm + + + Liquid + Vloeibaar + + + + Dry + Droog + + + + Slant + Schuine buis + + + + Culture + Slurry + + + + Frozen + Ingevroren + + + + Bottle + Flesdepot + + + + Dried + Gedroogd + + + + YeastStarter + + + Stirred + Geroerd + + + + Shaken + Geschud + + + + Simple + Simpel + + + + YeastType + + + Lager + Ondergist + + + + Ale + Bovengist + + + + Wheat + Tarwegist + + + + Wine + Wijngist + + + + Champagne + Champagnegist + + + + Brett + Brett + + + + Kveik + Kveik + + + + Hybrid + Hybride + + + + YeastUse + + + Primary + Hoofdgisting + + + + Secondary + Nagisting + + + + Tertiary + Lageren + + + + Bottle + Bottelgist + +