내가 시도한 것 :
내 번역 파일 (* .mo, * .po)은 /usr/local/php/include/myapp/i18n/locale/
eg 아래에 있습니다./usr/local/php/include/myapp/i18n/locale/da_DK/LC_MESSAGES/generic.mo
나는 /etc/php5/conf.d/gettext.ini를 넣었습니다.
extension=gettext.so
apache2 restart는이 오류를 제공합니다.
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/gettext.so' - /usr/lib/php5/20090626/gettext.so: cannot open shared object file: No such file or directory in Unknown on line 0
내가 뭘 잘못하고 있니? 내가 기억하는 한 이것은 리눅스에서 확장을 설치하는 표준 방법입니다. 이것은 내 로컬 시스템에서는 잘 작동하지만 Amazon 인스턴스에서는 작동하지 않습니다.
php --version PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/gettext.so' - /usr/lib/php5/20090626/gettext.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP 5.3.10-1ubuntu3.10 with Suhosin-Patch (cli) (built: Feb 28 2014 23:14:25) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
우분투에서이 확장을 설정하도록 안내 해주세요.
그래서이 수수께끼는 뛰어난 SOQ로 해결되었습니다.
php.net의 gettext에 대한 주석 중 하나 는 다음과 같습니다.
Warning for Linux (Ubuntu) users! Your system will *only* support the locales installed on your OS, in the *exact* format given by your OS. (See also the PHP setlocale man page.) To get a list of them, enter locale -a, which will give you something like this:
C
en_US.utf8
ja_JP.utf8
POSIX
So this machine only has English and Japanese! To add eg. Finnish, install the package:
sudo apt-get install language-pack-fi-base
Rerun locale -a, and "fi_FI.utf8" should appear. Make sure you're using the same name in your PHP code:
setlocale(LC_ALL, "fi_FI.utf8");
Adjust your po paths so that they match, e.g. "./locale/fi_FI.utf8/LC_MESSAGES/messages.po".
Now restart Apache, and it should finally work. Figuring this out took quite a while...
내 문제는 다음 단계에 따라 정확하게 해결되었습니다.
mv da_DK da_DK.utf8 (로케일 dir로 이름 변경) bind_textdomain_codeset('messages', 'UTF8');
저에게 디버깅 포인트 중 하나는 setlocale(LC_ALL, 'da_DK.utf8');
유효하지 않거나 존재하지 않는 로케일에 대해 false를 반환하는 것입니다.
gettext.so 확장은 어떻습니까?
apt-get을 통해 얻은 PHP 설치에는 컴파일 중에 확장이 추가 php -m |grep gettext
된 것 같습니다. gettext가 컴파일 된 모듈인지 확인할 수 있습니다 (예 : 사실 인 것 같습니다)! PHP가 컴파일 될 때만 필요한 gettext.ini 가 필요하지 않습니다 --with-gettext=shared
. 여기서는 그렇지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다