简体   繁体   English

如何在 MacOS X 上安装 gettext

[英]How to install gettext on MacOS X

How do I install gettext on mac?如何在 Mac 上安装 gettext?

I get this error on one of my php pages:我的 php 页面之一出现此错误:

Fatal error: Call to undefined function bindtextdomain()

and it's because I don't have gettext installed.这是因为我没有安装 gettext。

I can't find good instructions on how to install it.我找不到关于如何安装它的好的说明。 I've tried using:我试过使用:

brew install gettext

and it puts some files here:并将一些文件放在这里:

/usr/local/Cellar/gettext/0.18.2 /usr/local/Cellar/gettext/0.18.2

but I don't know what to do with that.但我不知道该怎么做。

Update: Instead of trying to use homebrew, now I tried this method unsucessfully using wget:更新:现在我没有尝试使用自制软件,而是使用 wget 尝试了这种方法,但没有成功:

Download with wget用wget下载

cd ~/Downloads
wget http://ftp.gnu.org/gnu/gettext/gettext-0.18.2.tar.gz
tar -zxvf gettext-0.18.2.tar.gz
cd gettext-0.18.2
./configure
make

make check is optional to run self-tests make check 是可选的运行自检

make check

Errors I got:我得到的错误:

make[3]: *** [check-TESTS] Error 1 make[3]: *** [check-TESTS] 错误 1

make[2]: *** [check-am] Error 2 make[2]: *** [check-am] 错误 2

make[1]: *** [check-recursive] Error 1 make[1]: *** [检查递归] 错误 1

sudo make install

That installs it here: /usr/local/share/gettext在此处安装它:/usr/local/share/gettext

And the documentation here: /usr/local/share/doc/gettext以及此处的文档:/usr/local/share/doc/gettext

but how do I make my php pages be able to use gettext and the bindtextdomain() function?但是如何使我的 php 页面能够使用 gettext 和 bindtextdomain() function?

You can use brew to link gettext after installing it安装后可以使用brew链接gettext

brew install gettext
brew link --force gettext

I finally got it.我终于明白了。 You have to reconfigure php, so I ended up upgrading from 5.3.15 to 5.4.12.你必须重新配置 php,所以我最终从 5.3.15 升级到 5.4.12。 These websites were very helpful:这些网站非常有帮助:

http://mac.tutsplus.com/tutorials/server/upgrading-the-native-php-installation-on-os-x-mountain-lion/ http://mac.tutsplus.com/tutorials/server/upgrading-the-native-php-installation-on-os-x-mountain-lion/

http://mansion.im/2011/php-with-intl-and-gettext-on-osx-lion/ http://mansion.im/2011/php-with-intl-and-gettext-on-osx-lion/

#Install dependencies
brew install libjpeg
brew install pcre
brew install libxml2
brew install mcrypt

#Get autoconf just because
brew install autoconf

#Install Intl extension
#Install ICU
#Download from http://site.icu-project.org/download/48#ICU4C-Download
cd ~/Downloads
tar xzvf icu4c-4_8_1-src.tgz
cd icu/source
./runConfigureICU MacOSX
make
sudo make install

cd ~/Downloads/php-5.4.12/ext/intl
phpize
./configure --enable-intl
make
sudo cp modules/intl.so /usr/lib/php/extensions/no-debug-non-zts-20090626/

#Install gettext
#Download from http://ftp.gnu.org/gnu/gettext/
cd ~/Downloads
tar xzvf gettext-0.18.1.1.tar.gz
cd gettext-0.18.1.1
./configure
make
sudo make install

cd ~/Downloads/php-5.4.12/ext/gettext
phpize
./configure 
make
sudo cp modules/gettext.so /usr/lib/php/extensions/no-debug-non-zts-20090626/

#Add intl and get text to php.ini
cd ~/Downloads/php-5.4.12
nano php.ini-development
#Add these lines
extension=intl.so
extension=gettext.so

#Download PHP source files from php.net
cd ~/Downloads
tar xzvf php-5.4.12.tar.bz2
cd php-5.4.12

./configure \
--prefix=/usr \
--with-gettext \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--sysconfdir=/private/etc \
--with-apxs2=/usr/sbin/apxs \
--enable-cli \
--with-config-file-path=/etc \
--with-libxml-dir=/usr \
--with-openssl=/usr \
--with-kerberos=/usr \
--with-zlib=/usr \
--enable-bcmath \
--with-bz2=/usr \
--enable-calendar \
--with-curl=/usr \
--enable-dba \
--enable-exif \
--enable-ftp \
--with-gd \
--enable-gd-native-ttf \
--with-icu-dir=/usr \
--with-iodbc=/usr \
--with-ldap=/usr \
--with-ldap-sasl=/usr \
--with-libedit=/usr \
--enable-mbstring \
--enable-mbregex \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--without-pear \
--with-pdo-mysql=mysqlnd \
--with-mysql-sock=/var/mysql/mysql.sock \
--with-readline=/usr \
--enable-shmop \
--with-snmp=/usr \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-tidy \
--enable-wddx \
--with-xmlrpc \
--with-iconv-dir=/usr \
--with-xsl=/usr \
--enable-zip \
--with-imap=/usr/local/imap-2007 \
--with-kerberos \
--with-imap-ssl \
--enable-intl \
--with-pcre-regex \
--with-pgsql=/usr \
--with-pdo-pgsql=/usr \
--with-freetype-dir=/usr/X11 \
--with-jpeg-dir=/usr \
--with-png-dir=/usr/X11

make test
sudo make install

#Restart Apache
sudo apachectl restart

I found an easiest working solution, which still works on mavericks.我找到了一个最简单的工作解决方案,它仍然适用于小牛。 Here it is: https://stackoverflow.com/a/11792640/512504这是: https : //stackoverflow.com/a/11792640/512504

If reinstall php is acceptable, try to download and install the php version you want from here .如果可以重新安装 php,请尝试从这里下载并安装您想要的 php 版本。

In my case, I used 7.0 version.就我而言,我使用了 7.0 版本。 Steps to reinstall:重装步骤:

  1. Open terminal and run curl -s https://php-osx.liip.ch/install.sh | bash -s 7.0打开终端并运行curl -s https://php-osx.liip.ch/install.sh | bash -s 7.0 curl -s https://php-osx.liip.ch/install.sh | bash -s 7.0
  2. The installed php will reside at /usr/local/php5-7.0.31-20180903-120321/lib (I'm not sure why the directory name is php5-7xxxx, but the installed php version is 7.0)安装的php将驻留在/usr/local/php5-7.0.31-20180903-120321/lib (我不知道为什么目录名是php5-7xxxx,但安装的php版本是7.0)

  3. Edit apache2 config at /private/etc/apache2/httpd.conf (make a backup if necessary)/private/etc/apache2/httpd.conf编辑 apache2 配置(如有必要,请进行备份)

  4. Replace LoadModule php7_module libexec/apache2/libphp7.so with LoadModule php7_module /usr/local/php5-7.0.31-20180903-120321/libphp7.so (remember to uncomment the "#" symbol), then save and exit.LoadModule php7_module libexec/apache2/libphp7.soLoadModule php7_module /usr/local/php5-7.0.31-20180903-120321/libphp7.so (记得取消注释“#”符号),然后保存退出。

  5. Finally, run apachectl restart to restart your apache server.最后,运行apachectl restart重新启动您的 apache 服务器。

enabled_gettext

Posting alternative way, without homebrew:发布替代方式,没有自制软件:

cd /tmp

# Download with curl, as it is available by default, without brew
$ curl -O https://ftp.gnu.org/gnu/gettext/gettext-0.20.1.tar.gz

# Extract and cd into created directory
$ tar xvfz gettext-0.20.1.tar.gz && cd gettext-0.20.1

# Configure sources
$ ./configure --prefix=/usr/local/gettext/0_20_1 \
  --disable-dependency-tracking \
  --disable-silent-rules \
  --disable-debug \
  --disable-java \
  --disable-csharp \
  --without-git \
  --without-cvs \
  --without-xz \
  --with-included-gettext

# Comile
$ make

# Install to system
$ sudo make install

Linking all libs:链接所有库:

#!/bin/bash

### /usr/local/bin
ln -s /usr/local/gettext/0_20_1/bin/autopoint /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/envsubst /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/gettext /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/gettextize /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/gettext.sh /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgattrib /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgcat /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgcmp /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgcomm /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgconv /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgen /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgexec /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgfilter /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgfmt /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msggrep /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msginit /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgmerge /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msgunfmt /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/msguniq /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/ngettext /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/recode-sr-latin /usr/local/bin/
ln -s /usr/local/gettext/0_20_1/bin/xgettext /usr/local/bin/

### /usr/local/include
ln -s /usr/local/gettext/0_20_1/include/autosprintf.h /usr/local/include/
ln -s /usr/local/gettext/0_20_1/include/gettext-po.h /usr/local/include/
ln -s /usr/local/gettext/0_20_1/include/textstyle /usr/local/include/
ln -s /usr/local/gettext/0_20_1/include/textstyle.h /usr/local/include/

### /usr/local/lib
ln -s /usr/local/gettext/0_20_1/lib/gettext /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libasprintf.a /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libasprintf.la /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libasprintf.so /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libasprintf.so.0 /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libasprintf.so.0.0.0 /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextlib-0.20.1.so /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextlib.la /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextlib.so /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextpo.a /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextpo.la /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextpo.so /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextpo.so.0 /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextpo.so.0.5.5 /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextsrc-0.20.1.so /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextsrc.la /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libgettextsrc.so /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libtextstyle.a /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libtextstyle.la /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libtextstyle.so /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libtextstyle.so.0 /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/libtextstyle.so.0.0.0 /usr/local/lib/
ln -s /usr/local/gettext/0_20_1/lib/preloadable_libintl.so /usr/local/lib/

### /usr/local/share/aclocal
ln -s /usr/local/gettext/0_20_1/share/aclocal/gettext.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/host-cpu-c-abi.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/iconv.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/intlmacosx.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/lib-ld.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/lib-link.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/lib-prefix.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/nls.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/po.m4 /usr/local/share/aclocal/
ln -s /usr/local/gettext/0_20_1/share/aclocal/progtest.m4 /usr/local/share/aclocal/

Add to your ~/.bashrc or ~/.zshrc:添加到您的 ~/.bashrc 或 ~/.zshrc:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export ACLOCAL_PATH=/usr/local/share/aclocal/:$ACLOCAL_PATH

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM