inconsistent translations, or the language is like that?

Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

inconsistent translations, or the language is like that?

Álvaro Herrera
Hello Ioseph, I noticed that these message are translated differently in
your translation.  Is that intentional or a mistake?  I don't know the
language.

msgid "cannot perform INSERT RETURNING on relation \"%s\""
msgstr "\"%s\" 릴레이션에서 INSERT RETURNING 관련을 구성할 수 없음"

#: rewrite/rewriteHandler.c:3576
#, c-format
msgid "cannot perform UPDATE RETURNING on relation \"%s\""
msgstr "\"%s\" 릴레이션에서 UPDATE RETURNING 관련을 구성할 수 없습니다."

#: rewrite/rewriteHandler.c:3583
#, c-format
msgid "cannot perform DELETE RETURNING on relation \"%s\""
msgstr "\"%s\" 릴레이션에서 DELETE RETURNING 관련을 구성할 수 없습니다."


Thanks

--
Álvaro Herrera


Reply | Threaded
Open this post in threaded view
|

Re: inconsistent translations, or the language is like that?

Ioseph Kim-2
Hi

Thanks for your notification.

these messages are correct.


here is example

---

postgres@postgres=# create rule myrule as on insert to t do instead
insert into tt values (new.*);
CREATE RULE
postgres@postgres=# insert into t values (1,1);
INSERT 0 1
postgres@postgres=# select * from tt;
  a | b
---+---
  1 | 1
postgres@postgres=# insert into t values (1,1) returning *;
오류:  "t" 릴레이션에서 INSERT RETURNING 관련을 구성할 수 없음
힌트:  RETURNING 절에서는 무조건 ON INSERT DO INSTEAD 속성으로 rule이
사용되어야합니다.
postgres@postgres=# drop rule myrule on t;
DROP RULE
postgres@postgres=# create rule myrule as on insert to t do instead
insert into tt values (new.*) returning a,b::int;
CREATE RULE
postgres@postgres=# insert into t values (1,1);
INSERT 0 1
postgres@postgres=# insert into t values (1,1) returning *;
  a | b
---+---
  1 | 1

---


The exact Korean expression is 'INSERT RETURNING 구문을 수행할 수 없음'.

perform has same meaming for '구성' and '수행'.

and '없음' is abbreviated to '없습니다'.

I'll change it in the next version. thanks.

I am more curious why you are interested in this matter. :)


Regards ioseph



19. 5. 16. 오전 2:23에 Alvaro Herrera 이(가) 쓴 글:

> Hello Ioseph, I noticed that these message are translated differently in
> your translation.  Is that intentional or a mistake?  I don't know the
> language.
>
> msgid "cannot perform INSERT RETURNING on relation \"%s\""
> msgstr "\"%s\" 릴레이션에서 INSERT RETURNING 관련을 구성할 수 없음"
>
> #: rewrite/rewriteHandler.c:3576
> #, c-format
> msgid "cannot perform UPDATE RETURNING on relation \"%s\""
> msgstr "\"%s\" 릴레이션에서 UPDATE RETURNING 관련을 구성할 수 없습니다."
>
> #: rewrite/rewriteHandler.c:3583
> #, c-format
> msgid "cannot perform DELETE RETURNING on relation \"%s\""
> msgstr "\"%s\" 릴레이션에서 DELETE RETURNING 관련을 구성할 수 없습니다."
>
>
> Thanks
>


Reply | Threaded
Open this post in threaded view
|

Re: inconsistent translations, or the language is like that?

Alvaro Herrera-9
On 2019-May-16, Ioseph Kim wrote:

Hi, thanks for replying so quickly.

> The exact Korean expression is 'INSERT RETURNING 구문을 수행할 수 없음'.
>
> perform has same meaming for '구성' and '수행'.
>
> and '없음' is abbreviated to '없습니다'.

I see :-)

> I'll change it in the next version. thanks.
>
> I am more curious why you are interested in this matter. :)

Well, I'm considering changing the way those three error messages are
emitted by the server, so that the three cases use the same code.  So
the translator would only get this string in the translation file:

 "cannot perform %s on relation \"%s\""

instead of getting three strings.  Then the program would substitute the
first %s by INSERT RETURNING, UPDATE RETURNING, or DELETE RETURNING
depending on which case is hit.

So I was searching for occurrences of those three messages in the
existing translations, looking for any where the three translations
were not identical, and Korean was the first I found.

After sending, I realized that the translations for simplified Chinese and
Turkish of the three phrases are also different!

simplified Chinese:

msgstr "无法在关系\"%s\"上执行INSERT RETURNING "
msgstr "无法在关系\"%s\"执行UPDATE RETURNING"
msgstr "无法在关系 \"%s\"上执行DELETE RETURNING"

Turkish:

msgstr "\"%s\" nesnesinde INSERT RETURNING yapılamaz"
msgstr "\"%s\" nesnesinde UPDATE RETURNING yapılamaz"
msgstr "\"%s\" nesnesi üzerinde DELETE RETURNING işlemi yapılamaz"


I don't speak (or even read) either of these languages so can't tell
whether the translations are just different because there are two ways
of writing the same thing (so my proposed change would not cause a
problem), or the languages have inflection or grammatical rules that
make the phrases be different (which makes my proposed change not
acceptable).

My preliminary conclusion is that I shouldn't be changing this.

--
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Reply | Threaded
Open this post in threaded view
|

Re: inconsistent translations, or the language is like that?

Ioseph Kim-2
I read the code of rewriteHandler.c


You can combine those three parts into one in Korean.

I guess other languages are the same.


ereport(ERROR,
         (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
          errmsg("cannot perform INSERT RETURNING on relation \"%s\"",
                 RelationGetRelationName(rt_entry_relation)),
          errhint("You need an unconditional ON INSERT DO INSTEAD rule
with a RETURNING clause.")));

The three-times repeated above code will be okay to combine into one.
(at least in korean)


BUT,

I think that

considering code readability and error code separation, the current code
is better.

even if translated messages are inconsistent.

that's consistent  is up to the translator.


Thank you for thinking about this matter.


Regards ioseph


19. 5. 16. 오후 12:51에 Alvaro Herrera 이(가) 쓴 글:

> On 2019-May-16, Ioseph Kim wrote:
>
> Hi, thanks for replying so quickly.
>
>> The exact Korean expression is 'INSERT RETURNING 구문을 수행할 수 없음'.
>>
>> perform has same meaming for '구성' and '수행'.
>>
>> and '없음' is abbreviated to '없습니다'.
> I see :-)
>
>> I'll change it in the next version. thanks.
>>
>> I am more curious why you are interested in this matter. :)
> Well, I'm considering changing the way those three error messages are
> emitted by the server, so that the three cases use the same code.  So
> the translator would only get this string in the translation file:
>
>   "cannot perform %s on relation \"%s\""
>
> instead of getting three strings.  Then the program would substitute the
> first %s by INSERT RETURNING, UPDATE RETURNING, or DELETE RETURNING
> depending on which case is hit.
>
> So I was searching for occurrences of those three messages in the
> existing translations, looking for any where the three translations
> were not identical, and Korean was the first I found.
>
> After sending, I realized that the translations for simplified Chinese and
> Turkish of the three phrases are also different!
>
> simplified Chinese:
>
> msgstr "无法在关系\"%s\"上执行INSERT RETURNING "
> msgstr "无法在关系\"%s\"执行UPDATE RETURNING"
> msgstr "无法在关系 \"%s\"上执行DELETE RETURNING"
>
> Turkish:
>
> msgstr "\"%s\" nesnesinde INSERT RETURNING yapılamaz"
> msgstr "\"%s\" nesnesinde UPDATE RETURNING yapılamaz"
> msgstr "\"%s\" nesnesi üzerinde DELETE RETURNING işlemi yapılamaz"
>
>
> I don't speak (or even read) either of these languages so can't tell
> whether the translations are just different because there are two ways
> of writing the same thing (so my proposed change would not cause a
> problem), or the languages have inflection or grammatical rules that
> make the phrases be different (which makes my proposed change not
> acceptable).
>
> My preliminary conclusion is that I shouldn't be changing this.
>