Download List

Sponsored link

Project Description

XOOPSの統合パッケージを開発するプロジェクトです。

System Requirements

System requirement is not defined
xlang
xlang_010

Released at 2008-01-12 20:45
xlang xlang_010 (1 files Hide)

Release Notes


XOOPS Language Translation Support
This module support to translate the language files.
This create the bilingual table of two language English and Foreign language,
like French Arabian Japanse Chinese Korean and others

I remake "XOOPS tool for the bilingual table" to XOOPS module
http://linux.ohwada.jp/modules/mydownloads/singlefile.php?cid=1&lid=57


* main feature *

I added the following feature, when remake to module.
(1) some persons can edit the words on WEB.
(2) you can download as the file after editing.
(3) you can see the change log of every.
(4) in UTF-8 environment,
it is possible to handle more languages which have the different character code.


* initial setting *

(1) rename "include/charset-dist.php" to "include/charset.php"

(2) set your language in "include/charset.php"
exsample for English
---
$XLANG_MY_LANGUAGE = 'english';
---

(3) add your MySQL character_set_client
(4) add your langugage character set
(5) set options
please read "include/charset.php" for more detail


* restriction *

1. xlang reads the language file as PHP program.
therefore, cannot read right in the following case.

(1) there is program description in the language file.
(2) there is string connect with XOOPS or PHP constant.
(3) there is same constant-name which is defined in the other file,
in the mode to read two or more langugae files

please action like the following, to avoid this restriction .
(a) modify langugae file before read
(b) modify words and files on databese after read


2. The file except the language

There are the modules which has the program file not useing for the language definition in the lagugae directory.
xlang creates the database area where there are receptacle but no content,
when import those files.
It ocuures the managerial trouble.

the admin can specify the files not to read, to avoid this trouble.
exsample) options/weblinks/skip_files.php
-----
$XLANG_SKIP_FILES = array(
'weblinks_language_convert.php',
'language_convert.php'
);
-----


3. support dupicatable module
In the duplicatable module such as weblinks, there is program description in the language file.
xlang cannot import the first defined sentence, becouse restriction above
-----
if( !defined('WEBLINKS_LANG_MI_LOADED') )
{
define('WEBLINKS_LANG_MI_LOADED', 1);
define("_MI_WEBLINKS_NAME", "Web Links");
}
-----

the admin can define the template file for create in each language file, to solve this restriction.
exsample) options/weblinks/modinfo.php.tpl
-----
if( !defined("WEBLINKS_LANG_MI_LOADED") )
{
{XLANG_DEFINES}
}
-----

4. escape processing

xlang surround the words and sentences with double qoutation " as following,
when create language file form the words and sentences.
-----
define("_MI_XLANG_NAME", "Language Translation Support");
-----

xlang escapes double qoutation in the words and sentences
exsample)
' specify double qoutation " ' => " specify double qoutation \" "

you must describe double qoutation 3 times """ , when you want raw double qoutation.
exsample)
' describe raw double qoutation """ ' => " describe raw double qoutation " "

list of escape processing
-----
" => \"
\" => \" (no change)
""" => "
\' => '
line code (\n,\r) => delete ('')
tab code (\t) => delete ('')
-----


5. customize for the escape processing
sometime feel an inconvenient in standard escape processing avobe.

please action like the following
(a) modift the created file ( easy when few changes )
(b) define the escape processing in each laguage file

exsample) options/cbb-308/filter.php
-----
function xlang_filter_cbb_308_modinfo_php( $str )
{
describe the escape processing
}
-----


* future study *

in currnet version. it has no translation feature.
Some of the translation web service appears,
I will support sometime.
- http://babelfish.altavista.com/
- http://www.webservicex.net/

==========================================================


言語翻訳支援 モジュール
XOOPSモジュールの言語ファイルの翻訳を支援するため、
英語と自国語(日本語)の2つの言語の対訳表を表示・編集する。

「XOOPS 英日対訳表 作成ツール」をモジュール化したもの。
http://linux.ohwada.jp/modules/mydownloads/singlefile.php?cid=1&lid=57


● 主な機能

モジュール化にあたり、下記の機能を追加した
(1) WEB上で複数の人が単語の編集ができる
(2) 編集後にファイルとしてダウンロードできる
(3) 単語ごとの編集来歴が見れる
(4) UTF-8 環境では、文字コードの異なる複数の言語が扱える


● 初期設定

(1) include/charset-dist.php を include/charset.php にリネームする

(2) include/charset.php に下記を追記する
---
$XLANG_MY_LANGUAGE = 'japanese';
---


● 制約事項

1. 言語ファイルを PHP プログラムとして読み込みます
そのため、次のケースでは、正しく読めないことがあります
(1) 言語ファイルにプログラムの記述がある
(2) XOOPS 定数や PHP 定数などと文字列の連結を行っている
(3) 複数の言語ファイルをまとめて読むモードにて、他のファイルで定義されたのと同じ定数名がある

この制約を回避するには、下記のような対応をしてください。
(a) 事前に言語ファイルを修正する
(b) 読み込んだ後で、データベースのデータを修正する


2. 言語以外のファイル
言語ファイルのディレクトリイに、言語の定義に使用されていないプログラム・ファイルを持つモジュールがあります。
これを読み込むと、入れ物はあるが中身のないデータベース・エリアが生成されます。
管理上の混乱の元になります。

これを回避するために、読み込まないファイルを指定することが出来ます。
options/weblinks/skip_files.php の例
-----
$XLANG_SKIP_FILES = array(
'weblinks_language_convert.php',
'language_convert.php'
);
-----


3. 複製モジュールへの対応
weblinks など複製可能なモジュールでは、言語ファイルにプログラムの記述があります
上記の制約から 最初の defined 文は読み込まれません
-----
if( !defined('WEBLINKS_LANG_MI_LOADED') )
{
define('WEBLINKS_LANG_MI_LOADED', 1);
define("_MI_WEBLINKS_NAME", "Web Links");
}
-----

これに対応するために、言語ファイル毎に生成用のテンプレートを持つことが出来ます。
options/weblinks/modinfo.php.tpl の例
-----
if( !defined("WEBLINKS_LANG_MI_LOADED") )
{
{XLANG_DEFINES}
}
-----


4. エスケープ処理
単語・文章から言語ファイルを生成する場合、単語・文章の内容は下記のようにダブルコーテーション " で括られます。
-----
define("_MI_XLANG_NAME", "Language Translation Support");
-----

単語・文章に中にあるダブルコーテーションはエスケープされます。
「ダブルコーテーション " を指定する」 は
"ダブルコーテーション \" を指定する" となる

ダブルコーテーションそのものを記述するには、ダブルコーテーションを3回記述します """
「そのままのダブルコーテーション """ を記述する」 は
"そのままのダブルコーテーション " を記述する" となる

エスケープ処理の一覧
-----
" => \"
\" => \" (元のまま)
""" => "
\' => '
改行コード(\n,\r) => 削除('')
タブコード(\t) => 削除('')
-----


5. エスケープ処理のカスタマイズ
上記の標準的なエスケープ処理では、不便なことがあります。

下記のような対応をしてください。
(a) 生成されたファイルを修正する (変更が少ない場合はこれが簡単)
(b) 言語ファイル毎にエスケープ処理を定義する

options/cbb-308/filter.php の例
-----
function xlang_filter_cbb_308_modinfo_php( $str )
{
ここに処理を記述する
}
-----


● 将来の課題

現在は、翻訳そのものは行わない。
いくつか 翻訳の WEB サービスが出てきているので、そのうち対応してみる
http://babelfish.altavista.com/
http://www.webservicex.net/

Changelog

No Changelogs