I did"make msg-extract" and "make msg-update" and looking at the PO files I think it is not updated correctly. For instance, the below message has msgstr without %s. I corrected it and the error was gone.
The one below had 2 %s in msgstr and I corrected it to fix the error.
#: pgadmin/browser/server_groups/servers/roles/static/js/role.js:767 #, fuzzy, python-format msgid "Are you sure you wish to %s all the objects owned by the selected role?" msgstr "Czy na pewno skasować %s \"%s\" i wszystkie obiekty zależne od niego?"
You have to update the .po files to match the total %s and send the patch.
On Tue, Jun 29, 2021 at 1:56 PM Dave Page <dpage@pgadmin.org> wrote:
I feel gettext sometimes won't escape the characters as it should be.
I now tried to escape those using some utils.
That won't work either. The string being passed to gettext() *must* be in the gettext call.
When gettext extracts strings to create/update the catalogs, it will search the code for all gettext calls, and then extract a string constant from the first argument. You cannot have variables, function calls or expressions in there. It *must* be a string constant.
Keep in mind that msgextract is scanning the source code; it's not executing it. There are many examples in the code, e.g. (from node.js):
title = gettext('Drop %s?', obj.label);
I don't see anything obviously wrong with the existing code. Are you sure there are no weird unprintable characters in there?
Please find the updated patch.
On Mon, Jun 28, 2021 at 9:33 PM Dave Page <dpage@pgadmin.org> wrote:
Please find the attached patch for fixation of jenkins failure.
That won't work - you can't include variables (or string building operations) in the first argument to gettext calls, as there won't be any way to extract a complete message into the catalogs. The way it's being done at the moment is correct (I don't know why it's failing, but it's the correct way to structure the gettext calls).