diff --git a/apps/i18n.cpp b/apps/i18n.cpp index 5f1237da5..3c0d4c482 100644 --- a/apps/i18n.cpp +++ b/apps/i18n.cpp @@ -275,7 +275,7 @@ constexpr static char leftIntegralFirstLegend[] = {'P', '(', 'X', Ion::Charset:: constexpr static char finiteIntegralLegend[] = {Ion::Charset::LessEqual, 'X', Ion::Charset::LessEqual, 0}; -const char * universalMessages[202] { +const char * universalMessages[241] { "", "alpha", "ALPHA", @@ -356,6 +356,46 @@ const char * universalMessages[202] { "prediction95(,)", "prediction(,)", "confidence(,)", + + "abs(x)", + "root(x,n)", + "log(a,x)", + "diff(f(x),a)", + "int(f(x),a,b)", + "sum(f(n),nmin,nmax)", + "product(f(n),nmin,nmax)", + "arg(z)", + "re(z)", + "im(z)", + "conj(z)", + "binomial(n,k)", + "permute(n,r)", + "gcd(p,q)", + "lcm(p,q)", + "rem(p,q)", + "quo(p,q)", + "inverse(M)", + "det(M)", + "transpose(M)", + "trace(M)", + "dim(M)", + "sort<(L)", + "sort>(L)", + "max(L)", + "min(L)", + "floor(x)", + "frac(x)", + "ceil(x)", + "round(x,n)", + "cosh(x)", + "sinh(x)", + "tanh(x)", + "acosh(x)", + "asinh(x)", + "atanh(x)", + "prediction95(p,n)", + "prediction(p,n)", + "confidence(f,n)", }; const char * translate(Message m, Language l) { diff --git a/apps/i18n.h b/apps/i18n.h index c488a0250..a3b595c55 100644 --- a/apps/i18n.h +++ b/apps/i18n.h @@ -318,6 +318,46 @@ namespace I18n { Prediction95Command, PredictionCommand, ConfidenceCommand, + + AbsCommandWithArg, + RootCommandWithArg, + LogCommandWithArg, + DiffCommandWithArg, + IntCommandWithArg, + SumCommandWithArg, + ProductCommandWithArg, + ArgCommandWithArg, + ReCommandWithArg, + ImCommandWithArg, + ConjCommandWithArg, + BinomialCommandWithArg, + PermuteCommandWithArg, + GcdCommandWithArg, + LcmCommandWithArg, + RemCommandWithArg, + QuoCommandWithArg, + InverseCommandWithArg, + DeterminantCommandWithArg, + TransposeCommandWithArg, + TraceCommandWithArg, + DimensionCommandWithArg, + SortCommandWithArg, + InvSortCommandWithArg, + MaxCommandWithArg, + MinCommandWithArg, + FloorCommandWithArg, + FracCommandWithArg, + CeilCommandWithArg, + RoundCommandWithArg, + CoshCommandWithArg, + SinhCommandWithArg, + TanhCommandWithArg, + AcoshCommandWithArg, + AsinhCommandWithArg, + AtanhCommandWithArg, + Prediction95CommandWithArg, + PredictionCommandWithArg, + ConfidenceCommandWithArg, }; enum class Language : uint16_t { Default = 0, diff --git a/apps/math_toolbox.cpp b/apps/math_toolbox.cpp index 07614dc2d..94f465ae4 100644 --- a/apps/math_toolbox.cpp +++ b/apps/math_toolbox.cpp @@ -7,40 +7,40 @@ * and the text which would be edited by clicking on the row. When the node is a * subtree, the edited text is set at I18n::Message::Default. */ -const ToolboxNode calculChildren[4] = {ToolboxNode(I18n::Message::DiffCommand, I18n::Message::DerivateNumber), ToolboxNode(I18n::Message::IntCommand, I18n::Message::Integral), ToolboxNode(I18n::Message::SumCommand, I18n::Message::Sum), ToolboxNode(I18n::Message::ProductCommand, I18n::Message::Product)}; -const ToolboxNode complexChildren[5] = {ToolboxNode(I18n::Message::AbsCommand, I18n::Message::ComplexAbsoluteValue), ToolboxNode(I18n::Message::ArgCommand, I18n::Message::Agument), ToolboxNode(I18n::Message::ReCommand, I18n::Message::ReelPart), ToolboxNode(I18n::Message::ImCommand, I18n::Message::ImaginaryPart), ToolboxNode(I18n::Message::ConjCommand, I18n::Message::Conjugate)}; -const ToolboxNode probabilityChildren[2] = {ToolboxNode(I18n::Message::BinomialCommand, I18n::Message::Combination), ToolboxNode(I18n::Message::PermuteCommand, I18n::Message::Permutation)}; -const ToolboxNode arithmeticChildren[4] = {ToolboxNode(I18n::Message::GcdCommand, I18n::Message::GreatCommonDivisor),ToolboxNode(I18n::Message::LcmCommand, I18n::Message::LeastCommonMultiple), ToolboxNode(I18n::Message::RemCommand, I18n::Message::Remainder), ToolboxNode(I18n::Message::QuoCommand, I18n::Message::Quotient)}; +const ToolboxNode calculChildren[4] = {ToolboxNode(I18n::Message::DiffCommandWithArg, I18n::Message::DerivateNumber, I18n::Message::DiffCommand), ToolboxNode(I18n::Message::IntCommandWithArg, I18n::Message::Integral, I18n::Message::IntCommand), ToolboxNode(I18n::Message::SumCommandWithArg, I18n::Message::Sum, I18n::Message::SumCommand), ToolboxNode(I18n::Message::ProductCommandWithArg, I18n::Message::Product, I18n::Message::ProductCommand)}; +const ToolboxNode complexChildren[5] = {ToolboxNode(I18n::Message::AbsCommandWithArg, I18n::Message::ComplexAbsoluteValue, I18n::Message::AbsCommand), ToolboxNode(I18n::Message::ArgCommandWithArg, I18n::Message::Agument, I18n::Message::ArgCommand), ToolboxNode(I18n::Message::ReCommandWithArg, I18n::Message::ReelPart, I18n::Message::ReCommand), ToolboxNode(I18n::Message::ImCommandWithArg, I18n::Message::ImaginaryPart, I18n::Message::ImCommand), ToolboxNode(I18n::Message::ConjCommandWithArg, I18n::Message::Conjugate, I18n::Message::ConjCommand)}; +const ToolboxNode probabilityChildren[2] = {ToolboxNode(I18n::Message::BinomialCommandWithArg, I18n::Message::Combination, I18n::Message::BinomialCommand), ToolboxNode(I18n::Message::PermuteCommandWithArg, I18n::Message::Permutation, I18n::Message::PermuteCommand)}; +const ToolboxNode arithmeticChildren[4] = {ToolboxNode(I18n::Message::GcdCommandWithArg, I18n::Message::GreatCommonDivisor, I18n::Message::GcdCommand),ToolboxNode(I18n::Message::LcmCommandWithArg, I18n::Message::LeastCommonMultiple, I18n::Message::LcmCommand), ToolboxNode(I18n::Message::RemCommandWithArg, I18n::Message::Remainder, I18n::Message::RemCommand), ToolboxNode(I18n::Message::QuoCommandWithArg, I18n::Message::Quotient, I18n::Message::QuoCommand)}; #if MATRICES_ARE_DEFINED -const ToolboxNode matricesChildren[5] = {ToolboxNode(I18n::Message::InverseCommand, I18n::Message::Inverse), ToolboxNode(I18n::Message::DeterminantCommand, I18n::Message::Determinant), ToolboxNode(I18n::Message::TransposeCommand, I18n::Message::Transpose), ToolboxNode(I18n::Message::TraceCommand, I18n::Message::Trace), ToolboxNode(I18n::Message::DimensionCommand, I18n::Message::Dimension)}; -const ToolboxNode listesChildren[5] = {ToolboxNode(I18n::Message::SortCommand, I18n::Message::Sort), ToolboxNode(I18n::Message::InvSortCommand, I18n::Message::InvSort), ToolboxNode(I18n::Message::MaxCommand, I18n::Message::Maximum), ToolboxNode(I18n::Message::MinCommand, I18n::Message::Minimum), ToolboxNode(I18n::Message::DimensionCommand, I18n::Message::Dimension)}; +const ToolboxNode matricesChildren[5] = {ToolboxNode(I18n::Message::InverseCommandWithArg, I18n::Message::Inverse, I18n::Message::InverseCommand), ToolboxNode(I18n::Message::DeterminantCommandWithArg, I18n::Message::Determinant, I18n::Message::DeterminantCommand), ToolboxNode(I18n::Message::TransposeCommandWithArg, I18n::Message::Transpose, I18n::Message::TransposeCommand), ToolboxNode(I18n::Message::TraceCommandWithArg, I18n::Message::Trace, I18n::Message::TraceCommand), ToolboxNode(I18n::Message::DimensionCommandWithArg, I18n::Message::Dimension, I18n::Message::DimensionCommand)}; +const ToolboxNode listesChildren[5] = {ToolboxNode(I18n::Message::SortCommandWithArg, I18n::Message::Sort, I18n::Message::SortCommand), ToolboxNode(I18n::Message::InvSortCommandWithArg, I18n::Message::InvSort, I18n::Message::InvSortCommand), ToolboxNode(I18n::Message::MaxCommandWithArg, I18n::Message::Maximum, I18n::Message::MaxCommand), ToolboxNode(I18n::Message::MinCommandWithArg, I18n::Message::Minimum, I18n::Message::MinCommand), ToolboxNode(I18n::Message::DimensionCommandWithArg, I18n::Message::Dimension, I18n::Message::DimensionCommand)}; #endif -const ToolboxNode approximationChildren[4] = {ToolboxNode(I18n::Message::FloorCommand, I18n::Message::Floor), ToolboxNode(I18n::Message::FracCommand, I18n::Message::FracPart), ToolboxNode(I18n::Message::CeilCommand, I18n::Message::Ceiling), ToolboxNode(I18n::Message::RoundCommand, I18n::Message::Rounding)}; -const ToolboxNode trigonometryChildren[6] = {ToolboxNode(I18n::Message::CoshCommand, I18n::Message::Cosh), ToolboxNode(I18n::Message::SinhCommand, I18n::Message::Sinh), ToolboxNode(I18n::Message::TanhCommand, I18n::Message::Tanh), ToolboxNode(I18n::Message::AcoshCommand, I18n::Message::Acosh), ToolboxNode(I18n::Message::AsinhCommand, I18n::Message::Asinh), ToolboxNode(I18n::Message::AtanhCommand, I18n::Message::Atanh)}; -const ToolboxNode predictionChildren[3] = {ToolboxNode(I18n::Message::Prediction95Command, I18n::Message::Prediction95), ToolboxNode(I18n::Message::PredictionCommand, I18n::Message::Prediction), ToolboxNode(I18n::Message::ConfidenceCommand, I18n::Message::Confidence)}; +const ToolboxNode approximationChildren[4] = {ToolboxNode(I18n::Message::FloorCommandWithArg, I18n::Message::Floor, I18n::Message::FloorCommand), ToolboxNode(I18n::Message::FracCommandWithArg, I18n::Message::FracPart, I18n::Message::FracCommand), ToolboxNode(I18n::Message::CeilCommandWithArg, I18n::Message::Ceiling, I18n::Message::CeilCommand), ToolboxNode(I18n::Message::RoundCommandWithArg, I18n::Message::Rounding, I18n::Message::RoundCommand)}; +const ToolboxNode trigonometryChildren[6] = {ToolboxNode(I18n::Message::CoshCommandWithArg, I18n::Message::Cosh, I18n::Message::CoshCommand), ToolboxNode(I18n::Message::SinhCommandWithArg, I18n::Message::Sinh, I18n::Message::SinhCommand), ToolboxNode(I18n::Message::TanhCommandWithArg, I18n::Message::Tanh, I18n::Message::TanhCommand), ToolboxNode(I18n::Message::AcoshCommandWithArg, I18n::Message::Acosh, I18n::Message::AcoshCommand), ToolboxNode(I18n::Message::AsinhCommandWithArg, I18n::Message::Asinh, I18n::Message::AsinhCommand), ToolboxNode(I18n::Message::AtanhCommandWithArg, I18n::Message::Atanh, I18n::Message::AtanhCommand)}; +const ToolboxNode predictionChildren[3] = {ToolboxNode(I18n::Message::Prediction95CommandWithArg, I18n::Message::Prediction95, I18n::Message::Prediction95Command), ToolboxNode(I18n::Message::PredictionCommandWithArg, I18n::Message::Prediction, I18n::Message::PredictionCommand), ToolboxNode(I18n::Message::ConfidenceCommandWithArg, I18n::Message::Confidence, I18n::Message::ConfidenceCommand)}; #if MATRICES_ARE_DEFINED -const ToolboxNode menu[12] = {ToolboxNode(I18n::Message::AbsCommand, I18n::Message::AbsoluteValue), +const ToolboxNode menu[12] = {ToolboxNode(I18n::Message::AbsCommandWithArg, I18n::Message::AbsoluteValue, I18n::Message::AbsCommand), #else -const ToolboxNode menu[10] = {ToolboxNode(I18n::Message::AbsCommand, I18n::Message::AbsoluteValue), +const ToolboxNode menu[10] = {ToolboxNode(I18n::Message::AbsCommandWithArg, I18n::Message::AbsoluteValue, I18n::Message::AbsCommand), #endif - ToolboxNode(I18n::Message::RootCommand, I18n::Message::NthRoot), - ToolboxNode(I18n::Message::LogCommand, I18n::Message::BasedLogarithm), - ToolboxNode(I18n::Message::Calculation, I18n::Message::Default, calculChildren, 4), - ToolboxNode(I18n::Message::ComplexNumber, I18n::Message::Default, complexChildren, 5), - ToolboxNode(I18n::Message::Probability, I18n::Message::Default, probabilityChildren, 2), - ToolboxNode(I18n::Message::Arithmetic, I18n::Message::Default, arithmeticChildren, 4), + ToolboxNode(I18n::Message::RootCommandWithArg, I18n::Message::NthRoot, I18n::Message::RootCommand), + ToolboxNode(I18n::Message::LogCommandWithArg, I18n::Message::BasedLogarithm, I18n::Message::LogCommand), + ToolboxNode(I18n::Message::Calculation, I18n::Message::Default, I18n::Message::Default, calculChildren, 4), + ToolboxNode(I18n::Message::ComplexNumber, I18n::Message::Default, I18n::Message::Default, complexChildren, 5), + ToolboxNode(I18n::Message::Probability, I18n::Message::Default, I18n::Message::Default, probabilityChildren, 2), + ToolboxNode(I18n::Message::Arithmetic, I18n::Message::Default, I18n::Message::Default, arithmeticChildren, 4), #if MATRICES_ARE_DEFINED - ToolboxNode(I18n::Message::Matrices, I18n::Message::Default, matricesChildren, 5), - ToolboxNode(I18n::Message::Lists, I18n::Message::Default, listesChildren, 5), + ToolboxNode(I18n::Message::Matrices, I18n::Message::Default, I18n::Message::Default, matricesChildren, 5), + ToolboxNode(I18n::Message::Lists, I18n::Message::Default, I18n::Message::Default, listesChildren, 5), #endif - ToolboxNode(I18n::Message::Approximation, I18n::Message::Default, approximationChildren, 4), - ToolboxNode(I18n::Message::HyperbolicTrigonometry, I18n::Message::Default, trigonometryChildren, 6), - ToolboxNode(I18n::Message::Fluctuation, I18n::Message::Default, predictionChildren, 3)}; + ToolboxNode(I18n::Message::Approximation, I18n::Message::Default, I18n::Message::Default, approximationChildren, 4), + ToolboxNode(I18n::Message::HyperbolicTrigonometry, I18n::Message::Default, I18n::Message::Default, trigonometryChildren, 6), + ToolboxNode(I18n::Message::Fluctuation, I18n::Message::Default, I18n::Message::Default, predictionChildren, 3)}; #if MATRICES_ARE_DEFINED -const ToolboxNode toolboxModel = ToolboxNode(I18n::Message::Toolbox, I18n::Message::Default, menu, 12); +const ToolboxNode toolboxModel = ToolboxNode(I18n::Message::Toolbox, I18n::Message::Default, I18n::Message::Default, menu, 12); #else -const ToolboxNode toolboxModel = ToolboxNode(I18n::Message::Toolbox, I18n::Message::Default, menu, 10); +const ToolboxNode toolboxModel = ToolboxNode(I18n::Message::Toolbox, I18n::Message::Default, I18n::Message::Default, menu, 10); #endif /* State */ @@ -256,7 +256,7 @@ const ToolboxNode * MathToolbox::rootModel() { bool MathToolbox::selectLeaf(ToolboxNode * selectedNode){ m_selectableTableView.deselectTable(); ToolboxNode * node = selectedNode; - const char * editedText = I18n::translate(node->label()); + const char * editedText = I18n::translate(node->insertedText()); if (!sender()->isEditing()) { sender()->setEditing(true); } diff --git a/apps/toolbox_node.cpp b/apps/toolbox_node.cpp index 6345f5e91..f9faf1cd4 100644 --- a/apps/toolbox_node.cpp +++ b/apps/toolbox_node.cpp @@ -4,6 +4,10 @@ I18n::Message ToolboxNode::text() const { return m_text; } +I18n::Message ToolboxNode::insertedText() const { + return m_insertedText; +} + const Node * ToolboxNode::children(int index) const { return &m_children[index]; } diff --git a/apps/toolbox_node.h b/apps/toolbox_node.h index 2b5554eac..2eae68043 100644 --- a/apps/toolbox_node.h +++ b/apps/toolbox_node.h @@ -5,17 +5,20 @@ class ToolboxNode : public Node { public: - constexpr ToolboxNode(I18n::Message label = I18n::Message::Default, I18n::Message text = I18n::Message::Default, const ToolboxNode * children = nullptr, int numberOfChildren = 0) : + constexpr ToolboxNode(I18n::Message label = I18n::Message::Default, I18n::Message text = I18n::Message::Default, I18n::Message insertedText = I18n::Message::Default, const ToolboxNode * children = nullptr, int numberOfChildren = 0) : Node(label, numberOfChildren), m_children(children), - m_text(text) + m_text(text), + m_insertedText(insertedText) { }; const Node * children(int index) const override; I18n::Message text() const; + I18n::Message insertedText() const; private: const ToolboxNode * m_children; I18n::Message m_text; + I18n::Message m_insertedText; }; #endif