ugrás a tartalomhoz

xgettext letöltés

Radon · 2017. Jan. 2. (H), 21.04
Sziasztok. A php kódomból szeretném kiszedni a gettext() -ben lévő szöveget, és elmenteni .po fileba. régen ez valami xgettext programmal sikerül, de most sehogy sem akar összejönni. win7 alá. köszi.
 
1

???

Pepita · 2017. Jan. 5. (Cs), 00.21
gettext ezek szerint egy fv, mit értesz az alatt, hogy szöveg van benne?

Kicsit érthetőbb kérdés és az, hogy mit próbáltál és mi történt - segítene előre haladni.
2

gettext() Magyar szöveg van

Radon · 2017. Jan. 5. (Cs), 18.30
gettext()
Magyar szöveg van benne, és ha megcsinálod a fordításait .mo fileba, akkor többnyelvű lesz az oldal. de ami kiszedné a php fileokból a fordítandó szöveget, azt a progit nem tudom feltenni. az írják, hogy a gnu gettext progival kell, és hogy az nem windows alá való. kell valami emulátor. feltettem ezt a gnu gettextet, de indítás után bevillan egy dosos ablak és ennyi. aki fejlesztett már többnyelvű weboldalt, az leírhatná hogy kell. 1x már összejött régen, de nem emlékszem hogy:)
3

Nincs benne szöveg

Pepita · 2017. Jan. 5. (Cs), 19.29
Egy fv-nek van egy / több bemenő paramétere, és visszaadott értéke. Ennek egy input string és egy output string. Ez így még mindig értelmetlen:
Magyar szöveg van benne, és ha megcsinálod a fordításait .mo fileba, akkor többnyelvű lesz az oldal.
, de már kapisgálom, hogy mit szeretnél.

aki fejlesztett már többnyelvű weboldalt, az leírhatná hogy kell
Párat már csináltam, meg kell mondanom, hogy soha nem használtam ezt a gettext-et. :)

Olyan nincs, hogy így vagy úgy kell, többféle használható megoldás létezik.
Azt én semmiképp sem javaslom, hogy bármilyen szoftver "kiszedné a php fileokból a fordítandó szöveget". Nem hiszem, hogy oda való, hacsak nem php-k a nyelvi fájlok (akkor pedig nem kell senkinek sem kiszedni).

Általában nyelvi kulcs - érték párokkal szokás operálni, akár fájl alapon, akár db-ben. php fájlokban / template-ekben pedig a kívánt kulccsal egy fv visszaadja az adott nyelven a szöveget. Az aktuális nyelv session-ben - sütiben - akárhol máshol van.

Fájl pl. nagyon leegyszerűsítve:
<?php
$lang = [];

$lang['welcome_message'] = 'Hello World';
$lang['gipsz_jakab'] = 'Gipsz Jakab';
// ...
Minden nyelven létezik ez a fájl, pl en.php, hu.php, stb.
A rendszer a beállított nyelvnek megfelelő fájlt tölti be, vagy a default-ot.
A Language class - odnak van mondjuk egy GetText fv-e:
    public function GetText(string $Key) : string {
        if (isset($this->Items[$Key])) {
            return $this->Items[$Key];
        } else {
            return "$Key language item not exists!";
        }
    }
ami bármikor visszaadja neked a kívánt szöveget. (Mondjuk érdemesebb kivételt dobni, ha nincs meg.)

Az osztály konstruktorában kell betölteni az adott nyelvű fájl tartalmát az Items property-be.

Ez a módszer max néhány ezer nyelvi kulcsig használható, felette adatbázis inkább.

Az általad óhajtott gettext gyakorlatilag kész szöveget akar mindig átfordítani másik nyelvre, ez biztosan sokkal lassabb, mint a kulcsok használata.
4

Poedit

Endyl · 2017. Jan. 6. (P), 12.27
Bár még nem használtam erre, de ha minden igaz, akkor a Poedit tud ilyet.
7

az van fönt, de .po vagy .mo

Radon · 2017. Jan. 7. (Szo), 21.04
az van fönt, de .po vagy .mo fileokat vár. php nem jó neki.
9

Ha csinálsz egy po fájlt

Endyl · 2017. Jan. 8. (V), 20.28
Ha csinálsz egy po fájlt poedittel, akkor a google találatok szerint be lehet állítani, hogy a po fájlba milyen forrásfájlokból nyerje ki a fordítandó szövegeket. Itt kellene megadni a php fájlok elérését, nem pedig php fájlt próbálni megnyitni vele.
5

grep?

Arnold Layne · 2017. Jan. 6. (P), 13.49
Most mondanám, hogy grep, meg írsz hozzá egy regexet és annyi, de mivel windows, ezért gyanítom valami grafikus vacak kéne, olyat meg most hirtelen nem tudok. AlternativeTo oldalon nézz szét, hátha találsz valami használhatót.
6

Köszi ezek jó ötletek, de

Radon · 2017. Jan. 7. (Szo), 20.59
Köszi ezek jó ötletek, de
már mindenhol a gettext()-et használom több 100 van belőle, megvan a rendszer már nem akarom átírni. Esetleg van valaki, aki ismeri a php gettext() függvényt?
A gettext-ben lévő szöveget kell kiszednem .po fileba. Ebből a poeditben elkészítem a fordítást, és .mo fileként feltöltöm a netre és már megy is. de kellene az a progi, ami kiszedi a php filebol.
8

A kevesebb néha több

Pepita · 2017. Jan. 8. (V), 11.56
Esetleg van valaki, aki ismeri a php gettext() függvényt?

Te is linkelted, van aki ismeri.
már mindenhol a gettext()-et használom több 100 van belőle

És azért, hogy ez így is maradhasson (fixed mindset), inkább kézzel - szemmel átvizsgálsz több 1000 kódsort? Nem hiszem, hogy meg fogod úszni, nincs az a feldolgozó, amelyik ilyesmiben nem téved valamennyit.
Ha pedig így is úgy is át kell nyálazni / írni, akkor miért nem csinálod meg jól?
Értem én, hogy
megvan a rendszer már nem akarom átírni
, de ennyi erővel azt is mondhatnád, hogy "elrontottam, és nem akarom ugyanannyi munkával megjavítani, inkább tovább hegesztgetem a rosszat, hátha az kevesebb energia". Ez viszont nem szokott jó megoldáshoz vezetni, és többnyire összességében még több munkát igényel, mint egy becsületes refact.

Ne álmodj olyan külső eszközről, ami tévedhetetlenül kiszedi neked csak a nyelvileg fontos / hasznos stringeket php-ból, megkülönbözteti pl sql query-ktől, stb stb...
Ilyen biztosan nincs, vagy ha van, akkor szép nagy hibaszázalékkal.

A másik, hogy nem jó megoldás az, hogyha minden egyes szöveget kvázi lefordítani kell egy fv-nek. Legalább 2x lassabb, mint adott nyelvből kulcs alapján kiválasztani.

Szerintem gondold át mégegyszer ezt a többnyelvű dolgot, és döntsd el, mi éri meg jobban.
10

Nem igazán értelek. Semmit

Radon · 2017. Jan. 9. (H), 23.23
Nem igazán értelek. Semmit nem kell átvizsgálnom. Minden betüt a kodomban kézzel gépelek, és amikor egy szöveghez érek eleve gettext- el gépelem be, semmi nem marad ki. És azt sem értem, hogy a php gettext függvény, amit nem én találtam ki, miért rossz döntés?
Amúgy ti mondtátok, hogy így kell és 1x már össze is jött.
korábbi forum topic
11

Hirtelen ezt találtam:

bamegakapa · 2017. Jan. 9. (H), 23.45
12

Megtaláltam.

Radon · 2017. Jan. 11. (Sze), 11.19
Köszi a segítséget, megtaláltam.

Először a poeditet próbáltam, de az nem szedte ki a phpbol a gettextet.
Viszont az easypo igen! :)
köszi.

Egyébként tényleg Pepita módszere a legjobb, külső program nélkül lehet így megoldani, legközelebb már ezzel csinálom. köszi!
13

Keress igazán jót

Pepita · 2017. Jan. 11. (Sze), 21.40
Örülök, hogy ezt sikerült megoldanod, pláne, hogy akarsz fejlődni!

Amit viszont fentebb írtam módszert, az csak amolyan "gyorsan összeszedem a lényeget fejből" dolog, szóval ha azon az úton mész, mindenképp érdemes megnézni pl több framework-öt / cms-t, amikben van hasonló megoldás.
Valószínűleg sok ötletet meríthetsz belőle, ha saját magad akarod lefejleszteni - vagy esetleg megtetszik az egyik fw annyira, hogy használd is.. :)
14

Én javaslom, hogy maradj a

bamegakapa · 2017. Jan. 12. (Cs), 09.12
Én javaslom, hogy maradj a gettextnél saját tákolás helyett. Több olyan problémára is megoldást kínál, amibe talán eddig nem futottál bele. Sok kész eszköz van hozzá, amik segítségével kiadhatod a fordítónak a melót.