diff --git a/localization/strings.pot b/localization/strings.pot index d4e3d725..fcd9172d 100644 --- a/localization/strings.pot +++ b/localization/strings.pot @@ -265,7 +265,7 @@ msgstr "" msgid "For purchases this amount of days will be added to today for the best before date suggestion" msgstr "" -msgid "This means 1 %s purchased will be converted into %s %s in stock" +msgid "This means 1 %1$s purchased will be converted into %2$s %3$s in stock" msgstr "" msgid "Login" @@ -352,7 +352,7 @@ msgstr "" msgid "This means it is estimated that a new execution of this chore is tracked %s days after the last was tracked" msgstr "" -msgid "Removed %s %s of %s from stock" +msgid "Removed %1$s %2$s of %3$s from stock" msgstr "" msgid "About grocy" @@ -364,19 +364,16 @@ msgstr "" msgid "Released on" msgstr "" -msgid "Consume %s %s of %s" +msgid "Added %1$s %2$s of %3$s to stock" msgstr "" -msgid "Added %s %s of %s to stock" +msgid "Stock amount of %1$s is now %2$s %3$s" msgstr "" -msgid "Stock amount of %s is now %s %s" +msgid "Tracked execution of chore %1$s on %2$s" msgstr "" -msgid "Tracked execution of chore %s on %s" -msgstr "" - -msgid "Tracked charge cycle of battery %s on %s" +msgid "Tracked charge cycle of battery %1$s on %2$s" msgstr "" msgid "Consume all %s which are currently in stock" @@ -495,7 +492,7 @@ msgstr "" msgid "Recipe" msgstr "" -msgid "Not enough in stock, %s missing, %s already on shopping list" +msgid "Not enough in stock, %1$s missing, %2$s already on shopping list" msgstr "" msgid "Show notes" @@ -905,10 +902,10 @@ msgstr "" msgid "Add all list items to stock" msgstr "" -msgid "Add %s %s of %s to stock" +msgid "Add %1$s of %2$s to stock" msgstr "" -msgid "Adding shopping list item %s of %s" +msgid "Adding shopping list item %1$s of %2$s" msgstr "" msgid "Use a specific stock item" @@ -917,7 +914,7 @@ msgstr "" msgid "The first item in this list would be picked by the default rule which is \"First expiring first, then first in first out\"" msgstr "" -msgid "Mark %s of %s as open" +msgid "Mark %1$s of %2$s as open" msgstr "" msgid "When a product was marked as opened, the best before date will be replaced by today + this amount of days (a value of 0 disables this)" @@ -926,13 +923,13 @@ msgstr "" msgid "Default best before days after opened" msgstr "" -msgid "Marked %s %s of %s as opened" +msgid "Marked %1$s of %2$s as opened" msgstr "" msgid "Mark as opened" msgstr "" -msgid "Expires on %s; Bought on %s" +msgid "Expires on %1$s; Bought on %2$s" msgstr "" msgid "Not opened" @@ -1061,7 +1058,7 @@ msgstr "" msgid "Changelog" msgstr "" -msgid "will be multiplied a factor of %s to get %s" +msgid "will be multiplied a factor of %1$s to get %2$s" msgstr "" msgid "The given date is earlier than today, are you sure?" @@ -1115,7 +1112,7 @@ msgstr "" msgid "Show less" msgstr "" -msgid "The amount must be between %s and %s" +msgid "The amount must be between %1$s and %2$s" msgstr "" msgid "Day of month" @@ -1201,10 +1198,7 @@ msgid_plural "Not enough in stock, %s ingredients missing" msgstr[0] "" msgstr[1] "" -msgid "Consume %s of %s" -msgstr "" - -msgid "The amount cannot be lower than %s or equal %s" +msgid "The amount cannot be lower than %1$s or equal %2$s" msgstr "" msgid "Not enough in stock, but already on the shopping list" @@ -1233,3 +1227,6 @@ msgstr "" msgid "When enabled only the day of an execution is tracked, not the time" msgstr "" + +msgid "Consume %1$s of %2$s" +msgstr "" diff --git a/public/viewjs/batteriesoverview.js b/public/viewjs/batteriesoverview.js index fd3175ce..6c9f0dc5 100644 --- a/public/viewjs/batteriesoverview.js +++ b/public/viewjs/batteriesoverview.js @@ -107,7 +107,7 @@ $(document).on('click', '.track-charge-cycle-button', function(e) } Grocy.FrontendHelpers.EndUiBusy(); - toastr.success(__t('Tracked charge cycle of battery %s on %s', batteryName, trackedTime)); + toastr.success(__t('Tracked charge cycle of battery %1$s on %2$s', batteryName, trackedTime)); RefreshContextualTimeago(); RefreshStatistics(); }, diff --git a/public/viewjs/batterytracking.js b/public/viewjs/batterytracking.js index 22901bf3..67add80d 100644 --- a/public/viewjs/batterytracking.js +++ b/public/viewjs/batterytracking.js @@ -12,7 +12,7 @@ function(result) { Grocy.FrontendHelpers.EndUiBusy("batterytracking-form"); - toastr.success(__t('Tracked charge cycle of battery %s on %s', batteryDetails.battery.name, $('#tracked_time').find('input').val()) + '
' + __t("Undo") + ''); + toastr.success(__t('Tracked charge cycle of battery %1$s on %2$s', batteryDetails.battery.name, $('#tracked_time').find('input').val()) + '
' + __t("Undo") + ''); $('#battery_id').val(''); $('#battery_id_text_input').focus(); diff --git a/public/viewjs/choreform.js b/public/viewjs/choreform.js index 917c7c26..ebe74574 100644 --- a/public/viewjs/choreform.js +++ b/public/viewjs/choreform.js @@ -117,6 +117,6 @@ $('.input-group-chore-period-type').on('change', function(e) $("label[for='period_days']").text(__t("Day of month")); $("#period_days").attr("min", "1"); $("#period_days").attr("max", "31"); - $("#period_days").parent().find(".invalid-feedback").text(__t('The amount must be between %s and %s', "1", "31")); + $("#period_days").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', "1", "31")); } }); diff --git a/public/viewjs/choresoverview.js b/public/viewjs/choresoverview.js index dfd55701..eabcdcb5 100644 --- a/public/viewjs/choresoverview.js +++ b/public/viewjs/choresoverview.js @@ -115,7 +115,7 @@ $(document).on('click', '.track-chore-button', function(e) } Grocy.FrontendHelpers.EndUiBusy(); - toastr.success(__t('Tracked execution of chore %s on %s', choreName, trackedTime)); + toastr.success(__t('Tracked execution of chore %1$s on %2$s', choreName, trackedTime)); RefreshContextualTimeago(); RefreshStatistics(); }, diff --git a/public/viewjs/choretracking.js b/public/viewjs/choretracking.js index 2adefaa8..6218008b 100644 --- a/public/viewjs/choretracking.js +++ b/public/viewjs/choretracking.js @@ -12,7 +12,7 @@ function(result) { Grocy.FrontendHelpers.EndUiBusy("choretracking-form"); - toastr.success(__t('Tracked execution of chore %s on %s', choreDetails.chore.name, Grocy.Components.DateTimePicker.GetValue()) + '
' + __t("Undo") + ''); + toastr.success(__t('Tracked execution of chore %1$s on %2$s', choreDetails.chore.name, Grocy.Components.DateTimePicker.GetValue()) + '
' + __t("Undo") + ''); $('#chore_id').val(''); $('#chore_id_text_input').focus(); diff --git a/public/viewjs/consume.js b/public/viewjs/consume.js index 3649a80e..febda997 100644 --- a/public/viewjs/consume.js +++ b/public/viewjs/consume.js @@ -66,7 +66,7 @@ } Grocy.FrontendHelpers.EndUiBusy("consume-form"); - toastr.success(__t('Removed %s %s of %s from stock', Math.abs(result.amount), __n(Math.abs(result.amount), productDetails.quantity_unit_stock.name, productDetails.quantity_unit_stock.name_plural), productDetails.product.name) + '
' + __t("Undo") + ''); + toastr.success(__t('Removed %1$s %2$s of %3$s from stock', Math.abs(result.amount), __n(Math.abs(result.amount), productDetails.quantity_unit_stock.name, productDetails.quantity_unit_stock.name_plural), productDetails.product.name) + '
' + __t("Undo") + ''); $("#amount").attr("min", "1"); $("#amount").attr("max", "999999"); @@ -133,7 +133,7 @@ $('#save-mark-as-open-button').on('click', function(e) } Grocy.FrontendHelpers.EndUiBusy("consume-form"); - toastr.success(__t('Marked %s %s of %s as opened', jsonForm.amount, __n(jsonForm.amount, productDetails.quantity_unit_stock.name, productDetails.quantity_unit_stock.name_plural), productDetails.product.name) + '
' + __t("Undo") + ''); + toastr.success(__t('Marked %1$s of %2$s as opened', jsonForm.amount + " " + __n(jsonForm.amount, productDetails.quantity_unit_stock.name, productDetails.quantity_unit_stock.name_plural), productDetails.product.name) + '
' + __t("Undo") + ''); $('#amount').val(Grocy.UserSettings.stock_default_consume_amount); Grocy.Components.ProductPicker.Clear(); @@ -179,20 +179,20 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e) { $("#amount").attr("min", "0.01"); $("#amount").attr("step", "0.01"); - $("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %s and %s', 0.01.toLocaleString(), parseFloat(productDetails.stock_amount).toLocaleString())); + $("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', 0.01.toLocaleString(), parseFloat(productDetails.stock_amount).toLocaleString())); } else { $("#amount").attr("min", "1"); $("#amount").attr("step", "1"); - $("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %s and %s', "1", parseFloat(productDetails.stock_amount).toLocaleString())); + $("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', "1", parseFloat(productDetails.stock_amount).toLocaleString())); } if (productDetails.product.enable_tare_weight_handling == 1) { $("#amount").attr("min", productDetails.product.tare_weight); $('#amount').attr('max', parseFloat(productDetails.stock_amount) + parseFloat(productDetails.product.tare_weight)); - $("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %s and %s', parseFloat(productDetails.product.tare_weight).toLocaleString(), (parseFloat(productDetails.stock_amount) + parseFloat(productDetails.product.tare_weight)).toLocaleString())); + $("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', parseFloat(productDetails.product.tare_weight).toLocaleString(), (parseFloat(productDetails.stock_amount) + parseFloat(productDetails.product.tare_weight)).toLocaleString())); $("#tare-weight-handling-info").removeClass("d-none"); } else @@ -244,7 +244,7 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e) { $("#specific_stock_entry").append($("