FCKeditor – 多言語対応

FCKeditorの多言語対応はとっても簡単だ。
言語別のテキストを取得する仕組みと、ページを一括で変換する仕組みがある。

まず、言語別の定義ファイルにテキストを登録する。
言語別のテキストはもう利用可能になる。
次にページのタグにFCKeditorの多言語対応用のオプションを追加する。
そして window.onload でページを一括変換する。

以下に詳細を解説する。

言語の設定

言語に関する設定は、以下で行う。

FCKConfig.AutoDetectLanguage = true ; // 言語の自動判別
FCKConfig.DefaultLanguage = ‘en’ ; //デフォルトの言語
FCKConfig.ContentLangDirection = ‘ltr’ ; // テキストの方向

言語別の定義ファイル

/FCKeditor/editor/lang/*.js が言語別の定義ファイルだ。
英語は en.js 、日本語は ja.js となる。

サンプルとして、テーブル機能の誤訳を直してみよう。

/FCKeditor/editor/lang/ja.js

// Table Dialog
DlgTableTitle		: "テーブル プロパティ",
DlgTableRows		: "行",
DlgTableColumns		: "列",
DlgTableBorder		: "ボーダーサイズ",
DlgTableAlign		: "キャプションの整列",
DlgTableAlignNotSet	: "<なし>",
DlgTableAlignLeft	: "左",
DlgTableAlignCenter	: "中央",
DlgTableAlignRight	: "右",
DlgTableWidth		: "テーブル幅",
DlgTableWidthPx		: "ピクセル",
DlgTableWidthPc		: "パーセント",
DlgTableHeight		: "テーブル高さ",
DlgTableCellSpace	: "セル内余白",
DlgTableCellPad		: "セル内間隔",
DlgTableCaption		: "キャプション",
DlgTableSummary		: "テーブル目的/構造",

画像(180x106)


DlgTableAlign と DlgTableCaption を修正

// Table Dialog
DlgTableTitle		: "テーブル プロパティ",
DlgTableRows		: "行",
DlgTableColumns		: "列",
DlgTableBorder		: "ボーダーサイズ",
DlgTableAlign		: "テーブル配置",
DlgTableAlignNotSet	: "<なし>",
DlgTableAlignLeft	: "左",
DlgTableAlignCenter	: "中央",
DlgTableAlignRight	: "右",
DlgTableWidth		: "テーブル幅",
DlgTableWidthPx		: "ピクセル",
DlgTableWidthPc		: "パーセント",
DlgTableHeight		: "テーブル高さ",
DlgTableCellSpace	: "セル内余白",
DlgTableCellPad		: "セル内間隔",
DlgTableCaption		: "キャプション",
DlgTableSummary		: "テーブル目的/構造",

画像(180x106)


言語別テキストの取得

言語別のテキストは、FCKLang.Key で Key の値を取得できる。
Key は上記の DlgTableAlign 等を指定する。

alert( FCKLang.DlgTableAlign );

とすると、”テーブル配置” と表示される。

ページの一括変換

ページの読込時に FCKLanguageManager.TranslatePage(document) を呼び出す。
以下は Dialog の場合。

var oEditor = window.parent.InnerDialogLoaded() ;
var FCKLang	= oEditor.FCKLang ;
...
window.onload = function()
{
// Translate the dialog box texts.
oEditor.FCKLanguageManager.TranslatePage(document) ;
...
}

タグに fckLang=”Key” オプションを追加する。

以上で多言語対応ができる。


コメントを残す

メールアドレスが公開されることはありません。

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください