Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added தமிழ் translation file - ta.po #3723

Merged
merged 21 commits into from Apr 4, 2024
Merged

Conversation

TamilNeram
Copy link
Contributor

@TamilNeram TamilNeram commented Dec 17, 2023

Tamil Translation updated

@b4n
Copy link
Member

b4n commented Dec 17, 2023

Thanks for your contribution!

However, there are a few things that should be fixed before we integrate the new translation;

$ msgfmt --check po/ta.po
po/ta.po:2383: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 2, the character 'U' is not a valid conversion specifier.
po/ta.po:2453: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2458: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2468: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2536: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2569: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2694: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2809: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2854: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2864: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:2871: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2880: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2899: number of format specifications in 'msgid' and 'msgstr' does not match
po/ta.po:2904: format specifications in 'msgid' and 'msgstr' for argument 2 are not the same
po/ta.po:2909: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2953: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:2964: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:2973: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2980: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2985: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:2992: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:2997: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:3018: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:3023: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:3028: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:3036: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:3057: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:3238: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:3248: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:3313: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:4064: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4072: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4077: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4119: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:4145: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4157: 'msgid' and 'msgstr' entries do not both begin with '\n'
po/ta.po:4167: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4212: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4245: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:4310: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4315: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4327: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 2 is not a valid conversion specifier.
po/ta.po:4374: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4393: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4398: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4411: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4416: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4425: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4434: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the character 'D' is not a valid conversion specifier.
po/ta.po:4448: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4453: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4458: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4467: format specifications in 'msgid' and 'msgstr' for argument 1 are not the same
po/ta.po:4476: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4669: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the character 'U' is not a valid conversion specifier.
po/ta.po:4708: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4728: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4774: 'msgid' and 'msgstr' entries do not both end with '\n'
po/ta.po:4795: 'msgid' and 'msgstr' entries do not both end with '\n'
po/ta.po:4817: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4832: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4837: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4854: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:4861: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 2 is not a valid conversion specifier.
po/ta.po:5018: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:5023: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:5030: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:5142: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:5179: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:6045: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:6050: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 2 is not a valid conversion specifier.
po/ta.po:6180: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:6185: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
po/ta.po:6190: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: The character that terminates the directive number 1 is not a valid conversion specifier.
msgfmt: found 76 fatal errors

Hint: if the translation has thec-format flag, the placeholders (like %s, %d, %u, see man 3 printf) need to be the exact same ones (no %U when it was %u), and if the order has to be changed, you need to specify this explicitly using the %m$ syntax -- again, see the manual for printf().

Don't hesitate to run msgfmt --check ta.po on your end as well to verify everything is OK on that regard.

We'll also have to add ta to po/LINGUAS, but that we can also do ourselves, though it's easy:

diff --git a/po/LINGUAS b/po/LINGUAS
index e2931f8fa..1979150e6 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-ar ast be bg ca cs da de el en_GB es et eu fa fi fr gl he hi hu id ie it ja kk ko ku lb lt lv mn nl nn pl pt pt_BR ro ru sk sl sr sv tr uk vi zh_CN zh_TW
+ar ast be bg ca cs da de el en_GB es et eu fa fi fr gl he hi hu id ie it ja kk ko ku lb lt lv mn nl nn pl pt pt_BR ro ru sk sl sr sv ta tr uk vi zh_CN zh_TW

@b4n
Copy link
Member

b4n commented Dec 18, 2023

$ LANGUAGE=C msgfmt --check po/ta.po
po/ta.po:4723: 'msgid' and 'msgstr' entries do not both end with '\n'
msgfmt: found 1 fatal error

@TamilNeram
Copy link
Contributor Author

I am able to generate the Messages.mo file with the command
% LANGUAGE=C msgfmt --check po/ta.po

I don't see the error that you are seeing. Hopefully that error is gone after the last commit (f9f5e64).

Hope this helps.

@b4n
Copy link
Member

b4n commented Dec 19, 2023

@TamilNeram yes, passes the check for me as well 👍

Note however that some mnemonics (menu/button accelerators accessible via Alt+letter after the underscore) are missing in your translation. That's OK, it's not a blocker, but you might want to see whether that's something that could be improved:

$ LANGUAGE=C msgfmt --check --check-accelerators=_ po/ta.po
po/ta.po:55: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:63: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:67: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:121: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:563: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:567: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:608: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:811: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:823: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1744: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1784: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1792: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1816: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1856: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1864: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1880: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1904: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1916: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1924: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1932: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1936: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:1940: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2024: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2040: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2064: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2129: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2137: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2149: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2165: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2213: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2217: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2221: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2225: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2473: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2671: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:2946: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:3145: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:3153: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:3221: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:3225: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:3229: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:3233: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4057: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4061: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4143: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4401: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4445: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4481: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4485: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4505: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4563: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4572: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:4758: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:5009: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:5021: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:5131: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:5910: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:5919: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:5967: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:5975: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:6125: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:6129: msgstr lacks the keyboard accelerator mark '_'
po/ta.po:6141: msgstr lacks the keyboard accelerator mark '_'
msgfmt: found 63 fatal errors

po/ta.po Outdated Show resolved Hide resolved
po/ta.po Outdated Show resolved Hide resolved
po/ta.po Outdated Show resolved Hide resolved
@TamilNeram
Copy link
Contributor Author

Fixed all issues with mnemonics and reviewed all translations as well

reviewed and cleanup
@TamilNeram
Copy link
Contributor Author

Reviewed and cleaned up all the messages. please merge.

@TamilNeram
Copy link
Contributor Author

@b4n, Please let me if any changes to be done from my end for this PR.

@TamilNeram
Copy link
Contributor Author

@b4n, @crayxt, Please let me know approximate timeline for this PR to be merged ?

@crayxt
Copy link
Contributor

crayxt commented Mar 9, 2024

Please let me know approximate timeline for this PR to be merged ?

@TamilNeram
Sorry I am not an admin here, just a contributor like yourself

@TamilNeram TamilNeram requested a review from b4n March 10, 2024 01:40
@frlan frlan merged commit 1735dae into geany:master Apr 4, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants