Page 1 of 1
php gettext extension
Posted: Tue Jun 03, 2008 9:39 pm
by oldholborn
γειά σας
έβαλα php και apache2 σε windows xp
αλλά δεν ξέρω πως να χρησιμοποιήσω το extension php_gettext.dll
δεν είναι comment στο php.ini και έχω προσθέσει το c:/php5 στο
path και στο php.ini extesion_dir είναι σωστό ,το πρόσθεσα στο system32 php_gettext.dll
πως χρησιμοποείτε ,στο internet λένε xgettext file
το κάνω αυτό ,και βγάζει μήνυμα ότι δεν το αναγνωρίζει
ξέρετε πως γίνεται
Re: php gettext extension
Posted: Wed Jun 04, 2008 9:58 am
by Sreak
Νομίζω πως χρειάζεται και αυτό για να παίξει gnu_gettext.dll
Ριξε μια μιατια και εδώ μήπως σε βοηθήσει
http://www.apachelounge.com/forum/viewtopic.php?t=897
Και όσον αφορά τα paths για τα extensions, μήπως χρειάζεται να κάνεις καμιά δοκιμή
http://www.phpbuilder.com/board/archive ... 93605.html
Re: php gettext extension
Posted: Wed Jun 04, 2008 10:44 am
by oldholborn
Sreak wrote:Νομίζω πως χρειάζεται και αυτό για να παίξει gnu_gettext.dll
ευχαριστώ Sreak το κατέυασα και το έβαλα στο system32 τώρα με το gettext δεν υπάρχει πρόβλημα
αλλά το xgettext πως να το χρησιμοποιήσω ?
Re: php gettext extension
Posted: Wed Jun 04, 2008 11:29 am
by Sreak
Εδώ νομίζω έχει τα παραδείγματα που χρειάζεσαι
http://www.phpdig.net/ref/rn26.html
Re: php gettext extension
Posted: Wed Jun 04, 2008 2:04 pm
by oldholborn
το προπάθησα στο windows δεν δουλεύει με τίποτα
στο ubuntu δουλεύει απο αγγλικά προς ελληνικά
<?php
bindtextdomain('messages', './');
textdomain('messages');
switch ($_GET['l']) {
case 'el':
setlocale(LC_ALL,'el_GR');
break;
case 'en':
default:
setlocale(LC_ALL,'en_US');
break;
}
echo _('Hello World');
?>
αλλά το αντίθετο δεν δουλευει
<?php
bindtextdomain('messages', './');
textdomain('messages');
switch ($_GET['l']) {
case 'el':
setlocale(LC_ALL,'el_GR');
break;
case 'en':
setlocale(LC_ALL,'en_US');
break;
}
echo _('ΓΕΙΑ ΣΑΣ');
?>
Re: php gettext extension
Posted: Wed Jun 04, 2008 3:58 pm
by Sreak
Ψάξου λίγο με encodings και locales για τέτοιου είδους πρόβλημα μου κάνει.
Re: php gettext extension
Posted: Wed Jun 04, 2008 4:24 pm
by oldholborn
για να μπορέσου να γραψω ελληνικά στο vim :
LANG=el_GR
και μετα
xgettext index.php
βγάζει μήνυμα
Non-ASCII string at index.php:12. Please specify the source encoding through --from-codetext file.php
και μετα
xgettext --from el_GR index.php
βγάζει το ίδιο μήνυμα και μετα
xgettext --from iso-8859-7 index.php (εδω δουλευει)
παράγει το
messages.po και μετά ανοίγω το
messages.po
και έχει :
#: index.php:12
msgid "γΡια"
msgstr "
hello" (το hello το πρόσθεσα εγω)
και μετα
msgfmt messages.po
και πράγει το
messages.mo
και μετά τα μεταφέρω (messages.*) στο
en/LC_messages/
και μετα ανοίγω το browser
index.php?l=en και index.php?l=el το ίδιο τυπώνουν ένα (Γεια)

Re: php gettext extension
Posted: Wed Jun 04, 2008 4:32 pm
by oldholborn
τώρα εάν πάω στο messages.po και αλλάζω το msgid "γΡια"
σε msgid "γεια"
στο msgfmt messages.po λεει
en/LC_MESSAGES/messages.po:20:8: invalid multibyte sequence
en/LC_MESSAGES/messages.po:20:9: invalid multibyte sequence
en/LC_MESSAGES/messages.po:20:10: invalid multibyte sequence
en/LC_MESSAGES/messages.po:20:11: invalid multibyte sequence
Re: php gettext extension
Posted: Wed Jun 04, 2008 4:50 pm
by Sreak
Επομένως από όσο καταλαβαίνω είνα θέμα encoding σωστά?
Δεν δοκιμάζεις να αλλάξεις το default_charset στο php.ini
Re: php gettext extension
Posted: Wed Jun 04, 2008 5:06 pm
by oldholborn
άλλαξα το default charset στο php5/apache2/php.ini και /php5/cli/php.ini σε iso-8859-7
και έκανα restart στο apache
μετα το xgettext παράγει το ίδιο ( msgid "γΡια" )
και στο browser index.php?l=el και index.php?l=en τυπώνουν και τα δυο (γεια)
