2017/01/27 08:59 1/6 Gettext Rendszer

Hasonló dokumentumok
C# nyelvhez kapcsolódó programozási feladatok

C programozási nyelv

A fordítónak mindenhez lehet

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Delphi programozás I.

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Algoritmizálási feladatok

Programozás C++ -ban 2007/1

Programzás I gyakorlat

LibreOffice Makró Basic

Az XCZ állományban szereplő állományok nevének UTF-8 kódolásúnak kell lennie. Probléma esetén használjon ékezet nélküli állományneveket.

2019/02/11 10:01 1/10 Logika

RapidMiner telepítés i. RapidMiner telepítés

Programozás I. gyakorlat

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Operációs rendszerek 1.

A PiFast program használata. Nagy Lajos

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

S z á m í t ó g é p e s a l a p i s m e r e t e k

Programozási tételek feladatok

Dr. Schuster György október 14.

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

C/C++ programozás UNIX környezetben

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése

Elemi adatszerkezetek

LINUX PMB LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek

2016/11/29 11:13 1/6 Digitális átvitel

BATCH Programozás. Tartalomjegyzék

Smarty AJAX. Miért jó ez? Ha utálsz gépelni, akkor tudod. Milyen műveletet tudunk elvégezni velük:

INFORMATIKAI ALAPISMERETEK

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Programozás C és C++ -ban

Bevezetés a programozásba I.

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Programozás 6. Dr. Iványi Péter

Bevezetés a programozásba

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

Az ISO 17100:2015 szabványban szereplő szakkifejezések és meghatározásuk

Programozási nyelvek JAVA EA+GY 1. gyakolat

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Digitális elektronika gyakorlat. A VHDL leírástípusok

Operációs rendszerek gyak.

2016/11/27 08:42 1/11 Kriptográfia. Titkosítás rejtjelezés és adatrejtés. Rejtjelezés, sifrírozás angolosan: cipher, crypt.

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Kiszolgálók üzemeltetése. Iványi Péter

Programozási nyelvek Java

Programozás C és C++ -ban

Telepítés Linux alatt röviden - általánosan

FTP szerver telepítése

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

ELTE SAP Excellence Center Oktatóanyag 1

Szoftvertechnolo gia 7. gyakorlat

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Programozás I gyakorlat. 10. Stringek, mutatók

Programozás II. 2. Dr. Iványi Péter

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

Regionális forduló november 19.

Regionális forduló november 19.

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

Az állományok kezelésére használt fontosabb parancsok

Operációs rendszerek gyak.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Basic LibrOffice Calc

A legfontosabb DOS parancsok

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

2. Gyakorlat Khoros Cantata

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Mintavételes szabályozás mikrovezérlő segítségével

1. Origin telepítése. A telepítő első képernyőjén kattintson a Next gombra:

A Wiki lényege, hogy könnyen kialakítható Website-ot lehet benne megvalósítani, amelyben az egyes oldalak között linkek mutatnak.

Dokumentumok konvertálása PHP-vel parancssorból. A feladat a következő:

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Google Drive szinkronizálása asztali géppel Linux rendszeren

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.

Munka állományokkal. mv: áthelyezés (átnevezés) rmdir: üres könyvtár törlése rm: törlés. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

Bevezetés az SPSS program használatába

Elemi alkalmazások fejlesztése I.

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

Adatbázis és szoftverfejlesztés elmélet

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

BASH SCRIPT SHELL JEGYZETEK

Máté: Assembly programozás

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

Csomagkezelés haladó. Bakai Dániel, volt reszortvezető

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

Átírás:

2017/01/27 08:59 1/6 Gettext Rendszer < Linux Gettext Rendszer A gettext rendszer a programok nemzetközivé tételét valósítják meg. A programozónak a programot egy nyelven kell megírnia, a gettext rendszer segítségével, pedig bármilyen nyelven megszólal. Például angol nyelven megírom a programot, majd lefordítom magyarra. Az Interneten közzé teszem. A program képernyőre írt angol szövegét kigyűjtve kapja meg egy harmadik nyelven beszélő ember. Lefordítja saját nyelvére. Így a program már három nyelvű lesz. Fogalmak POT Portable Object Template. Ez fájl tartalmazza azokat a karaktersorozatokat sztringeket, amelyeket egy alkalmazásból kapunk. Ezt adjuk át a fordítónak. PO Portable Object. Ezt a fájlt adj nekünk a fordító. Ez egy szöveges fájl, amelyben benne van az eredeti (például angol) és az adott nyelvere lefordított szöveg. MO Machine Object. A mo fájl tartalma megegyezik a pofájl tartalmával. A különbség csak a formátum. A pofájl az szöveges fájl, amelyet egy ember kényelmesen el tud olvasni, a mofájl viszont bináris fájl, a számítógépek részére készült. Az alkalmazásunk ebből a fájlból veszi a fordításokat. Segítség info gettext man 3 gettext Működés A programozás során szöveget jelenítünk meg a képernyőn (pl. C nyelvben): printf("alma"); A gettext rendszerhasználatához importálom a libintl.h fejállományokat. A szöveg kiiratását ez után a gettext függvénnyel hívom: #include <libintl.h> main() { printf(gettext("alma")); } Ez után készítenem kell egy.pot kiterjesztésű fájlt, amely tartalmazza a lefordítandó szöveget. Ennek szabványos formátuma van. SzitWiki - http://szit.hu/

Last update: 2015/06/28 11:36 oktatas:linux:gettext_rendszer http://szit.hu/doku.php?id=oktatas:linux:gettext_rendszer msgid "" "Project-Id-Version: tesztprojekt\n" "POT-Creation-Date: \n" "PO-Revision-Date: \n" "Last-Translator: Sallai András <valaki@valaholazinterneten.hu>\n" "Language-Team: fercsapat <fercsapat@valahol2.hu>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Hungarian\n" "X-Poedit-Country: HUNGARY\n" "X-Poedit-SourceCharset: utf-8\n" Elkészítéséhez érdemes segédprogramot használni. A fordítók (azok az emberek akik saját nyelvükre akarják megtanítani a programot) a pot fájt lemásolják.po kiterjesztéssel. Kitöltik a fejlécet, lefordítják a kifejezéseket a.po fájlban. Ez után egy.mo kiterjesztésű fájlt kell készíteni az msgfmt paranccsal. A programozó által megadott könyvtárban elhelyezzük a.mo fájlt és a program tud saját nyelvünkön. Eszközök xgettext A programozó forrás állományaiból kiszedi a fordítandó szöveget. xgettext -f fajlok.txt -p po -o main.pot -L C -k_ -f fajlok.txt fajlok.txt állomány tartalmazza a forrásállományok neveit. -p po Megadhatjuk a pot fájl milyen könyvtárban jöjjön létre -o main.pot A kimeneti.pot fájl neve -L C A forrás állományok C nyelven írodtak -k_ A C programban ha egy szöveget le akarok fordítani, a gettext() függvénnyel kell közrefogni. Ezt szokás egy ilyen makróval helyetesíteni: _(). Ennek a makrónak a használata esetén meg kell adni a ezt a kulcsot ily módon. msgcat Több.po fájl összefűzésére való http://szit.hu/ Printed on 2017/01/27 08:59

2017/01/27 08:59 3/6 Gettext Rendszer msgfmt A.po fájlokból.mo fájlokat készít. A programok a.mo fájlokat értik meg. Egyéb msgcat msgcmp msgcomm msgconv msgen msgexec msgfilter msgfmt msggrep msginit msgmerge msgunfmt msguniq Lásd: info gettext! Munka Grafikus felületen Telepítsük a poedit nevű programot: apt-get install poedit Van win32 verziója is ha valaki ott szeretné használni. http://www.poedit.net A poedit nevű grafikus program lehetővé teszi a po fájlok gyors frissítési lehetőségét.pot fájlokból, gyors és hatékony fordítást tesz lehetővé, a mentés során a.mo kiterjesztésű állományt is elkészíti. Példa Egy példa program amely két szót ír a képernyőre alapesetben angolul: Input Output Azt szeretnénk, ha magyarul írná ki a Bemenet és Kimenet szavakat. SzitWiki - http://szit.hu/

Last update: 2015/06/28 11:36 oktatas:linux:gettext_rendszer http://szit.hu/doku.php?id=oktatas:linux:gettext_rendszer Forrás állomány elkészítése main.c állomány #include <libintl.h> #include <locale.h> main() { setlocale(lc_all, ""); bindtextdomain("main", "locale"); textdomain("main"); printf(gettext("input\n")); printf(gettext("output\n")); } Pot fájl elkészítése xgettext -o main.pot -L C main.c main.pot # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-10 20:10+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=charset\n" "Content-Transfer-Encoding: 8bit\n" #: main.c:7 msgid "Input\n" #: main.c:8 http://szit.hu/ Printed on 2017/01/27 08:59

2017/01/27 08:59 5/6 Gettext Rendszer msgid "OUtput\n" Po fájl elkészítése cp main.pot main.po Lefordítjuk a main.po angol szövegét magyarra. main.po msgid "" "Project-Id-Version: programom\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-06-10 20:10+0200\n" "PO-Revision-Date: \n" "Last-Translator: Sallai András <valaki@valaholazinternete.hu>\n" "Language-Team: <fordito@valahol2.hu>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Hungarian\n" "X-Poedit-Country: HUNGARY\n" "X-Poedit-SourceCharset: utf-8\n" #: main.c:7 msgid "Input\n" msgstr "Bemenet\n" #: main.c:8 msgid "OUtput\n" msgstr "Kimenet\n" Mo fájl elkészítése Lefordítjuk a po fájlt: msgfmt main.po -o main.mo A.mo fájlt a helyére tesszük: mkdir -p locale/hu/lc_messages mo main.mo locale/hu/lcmessages/main.mo SzitWiki - http://szit.hu/

Last update: 2015/06/28 11:36 oktatas:linux:gettext_rendszer http://szit.hu/doku.php?id=oktatas:linux:gettext_rendszer Egyszerűsítés A gettext rövidítve szoktuk írni. Ehhez egy makrót kell definiálni. #define _(string) (char *) gettext(string) Ezen makró definiálása után nem kell kiírnunk a függvény teljes nevét, elég ha egy alulvonással hivatkozunk rá. Ezek után a main.c állomány így nézhet ki: main.c állomány #include <libintl.h> #include <locale.h> #define _(string) (char *) gettext(string) main() { setlocale(lc_all, ""); bindtextdomain("main", "locale"); textdomain("main"); printf(_("input\n")); printf(_("output\n")); } Ekkor a xgettext parancsnak még egy kapcsolót meg kell adnunk amely megmondja milyen helyettesítő karaktert vagy karaktersorozatot használunk: -k_ A kapcsoló kis k betű ami után rögtön írhatjuk az alulvonás jelet. A teljes parancs így nézhet ki ekkor: xgettext -o main.pot -L C -k_ main.c A továbbiakban ugyanúgy járunk el mint fentebb. From: http://szit.hu/ - SzitWiki Permanent link: http://szit.hu/doku.php?id=oktatas:linux:gettext_rendszer Last update: 2015/06/28 11:36 http://szit.hu/ Printed on 2017/01/27 08:59