Re: [patch][pgAdmin] Fix for pgadmin4-linux-qa #1651 failure

Поиск
Список
Период
Сортировка
От Dave Page
Тема Re: [patch][pgAdmin] Fix for pgadmin4-linux-qa #1651 failure
Дата
Msg-id CA+OCxozFw2awND=5n3BkRG3jZDg_Z_V7Mm=qBgX8J8She78vyQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [patch][pgAdmin] Fix for pgadmin4-linux-qa #1651 failure  (Rahul Shirsat <rahul.shirsat@enterprisedb.com>)
Ответы Re: [patch][pgAdmin] Fix for pgadmin4-linux-qa #1651 failure  (Dave Page <dpage@pgadmin.org>)
Список pgadmin-hackers
Hi

On Wed, Jun 30, 2021 at 8:28 AM Rahul Shirsat <rahul.shirsat@enterprisedb.com> wrote:
Hi All,

Please find the attached patch for resolving this issue wrt above suggestion.

Well that may fix the problem (and is a reasonable change), however, I think it's important that we understand the root cause. Why is this failing on Linux only? Why does the following from node.js (which follows the same pattern) work fine?

var type_label = gettext('%s Script',stype.toUpperCase());

 
Let me know if anyone has any queries.

On Tue, Jun 29, 2021 at 9:20 PM Rahul Shirsat <rahul.shirsat@enterprisedb.com> wrote:
Hi Dave / Aditya,

For a time being, Let's make a call to gettext conditional instead of passing dynamic parameters for this scenario at least. With this, we won't be touching the *.po files and translations will do its task smoothly.
I have already checked for the string with weird unprintable characters, and there were none.

e.g. 
Instead of -  title = gettext('%s objects?', obj.label);

if (drop) {
   title = gettext('Drop objects?');
}
else {
   title = gettext('Reassign objects?');
}

I have tried the above code and it looks good to me.

Please suggest.

On Tue, Jun 29, 2021 at 7:31 PM Dave Page <dpage@pgadmin.org> wrote:


On Tue, Jun 29, 2021 at 2:55 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi,

On Tue, Jun 29, 2021 at 7:14 PM Dave Page <dpage@pgadmin.org> wrote:


On Tue, Jun 29, 2021 at 2:41 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Dave,

Somehow, the new text strings are added to PO with incorrect translations. That is causing the issue.
Either they should be empty or fixed.

Then the source problem should be fixed. There's no point at all in putting fixes directly in the PO files as they'll be overwritten prior to release anyway.
The translations submitted by translators are updated in the PO file right ? And then they're compiled to MO ?

Right.
 
It's the same like Rahul will be submitting the translations. Please correct me if I'm wrong.

That depends if he's changed the original message or the translated message. It's impossible to see without reading megabytes of text.

And in any case, he's updated translations that haven't been touched in ages - why would they suddenly have broken? (hint: if the upstream message has changed, it'll be marked as fuzzy or untranslated - in other words, gettext knows how to handle that).
 
 

On Tue, Jun 29, 2021 at 7:01 PM Dave Page <dpage@pgadmin.org> wrote:
Hi

Please send the patch without updates to the po files. Those get updated as part of the release process.

Thanks.

On Tue, Jun 29, 2021 at 2:00 PM Rahul Shirsat <rahul.shirsat@enterprisedb.com> wrote:
Hi Hackers,

Thanks Aditya for pointing out the issue. Please find the attached patch which contains all the .po files corrected with %s.

Regards,
Rahul Shirsat.

On Tue, Jun 29, 2021 at 4:31 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Rahul,

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.

#: pgadmin/browser/server_groups/servers/roles/static/js/role.js:766
#, fuzzy, python-format
msgid "%s Objects"
msgstr "Obiekty"

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:
Hi

On Tue, Jun 29, 2021 at 4:38 AM Rahul Shirsat <rahul.shirsat@enterprisedb.com> 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:
Hi

On Mon, Jun 28, 2021 at 4:57 PM Rahul Shirsat <rahul.shirsat@enterprisedb.com> wrote:
Hi Hackers,

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).
 
--


--
Rahul Shirsat
Senior Software Engineer | EnterpriseDB Corporation.


--


--
Thanks,
Aditya Toshniwal
pgAdmin hacker | Sr. Software Engineer | edbpostgres.com
"Don't Complain about Heat, Plant a TREE"


--
Rahul Shirsat
Senior Software Engineer | EnterpriseDB Corporation.


--


--
Thanks,
Aditya Toshniwal
pgAdmin hacker | Sr. Software Engineer | edbpostgres.com
"Don't Complain about Heat, Plant a TREE"


--


--
Thanks,
Aditya Toshniwal
pgAdmin hacker | Sr. Software Engineer | edbpostgres.com
"Don't Complain about Heat, Plant a TREE"


--


--
Rahul Shirsat
Senior Software Engineer | EnterpriseDB Corporation.


--
Rahul Shirsat
Senior Software Engineer | EnterpriseDB Corporation.


--

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Rahul Shirsat
Дата:
Сообщение: Re: [patch][pgAdmin] Fix for pgadmin4-linux-qa #1651 failure
Следующее
От: Dave Page
Дата:
Сообщение: pgAdmin 4 commit: Disable email deliverability check that was introduce