Hatena::ブログ(Diary)

konisimple log RSSフィード Twitter

はてなブログに移転しました!

2011年08月31日

xgettextで「非アスキー文字列」エラーが出る場合の対処方法

whotwi - グラフィカルTwitter分析の英語版をつくるべく、定番のgettextで多言語対応することに。

PHPgettextを使う方法については以下などを見てやってみました。

僕の場合英語があんまできないし、たぶん英語版しか作らないし、翻訳者も俺なので、msgidを日本語にしてしまいましたw

いちいちmsgidの英語考えるの面倒だしw俺日本人だしww

というわけでmsgidを日本語にしてxgettextすると

$ xgettext -f gettext.txt -k__

xgettext: index.php:26 に非 ASCII 文字列.

--from-code で入力エンコーディングを指定してください.

あちゃー。 gettext.txtは対象ファイルのファイル名を改行区切りで入れたテキストファイルです。

そこで前で上げたサイトや他のサイトにも

    • from-code=utf8

とあるので追加するもなぜかエラーが消えない。そこで

としたらエラーが消えました。そんだけです。

こういうところでハマるから怖い。


今回はたまたま勘で動いたけど、こういうのってどこみればいいの!

manにも書いてないしぐぐっても同様事例ないし。

なんかunixとかの世界の暗黙知的なとこ多すぎてなんでもないところではまるケース多すぎる。どうすればいいんだ。


今回のも俺の環境ではうまくうごきましたよレポートです。

gettextってPHPいれたときに一緒に入ったのかな。それとももともと入ってたのかな。もうわけわからん。

俺の環境

$ xgettext -V

xgettext (GNU gettext-tools) 0.17

Copyright (C) 1995-1998, 2000-2007 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

作者 Ulrich Drepper.

t98907t98907 2011/10/19 21:59 msgidに日本語テキストを使っても大丈夫なんですね。
知らなかった。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/konisimple/20110831/1314810976