Dnes, keď je toľko zariadení pripojených k internetu a toľko stránok, ktoré je možné navštíviť na internete, je veľmi bežné, že hľadané informácie nájdeme v jazyku, ktorým nehovoríme. Nájdeme dokonca text v jazyku, o ktorom si myslíme, že ho dobre poznáme, a prečítame slovo, ktoré nevieme, čo to znamená. Čo v takom prípade urobíme? Normálna vec je obrátiť sa na stránku prekladateľa, ako je Bing alebo Google, ale nebolo by lepšie, keby sme na to mali rýchlejší a pohodlnejší spôsob? Rovnako ako prakticky všetko v operačných systémoch založených na systéme Linux, aj tu existuje niekoľko spôsobov, ako to dosiahnuť, a v tomto článku vás naučíme ako preložiť akýkoľvek text v Ubuntu, pokiaľ je jazyk v Google Translatore.
Je možné, že nasledujúci sprievodca trochu rešpektuje používateľov, ktorí sa terminálu veľmi nechcú dotknúť, ale nevysvetľuje nič iné, ako keď povieme, ako pridať úložisko a nainštalovať balík, ktorý nie je v oficiálnych . Rozdiel je v tom vytvorme a scenár ktorý nám umožní spustiť komponenty dostupné v Ubuntu. To znamená, že nižšie máte kroky, ktoré musíte dodržať, aby ste preložili akýkoľvek text v Ubuntu.
Ako prekladať texty pomocou Ubuntu
Vytvára sa scenár notitrans
- Aby bolo možné použiť scenár, musíme urobiť tri inštalácie:
- libnotify-bin aby ste mohli dostávať upozornenia na pracovnej ploche.
- wget pre získanie google prekladu.
- xsell prečítať text, ktorý sme označili.
Za týmto účelom otvoríme terminál a napíšeme nasledovné:
sudo apt-get install libnotify-bin wget xsel
- Ďalej vytvoríme nový textový súbor (stačí kliknúť pravým tlačidlom myši na plochu a zvoliť Nový dokument / Prázdny dokument).
- Do dokumentu musíme vložiť nasledovné:
#!/usr/bin/env bash notify-send --icon=info "$(xsel -o)" "$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=$(xsel -o | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
- Poznámka: v scenár hore je riadok, ktorý hovorí „tl = es“. Ak nechcete prekladať do španielčiny, stačí zmeniť jazyk, v ktorom sa nachádzate za symbolom rovnosti (=).
- Uložíme predchádzajúci súbor a nazveme ho „notitrans“ (bez úvodzoviek).
- Ďalej musíme previesť predchádzajúci dokument do spustiteľného súboru. Za týmto účelom ho skopírujeme do nášho osobného priečinka a do terminálu napíšeme nasledovné:
chmod +x ~/notitrans
- V ďalšom kroku presuniete vytvorený súbor do priečinka / Usr / local / bin / pomocou nasledujúceho príkazu:
sudo mv ~/notitrans /usr/local/bin/
- Ešte sme neskončili. Potrebujeme (minimálne) ďalšie dva kroky: teraz musíme vytvoriť klávesovú skratku. Za týmto účelom ideme do Nastavenia systému / Klávesnica / Skratky a klikneme na symbol plus (+). Zobrazí sa okno podobné tomuto:
- Do okna vložíme meno, ktoré chceme (dal som mu Notitrans) a príkaz „notitrans“ (bez úvodzoviek). Môžeme dať ďalší príkaz, ale museli by sme použiť rovnaký názov, pod ktorým sme uložili scenár.
- Teraz stačí vytvoriť kombináciu klávesov. Za týmto účelom klikneme na text s textom Zakázané a zadáme požadovanú kombináciu. Použil som obdobie Control + (.), Pretože viem, že neexistuje žiadna kombinácia klávesov, ktorá by túto skratku používala.
varianty
Ak sa vám nepáči, ako nám preklad ukazuje scenár vyššie, ktorý v skutočnosti nemôže zobraziť veľmi dlhé preklady, pretože je obmedzený veľkosťou oznámenia, môžeme tiež použiť niektoré varianty. Aby sme mohli použiť tieto varianty, budeme musieť urobiť rovnaký postup ako predchádzajúci (ak chceme, tiež zmeniť jazyk), ale s použitím zodpovedajúceho kódu v kroku 2.
Pomocou Xclip
Ak chceme, aby sme okrem upozornenia skopírovali preklad do schránky, použijeme aj XCLIP. Najskôr sa ubezpečíme, že ho máme nainštalovaný pomocou príkazu:
sudo apt-get install xclip
A v scenár ktoré vytvoríme, napíšeme nasledovné:
#!/usr/bin/env bash text="$(xsel -o)" translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')" echo "$translate" | xclip -selection clipboard notify-send --icon=info "$text" "$translate"
Používanie Zenity
A ak sa to, čo chceme, má zobraziť ako predchádzajúci obrázok (môj obľúbený), zadaním príkazu skontrolujeme, či máme nainštalovanú Zenity:
sudo apt-get install zenity
A do dokumentu napíšeme toto:
#!/usr/bin/env bash text="$(xsel -o)" translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')" echo -e "Original text:" "$text"'\n' > /tmp/notitrans echo "Translation:" "$translate" >> /tmp/notitrans zenity --text-info --title="Translation" --filename=/tmp/notitrans
Skúšali ste niektorú z týchto možností skripty? Co si myslis?
Mohli ste zmeniť úlovky, to trochu spieva
Aké skvelé ... aké rýchle ...
Aspoň ste odkazovali na pôvodné xD
Vynikajúce a bude to fungovať s inými prekladateľmi ako Yandex alebo Bing?
A ak tento riadok pridáte na koniec
spd-say "$ translate"
spieva ti to tým romantickým hlasom
Je samozrejme potrebné mať nainštalovaný program spd-say
Sme tu, aby sme sa dozvedeli:
—Nevedel som o xsel, aj keď ho vytvoril v roku 2001 Conrad Parker:
http: / / linux.die .net / man / 1 / xsel <- (Odstráňte medzery a budete navigovať).
Takto môžeme napísať „xsel -o“ a do príkazového riadku vytlačí to, čo sme vybrali a uložili do schránky Ubuntu.
—Čo s oznámením o odoslaní, pretože som o tom tiež nevedel (posledná aktualizácia sa datuje od roku 2008)
ale čítanie v:
ht tp: // manpages.ubu ntu.com/man pages / gutsy / man1 / notify-send.1.html
môžeme trénovať grafické zasielanie ľubovoľných správ na Ubuntu:
notify-send –icon = info "AHOJ SVET!"
Môžeme poslať nadpis a správu k oznámeniu, skúste:
notify-send –icon = info Dátum "" dátum ""
{POZOR na tie jednoduché úvodzovky vo vnútri dvojitých úvodzoviek, kód ASCII je 239}
—Nehovoriac o ctihodnom wgetovi, iba si budete pamätať, aký silný je tento webový odkaz:
ht tp: // blog.phen obarbital.info/ 2015/02 / vedeli ste, ako-na-stiahnutie-kompletnej-webovej stránky-wget /
–Príkaz sed NIKDY to nevedel („Len viem, že nič neviem“), ale pri vyšetrovaní vidíme, aké užitočné to je, tieto príklady (v angličtine) sa mi veľmi páčili:
http: // ww w.folkstal k.com/2012 / 01/sed-command-in-unix-examples.html
„Spustil“ som príklady a na mojom ubuntu fungujú dobre.
TU sme DOSIAHLI „PRÍCHOD“:
preklad nefunguje, tak som "rozobral" komponované príkazy, aby som zistil, ktorý z nich funguje dobre a ktorý zle.
Preto som požiadal o pomoc kačicu, ktorá vie všetko o DUCKDUCKGO, a našiel som:
ht tp: // w ww. webupd8.or g / 20 16/03 / translate-any-text-you-select-on-your.html
„Pôvodný skript z roku 2012 už nefunguje, podarilo sa mi ho opraviť a rozhodol som sa ho s vami zdieľať.“
A MYSLÍM SI, ŽE TO NEFUNGUJE, pretože
„Google Translate API je platená služba. Pri prekladoch webových stránok vám odporúčame použiť modul gadget Prekladač webových stránok Google.“
https: // cloud. Google. com / translate / v2 / using_rest
Takže ak máte pár dolárov nazvyš, účtujú si milióny listov:
https: // cloud. Google. com / translate / v2 / ceny
—JA JE TEÓRIA, PREČO TO NEFunguje, ak niekto vie, ako to uviesť do demonštratívneho režimu a na didaktické účely, potom svoju odpoveď „zverejnite“, ďakujeme za vašu pozornosť!
V PRÍPADE som sa vrátil späť a nasledoval krok za krokom (a s inou IP adresou na pripojenie k Google, pretože ma „nakrátko zablokoval pre neobvyklý prenos“ - neobvyklé, že používame GNU / Linux wget bez hlavičky ha ha ha) kroky opísal občan Rus
http ps: // bude ahabr.ru/ post / 137215 / a ani to nefunguje, škoda. 8- (
Klady a zápory
+ Возможность переводить фрагMENTы текста.
+ Требуется минимльное количество действий для получения перевода.
+ Podderzhka praktické vs yazykov.
+ Ďalšie informácie
- Не работает без подключения к интернету.
- Нет возможности выделить текст перевода.
* Проверенно в Unity, GNOME2, Xfce4, KDE4.
"Klady a zápory
+ Schopnosť preložiť fragmenty textu.
+ Na získanie prekladu je potrebný minimálny počet akcií.
+ Podpora prakticky vo všetkých jazykoch.
+ Nie je potrebné inštalovať konkrétne slovníky.
- Bez pripojenia na internet to nefunguje.
- Nie je možné priradiť preložený text.
* Testované na jednotách, Gnome2, Xfce4, KDE4. »
PREKLAD Z RUSKA DO ŠPANIELSKA VĎAKA «TLAČIČKU Google».
Autor príspevku v angličtine mi láskavo odpovedal a potvrdil moje podozrenie: Svojimi testami som zneužil službu google:
https://twitter.com/ks7000/status/708398151351341058
Teraz, o šesť dní neskôr, som sa pokúsil znova veľmi opatrne, aby som neurobil chyby, a tiež som sa pokúsil preložiť z angličtiny do francúzštiny zmenou «tl = fr» a tu je výsledok:
https://twitter.com/ks7000/status/708397624890662915
Dakujem pekne, dnes som sa dozvedela nieco nove! * -)
sakra čas, keď som chcel nainštalovať prekladač ... Mal som nejaké problémy a keď som ho chcel odinštalovať cez terminál, nemohol som sa už pripojiť na internet alebo na káblové alebo wifi, myslím, že som odinštaloval ovládač sieťovej karty alebo niečo podobné. . Ako nainštalujem tieto veci offline? S pozdravom
Vynikajúci Týmto príspevkom ste vyriešili môj život. Chcel som mať ľahko použiteľný prekladač bez toho, aby som musel ísť do prehliadača alebo do iného programu. Mnohokrat dakujem.
Miloval som to a považujem to za veľmi užitočné, ale ... Vie niekto, prečo na koniec všetkých prekladov pridám „en“ ???
Dobrý!
Na riadku:
| sed «s / ,,, 0]] ,,. * // g» | awk -F '»' '{tlačiť 2 $, 6 $}')»
remove (, 6 $), takže to vyzerá takto:
| sed «s / ,,, 0]] ,,. * // g» | awk -F '»' '{print $ 2}')»
a pripravený !! bez „in“ na konci.
Zdravím !!
Dobre.
Odstrániť (, 6 dolárov) a voila.
Zdravím.
Ďakujem pekne za príspevok a za «Quita (, $ 6)» ;-P
Veľmi pekne ďakujem za príspevok, pracoval mi v ceste / usr / bin
Ak chcete odstrániť text „en en“, ktorý sa zobrazuje na konci, zmeňte kód nasledovne
#! / usr / bin / env bash
text = »$ (xsel -o)»
translate = »$ (wget -U« Mozilla / 5.0 »-qO -« http://translate.googleapis.com/trans$
translate2 = $ {preložiť% ??????}
echo "$ translate2" | xclip - výber schránky
notify-send –icon = info "$ text" "$ translate2"
a pripravené
Ak chcete odstrániť vstup v
upravte pre to posledný riadok
notify-send –icon = info "$ text" "$ {preložiť: 0: -17}"
Ahoj
Keď dám chmod + x ~ / notitrans, hovorí mi, že súbor sa nedá nájsť
Došiel som tak ďaleko ...
Dobrý deň, keď vložím odsek na preklad, preloží sa iba prvá veta, pokiaľ je tam bod, nepreloží to úplne a musím byť z bodu do bodu, aby som preložil celý odsek, ako to môžem vyriešiť ?