現在の国際化対応から一歩進めて、次バージョンでの実装方針などを 考えていくページです。
各国で利用を想定すると、やはりUnicode化されていないと厳しい局面も多いでしょう。
自動で言語選択ができる機能を実装すること。
動作イメージとしては、Apache で言うところの MultiViewsの機能を使って、 content negotiation する。そんなことを、PukiWiki でやってみようという試み。
content negotiation の機能を真面目に実装するイメージではない。
という動きをする機能。
言語コードを取得する。未定義の場合は、デフォルトの言語コードとする。
PukiWiki 本体に絡むメッセージに関しては、従来通りの ex. ja.lng で管理する。 これは、LANG.lng ファイルが肥大化傾向にあり、各サイト毎の運用状況を考慮すれば 不用なメッセージとなってしまう部分もあり、本体部分とプラグイン部分を分離管理 することを目的としている。
プラグインの独立性を確保する観点から、プラグイン毎に管理する。 また、現在のプラグイン埋め込み方式から分離することで、 プログラムが分からない人であっても、翻訳作業が容易に行えるようにする。 また、翻訳追加に伴うプログラムファイル本体への改修の発生を抑止し、 バージョン管理がスムースに行えるようにする。
i_mode.ini.php や jphone.ini.php など User-Agent から判断しデバイス対応を 行っているが、このデバイスも、各国毎に異なる場合があり、考慮すべき事項となる。
文書ファイルの国際化を考えた際に、プラグインを1つ作ることで対応ができることに 気が付いた。イメージとしては、include プラグイン的なもの。これを、国際化対応 専用に作り上げていく。そんな感じ。
#i18n_msg(ja,ヘルプ) #i18n_msg(en,Help)
みたいな(素案っす)。ファイル名一覧をどうする。とか、まぁ。考えれば色々と。 ただ、この素案だと、即日完成ですかね。LANG が等しい時しか反応しないなんて。
書き留めていた部分ですので、みなさんで色々と固めていけたらと思います。-- upk 2003-08-19 (火) 00:58:20
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 を有効にすると、明示的に選んだ国旗を覚えていてくれます。
- 多言語コンテンツ対応に取り組んでます。採用した基本ルールはとても単純です。以下にメモを書いておきます。 -- toydev 2017-05-29 (月) 22:10:00
- サブドメインの先頭が ja だったら日本語、en だったら英語というルールを採用。サブドメインの文字列を解析して LANG 定数を設定するよう pukiwiki.ini.php を書き換える(別のルールにしたいなら LANG の設定方法を変えればいいだけ)。 -- toydev 2017-05-29 (月) 22:14:11
- DATA_DIR や DIFF_DIR 等のディレクトリ定数に LANG wo -- toydev 2017-05-29 (月) 22:15:25
- DATA_DIR や DIFF_DIR 等のディレクトリ定数に LANG を組み込んで、言語によって読み込まれるデータフォルダが自動的に切り替わるようにする。例えば「DATA_HOME . LANG . '/wiki/'」とする。 -- toydev 2017-05-29 (月) 22:16:26
- wiki, diff 等のディレクトリを各言語ごとにコピーして用意する。 -- toydev 2017-05-29 (月) 22:17:28
- 言語間リンクはinterwikiを使うなり、必要に応じてカスタムタグを作るなりしてがんばる。設定だけでほとんど本体は触らずできる。 -- toydev 2017-05-29 (月) 22:21:38
- カスタムタグ=プラグインのこと!500エラーでページの書き換えができない…。 -- toydev 2017-05-29 (月) 22:26:34
- スパム対策の副作用で、元のページにURLが含まれていると編集ができません。分量がある場合、別のページを作った方が良いかもしれません -- umorigu 2017-05-29 (月) 22:58:51
en | ほげ | テスト |
Help | ヘルプ | 使い方 |
'./configure' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregex' '--enable-i18n' '--with-xml' '--with-mysql=/usr/local/mysql' '--with-pgsql=/usr/local/pgsql' '--enable-track-vars' '--enable-discard-path' '--with-gd' '--enable-gd-native-ttf' '--with-zlib-dir=/usr' '--with-jpeg-dir=/usr' '--with-pdflib=/usr/local' '--enable-shared-pdflib' '--with-tiff-dir=/usr/local' '--with-freetype-dir=/usr' '--with-png-dir=/usr/local/libpng' '--disable-debug' '--enable-debug=no' '--enable-debugger=yes' '--enable-memory-limit=yes' '--enable-magic-quotes=yes' '--with-exec-dir=/usr/bin' '--with-config-file-path=/usr/local/apache_shared/conf' '--without-system-regex' '--with-dbase=yes' '--enable-bcmath=yes' '--enable-ftp' '--enable-versioning' '--enable-safe-mode' '--enable-sockets' '--with-mcrypt=/usr/local/lib/libmcrypt' '--disable-posix-threads' '--with-apxs=/usr/local/apache/bin/apxs'
'./configure' '--prefix=/usr' '--with-config-file-path=/etc' '--enable-force-cgi-redirect' '--disable-debug' '--enable-pic' '--enable-inline-optimization' '--with-apxs=/usr/sbin/apxs' '--with-exec-dir=/usr/bin' '--with-bz2' '--with-regex=system' '--with-gettext' '--with-gmp' '--with-gd' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--with-ttf' '--with-zlib' '--with-gdbm' '--with-openssl' '--with-layout=GNU' '--enable-debugger' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-yp' '--enable-ftp' '--enable-wddx' '--without-mysql' '--without-oracle' '--without-oci8' '--with-xml' '--with-expat-dir=/usr' '--with-dom=/usr' '--enable-xslt' '--with-xslt-sablot=/usr' '--with-dom-xslt=/usr' '--enable-iconv' '--enable-mbregex' '--with-namazu=/usr' '--with-kakasi=/usr' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-versioning' '--enable-zend-multibyte'