Tamil computing group
 help / color / mirror / Atom feed
From: Arun Isaac <arunisaac@systemreboot.net>
To: Anderson Ivanovich <ivanovicha350@gmail.com>
Cc: tamil@systemreboot.net
Subject: Re: Translated PO File for Coreutils-9.1-pre1
Date: Tue, 04 Apr 2023 01:58:53 +0100	[thread overview]
Message-ID: <87edp05upe.fsf@systemreboot.net> (raw)
In-Reply-To: <CAH6zCLOd6niDhGU6gKCRmtB_vtokrxeorCtCRK_WLtmrpeucjQ@mail.gmail.com>


Hi Anbarasan,

Thanks for the monumental task of translating coreutils! :-) I can see
that it was quite a major project. We are really breaking fresh
ground. coreutils is a very important project and we are shaping the
future of Tamil computing. The Tamil language and people are going to be
stuck with our translations and our mistakes for many years to come. No
pressure! :-P

Unfortunately, it is taking me much longer to review than I thought. I
have finished reviewing only around 10% of your translation (the first
170 strings). :-( But, I don't want to keep you waiting forever until I
have finished reviewing everything. So, I'm sharing with you my partial
review as it stands currently. I hope my partial review gives you some
idea of where improvements can be made. Some of the points I have raised
apply equally well to strings beyond the first 170. As always, do feel
free to disagree with and debate any of my suggestions.

Since some of the suggested corrections are rather subtle and
translation more of an art than a science, it might help to discuss some
of these matters over an audio or video call on jitsi. Would you be
interested? If that's fine with you, we can arrange a mutually
convenient meeting time. Do let me know.

Cheers!
Arun

Review of the first 170 strings:

> msgid "invalid argument %s for %s"
> msgstr "%s க்கான தவறான மதிப்புரு %s"

1. We need to reorder arguments in this string. If we don't, something
like "invalid argument foo for bar" will be mistranslated to "foo க்கான
தவறான மதிப்புரு bar". See
https://www.gnu.org/software/gettext/manual/html_node/c_002dformat-Flag.html
on how to reorder arguments. In this case, this means the translation
should be "%2$s க்கான தவறான மதிப்புரு %1$s"

2. I think we should use செயலுருபு instead of மதிப்புரு for
argument. மதிப்புரு is more reminiscent of value. செயலுருபு goes better
with செயல்மாற்றி (option or flag) and செயல்.

> msgid "write error"
> msgstr "ஏழுதல் பிழை"

Spelling mistake here: use எழுத்துப் பிழை or எழுதுவதில் பிழை

> #: lib/copy-acl.c:54 src/copy.c:1439 src/copy.c:3039
> #, c-format
> msgid "preserving permissions for %s"
> msgstr "%s ற்கான அனுமதிகள் பாதுகாக்கப்படுகிறது"

1. It may be a better translation to say அனுமதிகள் மாற்றப்படவில்லை. The
context here is that permissions are being left *unchanged* rather than
being *protected*.

2. Also, as a general comment for all strings, it is nicer if we can
avoid free suffixes such as ற்கான. Free suffixes such as this are a
problem we have to deal with when attaching Tamil suffixes to foreign
words. Usually, we can get around this by introducing a noun that
describes the foreign word. Concretely, for this string, we could write
"%s கோப்புக்கு அனுமதிகள் மாற்றப்படவில்லை" since we know that %s refers to a
file (கோப்பு). We often need to read the source code (e.g.,
src/copy.c:1439) to infer this context, and it is not always possible to
do so. In such cases, we may compromise and use a free suffix.

3. Just a Tamil grammar question I have been struggling with: Is it
right to say "கோப்புக்கு" or is it more correct to say "கோப்பிற்கு"? I have
never been sure. I guess I have been confused about this since my school
days. :-P It would be nice to know if you have a good answer to this
question.

> #: lib/error.c:195
> msgid "Unknown system error"
> msgstr "அறியப்படாத முறைமை பிழைஅறியப்படாத முறைமை பிழை"

1. There's a repetition of "அறியப்படாத முறைமை பிழை" here.

2. In this string, "system" refers to a computer system or an operating
system. This should not be translated to முறைமை. முறைமை refers to a "way
or tradition of doing things", that is, முறை or மரபு. For this string, I
recommend "அறியப்படா இயங்குதளப் பிழை" or "அறியப்படாத் தளப் பிழை". Neither
translation is very good. So, I am also very open to suggestion if you
have better ideas.

> msgid "symbolic link"
> msgstr "குறியீட்டுத் தொடுப்பு"

In English, symbolic links are also called soft links. This is to
contrast them with hard links. We could translate these elegantly to
மென்தொடுப்பு and வன்தொடுப்பு respectively.

> #: lib/file-type.c:61
> msgid "typed memory object"
> msgstr "தட்டச்சிடப்பட்ட நினைவக பொருள்"

"Typed" here refers to type as in variable type (int, float, etc.). So,
maybe "வகையுடை நினைவக பொருள்".

> #: lib/file-type.c:90
> msgid "named file"
> msgstr "பெயரிடப்பட்ட கோப்பு"

Maybe, the slightly shorter பெயருடை கோப்பு. Just a nitpick, and not very
important, though.

> #: lib/file-type.c:93
> msgid "network special file"
> msgstr "வலையமைப்பு சிறப்பு கோப்பு"

We should keep வலை for the web and use பிணையம் for network. So, something
like பிணைய சிறப்புக் கோப்பு.

> #: lib/file-type.c:96
> msgid "migrated file with data"
> msgstr "தரவுகளுடன் கூடிய இடம்பெயர்ந்த கோப்புகள்"

1. கோப்புகள் -> கோப்பு since the singular "file" is used in the English
string.

2. Maybe, prefer the shorter "தரவுடை இடம்பெயர்ந்த கோப்பு".

> #: lib/file-type.c:99
> msgid "migrated file without data"
> msgstr "தரவுகள் இல்லாத இடம்பெயர்ந்த கோப்புகள்"

Prefer the shorter "தரவில்லா இடம்பெயர்ந்த கோப்பு". Shorter is sweeter.

> #: lib/file-type.c:105
> msgid "socket"
> msgstr "பொருந்தி"

"பொருந்தி" sounds like the plug (the male part). "பொருந்துவாய்" sounds more
like socket (the female part).

> #: lib/file-type.c:110
> msgid "weird file"
> msgstr "வினோதமான கோப்பு"

வினோதமான is probably a loan term. Maybe, "புதிர்க் கோப்பு" is better.

> #: lib/gai_strerror.c:57
> msgid "Address family for hostname not supported"
> msgstr "புரவலன் பெயருக்கான முகவரி குடும்பம் ஆதரிக்கப்படவில்லை"

1. புரவலன் usually refers to a
person. https://ta.wiktionary.org/wiki/%E0%AE%AA%E0%AF%81%E0%AE%B0%E0%AE%B5%E0%AE%B2%E0%AE%A9%E0%AF%8D
It's quite a neologism to use it for a machine/computer. In this context
it may be ok to omit "host" from the translation. So, we can translate
"hostname" to பெயர் instead of புரவலன் பெயர். If you think it is better to
translate "host" as well, we could translate it into நிலையம் (that is,
station---like a radio station or a network station) instead of புரவலன்.

2. Slightly better translation: முகவரி குடும்பம் -> முகவரி வகை

> #: lib/gai_strerror.c:58
> msgid "Temporary failure in name resolution"
> msgstr "பெயர் தீர்மானத்தில் தற்காலிக தோல்வி"

Here, "resolution" means "lookup", not "decision". So, maybe translate
it to கண்டறிதல்.

> #: lib/gai_strerror.c:59
> msgid "Bad value for ai_flags"
> msgstr "இது ai_flags கான மோசமான மதிப்பு"

மோசம் is a loan word, I think. Maybe "ஏற்கத்தகா ai_flags" instead.

> #: lib/gai_strerror.c:60
> msgid "Non-recoverable failure in name resolution"
> msgstr "பெயர் தீர்மானத்தில் மீட்க இயலாத தோல்வி"

1. தீர்மானம் -> கண்டறிதல்

2. Slightly shorter: மீட்க -> மீள

> #: lib/gai_strerror.c:63
> msgid "No address associated with hostname"
> msgstr "புரவலன் பெயருடன் எந்த முகவரியும் இணைக்கப்படவில்லை"

Shorter and more direct: "புரவலன் பெயருடைய முகவரி இல்லை"

> #: lib/gai_strerror.c:65
> msgid "Servname not supported for ai_socktype"
> msgstr "இங்கு ai_socket கான சேவையக பெயர் ஆதரிக்கப்படவில்லை"

From https://man7.org/linux/man-pages/man3/getaddrinfo.3.html,

--8<---------------cut here---------------start------------->8---
EAI_SERVICE: The requested service is not available for the requested
socket type.
--8<---------------cut here---------------end--------------->8---

So, servname can be translated to சேவை instead of சேவையக பெயர்.

> #: lib/gai_strerror.c:67
> msgid "System error"
> msgstr "முறைமை பிழை"

See earlier about "system".

> #: lib/gai_strerror.c:68
> msgid "Argument buffer too small"
> msgstr "மதிப்புரு இடையகம் மிகச்சிறியதாக உள்ளது"

1. See earlier about argument.

2. Shorter: மிகச்சிறியதாக உள்ளது -> மிகச் சிறியது

> #: lib/gai_strerror.c:70
> msgid "Processing request in progress"
> msgstr "செயலாக்க கோரிக்கை செயலில் உள்ளது"

Maybe, செயலாக்க கோரிக்கை செயலில் உள்ளது -> கோரிக்கை செயலாக்கப்படுகிறது. It's
shorter and uses fewer words.

> #: lib/gai_strerror.c:71
> msgid "Request canceled"
> msgstr "கோரிக்கை நீக்கறல் செய்யப்பட்டது"

I'm not sure about this, but maybe the slightly more direct கோரிக்கை
நீக்கப்பட்டது.

> #: lib/gai_strerror.c:72
> msgid "Request not canceled"
> msgstr "கோரிக்கை நீக்கறல் செய்யப்படவில்லை"

Likewise: கோரிக்கை நீக்கப்படவில்லை

> #: lib/gai_strerror.c:73
> msgid "All requests done"
> msgstr "எல்லா கோரிக்கைகளும் முடிந்தது"

1. முடிந்தது -> முடிந்தன

2. Maybe, முடிந்தன -> நிறைவேறின.

> #: lib/gai_strerror.c:74
> msgid "Interrupted by a signal"
> msgstr "ஒரு சமிக்ஞையால் குறுக்கிடப்பட்டது"

In this and many other strings, why not translate "signal" to குறி or
குறியீடு? சமிக்ஞை sounds like a very foreign loan word to me.

> #: lib/gai_strerror.c:75
> msgid "Parameter string not correctly encoded"
> msgstr "அளவுரு சரம் சரியாக குறியேற்றப்படவில்லை"

I believe "parameter" is just another word for "argument" here. So
"parameter string" can be translated to சரச் செயலுருபு.

> #: lib/getopt.c:278
> #, c-format
> msgid "%s: option '%s%s' is ambiguous\n"
> msgstr "%s: '%s%s' விருப்பத்தேர்வு தெளிவற்றது\n"
>
> #: lib/getopt.c:284
> #, c-format
> msgid "%s: option '%s%s' is ambiguous; possibilities:"
> msgstr "%s: '%s%s' விருப்பத்தேர்வு தெளிவற்றது; வாய்ப்புகள்:"
>
> #: lib/getopt.c:319
> #, c-format
> msgid "%s: unrecognized option '%s%s'\n"
> msgstr "%s: அடையாளம் காண இயலாத விருப்பத்தேர்வு '%s%s'\n"
>
> #: lib/getopt.c:345
> #, c-format
> msgid "%s: option '%s%s' doesn't allow an argument\n"
> msgstr "%s: '%s%s' விருப்பத்தேர்வு மதிப்புருகளை அனுமதிப்பதில்லை\n"
>
> #: lib/getopt.c:360
> #, c-format
> msgid "%s: option '%s%s' requires an argument\n"
> msgstr "%s: '%s%s' விருப்பத்தேர்வுக்கு மதிப்புருகள் தேவை\n"
>
> #: lib/getopt.c:621
> #, c-format
> msgid "%s: invalid option -- '%c'\n"
> msgstr "%s: தவறான விருப்பத்தேர்வு -- '%c'\n"
>
> #: lib/getopt.c:636 lib/getopt.c:682
> #, c-format
> msgid "%s: option requires an argument -- '%c'\n"
> msgstr "%s: விருப்பத்தேர்வுக்கு மதிப்புருகள் தேவை -- '%c'\n"

As mentioned earlier, option -> செய்லமாற்றி and argument -> செயலுருபு in
all the above strings.

> #: lib/mkdir-p.c:162 src/copy.c:1986 src/copy.c:2062 src/copy.c:2658
> #: src/copy.c:3025 src/find-mount-point.c:84 src/install.c:647
> #: src/realpath.c:146 src/stat.c:1483 src/truncate.c:325
> #, c-format
> msgid "cannot stat %s"
> msgstr "%s ஐ stat செய்ய இயலவில்லை"

Avoid free suffix: ஐ -> கோப்பை

> #: lib/mkdir-p.c:190 src/install.c:454
> #, c-format
> msgid "cannot change permissions of %s"
> msgstr "%s இன் அனுமதிகளை மாற்ற முடியவில்லை"

Avoid free suffix: இன் -> கோப்பின்

> #: lib/openat-die.c:38
> #, c-format
> msgid "unable to record current working directory"
> msgstr "இப்போதைய பணி அடைவைப் பதிவு செய்ய இயலவில்லை"

"current working directory" is really just the "current directory". So,
maybe translate it ito தற்போதைய அடைவு.

> #: lib/openat-die.c:57 src/find-mount-point.c:107
> #, c-format
> msgid "failed to return to initial working directory"
> msgstr "தொடக்கப் பணி அடைவிற்குத் திரும்புவதில் தோல்வி"

Likewise: தொடக்கப் பணி அடைவிற்குத் -> தொடக்க அடைவிற்குத்

> #. TRANSLATORS:
> #. Get translations for open and closing quotation marks.
> #. The message catalog should translate "`" to a left
> #. quotation mark suitable for the locale, and similarly for
> #. "'".  For example, a French Unicode local should translate
> #. these to U+00AB (LEFT-POINTING DOUBLE ANGLE
> #. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
> #. QUOTATION MARK), respectively.
> #.
> #. If the catalog has no translation, we will try to
> #. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
> #. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK).  If the
> #. current locale is not Unicode, locale_quoting_style
> #. will quote 'like this', and clocale_quoting_style will
> #. quote "like this".  You should always include translations
> #. for "`" and "'" even if U+2018 and U+2019 are appropriate
> #. for your locale.
> #.
> #. If you don't know what to put here, please see
> #. <https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
> #. and use glyphs suitable for your language.
> #: lib/quotearg.c:355
> msgid "`"
> msgstr "`"
>
> #: lib/quotearg.c:356
> msgid "'"
> msgstr "'"

According to
https://en.wikipedia.org/wiki/Quotation_marks_in_other_languages , for
Tamil, these should be translated to ‘ (U+2018) and ’ (U+2019)
respectively.

> #: lib/regcomp.c:128
> msgid "Invalid regular expression"
> msgstr "தவறான வழக்கமான வெளிப்பாடு"

We don't have a good Tamil translation for "regular expression". In
https://translationproject.org/PO-files/ta/grep-3.8.35.ta.po , I have
translated regular expression into தேடுகுறித்தொடர் based on what it is
used for most often---search. Regular expressions are really larger than
search, but we should probably stick with that translation until we have
better ideas.

> #: lib/regcomp.c:131
> msgid "Invalid collation character"
> msgstr "தவறான ஒப்பாய்வு வரியுரு"
>
> #: lib/regcomp.c:134
> msgid "Invalid character class name"
> msgstr "தவறான வரியுரு வகுப்பு பெயர்"
>
> #: lib/regcomp.c:137
> msgid "Trailing backslash"
> msgstr "தொடரும் பின்கீறல்"
>
> #: lib/regcomp.c:140
> msgid "Invalid back reference"
> msgstr "தவறான பின் குறிப்புதவி"
>
> #: lib/regcomp.c:143
> msgid "Unmatched [, [^, [:, [., or [="
> msgstr "பொருந்தாத [, [^, [:, [., அல்லது [="
>
> #: lib/regcomp.c:146
> msgid "Unmatched ( or \\("
> msgstr "பொருந்தாத ( அல்லது \\("
>
> #: lib/regcomp.c:149
> msgid "Unmatched \\{"
> msgstr "பொருந்தாத \\{"
>
> #: lib/regcomp.c:152
> msgid "Invalid content of \\{\\}"
> msgstr "\\{\\} இன் தவறான உள்ளடக்கம்"
>
> #: lib/regcomp.c:155
> msgid "Invalid range end"
> msgstr "தவறான வரம்பு இறுதி"
>
> #: lib/regcomp.c:158
> msgid "Memory exhausted"
> msgstr "நினைவகம் செலவாய்விட்டது"
>
> #: lib/regcomp.c:161
> msgid "Invalid preceding regular expression"
> msgstr "தவறான முந்தைய வழக்கமான வெளிப்பாடு"
>
> #: lib/regcomp.c:164
> msgid "Premature end of regular expression"
> msgstr "வழக்கமான வெளிப்பாட்டின் முழுமுதிர்வற்ற முடிவு"
>
> #: lib/regcomp.c:167
> msgid "Regular expression too big"
> msgstr "வழக்கமான வெளிப்பாடு மிகப்பெரியதாக உள்ளது"
>
> #: lib/regcomp.c:170
> msgid "Unmatched ) or \\)"
> msgstr "பொருந்தாத ) அல்லது \\)"
>
> #: lib/regcomp.c:650
> msgid "No previous regular expression"
> msgstr "முந்தைய வழக்கமான வெளிப்பாடு இல்லை"

All the above strings occur in
grep. https://translationproject.org/PO-files/ta/grep-3.8.35.ta.po Could
you copy the translations from there? Consistency is nice to have.

> #: lib/root-dev-ino.h:37
> #, c-format
> msgid "it is dangerous to operate recursively on %s"
> msgstr "%s இல் மீள் சுருளாக இயக்குவது ஆபத்தானது"

1. Avoid free suffix: இல் -> அடைவின் மீது

2. Better translation for this context: இயக்குவது -> செயலாற்றுவது

3. Shorter: ஆபத்தானது -> ஆபத்து

> #: lib/root-dev-ino.h:41
> #, c-format
> msgid "it is dangerous to operate recursively on %s (same as %s)"
> msgstr "%s இல் மீள் சுருளாக இயக்குவது ஆபத்தானது (%s போலவே)"

Likewise.

> #: lib/root-dev-ino.h:43
> #, c-format
> msgid "use --no-preserve-root to override this failsafe"
> msgstr "இந்த நொடிப்பு நிலைக்காப்பை மேலெழுத --no-preserve-root ஐ
> பயன்படுத்தவும்"

Looking at the code in lib/root-dev-ino.h, this message always occurs
immediately after one of the above two messages. So, a better
translation is "இம்முன்னெச்சரிக்கையைப் புறக்கணிக்க --no-preserve-root
செயல்மாற்றியைப் பயன்படுத்துக"

> #: lib/set-acl.c:46 src/copy.c:2670 src/cp.c:519
> #, c-format
> msgid "setting permissions for %s"
> msgstr "%s கான அனுமதிகளை அமைக்கிறது"

Avoid free suffix and improve translation: "%s கோப்புக்கு அனுமதிகள் அமைக்கப்படுகின்றன".

> #: lib/siglist.h:31
> msgid "Hangup"
> msgstr "தொங்கல்"

https://en.wikipedia.org/wiki/SIGHUP Hangup is an Unix signal that is
named after the act of "hanging up" or "cutting" a phone call. So,
துண்டிப்பு is a good translation.

> #: lib/siglist.h:40
> msgid "Illegal instruction"
> msgstr "சட்டத்திற்குப் புறம்பான அறிவுறுத்தல்"

Better translation: ஏற்கத்தகா ஆணை. ஆணை seems to be the Tamil word in vogue
for a CPU instruction.

> #: lib/siglist.h:43
> msgid "Trace/breakpoint trap"
> msgstr "தடயம்/முறிவு புள்ளி பொறி"

See earlier about "trap" being the same as "interrupt".

> #: lib/siglist.h:58
> msgid "Segmentation fault"
> msgstr "பிரிவு தவறு"

According to https://en.wikipedia.org/wiki/Segmentation_fault ,
segmentation faults are also known as memory access violations. So, we
may translate this as நினைவக அணுக்க மீறல்.

> #: lib/siglist.h:67
> msgid "Terminated"
> msgstr "முடிவடைந்தது"

This signal is sent to a process to request its termination. முடிவடைந்தது
sounds like the process has *completed* executing. It has not. So, the
better translation is நிறுத்தப்பட்டது.

> #: lib/siglist.h:70
> msgid "Urgent I/O condition"
> msgstr "அவசர உள்ளீடு / வெளியீடு நிலை"

Remove spaces before and after /.

> #: lib/siglist.h:73
> msgid "Stopped (signal)"
> msgstr "நிறுத்தப்பட்டது (சமிக்ஞை)"
>
> #: lib/siglist.h:76
> msgid "Stopped"
> msgstr "நிறுத்தப்பட்டது"

1. See earlier for "signal".

2. Here, the English "stopped" is a bit misleading. These Unix signals
cause a signal to be "paused", not stopped completely. So, we may better
translate to இடைநிறுத்தப்பட்டது.

> #: lib/siglist.h:82
> msgid "Child exited"
> msgstr "குழந்தை வெளியேறியது"

Here, "child" is in the context of a "child process". Children and
parents are a recurring theme in computing—think child processes and
parent process, child directories and parent directories, child nodes
and parent nodes. In Tamil, we could translate parent and child very
elegantly to தாய் and சேய் respectively. So, the above message would be
சேய் வெளியேறியது.

> #: lib/siglist.h:103
> msgid "Profiling timer expired"
> msgstr "புறஉரு வெட்டல் நேரங்காட்டி காலாவதியானது"

Here, profiling is the measurement of the time a program takes to
run. So, maybe translate profiling timer as இயங்குநேர ஆய்வு நேரங்காட்டி.

> #: lib/siglist.h:109
> msgid "User defined signal 1"
> msgstr "பயனர் வரையறுத்த சமிக்ஞை 1"
>
> #: lib/siglist.h:112
> msgid "User defined signal 2"
> msgstr "பயனர் வரையறுத்த சமிக்ஞை 2"

See earlier for சமிக்ஞை -> குறி.

> #: lib/siglist.h:117
> msgid "EMT trap"
> msgstr "EMT பொறி"

trap and interrupt are the same in our context. So we may translate them
the same. This string therefore becomes EMT குறுக்கீடு

> #: lib/siglist.h:120
> msgid "Bad system call"
> msgstr "தவறான முறைமை அழைப்பு"

See earlier about "system". This should be தவறான இயங்குதள அழைப்பு.

> #: lib/siglist.h:123
> msgid "Stack fault"
> msgstr "அடுக்கு தவறு"

Maybe அடுக்குச் சிக்கல். தவறு feels more like mistake (as in some person's
mistake) whereas சிக்கல் feels more like fault (as in a technical glitch).

> #: lib/siglist.h:128
> msgid "Power failure"
> msgstr "திறன் தோல்வி"

Power here is about electricity. So "மின்சார நிறுத்தம்" is the correct
translation.

> #: lib/siglist.h:131
> msgid "Resource lost"
> msgstr "வளம் துண்டிக்கப்பட்டது"

வளம் இழப்பு instead of வளம் துண்டிக்கப்பட்டது

> #: lib/strsignal.c:114
> #, c-format
> msgid "Real-time signal %d"
> msgstr "நிகழ் நேர சமிக்ஞை %d"
>
> #: lib/strsignal.c:118
> #, c-format
> msgid "Unknown signal %d"
> msgstr "அறியப்படாத சமிக்ஞை %d"

See earlier about "signal".

> #: lib/unicodeio.c:198
> #, c-format
> msgid "cannot convert U+%04X to local character set"
> msgstr "இங்கு U+%04X ஐ உள்ளூர் வரியுருக் கணமாக மாற்ற இயலவில்லை"

1. Delete இங்கு.

2. Avoid free suffix: ஐ -> வரியுருவை

3. Fix slight mistranslation: வரியுருக் கணமாக -> வரியுருக் கணத்திற்கு

4. Slightly more faithful to the original meaning: இயலவில்லை -> இயலாது

> #: lib/unicodeio.c:200
> #, c-format
> msgid "cannot convert U+%04X to local character set: %s"
> msgstr "இங்கு U+%04X ஐ உள்ளூர் வரியுரு கணமாக மாற்ற இயலவில்லை: %s"

Likewise.

> #: lib/userspec.c:165
> msgid "invalid spec"
> msgstr "தவறான விவரக்கூற்று"
>
> #: lib/userspec.c:174
> msgid "invalid user"
> msgstr "தவறான பயனர்"
>
> #: lib/userspec.c:207
> msgid "invalid group"
> msgstr "தவறான குழு"

invalid is probably better translated as ஏற்கத்தகா.

> #: lib/version-etc.c:73
> #, c-format
> msgid "Packaged by %s (%s)\n"
> msgstr "%s ஆல் பொதிக்கப்பட்டது (%s)\n"

Here, packaging is more like தொகுப்பு. So, "%s (%s) தொகுத்தது\n" is a
better translation. This also avoids the free suffix ஆல்.

> #: lib/version-etc.c:76
> #, c-format
> msgid "Packaged by %s\n"
> msgstr "%s ஆல் பொதிக்கப்பட்டது\n"

Likewise: %s தொகுத்தது\n

> #. TRANSLATORS: Translate "(C)" to the copyright symbol
> #. (C-in-a-circle), if this symbol is available in the user's
> #. locale.  Otherwise, do not translate "(C)"; leave it as-is.
> #: lib/version-etc.c:83
> msgid "(C)"
> msgstr "(C)"

This should be translated to © (U+00A9)

> #. TRANSLATORS: The %s placeholder is the web address of the GPL license.
> #: lib/version-etc.c:88
> #, c-format
> msgid ""
> "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
> "This is free software: you are free to change and redistribute it.\n"
> "There is NO WARRANTY, to the extent permitted by law.\n"
> msgstr ""
> "GPLv3+ உரிமம்: GNU GPL பதிப்பு 3 அல்லது அதற்கு மேல் <%s>.\n"
> "இது ஒரு கட்டற்ற மென்பொருள்: இதை மாற்றவும் மறுபகிர்வு செய்யவும் உங்களுக்கு சுதந்திரம் உள்ளது.\n"
> "சட்டத்தால் அனுமதிக்கப்பட்ட அளவிற்கு எந்த நம்புறுதியும் இல்லை.\n"

Nice! This is a really good translation! :-) Much better than the
translation I came up with for
hello. https://translationproject.org/PO-files/ta/hello-2.12.ta.po

"உரிமம் GPLv3+: GNU GPL மூன்றாம் பதிப்பு அல்லது அதற்குப் பின் உள்ள பதிப்புகள் ஏதேனும்\n"
"<http://gnu.org/licenses/gpl.html>\n"
"இது கட்டற்ற மென்பொருள். இதை மாற்றவோ மறுவிநியோகம் செய்யவோ உங்களுக்கு உரிமை உண்டு.\n"
"சட்டத்தால் அனுமதிக்கப்பட்ட அளவிற்கு எந்த உத்தரவாதமும் இல்லை.\n"

I particularly love that you found better translations for "redistribute"
and "warranty". That said, I do suggest the following three minor
corrections to make your translation even better.

இது ஒரு கட்டற்ற மென்பொருள் -> இதுக் கட்டற்ற மென்பொருள்
மறுபகிர்வு செய்யவும் -> பகிரவும்
சுதந்திரம் -> உரிமை

> #. TRANSLATORS: %s denotes an author name.
> #: lib/version-etc.c:105
> #, c-format
> msgid "Written by %s.\n"
> msgstr "%s ஆல் எழுதப்பட்டது.\n"

This can be "%s எழுதியது". This lets us avoid having ஆல், the free suffix
(விகுதி).

> #. TRANSLATORS: Each %s denotes an author name.
> #: lib/version-etc.c:109
> #, c-format
> msgid "Written by %s and %s.\n"
> msgstr "%s மற்றும் %s ஆல் எழுதப்பட்டது.\n"

Likewise, this can be "%s, %s எழுதியது". We avoid the free suffix ஆல்,
and we also avoid மற்றும். Unlike in English, we often don't need to have
an explicit "and" (மற்றும்) in Tamil. Tamil sentences often read better
without மற்றும்.

> #. TRANSLATORS: Each %s denotes an author name.
> #: lib/version-etc.c:113
> #, c-format
> msgid "Written by %s, %s, and %s.\n"
> msgstr "%s, %s, மற்றும் %s ஆல் எழுதப்பட்டது.\n"
>
> #. TRANSLATORS: Each %s denotes an author name.
> #. You can use line breaks, estimating that each author name occupies
> #. ca. 16 screen columns and that a screen line has ca. 80 columns.
> #: lib/version-etc.c:120
> #, c-format
> msgid ""
> "Written by %s, %s, %s,\n"
> "and %s.\n"
> msgstr ""
> "%s, %s, %s,\n"
> "மற்றும் %s ஆல் எழுதப்பட்டது.\n"
>
> #. TRANSLATORS: Each %s denotes an author name.
> #. You can use line breaks, estimating that each author name occupies
> #. ca. 16 screen columns and that a screen line has ca. 80 columns.
> #: lib/version-etc.c:127
> #, c-format
> msgid ""
> "Written by %s, %s, %s,\n"
> "%s, and %s.\n"
> msgstr ""
> "%s, %s, %s,\n"
> "%s, மற்றும் %s ஆல் எழுதப்பட்டது.\n"
>
> #. TRANSLATORS: Each %s denotes an author name.
> #. You can use line breaks, estimating that each author name occupies
> #. ca. 16 screen columns and that a screen line has ca. 80 columns.
> #: lib/version-etc.c:134
> #, c-format
> msgid ""
> "Written by %s, %s, %s,\n"
> "%s, %s, and %s.\n"
> msgstr ""
> "%s, %s, %s,\n"
> "%s, %s, மற்றும் %s ஆல் எழுதப்பட்டது.\n"
>
> #. TRANSLATORS: Each %s denotes an author name.
> #. You can use line breaks, estimating that each author name occupies
> #. ca. 16 screen columns and that a screen line has ca. 80 columns.
> #: lib/version-etc.c:142
> #, c-format
> msgid ""
> "Written by %s, %s, %s,\n"
> "%s, %s, %s, and %s.\n"
> msgstr ""
> "%s, %s, %s,\n"
> "%s, %s, %s, மற்றும் %s ஆல் எழுதப்பட்டது.\n"
>
> #. TRANSLATORS: Each %s denotes an author name.
> #. You can use line breaks, estimating that each author name occupies
> #. ca. 16 screen columns and that a screen line has ca. 80 columns.
> #: lib/version-etc.c:150
> #, c-format
> msgid ""
> "Written by %s, %s, %s,\n"
> "%s, %s, %s, %s,\n"
> "and %s.\n"
> msgstr ""
> "%s, %s, %s,\n"
> "%s, %s, %s, %s,\n"
> "மற்றும் %s ஆல் எழுதப்பட்டது.\n"
>
> #. TRANSLATORS: Each %s denotes an author name.
> #. You can use line breaks, estimating that each author name occupies
> #. ca. 16 screen columns and that a screen line has ca. 80 columns.
> #: lib/version-etc.c:159
> #, c-format
> msgid ""
> "Written by %s, %s, %s,\n"
> "%s, %s, %s, %s,\n"
> "%s, and %s.\n"
> msgstr ""
> "%s, %s, %s,\n"
> "%s, %s, %s, %s,\n"
> "%s, மற்றும் %s ஆல் எழுதப்பட்டது.\n"
>
> #. TRANSLATORS: Each %s denotes an author name.
> #. You can use line breaks, estimating that each author name occupies
> #. ca. 16 screen columns and that a screen line has ca. 80 columns.
> #: lib/version-etc.c:170
> #, c-format
> msgid ""
> "Written by %s, %s, %s,\n"
> "%s, %s, %s, %s,\n"
> "%s, %s, and others.\n"
> msgstr ""
> "%s, %s, %s,\n"
> "%s, %s, %s, %s,\n"
> "%s, %s, மற்றும் பலரால் எழுதப்பட்டது.\n"

Likewise for all the above.

> #. TRANSLATORS: The placeholder indicates the bug-reporting address
> #. for this package.  Please add _another line_ saying
> #. "Report translation bugs to <...>\n" with the address for translation
> #. bugs (typically your translation team's web or email address).
> #: lib/version-etc.c:249
> #, c-format
> msgid "Report bugs to: %s\n"
> msgstr "இந்த இடத்தில் வழுக்களைத் தெரிவிக்கவும்: %s\n"
>
> #: lib/version-etc.c:251
> #, c-format
> msgid "Report %s bugs to: %s\n"
> msgstr "இந்த இடத்தில் %s வழுக்களைத் தெரிவிக்கவும்: %s\n"
>
> #: lib/version-etc.c:260
> #, c-format
> msgid "General help using GNU software: <%s>\n"
> msgstr "GNU மென்பொருளைப் பயன்படுத்துவது குறித்த பொது உதவி: <%s>\n"

Please copy the above three translations from grep.

> #: lib/xbinary-io.c:37
> #, c-format
> msgid "failed to set file descriptor text/binary mode"
> msgstr "கோப்பு விவரிப்பியை உரை/இருமப் பயன்முறையை அமைப்பதில் தோல்வியடைந்தது"

As a general comment for all translations, தோல்வியுற்றது instead of
தோல்வியடைந்தது provides better literary taste (இலக்கிய நயம்! :-)).

> #: lib/xmemcoll.c:39 src/expr.c:926
> #, c-format
> msgid "string comparison failed"
> msgstr "சர ஒப்பீடு தோல்வியடைந்தது"

See earlier for தோல்வியுற்றது.

> #: lib/xmemcoll.c:40
> #, c-format
> msgid "Set LC_ALL='C' to work around the problem."
> msgstr "சிக்கலை தீர்க்க வேலை செய்வதற்கு LC_ALL='C' என அமைக்கவும்."

Omitting a few words and providing a bit more context: "சிக்கலைத் தீர்க்க
LC_ALL='C' சூழல்மாறியை அமைக்க."

> #: lib/xstrtol-error.c:63
> #, c-format
> msgid "invalid %s%s argument '%s'"
> msgstr "தவறான %s%s மதிப்புரு '%s'"

1. "invalid" may be better translated as ஏற்கத்தகா.

2. See earlier for argument.

> #: lib/xstrtol-error.c:68
> #, c-format
> msgid "invalid suffix in %s%s argument '%s'"
> msgstr "%s%s மதிப்புருவில் தவறான பின்னொட்டு '%s'"
>
> #: lib/xstrtol-error.c:72
> #, c-format
> msgid "%s%s argument '%s' too large"
> msgstr "%s%s மதிப்புரு '%s' மிகப்பெரியதாக உள்ளது"

1. See earlier for argument.

2. மிகப்பெரியதாக உள்ளது -> மிகப் பெரியது

> #. This is a proper name. See the gettext manual, section Names.
> #: src/basename.c:29 src/chgrp.c:38 src/chmod.c:39 src/chown.c:37 src/comm.c:39
> #: src/cp.c:44 src/csplit.c:46 src/cut.c:45 src/date.c:40 src/dd.c:44
> #: src/df.c:49 src/dirname.c:32 src/du.c:55 src/env.c:39 src/expand.c:48
> #: src/fold.c:36 src/groups.c:36 src/head.c:47 src/id.c:42 src/install.c:51
> #: src/ln.c:46 src/ls.c:133 src/digest.c:136 src/mkdir.c:39 src/mkfifo.c:36
> #: src/mknod.c:37 src/mv.c:43 src/nice.c:40 src/nl.c:42 src/paste.c:53
> #: src/pathchk.c:32 src/pinky.c:38 src/printenv.c:44 src/printf.c:69
> #: src/rm.c:41 src/rmdir.c:37 src/stty.c:68 src/tac.c:58 src/tail.c:78
> #: src/tee.c:38 src/touch.c:45 src/tty.c:44 src/uname.c:56 src/unexpand.c:49
> #: src/uniq.c:41 src/uptime.c:46 src/users.c:36 src/wc.c:54 src/who.c:51
> #: src/yes.c:32
> msgid "David MacKenzie"
> msgstr "David MacKenzie"

We should transliterate this proper name to the Tamil script.

> #: src/basename.c:48
> #, c-format
> msgid ""
> "Usage: %s NAME [SUFFIX]\n"
> "  or:  %s OPTION... NAME...\n"
> msgstr ""
> "பயன்பாடு: %s பெயர் [பின்னொட்டு]\n"
> "  அல்லது:  %s விருப்பத்தேர்வு... பெயர்...\n"

1. See earlier for "option".

2. We follow the convention of putting placeholders such as NAME, SUFFIX
and OPTION (shown in capitals in English) within angled brackets. So,
"<பெயர்>" instead of just "பெயர்", "<பின்னொட்டு>" instead of just
"பின்னொட்டு", etc.

> #: src/basename.c:53
> msgid ""
> "Print NAME with any leading directory components removed.\n"
> "If specified, also remove a trailing SUFFIX.\n"
> msgstr ""
> "நீக்கப்பட்ட ஏதாவது முன்னணி அடைவு கூறுகள் உடன் பெயரை அச்சிடும்.\n"

This is a mistranslation. Correct translation: "முன்னணி அடைவு கூறுகளை
நீக்கி <பெயரைக்> காட்டு."

> "குறிப்பிட்டால், தொடரும் பின்னொட்டை கூட நீக்கும்.\n"

Better: "குறிப்பிட்டால், <பின்னொட்டையும்> நீக்கு.\n"

In the above, also note

1. the angled brackets used for placeholders

2. the use of the imperative (நீக்கு instead of நீக்கும்). The imperative is
more succinct and better suited for command synopses such as these.

3. the word "trailing" is dropped in the translation since it doesn't
add much to the meaning and தொடரும் feels a bit awkward. I would like to
make the general point that it is not necessary to make a literal
translation. It is ok to drop words in the translation if it improves
the translation. The goal is to produce a sentence in Tamil that evokes
the same meaning as in English but doesn't have to be a faithful
one-to-one map.

> #: src/basename.c:60
> msgid ""
> "  -a, --multiple       support multiple arguments and treat each as a NAME\n"
> "  -s, --suffix=SUFFIX  remove a trailing SUFFIX; implies -a\n"
> "  -z, --zero           end each output line with NUL, not newline\n"
> msgstr ""
> "  -a, --multiple             பல மதிப்புருக்களை ஆதரித்து அவை ஒவ்வொன்றையும் பெயராகக் கருதுகிறது\n"
> "  -s, --suffix=பின்னொட்டு        தொடரும் பின்னொட்டை நீக்குகிறது; -a வை உணர்த்துகிறது\n"
> "  -z, --zero              NUL ஐ கொண்டு ஒவ்வொரு வெளியீடு வரியையும்
> முடிக்கிறது, newline ஐ கொண்டு அல்ல\n"

1. support should be translated as ஏற்று not ஆதரித்து. ஆதரித்து feels
suitable only when supporting a person or cause, not when supporting
multiple arguments

2. see use of imperative from earlier: கருதுகிறது -> கருது, நீக்குகிறது ->
நீக்கு, etc.

3. see earlier about "argument".

4. see avoiding free suffixes from earlier.

So "support multiple arguments and treat each as a NAME" should be
translated as பலச் செயலுருபுகளை ஏற்று ஒவ்வொன்றையும் <பெயராகக்> கருது

"remove a trailing SUFFIX; implies -a" should be translated as
<பின்னொட்டை> நீக்கு; -a அளித்தது போன்று

"end each output line with NUL, not newline" should be translated as NUL
வரியுரு கொண்டு வரியையும் முடி, newline வரியுரு கொண்டல்ல.

> #: src/basename.c:67
> #, c-format
> msgid ""
> "\n"
> "Examples:\n"
> "  %s /usr/bin/sort          -> \"sort\"\n"
> "  %s include/stdio.h .h     -> \"stdio\"\n"
> "  %s -s .h include/stdio.h  -> \"stdio\"\n"
> "  %s -a any/str1 any/str2   -> \"str1\" followed by \"str2\"\n"
> msgstr ""
> "\n"
> "எடுத்துக்காட்டு:\n"
> "  %s /usr/bin/sort          -> \"sort\"\n"
> "  %s include/stdio.h .h     -> \"stdio\"\n"
> "  %s -s .h include/stdio.h  -> \"stdio\"\n"
> "  %s -a any/str1 any/str2   -> \"str1\" ஐ தொடர்ந்து \"str2\"\n"

Avoid free suffix: \"str1\" ஐ தொடர்ந்து \"str2\" -> \"str1\" பின் \"str2\"

> #: src/basename.c:170 src/chcon.c:537 src/chgrp.c:279 src/chmod.c:530
> #: src/chown.c:281 src/chroot.c:279 src/comm.c:488 src/csplit.c:1367
> #: src/dirname.c:116 src/expr.c:347 src/join.c:1163 src/link.c:76
> #: src/mkdir.c:261 src/mkfifo.c:135 src/mknod.c:176 src/nohup.c:107
> #: src/pathchk.c:147 src/printf.c:709 src/readlink.c:145 src/realpath.c:237
> #: src/rm.c:338 src/rmdir.c:239 src/seq.c:635 src/sleep.c:116 src/stat.c:1950
> #: src/stdbuf.c:371 src/tr.c:1756 src/unlink.c:74
> #, c-format
> msgid "missing operand"
> msgstr "செயலுட்படுத்தி காணவில்லை"

1. In this context, operand is the same as argument. So, operand may be
translated as செயலுருபு.

2. This string is an error message that comes up when the user forgot to
provide an argument. So, in this context, "missing" is better as
translated as வழங்கப்படவில்லை or even just இல்லை.

> #: src/basename.c:176 src/basenc.c:1221 src/comm.c:496 src/cp.c:598
> #: src/date.c:518 src/dircolors.c:477 src/du.c:1019 src/hostid.c:72
> #: src/hostname.c:93 src/install.c:942 src/join.c:973 src/link.c:84
> #: src/ln.c:594 src/logname.c:70 src/mknod.c:187 src/mv.c:393 src/nproc.c:115
> #: src/od.c:1872 src/ptx.c:1978 src/seq.c:641 src/shuf.c:491 src/sort.c:4679
> #: src/split.c:1559 src/tr.c:1771 src/tsort.c:547 src/tty.c:113 src/uname.c:265
> #: src/uniq.c:521 src/uniq.c:538 src/unlink.c:80 src/uptime.c:252
> #: src/users.c:145 src/wc.c:865 src/who.c:831 src/whoami.c:78
> #, c-format
> msgid "extra operand %s"
> msgstr "கூடுதல் செயலுட்படுத்தி %s"

See earlier about operand.


  parent reply	other threads:[~2023-04-04  0:58 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-24  9:15 Anderson Ivanovich
2023-03-24 13:58 ` Arun Isaac
2023-03-25 20:15   ` Arun Isaac
2023-04-04  0:58 ` Arun Isaac [this message]
2023-04-05 11:34   ` Anderson Ivanovich
2023-04-10 23:26     ` Arun Isaac
2023-04-11  5:33       ` Anderson Ivanovich
2023-04-12 23:01         ` Arun Isaac

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87edp05upe.fsf@systemreboot.net \
    --to=arunisaac@systemreboot.net \
    --cc=ivanovicha350@gmail.com \
    --cc=tamil@systemreboot.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox