BugTrack/748
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
RIGHT:&size(12){Category: [[:Internationalization]]};
*[国際化] gettext の利用 / extension の利用 / gettextリー...
-ページ: BugTrack
-投稿者: [[henoheno]]
-優先順位: 普通
-状態: 着手
-カテゴリー: 本体新機能
-投稿日: 2004-11-14 (日) 13:13:53
-バージョン:
#contents
** ポイント [#v9d0f2d0]
- 1) PukiWikiのメッセージを国際化するにあたり、gettext を...
-- [[PHP]] の extension である GNU gettext extensionを利...
-- gettext extension の存在しない PHP環境のために、gettex...
- 2) PukiWikiがgettextを利用する場合、どのように設計するか
-- リソースの数と種類 (ドメインは単一か、あるいは複数用い...
-- リソースの配置場所
-- リソースの作成手段とその共有方法
-- リソースの利用形態 (PukiWikiに組み込む形態)
- 3) gettextエミュレーターは現実的に動作するか
-- gettext extension が存在しない場合にシームレスに動作す...
-- 現実的な速度で動作するか
** ちょっと確認: GNU gettext [#vaa28455]
- http://www.gnu.org/software/gettext/
-- manual http://www.gnu.org/software/gettext/manual/gett...
- gettextメモ -- http://home.catv.ne.jp/pp/ginoue/memo/ge...
- Python ライブラリリファレンス: GNU gettext API
-- http://www.python.jp/pub/doc_jp/lib/node268.html
** ちょっと確認: PHP GNU gettext extension [#n68344fb]
http://jp2.php.net/manual/ja/ref.gettext.php
- "gettext checks for files once and keeps them in cashe....
<?php
// translation file: D:\Apache\htdocs\mypage\locale\bgr_...
putenv("LC_ALL=bgr_BGR");
bindtextdomain('messages', 'D:\Apache\htdocs\mypage\loca...
echo gettext("Hello");
?>
- PHPのGNU gettext extensionを利用しているプロダクト
-- squirrelmail (GPL) -- http://www.squirrelmail.jp/
--- http://cvs.sourceforge.net/viewcvs.py/squirrelmail/lo...
- よくきたblog: PHP de gettext
-- http://elf.no-ip.org/blog/index.php?categ=1&year=2004&...
**メッセージ [#n93e65aa]
-みなさんにご相談なんですが、gmo が読めるPHPの実装は概ね...
--[[人柱>upk:自作/PHP/gettext.php>http://jo1upk.blogdns.n...
----
-お、言語リソースを収めるフレームワークが現れた :) PHPで...
--よろしくお願いします。lng以外のメッセージは、翻訳側から...
-といっても、最初にやるのはPHP gettextモジュールの用意と...
-了解しました。個人的に思っているのは、国際化を行う前に m...
-昨日触ってみました。 test-msgunfmt.php だけしか動かせて...
-お手数をおかけします。趣味の問題なのかなぁ。と思いました...
--スキンの折り合いが微妙ですけど、プログラマと翻訳者とデ...
---そうなんですよね。この考えをスキンに組み込むことはでき...
--ただ、これを使用するのは .php (本体およびプラグイン)で...
---PHP用の、はじめての gettext という感じのものですか? -...
-そうそう、そういう意味ではユニバーサルデザインにするため...
-最新 cvs に gettext エミュレーション部分のみを組み込むと...
--このパッチの適用のみで止めておくと、lang と gettext と...
-とりあえず、gettext話用のBugTrackに移動しましょう :) ((...
-了解しました。この件の派生として、gettext化した場合に、g...
-lnag ファイルを見ていますが、重複項目はあるは、日本語と...
//#comment
** 20041115.zip [#k14d42a8]
-&ref(20041115.zip); は、gettext部分の本体パッチに加え、
--pot などの生成に関するシェルスクリプト
--refererプラグイン
--calendar2プラグイン~
の固有メッセージをlng ファイルから抹殺し、po にしています...
-pukiwiki/develに以下のシェルスクリプトを入れておきました。
|ファイル名|用途|h
|po_php2pot.sh|potを生成するためのものです。ソース更新時...
|po_update.sh|既に翻訳がされている ja.po などを、更新され...
|po_po2mo.sh|ja.poから mo ファイルを生成します。|
こんなところです。-- [[upk]] &new{2004-11-15 (月) 02:13:4...
-IIS環境下で実験してみたら、gettext() の文字列は、SJISに...
-お疲れ様です ;) 20041115.zip を試しました。devel/ 以下の...
-ただ、gettext extensionを組み込んだ(gettext extensionにp...
if (! extension_loaded('gettext')) {
require(LIB_DIR . 'gettext.php');
}
--実は、通しのテストはさっきしていました。gettext の脱着...
--PHPのバージョンにも依存するんですかね? 4.1.2 という古...
--ja だと駄目で、ja_JP だと日本語になります。Windows環境...
-mbstring.php と同様に、周囲のif文の追加をお願いします :)...
--実は、この部分って気が付いていまして、既に修正はしてい...
-&ref(20041117.zip); WindowsXP(4.3.1), Debian(4.1.2), FC1...
-LinuxとWindows環境で、setlocale まわりの確認を行ってみよ...
-&ref(20041118.zip); お手数をおかけしました。結局、PHP の...
-plugin.php で、各プラグインが gettext を行う場合にお呪い...
-- プラグイン毎に切り替えるべきかしらと思っていましたが、...
---パフォーマンスを考えれば1個ですが、プラグインの独立性...
-未実装関数がなくなりましたので、PHPでサポートされている...
-あと、gettext_noop ( N_ ) の扱いについて、PHP ではサポー...
-お疲れ様です :) お手元ではgettext extensionがある状態で...
--動いていますよ。PHPバージョンの差異を吸収するのに難儀し...
-PHP 4.2.0で追加になった関数がまともに動くのは 4.3.2 から...
-&ref(20041122.zip); - 翻訳数などは変わっていませんが、エ...
//#comment
----
>順次、整理していきますが、ちょっとだけ。
ページを分けますか?どうしましょう?
理由などは、[[upk:PHP/国際化/ドメイン>http://jo1upk.blogd...
簡単に書くとこんな感じです。
**2) PukiWikiがgettextを利用する場合、どのように設計する...
***リソースの数と種類 (ドメインは単一か、あるいは複数用い...
>PukiWiki本体が配布するアーカイブの単位で1つと考えていま...
-1ドメインの方が管理がらく。
--xgettextコマンドで、拡張子が php のものだけ拾えばよい。
---言い換えれば、ドメインを分割すると、ファイル単位で指定...
-メッセージカタログというファイルが単一なので、パフォーマ...
>以下の利用を考慮して、複数ドメインでの稼動もサポートして...
-サードパーティ製プラグインへの対応
--本体の翻訳のみならず、サードパーティ製プラグインの国際...
---本体は lng ファイルで吸収できていると認識
---翻訳作業を行うこと=プログラムソースに手を入れること ...
---プログラムとメッセージを分離することで、翻訳のみの作業...
-メッセージのカスタマイズ(プラグインのみであれば簡単)
>というイメージです。
-お疲れ様です。上記でコメントしたのちまた考えましたが、単...
-[[みこ]]さんが言われていた、po を読むという前の版と組み...
//#comment
***リソースの配置場所 [#a7ce1f1e]
>pot および po ファイルは、稼動時は不要です。ドメイン構成...
単一構成に決定した場合には、po を分けるが妥当だと思ってい...
現状は、単一・複数でもいけるだろう以下のような構成を案と...
-案1
pukiwiki
└─locale
│ └─ pukiwiki.pot, es_ES.po, ja.po, ns_NL.po
├─es_ES
│ └─LC_MESSAGES
│ └─ pukiwiki.mo
├─ja
│ └─LC_MESSAGES
│ └─ pukiwiki.mo
└─nl_NL
└─LC_MESSAGES
└─ pukiwiki.mo
-案2(複数ドメイン構成を考慮した場合)~
po の保存先を間違えると危ないです。
pukiwiki
└─locale
│ └─ pukiwiki.pot
├─es_ES
│ └─LC_MESSAGES
│ └─ pukiwiki.mo
│ pukiwiki.po
├─ja
│ └─LC_MESSAGES
│ └─ pukiwiki.mo
│ pukiwiki.po
└─nl_NL
└─LC_MESSAGES
└─ pukiwiki.mo
pukiwiki.po
>仮に複数ドメインにした場合には、以下のようになると思いま...
pukiwiki
└─locale
│ └─ pukiwiki.pot, edit.pot, article.pot ...
├─es_ES
│ └─LC_MESSAGES
│ └─ pukiwiki.mo, edit.mo, article.mo ...
│ pukiwiki.po, edit.po, article.po ...
├─ja
│ └─LC_MESSAGES
│ └─ pukiwiki.mo, edit.mo, article.mo ...
│ pukiwiki.po, edit.po, article.po ...
└─nl_NL
└─LC_MESSAGES
└─ pukiwiki.mo, edit.mo, article.mo ...
pukiwiki.po, edit.po, article.po ...
//#comment
終了行:
RIGHT:&size(12){Category: [[:Internationalization]]};
*[国際化] gettext の利用 / extension の利用 / gettextリー...
-ページ: BugTrack
-投稿者: [[henoheno]]
-優先順位: 普通
-状態: 着手
-カテゴリー: 本体新機能
-投稿日: 2004-11-14 (日) 13:13:53
-バージョン:
#contents
** ポイント [#v9d0f2d0]
- 1) PukiWikiのメッセージを国際化するにあたり、gettext を...
-- [[PHP]] の extension である GNU gettext extensionを利...
-- gettext extension の存在しない PHP環境のために、gettex...
- 2) PukiWikiがgettextを利用する場合、どのように設計するか
-- リソースの数と種類 (ドメインは単一か、あるいは複数用い...
-- リソースの配置場所
-- リソースの作成手段とその共有方法
-- リソースの利用形態 (PukiWikiに組み込む形態)
- 3) gettextエミュレーターは現実的に動作するか
-- gettext extension が存在しない場合にシームレスに動作す...
-- 現実的な速度で動作するか
** ちょっと確認: GNU gettext [#vaa28455]
- http://www.gnu.org/software/gettext/
-- manual http://www.gnu.org/software/gettext/manual/gett...
- gettextメモ -- http://home.catv.ne.jp/pp/ginoue/memo/ge...
- Python ライブラリリファレンス: GNU gettext API
-- http://www.python.jp/pub/doc_jp/lib/node268.html
** ちょっと確認: PHP GNU gettext extension [#n68344fb]
http://jp2.php.net/manual/ja/ref.gettext.php
- "gettext checks for files once and keeps them in cashe....
<?php
// translation file: D:\Apache\htdocs\mypage\locale\bgr_...
putenv("LC_ALL=bgr_BGR");
bindtextdomain('messages', 'D:\Apache\htdocs\mypage\loca...
echo gettext("Hello");
?>
- PHPのGNU gettext extensionを利用しているプロダクト
-- squirrelmail (GPL) -- http://www.squirrelmail.jp/
--- http://cvs.sourceforge.net/viewcvs.py/squirrelmail/lo...
- よくきたblog: PHP de gettext
-- http://elf.no-ip.org/blog/index.php?categ=1&year=2004&...
**メッセージ [#n93e65aa]
-みなさんにご相談なんですが、gmo が読めるPHPの実装は概ね...
--[[人柱>upk:自作/PHP/gettext.php>http://jo1upk.blogdns.n...
----
-お、言語リソースを収めるフレームワークが現れた :) PHPで...
--よろしくお願いします。lng以外のメッセージは、翻訳側から...
-といっても、最初にやるのはPHP gettextモジュールの用意と...
-了解しました。個人的に思っているのは、国際化を行う前に m...
-昨日触ってみました。 test-msgunfmt.php だけしか動かせて...
-お手数をおかけします。趣味の問題なのかなぁ。と思いました...
--スキンの折り合いが微妙ですけど、プログラマと翻訳者とデ...
---そうなんですよね。この考えをスキンに組み込むことはでき...
--ただ、これを使用するのは .php (本体およびプラグイン)で...
---PHP用の、はじめての gettext という感じのものですか? -...
-そうそう、そういう意味ではユニバーサルデザインにするため...
-最新 cvs に gettext エミュレーション部分のみを組み込むと...
--このパッチの適用のみで止めておくと、lang と gettext と...
-とりあえず、gettext話用のBugTrackに移動しましょう :) ((...
-了解しました。この件の派生として、gettext化した場合に、g...
-lnag ファイルを見ていますが、重複項目はあるは、日本語と...
//#comment
** 20041115.zip [#k14d42a8]
-&ref(20041115.zip); は、gettext部分の本体パッチに加え、
--pot などの生成に関するシェルスクリプト
--refererプラグイン
--calendar2プラグイン~
の固有メッセージをlng ファイルから抹殺し、po にしています...
-pukiwiki/develに以下のシェルスクリプトを入れておきました。
|ファイル名|用途|h
|po_php2pot.sh|potを生成するためのものです。ソース更新時...
|po_update.sh|既に翻訳がされている ja.po などを、更新され...
|po_po2mo.sh|ja.poから mo ファイルを生成します。|
こんなところです。-- [[upk]] &new{2004-11-15 (月) 02:13:4...
-IIS環境下で実験してみたら、gettext() の文字列は、SJISに...
-お疲れ様です ;) 20041115.zip を試しました。devel/ 以下の...
-ただ、gettext extensionを組み込んだ(gettext extensionにp...
if (! extension_loaded('gettext')) {
require(LIB_DIR . 'gettext.php');
}
--実は、通しのテストはさっきしていました。gettext の脱着...
--PHPのバージョンにも依存するんですかね? 4.1.2 という古...
--ja だと駄目で、ja_JP だと日本語になります。Windows環境...
-mbstring.php と同様に、周囲のif文の追加をお願いします :)...
--実は、この部分って気が付いていまして、既に修正はしてい...
-&ref(20041117.zip); WindowsXP(4.3.1), Debian(4.1.2), FC1...
-LinuxとWindows環境で、setlocale まわりの確認を行ってみよ...
-&ref(20041118.zip); お手数をおかけしました。結局、PHP の...
-plugin.php で、各プラグインが gettext を行う場合にお呪い...
-- プラグイン毎に切り替えるべきかしらと思っていましたが、...
---パフォーマンスを考えれば1個ですが、プラグインの独立性...
-未実装関数がなくなりましたので、PHPでサポートされている...
-あと、gettext_noop ( N_ ) の扱いについて、PHP ではサポー...
-お疲れ様です :) お手元ではgettext extensionがある状態で...
--動いていますよ。PHPバージョンの差異を吸収するのに難儀し...
-PHP 4.2.0で追加になった関数がまともに動くのは 4.3.2 から...
-&ref(20041122.zip); - 翻訳数などは変わっていませんが、エ...
//#comment
----
>順次、整理していきますが、ちょっとだけ。
ページを分けますか?どうしましょう?
理由などは、[[upk:PHP/国際化/ドメイン>http://jo1upk.blogd...
簡単に書くとこんな感じです。
**2) PukiWikiがgettextを利用する場合、どのように設計する...
***リソースの数と種類 (ドメインは単一か、あるいは複数用い...
>PukiWiki本体が配布するアーカイブの単位で1つと考えていま...
-1ドメインの方が管理がらく。
--xgettextコマンドで、拡張子が php のものだけ拾えばよい。
---言い換えれば、ドメインを分割すると、ファイル単位で指定...
-メッセージカタログというファイルが単一なので、パフォーマ...
>以下の利用を考慮して、複数ドメインでの稼動もサポートして...
-サードパーティ製プラグインへの対応
--本体の翻訳のみならず、サードパーティ製プラグインの国際...
---本体は lng ファイルで吸収できていると認識
---翻訳作業を行うこと=プログラムソースに手を入れること ...
---プログラムとメッセージを分離することで、翻訳のみの作業...
-メッセージのカスタマイズ(プラグインのみであれば簡単)
>というイメージです。
-お疲れ様です。上記でコメントしたのちまた考えましたが、単...
-[[みこ]]さんが言われていた、po を読むという前の版と組み...
//#comment
***リソースの配置場所 [#a7ce1f1e]
>pot および po ファイルは、稼動時は不要です。ドメイン構成...
単一構成に決定した場合には、po を分けるが妥当だと思ってい...
現状は、単一・複数でもいけるだろう以下のような構成を案と...
-案1
pukiwiki
└─locale
│ └─ pukiwiki.pot, es_ES.po, ja.po, ns_NL.po
├─es_ES
│ └─LC_MESSAGES
│ └─ pukiwiki.mo
├─ja
│ └─LC_MESSAGES
│ └─ pukiwiki.mo
└─nl_NL
└─LC_MESSAGES
└─ pukiwiki.mo
-案2(複数ドメイン構成を考慮した場合)~
po の保存先を間違えると危ないです。
pukiwiki
└─locale
│ └─ pukiwiki.pot
├─es_ES
│ └─LC_MESSAGES
│ └─ pukiwiki.mo
│ pukiwiki.po
├─ja
│ └─LC_MESSAGES
│ └─ pukiwiki.mo
│ pukiwiki.po
└─nl_NL
└─LC_MESSAGES
└─ pukiwiki.mo
pukiwiki.po
>仮に複数ドメインにした場合には、以下のようになると思いま...
pukiwiki
└─locale
│ └─ pukiwiki.pot, edit.pot, article.pot ...
├─es_ES
│ └─LC_MESSAGES
│ └─ pukiwiki.mo, edit.mo, article.mo ...
│ pukiwiki.po, edit.po, article.po ...
├─ja
│ └─LC_MESSAGES
│ └─ pukiwiki.mo, edit.mo, article.mo ...
│ pukiwiki.po, edit.po, article.po ...
└─nl_NL
└─LC_MESSAGES
└─ pukiwiki.mo, edit.mo, article.mo ...
pukiwiki.po, edit.po, article.po ...
//#comment
ページ名: