PukiWiki/国際化
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
RIGHT:&size(12){Category:[[国際化>:Internationalization]]};
*国際化 [#g192bddf]
現在の国際化対応から一歩進めて、次バージョンでの実装方針...
考えていくページです。
#contents
**Unicode化 [#v60cc7a4]
各国で利用を想定すると、やはりUnicode化されていないと厳し...
-[[PukiWiki/1.4/UTF-8化]]
を任意でというわけにもいかないのかなぁ?
**スキンの切り替え [#e426a799]
''自動で言語選択ができる機能''を実装すること。
動作イメージとしては、Apache で言うところの ''MultiViews'...
''content negotiation'' する。そんなことを、PukiWiki でや...
''content negotiation'' の機能を真面目に実装するイメージ...
***イメージ [#v560dc22]
+''Accept-Language'' から言語を取得
+言語にあわせたスキンを選択
+文章も、その言語対応版があれば表示
++[[WikiFarm>PukiWiki/WikiFarm]] 的な挙動に近い
という動きをする機能。
***処理 [#i4de1184]
-HTTP_ACCEPT_LANGUAGE
>言語コードを取得する。未定義の場合は、デフォルトの言語コ...
<
--用意した言語コードに一致している場合
---スキンを利用する
---用意されている文書があれば、それを表示する
---Content-Language ヘッダーを追加して表示する
**メッセージファイル(.lng)の考え方取り扱い [#v653e892]
***PukiWiki 本体 [#n3243880]
PukiWiki 本体に絡むメッセージに関しては、従来通りの ex. j...
これは、LANG.lng ファイルが肥大化傾向にあり、各サイト毎の...
不用なメッセージとなってしまう部分もあり、本体部分とプラ...
することを目的としている。
***プラグイン [#ad5c920a]
プラグインの独立性を確保する観点から、プラグイン毎に管理...
また、現在のプラグイン埋め込み方式から分離することで、
プログラムが分からない人であっても、翻訳作業が容易に行え...
また、翻訳追加に伴うプログラムファイル本体への改修の発生...
バージョン管理がスムースに行えるようにする。
***意見 [#v61f5955]
- YIabXJUxsAGhqgug -- [[ookvupvye]] &new{2014-06-12 (木) ...
#comment
**デバイス対応 [#vf24114b]
i_mode.ini.php や jphone.ini.php など User-Agent から判断...
行っているが、このデバイスも、各国毎に異なる場合があり、...
**文書の取り扱い [#qfa5d31f]
文書ファイルの国際化を考えた際に、プラグインを1つ作るこ...
気が付いた。イメージとしては、include プラグイン的なもの...
専用に作り上げていく。そんな感じ。
#i18n_msg(ja,ヘルプ)
#i18n_msg(en,Help)
みたいな(素案っす)。ファイル名一覧をどうする。とか、まぁ...
ただ、この素案だと、即日完成ですかね。LANG が等しい時しか...
----
書き留めていた部分ですので、みなさんで色々と固めていけた...
**コメント [#i3655077]
***国際化一般 [#v84ac56f]
-国際化にはもう1つ意味があるのではないでしょうか?それは...
-保存はすべてUnicodeで行い、表示/編集時は 設置者が決める...
#comment
***多言語コンテンツ [#nea1000b]
-言語ごとにページができてしまうのは致し方無いものだと思う...
-gettext での実装ができたとしても、プログラムのプログラマ...
- コンテンツの多言語化に興味があります。プラグインでも一...
-- 日ごろお世話になっている [[Fink:http://fink.sourceforg...
-- 冒険者な方は、svnレポジトリからダウンロード ([[プラグ...
>HTTP_ACCEPT_LANGUAGE や Cookie の値をみて適当な言語のペ...
リダイレクトする PukiWiki プラグイン。
使い方は、~
0. (必要に応じて) PukiWiki を UTF-8 で動かす。~
1. 国際化したいページ hoge を hoge.ja hoge.en などにコピ...
2. hoge というページを改めて作成する。~
3. hoge と hoge.ja hoge.en の内容の行頭に #phpLang と付け...
ページ hoge は問答無用でリダイレクトされるページになるこ...
画面右上に登場する国旗をクリックすると、その言語のページ...
Javascript と Cookie を有効にすると、明示的に選んだ国旗を...
- 多言語コンテンツ対応に取り組んでます。採用した基本ルー...
- サブドメインの先頭が ja だったら日本語、en だったら英語...
- DATA_DIR や DIFF_DIR 等のディレクトリ定数に LANG wo -- ...
- DATA_DIR や DIFF_DIR 等のディレクトリ定数に LANG を組み...
- wiki, diff 等のディレクトリを各言語ごとにコピーして用意...
- 言語間リンクはinterwikiを使うなり、必要に応じてカスタム...
- カスタムタグ=プラグインのこと!500エラーでページの書き...
- スパム対策の副作用で、元のページにURLが含まれていると編...
#comment
*** 実装方法 [#v25cc8fc]
-文書フォルダを別途に掘り、文書名を同一とするのはどうだろ...
--表示する側とか翻訳する側の人にとって、基準となるファイ...
-WikiFarm のイメージでいく前提で、どこかに紐付情報のペー...
|en|ほげ|テスト|h
|Help|ヘルプ|使い方|
UIは例えば、en-FarmのHelp,ほげ-Farmのヘルプ,テスト-Farmの...
-レンタルサーバとかでは、PHP の gettext って有効になって...
--XREA は だめっぽいですね。 -- [[merlin]] &new{2003-10-0...
'./configure' '--enable-mbstring' '--enable-mbstr-enc-tr...
'--enable-i18n' '--with-xml' '--with-mysql=/usr/local/my...
'--with-pgsql=/usr/local/pgsql' '--enable-track-vars' '-...
'--with-gd' '--enable-gd-native-ttf' '--with-zlib-dir=/u...
'--with-jpeg-dir=/usr' '--with-pdflib=/usr/local' '--ena...
'--with-tiff-dir=/usr/local' '--with-freetype-dir=/usr'
'--with-png-dir=/usr/local/libpng' '--disable-debug' '--...
'--enable-debugger=yes' '--enable-memory-limit=yes' '--e...
'--with-exec-dir=/usr/bin'
'--with-config-file-path=/usr/local/apache_shared/conf'
'--without-system-regex' '--with-dbase=yes' '--enable-bc...
'--enable-ftp' '--enable-versioning' '--enable-safe-mode...
'--with-mcrypt=/usr/local/lib/libmcrypt' '--disable-posi...
'--with-apxs=/usr/local/apache/bin/apxs'
--VineLinux は、4.2.3だけどなんでもありなので入っています...
'./configure' '--prefix=/usr' '--with-config-file-path=/...
'--enable-force-cgi-redirect' '--disable-debug' '--enabl...
'--enable-inline-optimization' '--with-apxs=/usr/sbin/ap...
'--with-exec-dir=/usr/bin' '--with-bz2' '--with-regex=sy...
'--with-gmp' '--with-gd' '--with-jpeg-dir=/usr' '--with-...
'--with-ttf' '--with-zlib' '--with-gdbm' '--with-openssl...
'--enable-debugger' '--enable-magic-quotes' '--enable-sa...
'--enable-sockets' '--enable-sysvsem' '--enable-sysvshm'...
'--enable-yp' '--enable-ftp' '--enable-wddx' '--without-...
'--without-oracle' '--without-oci8' '--with-xml' '--with...
'--with-dom=/usr' '--enable-xslt' '--with-xslt-sablot=/u...
'--with-dom-xslt=/usr' '--enable-iconv' '--enable-mbrege...
'--with-kakasi=/usr' '--enable-mbstring' '--enable-mbstr...
'--enable-versioning' '--enable-zend-multibyte'
---ふむ。では、gettext互換用に関数を作って、利用できる場...
--&ref(gettext.zip); にドライバと、サンプル po と mo ファ...
--わおっ、素早い。gettextが使えると便利ですね。 ただ、i18...
---うぅ。互換時は mo 読めません。po で我慢。というすごい...
--とりあえず、lng ファイルから po を切り出して mo を作っ...
--po分離は終了しましたが、一部、メッセージを共有している...
-スキンについては[[official:欲しいプラグイン/57]]で要望が...
-mbstring 互換関数の UTF対応も必要になるのかなぁ? -- [[me...
-gettext の実装を行ってみました。本体への改変も終了し、テ...
--プラグインの独立性を確保するという観点から、プラグイン...
--pukiwiki 本体への gettext の採用は見送るというか、lng ...
--それとも、本体を gettext対応し、プラグインは、やらない...
--こんなところで、どうでしょうか?
----
-&ref(i18n.zip); を添付しました。これは、gettext に対応し...
--$_no_subject、$_no_nameについて、lng にあるものの、po ...
-昔、yomi searchを改造して、英語用と日本語用に設定ファイ...
-ふむ。Accept-Language盲信することなかれ、ですか。ブラウ...
-英語リソースを叩き台に国際化対応をした例として、MacOSXの...
--Webに入力フォームを用意して英語と対になる言葉を入力して...
-やっと、gettext での目処がたちました。po を読むのではな...
--おおっ。 -- [[merlin]] &new{2004-10-27 (水) 22:41:58};
-そういえば、似たようなものに[[IPB:http://www.invisionboa...
-みなさんにご相談なんですが、gmo が読めるPHPの実装は... =...
#comment
**関連しそうな BugTrack [#vbb5a072]
- [[BugTrack/363]] 言語設定LANGと独立した表示言語の設定
- [[BugTrack/147]] requireのパスチェックを修正してほしい...
- [[BugTrack/748]] gettextリーダー
終了行:
RIGHT:&size(12){Category:[[国際化>:Internationalization]]};
*国際化 [#g192bddf]
現在の国際化対応から一歩進めて、次バージョンでの実装方針...
考えていくページです。
#contents
**Unicode化 [#v60cc7a4]
各国で利用を想定すると、やはりUnicode化されていないと厳し...
-[[PukiWiki/1.4/UTF-8化]]
を任意でというわけにもいかないのかなぁ?
**スキンの切り替え [#e426a799]
''自動で言語選択ができる機能''を実装すること。
動作イメージとしては、Apache で言うところの ''MultiViews'...
''content negotiation'' する。そんなことを、PukiWiki でや...
''content negotiation'' の機能を真面目に実装するイメージ...
***イメージ [#v560dc22]
+''Accept-Language'' から言語を取得
+言語にあわせたスキンを選択
+文章も、その言語対応版があれば表示
++[[WikiFarm>PukiWiki/WikiFarm]] 的な挙動に近い
という動きをする機能。
***処理 [#i4de1184]
-HTTP_ACCEPT_LANGUAGE
>言語コードを取得する。未定義の場合は、デフォルトの言語コ...
<
--用意した言語コードに一致している場合
---スキンを利用する
---用意されている文書があれば、それを表示する
---Content-Language ヘッダーを追加して表示する
**メッセージファイル(.lng)の考え方取り扱い [#v653e892]
***PukiWiki 本体 [#n3243880]
PukiWiki 本体に絡むメッセージに関しては、従来通りの ex. j...
これは、LANG.lng ファイルが肥大化傾向にあり、各サイト毎の...
不用なメッセージとなってしまう部分もあり、本体部分とプラ...
することを目的としている。
***プラグイン [#ad5c920a]
プラグインの独立性を確保する観点から、プラグイン毎に管理...
また、現在のプラグイン埋め込み方式から分離することで、
プログラムが分からない人であっても、翻訳作業が容易に行え...
また、翻訳追加に伴うプログラムファイル本体への改修の発生...
バージョン管理がスムースに行えるようにする。
***意見 [#v61f5955]
- YIabXJUxsAGhqgug -- [[ookvupvye]] &new{2014-06-12 (木) ...
#comment
**デバイス対応 [#vf24114b]
i_mode.ini.php や jphone.ini.php など User-Agent から判断...
行っているが、このデバイスも、各国毎に異なる場合があり、...
**文書の取り扱い [#qfa5d31f]
文書ファイルの国際化を考えた際に、プラグインを1つ作るこ...
気が付いた。イメージとしては、include プラグイン的なもの...
専用に作り上げていく。そんな感じ。
#i18n_msg(ja,ヘルプ)
#i18n_msg(en,Help)
みたいな(素案っす)。ファイル名一覧をどうする。とか、まぁ...
ただ、この素案だと、即日完成ですかね。LANG が等しい時しか...
----
書き留めていた部分ですので、みなさんで色々と固めていけた...
**コメント [#i3655077]
***国際化一般 [#v84ac56f]
-国際化にはもう1つ意味があるのではないでしょうか?それは...
-保存はすべてUnicodeで行い、表示/編集時は 設置者が決める...
#comment
***多言語コンテンツ [#nea1000b]
-言語ごとにページができてしまうのは致し方無いものだと思う...
-gettext での実装ができたとしても、プログラムのプログラマ...
- コンテンツの多言語化に興味があります。プラグインでも一...
-- 日ごろお世話になっている [[Fink:http://fink.sourceforg...
-- 冒険者な方は、svnレポジトリからダウンロード ([[プラグ...
>HTTP_ACCEPT_LANGUAGE や Cookie の値をみて適当な言語のペ...
リダイレクトする PukiWiki プラグイン。
使い方は、~
0. (必要に応じて) PukiWiki を UTF-8 で動かす。~
1. 国際化したいページ hoge を hoge.ja hoge.en などにコピ...
2. hoge というページを改めて作成する。~
3. hoge と hoge.ja hoge.en の内容の行頭に #phpLang と付け...
ページ hoge は問答無用でリダイレクトされるページになるこ...
画面右上に登場する国旗をクリックすると、その言語のページ...
Javascript と Cookie を有効にすると、明示的に選んだ国旗を...
- 多言語コンテンツ対応に取り組んでます。採用した基本ルー...
- サブドメインの先頭が ja だったら日本語、en だったら英語...
- DATA_DIR や DIFF_DIR 等のディレクトリ定数に LANG wo -- ...
- DATA_DIR や DIFF_DIR 等のディレクトリ定数に LANG を組み...
- wiki, diff 等のディレクトリを各言語ごとにコピーして用意...
- 言語間リンクはinterwikiを使うなり、必要に応じてカスタム...
- カスタムタグ=プラグインのこと!500エラーでページの書き...
- スパム対策の副作用で、元のページにURLが含まれていると編...
#comment
*** 実装方法 [#v25cc8fc]
-文書フォルダを別途に掘り、文書名を同一とするのはどうだろ...
--表示する側とか翻訳する側の人にとって、基準となるファイ...
-WikiFarm のイメージでいく前提で、どこかに紐付情報のペー...
|en|ほげ|テスト|h
|Help|ヘルプ|使い方|
UIは例えば、en-FarmのHelp,ほげ-Farmのヘルプ,テスト-Farmの...
-レンタルサーバとかでは、PHP の gettext って有効になって...
--XREA は だめっぽいですね。 -- [[merlin]] &new{2003-10-0...
'./configure' '--enable-mbstring' '--enable-mbstr-enc-tr...
'--enable-i18n' '--with-xml' '--with-mysql=/usr/local/my...
'--with-pgsql=/usr/local/pgsql' '--enable-track-vars' '-...
'--with-gd' '--enable-gd-native-ttf' '--with-zlib-dir=/u...
'--with-jpeg-dir=/usr' '--with-pdflib=/usr/local' '--ena...
'--with-tiff-dir=/usr/local' '--with-freetype-dir=/usr'
'--with-png-dir=/usr/local/libpng' '--disable-debug' '--...
'--enable-debugger=yes' '--enable-memory-limit=yes' '--e...
'--with-exec-dir=/usr/bin'
'--with-config-file-path=/usr/local/apache_shared/conf'
'--without-system-regex' '--with-dbase=yes' '--enable-bc...
'--enable-ftp' '--enable-versioning' '--enable-safe-mode...
'--with-mcrypt=/usr/local/lib/libmcrypt' '--disable-posi...
'--with-apxs=/usr/local/apache/bin/apxs'
--VineLinux は、4.2.3だけどなんでもありなので入っています...
'./configure' '--prefix=/usr' '--with-config-file-path=/...
'--enable-force-cgi-redirect' '--disable-debug' '--enabl...
'--enable-inline-optimization' '--with-apxs=/usr/sbin/ap...
'--with-exec-dir=/usr/bin' '--with-bz2' '--with-regex=sy...
'--with-gmp' '--with-gd' '--with-jpeg-dir=/usr' '--with-...
'--with-ttf' '--with-zlib' '--with-gdbm' '--with-openssl...
'--enable-debugger' '--enable-magic-quotes' '--enable-sa...
'--enable-sockets' '--enable-sysvsem' '--enable-sysvshm'...
'--enable-yp' '--enable-ftp' '--enable-wddx' '--without-...
'--without-oracle' '--without-oci8' '--with-xml' '--with...
'--with-dom=/usr' '--enable-xslt' '--with-xslt-sablot=/u...
'--with-dom-xslt=/usr' '--enable-iconv' '--enable-mbrege...
'--with-kakasi=/usr' '--enable-mbstring' '--enable-mbstr...
'--enable-versioning' '--enable-zend-multibyte'
---ふむ。では、gettext互換用に関数を作って、利用できる場...
--&ref(gettext.zip); にドライバと、サンプル po と mo ファ...
--わおっ、素早い。gettextが使えると便利ですね。 ただ、i18...
---うぅ。互換時は mo 読めません。po で我慢。というすごい...
--とりあえず、lng ファイルから po を切り出して mo を作っ...
--po分離は終了しましたが、一部、メッセージを共有している...
-スキンについては[[official:欲しいプラグイン/57]]で要望が...
-mbstring 互換関数の UTF対応も必要になるのかなぁ? -- [[me...
-gettext の実装を行ってみました。本体への改変も終了し、テ...
--プラグインの独立性を確保するという観点から、プラグイン...
--pukiwiki 本体への gettext の採用は見送るというか、lng ...
--それとも、本体を gettext対応し、プラグインは、やらない...
--こんなところで、どうでしょうか?
----
-&ref(i18n.zip); を添付しました。これは、gettext に対応し...
--$_no_subject、$_no_nameについて、lng にあるものの、po ...
-昔、yomi searchを改造して、英語用と日本語用に設定ファイ...
-ふむ。Accept-Language盲信することなかれ、ですか。ブラウ...
-英語リソースを叩き台に国際化対応をした例として、MacOSXの...
--Webに入力フォームを用意して英語と対になる言葉を入力して...
-やっと、gettext での目処がたちました。po を読むのではな...
--おおっ。 -- [[merlin]] &new{2004-10-27 (水) 22:41:58};
-そういえば、似たようなものに[[IPB:http://www.invisionboa...
-みなさんにご相談なんですが、gmo が読めるPHPの実装は... =...
#comment
**関連しそうな BugTrack [#vbb5a072]
- [[BugTrack/363]] 言語設定LANGと独立した表示言語の設定
- [[BugTrack/147]] requireのパスチェックを修正してほしい...
- [[BugTrack/748]] gettextリーダー
ページ名: