Tłumaczenie aplikacji Pygobject na różne języki - Część 5

Tłumaczenie aplikacji Pygobject na różne języki - Część 5

Kontynuujemy serię programowania PyGobject z tobą i tutaj w tym 5 Część, dowiemy się, jak tłumaczyć nasze aplikacje PyGobject na różne języki. Tłumaczenie aplikacji jest ważne, jeśli zamierzasz je opublikować dla świata, będzie bardziej przyjazny dla użytkowników użytkowników, ponieważ nie wszyscy rozumieją angielski.

Tłumaczenie języka aplikacji Pygobject

Jak działa proces tłumaczenia

Możemy podsumować kroki tłumaczenia dowolnego programu pod pulpitem Linux za pomocą tych kroków:

  1. Wyodrębnij translatowne struny z pliku Pythona.
  2. Zapisz sznurki w .garnek Plik, który jest formatem, który pozwala przełożyć go później na inne języki.
  3. Zacznij tłumaczyć struny.
  4. Wyeksportuj nowe przetłumaczone struny do .PO plik, który zostanie automatycznie używany po zmianie języka systemu.
  5. Dodaj małe zmiany programowe do głównego pliku Pythona i .pulpit plik.

I to wszystko! Po wykonaniu tych kroków aplikacja będzie gotowa do użycia dla użytkowników końcowych z całego świata (czy… będziesz jednak przetłumaczyć swój program na wszystkie języki na całym świecie, !), Brzmi łatwo, prawda?? :-)

Najpierw, aby zapisać trochę czasu, pobierz pliki projektu z poniższego linku i wyodrębnij plik w katalogu domowym.

  1. https: // kopia.com/tjyzaangeq6bb7yn

Otworzyć "organizować coś.py”Złóż i zauważ zmiany, które przeprowadziliśmy:

Kod tłumaczenia
# Tutaj zaimportowaliśmy moduł „Ustawienia”, który pozwala nam zainstalować skrypty Python do lokalnego systemu obok wykonywania innych zadań, można znaleźć dokumentację tutaj: https: // dokumenty.pyton.org/2/distutils/apiref.HTML z Distutils.Podstawowa konfiguracja importu # Te moduły pomogą nam automatycznie tworzyć pliki tłumaczeniowe dla programu. z podsumpera importowego z globu globu z systemu operacyjnego.Ścieżka importuj slilitext, split # nie fotget, aby zastąpić „myProgram” nazwą twojego programu w każdym pliku w tym projekcie. data_files = [(„lib/myprogram”, ["UI.Glade "]), # to zainstaluje„ interfejs użytkownika.plik Glade ”pod ścieżką/usr/lib/myprogram. („Udostępnienie/aplikacje”, [”MyProgram.pulpit"])] # Ten kod robi wszystko, co potrzebne do tworzenia plików tłumaczenia, najpierw będzie szukał wszystkich .Pliki PO w folderze PO, a następnie zdefiniuje domyślną ścieżkę, gdzie zainstalować pliki tłumaczeniowe (.MO) W systemie lokalnym, a następnie utworzy katalog w systemie lokalnym dla plików tłumaczenia naszego programu i wreszcie przekonwertuje wszystkie .pliki PO .pliki MO za pomocą polecenia „MSGFMT”. PO_FILES = GLOB ("PO/*.PO ") dla PO_FILE w PO_FILES: lang = slilitext (split (PO_FILE) [1]) [0] mo_path =" locale//lc_messages/myProgram.mo ".Format (lang) # Wywołaj katalogi lokalizacyjne („Mkdir -p lokalizacja//lc_messages/”.Format (lang), shell = true) # generuj pliki MO wywołanie ("msgfmt  -o ".Format (PO_FILE, MO_PATH), Shell = true) Lokalizacje = mapa (Lambda I: ('Share/'+i, [i+'/myprogram.Mo ',]), glob (' locale/*/lc_messages ')) # tutaj instalator automatycznie doda .pliki MO do plików danych, aby je później zainstalować. pliki danych.rozszerzenie (lokalizacje) konfiguracja (name = "MyProgram", # Nazwa programu. wersja = "1.0", # Wersja programu. Opis = "Łatwy w użyciu interfejs internetowy do łatwego tworzenia i udostępniania past i udostępniania", # Nie potrzebujesz tutaj żadnej pomocy. autor = "Tecmint", # Ani tutaj. autor_email = "[chroniony e -mail]",# Ani tutaj: d url ="http: // przykład.com", # Jeśli masz dla swojego programu stronę internetową… umieść ją tutaj. licencja = 'GPLV3', # Licencja programu. Skrypty = ['MyProgram'], # To jest nazwa głównego pliku skryptu Pythona, w naszym przypadku jest to „MyProgram”, to plik, który dodaliśmy w folderze „MyProgram”. # Tutaj możesz wybrać, gdzie chcesz zainstalować swoje pliki w systemie lokalnym, plik „MyProgram” zostanie automatycznie zainstalowany w jego właściwym miejscu później, więc musisz tylko wybrać, gdzie chcesz zainstalować opcjonalne pliki, które Ty kształt za pomocą Python Script Data_files = data_files) # i to zainstaluje .plik komputerowy w folderze/usr/share/applishs, cały folder jest automatycznie instalowany w folderze/USR w partycji root, nie musisz dodawać "/usr/do ścieżki. 

Otwórz także „MyProgram”Zgłaszaj i zobacz zmiany, które przeprowadziliśmy, wszystkie zmiany zostały wyjaśnione w komentarzach:

#!/usr/bin/python #-*-kodowanie: UTF-8-*-## Wymień swoje imię i nazwisko i e-mail. # Moje imię <[email protected]> ## Tutaj musisz dodać licencję pliku, zastąpić „myProgram” na nazwę swojego programu. # Licencja: # MyProgram to bezpłatne oprogramowanie: Możesz je redystrybuować i/lub zmodyfikować # na warunkach licencji publicznej GNU, opublikowane przez # The Free Software Foundation, albo wersja 3 licencji lub # (na twojej opcji ) Każda późniejsza wersja. # # MyProgram jest dystrybuowany w nadziei, że będzie przydatny, #, ale bez żadnej gwarancji; nawet bez dorozumianej gwarancji # handlowości lub przydatności do określonego celu. Więcej informacji można znaleźć w licencji publicznej # GNU. # # Powinieneś otrzymać kopię ogólnej licencji publicznej GNU wraz z myProgram. Jeśli nie, patrz . z GI.Repozytorium Importuj GTK Importuj system OS, gettext, lokalizacja ## To jest zmiana programowa, którą musisz dodać do pliku Python, po prostu zastąp „myProgram” na nazwę swojego programu. Moduły „lokalizacyjne” i „gettext” zajmą się resztą operacji. widownia.setLocale (lokalizacja.Lc_all, ") gettext.bindtextDomain („myProgram”, '/usr/share/locale') getText.TextDomain („myProgram”) _ = getText.gettext getText.Zainstaluj („MyProgram”, „/usr/share/locale”) Class Handler: Def OpenTerminal (self, przycisk): ## Gdy użytkownik kliknie pierwszy przycisk, terminal zostanie otwarty. OS.System („x-terminal-emulator”) def CloseProgram (self, przycisk): GTK.main_quit () # nic nowego tutaj… właśnie zaimportowaliśmy „interfejs użytkownika.plik Glade '. Builder = GTK.Builder () Builder.add_from_file ("/usr/lib/myprogram/ui.Glade ") Builder.connect_signals (Handler ()) etykieta = budowniczy.get_object („etykieta 1”) #!„) Musimy dodać przed nim„ _ ”, aby umożliwić odpowiedzialne skrypty dotyczące procesu tłumaczenia, aby rozpoznać, że jest to ciąglegalny ciąg. etykieta.set_text (_ („Witamy w moim programie testowym !")) Button = Builder.get_Object („Button2”) # i oto to samo… musisz to zrobić dla wszystkich tekstów w swoim programie, gdzie indziej nie zostaną przetłumaczone. przycisk.set_label (_ („kliknij mnie, aby otworzyć terminal”)) okno = konstruktor.okno get_Object („Window1”).Connect („Delete-Event”, GTK.main_quit) okno.show_all () gtk.główny() 

Teraz… zacznijmy tłumaczyć nasz program. Najpierw utwórz .garnek plik (plik zawierający wszystkie translabalne ciągi w programie), aby Ty
może zacząć tłumaczyć za pomocą następującego polecenia:

$ cd myProgram $ xgetText - -Language = Python -Keyword = _ -o PO/MyProgram.MyProgram Pot 

To stworzy „MyProgram.garnek”Plik wewnątrz„PO„Folder w głównym folderze projektu, który zawiera następujący kod:

# Jakiś opisowy tytuł. # Copyright (c) Rok Pakiet Copyright # Ten plik jest dystrybuowany na tej samej licencji, co pakiet pakietu. # Pierwszy autor <[email protected]>, ROK. # #, fuzzy msgid „„ msgstr ”„ Project-ID-wersja: wersja pakietu \ n ”„ raport-MSGID-Bugs-to: \ n ”„ Creation Date: 2014-12-29 21: 28+ 0200 \ n "" Po-revision-date: rok-mo-da ho: mi+strefa \ n "" Last-Translator: Pełne imię i nazwisko <[email protected]>\ n "" zespół językowy: język <[email protected]>\ n "" Język: \ n "" Mime-wersja: 1.0 \ n "" Content-Type: Text/Plain; Charset = Charset \ n "" Przenoszenie treści: 8bit \ n " #: myProgram: 48 msgid" Witamy w moim programie testowym !„Msgstr” „ #: MyProgram: 52 msGid” kliknij mnie, aby otworzyć terminal „msgstr” ” 

Teraz, aby rozpocząć tłumaczenie ciągów… Utwórz oddzielony plik dla każdego języka, który chcesz przetłumaczyć program na „ISO-639-1„Kody językowe w„PO„Folder, na przykład, jeśli chcesz przetłumaczyć swój program na arabski, Utwórz plik o nazwie „ar.PO”I skopiuj zawartość z„MyProgram.garnek„Plik do tego.

Jeśli chcesz przetłumaczyć swój program na Niemiecki, Stwórz "de.PO”Złóż i skopiuj zawartość z„MyProgram.garnek„Plik do niego… i tak, musisz utworzyć plik dla każdego języka, na który chcesz przetłumaczyć swój program.

Teraz będziemy pracować nad „ar.PO”Plik, skopiuj zawartość z„MyProgram.garnek”Plik i umieść go w tym pliku i edytuj następujące:

  1. Jakiś opisowy tytuł: Możesz wprowadzić tytuł swojego projektu tutaj, jeśli chcesz.
  2. Rok posiadacza praw autorskich pakietu: Zastąp go na rok, w którym stworzyłeś projekt.
  3. PAKIET: Wymień go na nazwę pakietu.
  4. Pierwszy autor <[email protected]>, ROK: Zastąp to swoją prawdziwą nazwą, e -mailem i rokiem, w którym przetłumaczyłeś plik.
  5. Wersja pakietu: Zastąp go wersją pakietu z pliku debian/sterowania.
  6. Rok-mo Ho: strefa MI+: nie potrzebuje wyjaśnienia, możesz to zmienić na dowolną datę.
  7. PEŁNE IMIĘ I NAZWISKO <[email protected]>: Zastąp to również swoje imię i nazwisko i e -mail.
  8. Zespół językowy: Zastąp go nazwa języka, na który tłumaczysz, na przykład „arabski” lub „francuski”.
  9. Język: Tutaj musisz wstawić kod ISO-639-1 dla języka, na przykład, na przykład „AR”, „FR”, „de”… itp., Możesz znaleźć pełną listę tutaj.
  10. Znak: Ten krok jest ważny, zastąp ten ciąg „UTF-8” (bez cytatów), który obsługuje większość języków.

Teraz zacznij tłumaczyć! Dodaj tłumaczenie dla każdego ciągu po cytatach w „msgstr". Zapisz plik i wyjdź. Dobry plik tłumaczenia dla
Język arabski jako przykład powinien wyglądać tak:

# Mój program # Copyright (C) 2014 # Ten plik jest dystrybuowany na tej samej licencji, co pakiet MyProgram. # Hanny Helal <[email protected]<, 2014. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: 1.0 \ n„” Raport-MSGID-Bugs-to: \ n "" 2014-12-29 21: 28+0200\ n "" po-revision-date: 2014-12-29 22: 28+0200\ n "" Last-Translator: M.Hanny Sabbagh \ n "" zespół językowy: arabski <[email protected]<\ n "" język: ar \n "" Mime-wersja: 1.0\ n "" Content-Type: Text/Plain; Charset = UTF-8\ n "" Contransfer-Coding: 8 bitowy\ n " #: MyProgram: 48 msgid"Witamy w moim programie testowym !„Msgstr”أهلًا بك إلى برنامجي الاختباريv!„ #: MyProgram: 52 msgid”Kliknij mnie, aby otworzyć terminal„Msgstr”اضغط عليّ لفتح الطرفية" 

Nie ma nic więcej do zrobienia, po prostu pakuj program za pomocą następującego polecenia:

$ debuild -us -uc 

Teraz spróbuj zainstalować nowy pakiet utworzony za pomocą następującego polecenia.

$ sudo dpkg -i myProgram_1.0_All.Deb 

I zmień język systemowy za pomocą „Wsparcie językowe”Program lub korzystanie z dowolnego innego programu arabski (lub język, w którym przetłumaczyłeś swój plik):

Wsparcie językowe

Po wybraniu program zostanie przetłumaczony na język arabski.

Przetłumaczone na arabski

Tutaj kończy naszą serię na temat programowania Pygobject dla komputerów Linux, oczywiście istnieje wiele innych rzeczy, których można się nauczyć z oficjalnej dokumentacji i odniesienia Python GI API…

Co myślisz o serii? Czy uważasz to za przydatne? Czy byłeś w stanie utworzyć swoją pierwszą aplikację, śledząc tę ​​serię? Podziel się nami swoimi przemyśleniami!