gettext — бібліотека проекту GNU для інтернаціоналізації. Основною відмінністю від інших подібних інструментів є використання англійських рядків замість спеціальних ідентифікаторів в тексті програми і підтримка множини іменників. Остання версія станом на травень 2019 — 0.20.1.
Потік робіт | |
Тип | Бібліотека для розробки, переклад |
---|---|
Автор | d |
Розробник | The GNU Project |
Стабільний випуск | 0.20.1 (12 травня 2019 ) |
Операційна система | Багатоплатформна |
Мова програмування | С |
Ліцензія | LGPL (library), GPL (tools), GFDL/ GPL (docs) |
Онлайн-документація | gnu.org/software/gettext/manual/ |
Репозиторій | git.savannah.gnu.org/cgit/gettext.git |
Вебсайт | gnu.org/software/gettext/ |
|
Використання
Окрім стандартної мови програмування С, також підтримуються: , Objective-C, сценарії sh та bash, Python, Perl, PHP, GNU CLISP, Emacs Lisp, librep, GNU Smalltalk, Java, GNU awk, Паскаль, wxWidgets (з використанням класу wxLocale), YCP (мова ), Tcl, та R. Використання в більшості мов схоже з використанням в С.
Бібліотека широко застосовується у вільному ПЗ.
Інтернаціоналізація
Для програміста
Рядки, які необхідно перекласти, розмічаються у джерельному коді викликом функції gettext
, ngettext
або подібною. Зазвичай для зменшення розміру джерельних текстів та полегшення читання, для gettext
оголошують і використовують короткий синонім _
(символ підкреслення). Таким чином, виклик
printf(gettext("Hello! My name is %s.\n"), name);
перетвориться у
printf (_("Hello! My name is %s.\n"), name);
Розмічені рядки збираються у каталог за допомогою утиліти xgettext
. Наприклад, для вищенаведеного рядка у каталозі з'явиться запис на зразок цього:
#: src/name.c:36 msgid "Hello! My name is %s.\n" msgstr ""
розміщуються безпосередньо перед рядками позначеними для перекладу:
/// ПЕРЕКЛАДАЧІ: будь ласка, залиште '%s' так, як є, тому що воно взаємодіє з програмою. /// Спасибі за сприяння цьому проекту. printf(_("My name is %s.\n"), my_name);
У цьому прикладі коментар починається з /// і передається до xgettext при побудові файлу шаблону .pot, щоб передати коментарі перекладачам.
xgettext --add-comments=///
Файл .pot з коментарями виглядає так:
#. ПЕРЕКЛАДАЧІ: будь ласка, залиште '%s' так, як є, тому що воно взаємодіє з програмою. #. Спасибі за сприяння цьому проекту. #: src/name.c:36 msgid "My name is %s.\n" msgstr ""
Для перекладача
Перекладач створює на основі каталогу .po
-файл, що міститиме переклад певною мовою. Для цього можна використати утиліту msginit
. msginit зачинає переклад, отож, для прикладу, якщо ми хочемо створити український переклад, то необхідно виконати
msginit --locale=uk --input=name.pot
В результаті утвориться файл uk.po. У ньому є колекція елементів на зразок цього
#: src/name.c:36 msgid "Hello! My name is %s.\n" msgstr ""
У ньому необхідно перекласти усі рядки, наприклад, для українського перекладу:
#: src/name.c:36 msgid "Hello! My name is %s.\n" msgstr "Привіт! Мене звати %s.\n"
Для редагування .po
-файлів існує безліч інструментів, наприклад poEdit, kBabel, Gtranslator, Pootle, але в крайньому разі можна використовувати простий текстовий редактор.
Для користувача
Зазвичай користувачеві в UNIX-подібних операційних системах не потрібно робити додаткових кроків для вибору конкретного перекладу. Переклад визначається системною змінною LANG
, яка зазвичай вже встановлена у необхідне значення.
Підтримка наявних перекладів
Оновлення перекладів з використанням змінених рядків та нових з джерельного коду, здійснюється утилітою msgmerge
. При цьому зберігаються усі вже перекладені рядки, а ті, що змінилися, позначаються як неточні (англ. fuzzy).
Див. також
Посилання
- Офіційний сайт Gettext [Архівовано 17 лютого 2012 у WebCite]
- Офіційна документація Gettext [ 5 грудня 2007 у Wayback Machine.] (зокрема підтримка мов програмування [ 25 жовтня 2007 у Wayback Machine.])
- Сайт проекту "gettext for Win32 [ 24 вересня 2019 у Wayback Machine.]
- Gettext Commons — gettext-утиліти для Java
- Translate Toolkit [ 21 січня 2012 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
gettext biblioteka proektu GNU dlya internacionalizaciyi Osnovnoyu vidminnistyu vid inshih podibnih instrumentiv ye vikoristannya anglijskih ryadkiv zamist specialnih identifikatoriv v teksti programi i pidtrimka mnozhini imennikiv Ostannya versiya stanom na traven 2019 0 20 1 gettextPotik robitTipBiblioteka dlya rozrobki perekladAvtordRozrobnikThe GNU ProjectStabilnij vipusk0 20 1 12 travnya 2019 5 rokiv tomu 2019 05 12 Operacijna sistemaBagatoplatformnaMova programuvannyaSLicenziyaLGPL library GPL tools GFDL GPL docs Onlajn dokumentaciyagnu org software gettext manual Repozitorijgit savannah gnu org cgit gettext gitVebsajtgnu org software gettext Mediafajli u VikishovishiVikoristannyaOkrim standartnoyi movi programuvannya S takozh pidtrimuyutsya C Objective C scenariyi sh ta bash Python Perl PHP GNU CLISP Emacs Lisp librep GNU Smalltalk Java GNU awk Paskal wxWidgets z vikoristannyam klasu wxLocale YCP mova Tcl ta R Vikoristannya v bilshosti mov shozhe z vikoristannyam v S Biblioteka shiroko zastosovuyetsya u vilnomu PZ InternacionalizaciyaDlya programista Ryadki yaki neobhidno pereklasti rozmichayutsya u dzherelnomu kodi viklikom funkciyi gettext ngettext abo podibnoyu Zazvichaj dlya zmenshennya rozmiru dzherelnih tekstiv ta polegshennya chitannya dlya gettext ogoloshuyut i vikoristovuyut korotkij sinonim simvol pidkreslennya Takim chinom viklik printf gettext Hello My name is s n name peretvoritsya u printf Hello My name is s n name Rozmicheni ryadki zbirayutsya u katalog za dopomogoyu utiliti xgettext Napriklad dlya vishenavedenogo ryadka u katalozi z yavitsya zapis na zrazok cogo src name c 36 msgid Hello My name is s n msgstr rozmishuyutsya bezposeredno pered ryadkami poznachenimi dlya perekladu PEREKLADAChI bud laska zalishte s tak yak ye tomu sho vono vzayemodiye z programoyu Spasibi za spriyannya comu proektu printf My name is s n my name U comu prikladi komentar pochinayetsya z i peredayetsya do xgettext pri pobudovi fajlu shablonu pot shob peredati komentari perekladacham xgettext add comments Fajl pot z komentaryami viglyadaye tak PEREKLADAChI bud laska zalishte s tak yak ye tomu sho vono vzayemodiye z programoyu Spasibi za spriyannya comu proektu src name c 36 msgid My name is s n msgstr Dlya perekladacha Perekladach stvoryuye na osnovi katalogu po fajl sho mistitime pereklad pevnoyu movoyu Dlya cogo mozhna vikoristati utilitu msginit msginit zachinaye pereklad otozh dlya prikladu yaksho mi hochemo stvoriti ukrayinskij pereklad to neobhidno vikonati msginit locale uk input name pot V rezultati utvoritsya fajl uk po U nomu ye kolekciya elementiv na zrazok cogo src name c 36 msgid Hello My name is s n msgstr U nomu neobhidno pereklasti usi ryadki napriklad dlya ukrayinskogo perekladu src name c 36 msgid Hello My name is s n msgstr Privit Mene zvati s n Dlya redaguvannya po fajliv isnuye bezlich instrumentiv napriklad poEdit kBabel Gtranslator Pootle ale v krajnomu razi mozhna vikoristovuvati prostij tekstovij redaktor Dlya koristuvacha Zazvichaj koristuvachevi v UNIX podibnih operacijnih sistemah ne potribno robiti dodatkovih krokiv dlya viboru konkretnogo perekladu Pereklad viznachayetsya sistemnoyu zminnoyu LANG yaka zazvichaj vzhe vstanovlena u neobhidne znachennya Pidtrimka nayavnih perekladiv Onovlennya perekladiv z vikoristannyam zminenih ryadkiv ta novih z dzherelnogo kodu zdijsnyuyetsya utilitoyu msgmerge Pri comu zberigayutsya usi vzhe perekladeni ryadki a ti sho zminilisya poznachayutsya yak netochni angl fuzzy Div takozhPortal Vilne programne zabezpechennya Internacionalizaciya Lokalizaciya programnogo produktu Ukrayinizaciya programnogo zabezpechennya Pam yat perekladivPosilannyaOficijnij sajt Gettext Arhivovano 17 lyutogo 2012 u WebCite Oficijna dokumentaciya Gettext 5 grudnya 2007 u Wayback Machine zokrema pidtrimka mov programuvannya 25 zhovtnya 2007 u Wayback Machine Sajt proektu gettext for Win32 24 veresnya 2019 u Wayback Machine Gettext Commons gettext utiliti dlya Java Translate Toolkit 21 sichnya 2012 u Wayback Machine