Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
f0ec5c6
Add bash completion
fluks Oct 12, 2021
66e3d37
Drop colors using -no-ansi option
fluks Oct 13, 2021
5b81b42
add swap command to repl
Levy9Collision Jan 29, 2022
6cb545d
Languages: update Assamese (Google support)
soimort Jun 7, 2022
71e740c
Languages: add Aymara
soimort Jun 7, 2022
dbe89f7
Languages: add Bambara
soimort Jun 7, 2022
6d24c0e
Languages: add Bhojpuri
soimort Jun 7, 2022
151544b
Languages: add Dhivehi
soimort Jun 8, 2022
86de458
Languages: add Dogri
soimort Jun 8, 2022
d8cac5b
Languages: add Ewe
soimort Jun 8, 2022
87700d1
Languages: update Guarani (Google support)
soimort Jun 8, 2022
772dc0b
Languages: add Ilocano
soimort Jun 8, 2022
9afa0ae
Languages: add Konkani
soimort Jun 8, 2022
aefd8fb
Languages: add Krio
soimort Jun 8, 2022
07988f0
Languages: update Kurdish dialects (Google support)
soimort Jun 8, 2022
30b0e84
Languages: add Lingala
soimort Jun 8, 2022
4570ccf
Languages: add Luganda
soimort Jun 8, 2022
394bf08
Languages: add Maithili
soimort Jun 8, 2022
703b1a7
Languages: add Meiteilon
soimort Jun 8, 2022
0f3a39f
Languages: add Mizo
soimort Jun 8, 2022
0b93200
Languages: update Oromo (Google support)
soimort Jun 8, 2022
7946cd8
Languages: update Odia / Oriya (alternative name)
soimort Jun 8, 2022
4af3b12
Languages: add Quechua
soimort Jun 8, 2022
239fc08
Languages: add Sanskrit
soimort Jun 8, 2022
b81a584
Languages: add Sepedi
soimort Jun 8, 2022
3c8be0f
Languages: update Tigrinya (Google support)
soimort Jun 8, 2022
caa435e
Languages: add Tsonga
soimort Jun 8, 2022
ed17102
Languages: add Twi
soimort Jun 8, 2022
d7a635c
Translators/BingTranslator: update (close #319, #406)
soimort Jun 9, 2022
63cd592
Languages: 正體中文 -> 繁體中文 (close #438)
soimort Jun 9, 2022
7fc12b4
Languages: add endonym2 to LocaleAlias
soimort Jun 9, 2022
03a0ca8
Help: fix formatting of reference table
soimort Jun 9, 2022
c615472
Languages: update section A
soimort Jun 9, 2022
7ade291
Languages: improve getDetails()
soimort Jun 9, 2022
ce0ee52
split Languages to LanguageData and LanguageHelper
soimort Jun 9, 2022
292fd6f
Makefile: fix make check
soimort Jun 9, 2022
4dc7bd5
LanguageHelper: improve getDetails() for language isolates
soimort Jun 10, 2022
10a1db1
Languages: update section B
soimort Jun 10, 2022
6e5eccc
Translators/BingTranslator: bs-Latn -> bs
soimort Jun 10, 2022
0fa4662
Languages: update section C
soimort Jun 12, 2022
a66345e
LanguageHelper: improve getDetails() for writing systems
soimort Jun 12, 2022
764f20f
Languages: update section D
soimort Jun 14, 2022
db6100e
LanguageData: empty string should not be an alias (fix #436)
soimort Jun 16, 2022
66379d1
LanguageData: Artificial Language -> Constructed language
soimort Jun 16, 2022
7ba78ac
LanguageData: update section E
soimort Jul 29, 2022
7480665
LanguageData: remove Emoji
soimort Jul 29, 2022
8e6fdd6
LanguageData: update section F
soimort Jul 29, 2022
5ae3064
Translators/BingTranslator: fix for Filipino
soimort Jul 29, 2022
4ce49d8
LanguageData: update section G
soimort Jul 31, 2022
a34b412
LanguageData: update section H
soimort Jul 31, 2022
4c34384
Translators/BingTranslator: fix for Hmong Daw
soimort Jul 31, 2022
475b1f7
LanguageData: update section I
soimort Aug 1, 2022
e0655c1
LanguageData: add 4 Inuit languages
soimort Aug 1, 2022
249e244
LanguageHelper: getDescription()
soimort Aug 1, 2022
dad375a
LanguageHelper: scriptName(): add Cans
soimort Aug 1, 2022
582dd24
LanguageData: update section J
soimort Aug 2, 2022
2b45223
LanguageData: update section K
soimort Aug 2, 2022
c96104f
Translators/BingTranslator: fix for Kurdish
soimort Aug 2, 2022
a978fa3
LanguageData: remove tlh-Piqd which Bing does not seem to support any…
soimort Aug 2, 2022
6dfc91c
LanguageData: update section L
soimort Aug 3, 2022
f9cae6e
LanguageData: update section M
soimort Aug 3, 2022
b0b8f05
LanguageHelper: scriptName(): add Mong
soimort Aug 3, 2022
228ede4
Translators/BingTranslator: fix for Mongolian (Cyrillic)
soimort Aug 3, 2022
a26fa54
LanguageData: update section N
soimort Aug 4, 2022
65b389a
LanguageData: update section O
soimort Aug 4, 2022
ac13cc3
LanguageData: update section P
soimort Aug 5, 2022
0fef352
LanguageData: update section Q
soimort Aug 5, 2022
ab991a7
LanguageData: update section R
soimort Aug 6, 2022
b67e4a0
LanguageData: update section S
soimort Aug 7, 2022
5122849
LanguageData: update section T
soimort Aug 7, 2022
511fc9f
LanguageData: update section U
soimort Aug 7, 2022
b7e8afd
LanguageData: update section V
soimort Aug 7, 2022
ac5f88c
LanguageData: update section W
soimort Aug 7, 2022
3aa66ad
LanguageData: update section X
soimort Aug 7, 2022
22a1a6d
LanguageData: update section Y & Z
soimort Aug 8, 2022
a857491
LanguageHelper: prefer showing description
soimort Aug 10, 2022
b27c400
Help: enable 4-column reference tables
soimort Aug 13, 2022
282eecf
Translators/Auto: new engine for auto selection (google, bing)
soimort Aug 16, 2022
1068f03
Main: set default engine to auto
soimort Aug 16, 2022
63968bc
Translators/BingTranslator: show error if statusCode is 400
soimort Aug 16, 2022
dcaef82
home language -> host language
soimort Aug 17, 2022
187efcf
-list -> -language
soimort Aug 17, 2022
481d964
new options: -list-languages, -list-languages-english, -list-codes, -…
soimort Aug 18, 2022
a80ca32
man: update
soimort Aug 19, 2022
c07c905
Main: update default user-agent
soimort Aug 19, 2022
217f1da
build.awk: update readme generator
soimort Aug 19, 2022
e263cd8
README: update
soimort Aug 19, 2022
9c9211c
version 0.9.7
soimort Aug 19, 2022
9944150
README: update
soimort Aug 19, 2022
43941d2
build.awk: update wiki generator
soimort Aug 19, 2022
6398083
LanguageData: fix hyphen
soimort Aug 19, 2022
a7ac43d
Update the name of antigen plugin in README
VladimirSinitsin Sep 20, 2022
e00e41c
REPL: support setting sl and tl by :set (fix #451)
soimort Sep 30, 2022
28e57f7
REPL: get things right
soimort Sep 30, 2022
cc38910
CONTRIBUTING.md: remove CLAHub (down now)
soimort Oct 26, 2022
0841201
Translate: separate header and body correctly, per RFC 2616 (#378)
soimort Oct 29, 2022
89568ec
Translate: fix redundant CRLF in postResponse
soimort Oct 30, 2022
b3888ec
Translate: log request header
soimort Oct 30, 2022
60fa757
Fix regression in Bing
blechta Jan 12, 2023
cca3dfb
Translators/Auto: autoTTSUrl should invoke initHttpService (fix #481)
soimort Jan 31, 2023
7c85dec
README: update (closes #463)
soimort Feb 8, 2023
04cbf23
version 0.9.7.1
soimort Feb 8, 2023
f4a9a31
update workflow
soimort Feb 15, 2023
92c206b
Fix spelling issue
pabs3 Feb 14, 2023
43fc3e6
Commons: handle Unicode ZERO WIDTH NON-JOINER correctly, fix #486
soimort Feb 24, 2023
d4a5873
Translators/GoogleTranslate: show "-no-auto" hint only when -no-auto …
soimort Oct 18, 2023
928168c
update .circleci/config.yml
soimort Oct 18, 2023
24044af
update .circleci/config.yml
soimort Oct 18, 2023
f664171
vte>=0.57.3 supports BiDi (fix #464)
soimort Oct 20, 2023
d3dec1d
Main: allow only lowercase letters in language codes (fix #503)
soimort Nov 3, 2023
c5d9d8b
REPL: allow only lowercase letters in language codes
soimort Nov 3, 2023
4aa3ae1
Utils: set rlwrap's application name to trans
soimort Dec 5, 2023
d7a0092
Translate: fixed Yandex engine (#359)
eisaev Jan 27, 2024
4473645
update workflow (actions/checkout@v4)
soimort Dec 10, 2024
d6c8d7b
Add language and engine completions
Aug 1, 2025
7ba54f1
Rename file
Aug 1, 2025
9e599a2
Add support for multiple target languages
Aug 1, 2025
96ddaad
Add completion script to Makefile
Aug 1, 2025
ae45f10
Add home language and linguist option completion
Aug 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ jobs:
LC_ALL: C.UTF-8
LANG: C.UTF-8
docker:
- image: debian:stretch
- image: cimg/base:2023.09
steps:
- checkout
- run:
name: Install Dependencies
command: |
apt-get update
apt-get -y install locales make
apt-get -y install util-linux bsdmainutils gawk curl rlwrap emacs
sudo apt-get update
sudo apt-get -y install locales make
sudo apt-get -y install util-linux bsdmainutils gawk curl rlwrap emacs
- run:
name: Sanity Check
command: |
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,17 @@ on:
branches:
- develop
- stable
pull_request:
branches:
- develop

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

### Waiving Copyrights

This is a public domain software, which means the author(s) do not retain any copyright interest in this repository. You ("the contributor") will be asked to **[sign the Contributor License Agreement](https://www.clahub.com/agreements/soimort/translate-shell)** before your contribution can be considered.
This is a public domain software, which means the author(s) do not retain any copyright interest in this repository. By submitting a pull request, you (as a contributor) must agree that your code is also put into the public domain, as this software is.

### Following the Coding Style

Expand Down
10 changes: 6 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,19 @@ test: build

check: test
$(BUILDDIR)/$(COMMAND) -V
[ "`$(BUILDDIR)/$(COMMAND) -no-init -D -b 忍者`" = 'Ninja' ] &&\
[ "`$(BUILDDIR)/$(COMMAND) -no-init -D -b -e bing 忍者`" = 'Ninja' ] &&\
[ "`$(BUILDDIR)/$(COMMAND) -no-init -D -b -e yandex Ninja`" = 'Ninja' ]
[ "`$(BUILDDIR)/$(COMMAND) -no-init -D -b 忍者`" = 'ninja' ] &&\
[ "`$(BUILDDIR)/$(COMMAND) -no-init -D -b -e bing 忍者`" = 'ninja' ] #&&\
#[ "`$(BUILDDIR)/$(COMMAND) -no-init -D -b -e yandex Ninja`" = 'Ninja' ]

install: build
@mkdir -p $(DESTDIR)$(PREFIX)/bin &&\
install $(BUILDDIR)/$(COMMAND) $(DESTDIR)$(PREFIX)/bin/$(COMMAND) &&\
mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1 &&\
install $(MANDIR)/$(COMMAND).1 $(DESTDIR)$(PREFIX)/share/man/man1/$(COMMAND).1 &&\
mkdir -p $(DESTDIR)$(PREFIX)/etc/bash_completion.d &&\
install translate-shell.bash $(DESTDIR)$(PREFIX)/etc/bash_completion.d &&\
echo "[OK] $(NAME) installed."

uninstall:
@rm $(DESTDIR)$(PREFIX)/bin/$(COMMAND) $(DESTDIR)$(PREFIX)/share/man/man1/$(COMMAND).1 &&\
@rm $(DESTDIR)$(PREFIX)/bin/$(COMMAND) $(DESTDIR)$(PREFIX)/share/man/man1/$(COMMAND).1 $(DESTDIR)$(PREFIX)/etc/bash_completion.d/translate-shell.bash &&\
echo "[OK] $(NAME) uninstalled."
124 changes: 74 additions & 50 deletions README.md

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions README.template.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ In order to be happy, the best way is to be loved by people.
* gawk comes with all GNU/Linux distributions.
* On FreeBSD, gawk is available in the ports.
* On macOS, gawk is available in MacPorts and Homebrew.
* Please note that gawk 5.2.0 has a [known bug](https://github.com/soimort/translate-shell/issues/463) -- update to gawk 5.2.1 instead.
* **[GNU Bash](http://www.gnu.org/software/bash/)** or **[Zsh](http://www.zsh.org/)**
* You may use Translate Shell from any Unix shell of your choice (bash, zsh, ksh, tcsh, fish, etc.); however, the wrapper script requires either **bash** or **zsh** installed.

Expand Down Expand Up @@ -130,7 +131,7 @@ See **[wiki: Distros](https://github.com/soimort/translate-shell/wiki/Distros)**

Add the following line to your `.zshrc`:

antigen bundle soimort/translate-shell
antigen bundle soimort/translate-shell@develop

### Option #3. From Git

Expand Down Expand Up @@ -317,7 +318,7 @@ A browser session will open for viewing the translation (via Google Translate's

### Language Details

Use the `-list` (`-L`) option to view details of one or more languages:
Use the `-linguist` (`-L`) option to view details of one or more languages:

$ trans -L fr
$ trans -L de+en
Expand Down
21 changes: 12 additions & 9 deletions build.awk
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
# But the build.awk script and the single build should support gawk 4.0+.
@include "include/Commons.awk"
@include "include/Utils.awk"
@include "include/Languages.awk"
@include "include/LanguageData.awk"
@include "include/LanguageHelper.awk"
@include "metainfo.awk"

function init() {
Expand Down Expand Up @@ -49,7 +50,7 @@ function man( text) {
return system("pandoc -s -f markdown-smart -t man " ManMarkdown " -o " Man)
}

function readme( code, col, cols, content, group, i, j, num, language, r, rows, text) {
function readme( code, col, cols, content, group, i, iso, j, num, r, rows, text) {
text = readFrom(ReadmeTemplate)

content = getOutput("gawk -f translate.awk -- -no-ansi -h")
Expand Down Expand Up @@ -81,9 +82,11 @@ function readme( code, col, cols, content, group, i, j, num, language, r, row
r = r "| "
for (j = 0; j < 3; j++)
if (cols[j][i]) {
split(getName(cols[j][i]), group, " ")
language = length(group) == 1 ? group[1] "_language" : join(group, "_")
r = r "**[" getName(cols[j][i]) "](" "http://en.wikipedia.org/wiki/" language ")** <br/> **" getEndonym(cols[j][i]) "** | **`" cols[j][i] "`** | "
split(getISO(cols[j][i]), group, "-")
iso = group[1]

r = r "**[" getName(cols[j][i]) "](" "http://en.wikipedia.org/wiki/ISO_639:" iso \
")** <br/> **" getEndonym(cols[j][i]) "** | **`" cols[j][i] "`** | "
}
r = r RS
}
Expand Down Expand Up @@ -114,12 +117,12 @@ function wiki( code, group, iso, language, saveSortedIn) {

split(getISO(code), group, "-")
iso = group[1]
split(getName(code), group, " ")
language = length(group) == 1 ? group[1] "_language" :
group[2] ~ /^\(.*\)$/ ? group[1] "_language" : join(group, "_")
#split(getName(code), group, " ")
#language = length(group) == 1 ? group[1] "_language" :
# group[2] ~ /^\(.*\)$/ ? group[1] "_language" : join(group, "_")
print sprintf("| **`%s`** <br/> [`%s`](%s) | **[%s](%s)** <br/> **%s** | %s | `%s` | %s | %s |",
getCode(code), iso, "http://www.ethnologue.com/language/" iso,
getName(code), "http://en.wikipedia.org/wiki/" language, getEndonym(code),
getName(code), "http://en.wikipedia.org/wiki/ISO_639:" iso, getEndonym(code),
getFamily(code), getScript(code),
isRTL(code) ? "✓" : NULLSTR,
hasDictionary(code) ? "✓" : NULLSTR) > WikiLanguages
Expand Down
2 changes: 2 additions & 0 deletions include/Commons.awk
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,8 @@ function escapeChar(char) {
return ">" # Unicode Character 'GREATER-THAN SIGN'
case "u200b":
return "" # Unicode Character 'ZERO WIDTH SPACE'
case "u200c":
return "" # Unicode Character 'ZERO WIDTH NON-JOINER'
default:
return char
}
Expand Down
Loading