diff --git a/po/LINGUAS b/po/LINGUAS
index 24cac49..8a98343 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -2,3 +2,4 @@ de
fr
pl
pt
+tr
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..deb13df
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,529 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: pv 1.8.14\n"
+"Report-Msgid-Bugs-To: pv@ivarch.com\n"
+"POT-Creation-Date: 2024-10-06 00:14+0100\n"
+"Language-Team: Turkish \n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/main/help.c:284
+msgid "show progress bar"
+msgstr ""
+
+#: src/main/help.c:287
+msgid "show elapsed time"
+msgstr ""
+
+#: src/main/help.c:290
+msgid "show estimated time of arrival (completion)"
+msgstr ""
+
+#: src/main/help.c:293
+msgid "show absolute estimated time of arrival (completion)"
+msgstr ""
+
+#: src/main/help.c:296
+msgid "show data transfer rate counter"
+msgstr ""
+
+#: src/main/help.c:299
+msgid "show data transfer average rate counter"
+msgstr ""
+
+#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
+msgid "SEC"
+msgstr ""
+
+#: src/main/help.c:302
+msgid "compute average rate over past SEC seconds (default 30s)"
+msgstr ""
+
+#: src/main/help.c:305
+msgid "show number of bytes transferred"
+msgstr ""
+
+#: src/main/help.c:308
+msgid "show number of bits transferred"
+msgstr ""
+
+#: src/main/help.c:311
+msgid "treat suffixes as multiples of 1000 rather than 1024"
+msgstr ""
+
+#: src/main/help.c:314
+msgid "show percentage of transfer buffer in use"
+msgstr ""
+
+#: src/main/help.c:316
+msgid "NUM"
+msgstr ""
+
+#: src/main/help.c:317
+msgid "show NUM bytes last written"
+msgstr ""
+
+#: src/main/help.c:319
+msgid "FORMAT"
+msgstr ""
+
+#: src/main/help.c:320
+msgid "set output format to FORMAT"
+msgstr ""
+
+#: src/main/help.c:323
+msgid "output transfer statistics at the end"
+msgstr ""
+
+#: src/main/help.c:326
+msgid "output percentages, not visual information"
+msgstr ""
+
+#: src/main/help.c:329
+msgid "do not output any transfer information at all"
+msgstr ""
+
+#: src/main/help.c:333
+msgid "display nothing until first byte transferred"
+msgstr ""
+
+#: src/main/help.c:336
+msgid "display nothing until SEC seconds have passed"
+msgstr ""
+
+#: src/main/help.c:338
+msgid "SIZE"
+msgstr ""
+
+#: src/main/help.c:339
+msgid "set estimated data size to SIZE bytes"
+msgstr ""
+
+#: src/main/help.c:342
+msgid "if size unknown, show rate vs max rate"
+msgstr ""
+
+#: src/main/help.c:345
+msgid "count lines instead of bytes"
+msgstr ""
+
+#: src/main/help.c:348
+msgid "lines are null-terminated"
+msgstr ""
+
+#: src/main/help.c:351
+msgid "update every SEC seconds"
+msgstr ""
+
+#: src/main/help.c:353
+msgid "WIDTH"
+msgstr ""
+
+#: src/main/help.c:354
+msgid "assume terminal is WIDTH characters wide"
+msgstr ""
+
+#: src/main/help.c:356
+msgid "HEIGHT"
+msgstr ""
+
+#: src/main/help.c:357
+msgid "assume terminal is HEIGHT rows high"
+msgstr ""
+
+#: src/main/help.c:359
+msgid "NAME"
+msgstr ""
+
+#: src/main/help.c:360
+msgid "prefix visual information with NAME"
+msgstr ""
+
+#: src/main/help.c:363
+msgid "output even if standard error is not a terminal"
+msgstr ""
+
+#: src/main/help.c:366
+msgid "use cursor positioning escape sequences"
+msgstr ""
+
+#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
+#: src/main/help.c:423
+msgid "FILE"
+msgstr ""
+
+#: src/main/help.c:370
+msgid "write output to FILE instead of stdout"
+msgstr ""
+
+#: src/main/help.c:372
+msgid "RATE"
+msgstr ""
+
+#: src/main/help.c:373
+msgid "limit transfer to RATE bytes per second"
+msgstr ""
+
+#: src/main/help.c:375 src/main/help.c:384
+msgid "BYTES"
+msgstr ""
+
+#: src/main/help.c:376
+msgid "use a buffer size of BYTES"
+msgstr ""
+
+#: src/main/help.c:379
+msgid "never use splice(), always use read/write"
+msgstr ""
+
+#: src/main/help.c:382
+msgid "skip read errors in input"
+msgstr ""
+
+#: src/main/help.c:385
+msgid "skip errors in BYTES blocks at a time"
+msgstr ""
+
+#: src/main/help.c:388
+msgid "stop after --size bytes have been transferred"
+msgstr ""
+
+#: src/main/help.c:391
+msgid "flush cache to disk after every write"
+msgstr ""
+
+#: src/main/help.c:394
+msgid "use direct I/O to bypass cache"
+msgstr ""
+
+#: src/main/help.c:397
+msgid "discard input instead of writing to output"
+msgstr ""
+
+#: src/main/help.c:400
+msgid "write all input to FILE before writing to output"
+msgstr ""
+
+#: src/main/help.c:403
+msgid "PID"
+msgstr ""
+
+#: src/main/help.c:404
+msgid "update settings of process PID"
+msgstr ""
+
+#: src/main/help.c:409
+msgid "save process ID in FILE"
+msgstr ""
+
+#: src/main/help.c:412
+msgid "PID[:FD]"
+msgstr ""
+
+#: src/main/help.c:413
+msgid "watch file FD opened by process PID"
+msgstr ""
+
+#: src/main/help.c:417
+msgid "show this help and exit"
+msgstr ""
+
+#: src/main/help.c:420
+msgid "show version information and exit"
+msgstr ""
+
+#: src/main/help.c:424
+msgid "write debug logs to FILE"
+msgstr ""
+
+#: src/main/help.c:449
+#, c-format
+msgid "Usage: %s [OPTION] [FILE]..."
+msgstr ""
+
+#: src/main/help.c:460
+msgid ""
+"Concatenate FILE(s), or standard input, to standard output, with monitoring."
+msgstr ""
+
+#: src/main/help.c:597
+#, c-format
+msgid "Please report any bugs to: %s"
+msgstr ""
+
+#: src/main/main.c:214
+msgid "(input)"
+msgstr ""
+
+#: src/main/main.c:299
+msgid "state allocation failed"
+msgstr ""
+
+#: src/main/options.c:140 src/pv/file.c:324
+msgid "failed to stat file"
+msgstr ""
+
+#: src/main/options.c:154
+msgid "is a directory"
+msgstr ""
+
+#: src/main/options.c:183
+msgid "failed to generate sysfs filename"
+msgstr ""
+
+#: src/main/options.c:205
+msgid "failed to read sysfs size file"
+msgstr ""
+
+#: src/main/options.c:225
+msgid "failed to open block device"
+msgstr ""
+
+#: src/main/options.c:235
+msgid "failed to determine size of block device"
+msgstr ""
+
+#: src/main/options.c:339
+msgid "option structure allocation failed"
+msgstr ""
+
+#: src/main/options.c:358
+msgid "option structure argv allocation failed"
+msgstr ""
+
+#: src/main/options.c:420
+msgid "integer argument expected"
+msgstr ""
+
+#: src/main/options.c:431
+msgid "numeric argument expected"
+msgstr ""
+
+#: src/main/options.c:442
+msgid "process ID or pid:fd pair expected"
+msgstr ""
+
+#: src/main/options.c:449
+msgid "invalid process ID"
+msgstr ""
+
+#: src/main/options.c:666
+#, c-format
+msgid "Try `%s --help' for more information."
+msgstr ""
+
+#: src/main/options.c:668
+#, c-format
+msgid "Try `%s -h' for more information."
+msgstr ""
+
+#: src/main/options.c:699
+msgid ""
+"cannot use line mode or transfer modifier options when watching file "
+"descriptors"
+msgstr ""
+
+#: src/main/options.c:708
+msgid "cannot use cursor positioning when watching file descriptors"
+msgstr ""
+
+#: src/main/options.c:717
+msgid "cannot use remote control when watching file descriptors"
+msgstr ""
+
+#: src/main/options.c:726
+msgid "cannot transfer files when watching file descriptors"
+msgstr ""
+
+#: src/main/options.c:741
+msgid "not available on systems without /proc/self/fdinfo"
+msgstr ""
+
+#: src/main/remote.c:302
+msgid "message not received"
+msgstr ""
+
+#: src/main/remote.c:429
+msgid "SA_SIGINFO not supported on this system"
+msgstr ""
+
+#: src/main/version.c:28
+msgid "License: GPLv3+ "
+msgstr ""
+
+#: src/main/version.c:29
+msgid "This is free software: you are free to change and redistribute it."
+msgstr ""
+
+#: src/main/version.c:30
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr ""
+
+#: src/main/version.c:32
+msgid "Project web site"
+msgstr ""
+
+#: src/pv/cursor.c:61
+msgid "failed to get terminal name"
+msgstr ""
+
+#: src/pv/cursor.c:106
+msgid "failed to open lock file"
+msgstr ""
+
+#: src/pv/cursor.c:139
+msgid "lock attempt failed"
+msgstr ""
+
+#: src/pv/cursor.c:400
+msgid "failed to open terminal"
+msgstr ""
+
+#: src/pv/display.c:230
+msgid "yzafpnum kMGTPEZY"
+msgstr ""
+
+#: src/pv/display.c:248
+msgid "yzafpnum KMGTPEZY"
+msgstr ""
+
+#: src/pv/display.c:675 src/pv/transfer.c:1010
+msgid "buffer allocation failed"
+msgstr ""
+
+#: src/pv/display.c:804
+msgid "b"
+msgstr ""
+
+#: src/pv/display.c:807 src/pv/transfer.c:602
+msgid "B"
+msgstr ""
+
+#: src/pv/display.c:851 src/pv/display.c:866 src/pv/display.c:1085
+#: src/pv/loop.c:549
+msgid "b/s"
+msgstr ""
+
+#: src/pv/display.c:855 src/pv/display.c:870 src/pv/display.c:1089
+msgid "/s"
+msgstr ""
+
+#: src/pv/display.c:855 src/pv/display.c:870 src/pv/display.c:1089
+#: src/pv/loop.c:549
+msgid "B/s"
+msgstr ""
+
+#: src/pv/display.c:898 src/pv/display.c:902
+msgid "ETA"
+msgstr ""
+
+#: src/pv/display.c:968
+msgid "FIN"
+msgstr ""
+
+#: src/pv/file.c:149
+msgid "failed to seek to start of output"
+msgstr ""
+
+#: src/pv/file.c:294
+msgid "failed to close file"
+msgstr ""
+
+#: src/pv/file.c:317
+msgid "failed to read file"
+msgstr ""
+
+#: src/pv/file.c:332
+msgid "failed to stat output file"
+msgstr ""
+
+#: src/pv/file.c:354
+msgid "input file is output file"
+msgstr ""
+
+#: src/pv/file.c:412
+msgid "(none)"
+msgstr ""
+
+#: src/pv/file.c:414
+msgid "(stdin)"
+msgstr ""
+
+#: src/pv/loop.c:548
+msgid "rate min/avg/max/mdev"
+msgstr ""
+
+#: src/pv/loop.c:560
+msgid "rate not measured"
+msgstr ""
+
+#: src/pv/loop.c:766 src/pv/loop.c:817 src/pv/loop.c:858 src/pv/watchpid.c:99
+#: src/pv/watchpid.c:109 src/pv/watchpid.c:120 src/pv/watchpid.c:128
+#: src/pv/watchpid.c:165 src/pv/watchpid.c:184 src/pv/watchpid.c:192
+#: src/pv/watchpid.c:202 src/pv/watchpid.c:293 src/pv/watchpid.c:301
+#: src/pv/watchpid.c:377 src/pv/watchpid.c:398
+msgid "pid"
+msgstr ""
+
+#: src/pv/state.c:40
+msgid "history structure allocation failed"
+msgstr ""
+
+#: src/pv/state.c:509 src/pv/state.c:520
+msgid "file list allocation failed"
+msgstr ""
+
+#: src/pv/transfer.c:464
+msgid "read failed"
+msgstr ""
+
+#: src/pv/transfer.c:487
+msgid "warning: read errors detected"
+msgstr ""
+
+#: src/pv/transfer.c:503
+msgid "file is not seekable"
+msgstr ""
+
+#: src/pv/transfer.c:581
+msgid "failed to seek past error"
+msgstr ""
+
+#: src/pv/transfer.c:601
+msgid "skipped past read error"
+msgstr ""
+
+#: src/pv/transfer.c:642
+msgid "no transfer buffer allocated"
+msgstr ""
+
+#: src/pv/transfer.c:684
+msgid "failed to set interval timer"
+msgstr ""
+
+#: src/pv/transfer.c:710
+msgid "failed to clear interval timer"
+msgstr ""
+
+#: src/pv/transfer.c:740
+msgid "line positions"
+msgstr ""
+
+#: src/pv/transfer.c:871
+msgid "write failed"
+msgstr ""
+
+#: src/pv/transfer.c:1108
+msgid "select call failed"
+msgstr ""
+
+#: src/pv/watchpid.c:109 src/pv/watchpid.c:121 src/pv/watchpid.c:130
+#: src/pv/watchpid.c:184 src/pv/watchpid.c:193 src/pv/watchpid.c:204
+msgid "fd"
+msgstr ""
+
+#: src/pv/watchpid.c:130 src/pv/watchpid.c:204
+msgid "not a regular file or block device"
+msgstr ""