wa - NucleusやFlashなどなど

RSS

Home > 1ファイルで済む、プラグインの多言語対応

09.13 '08

1ファイルで済む、プラグインの多言語対応

合宿中の思いつきだったんですが、意外と便利っぽいので記事にしてみることにしました。

せっかく1ファイルで済んでいるプラグインが、多言語化のためだけに複数ファイルとなってしまうのは、もったいない。
ということで、こんな感じでどうでしょうか。

プラグインファイルは、UTF-8で書きます。(EUC版で使う場合でも)
で、以下のようなメソッドを用意しておいて、必要に応じて呼び出します。
下記例では、EUC版、UTF-8版、英語版の3つに対応していますが、別の言語を追加するのも簡単です。
/**
 * マルチランゲージ定義(このファイルはUTF-8 BOMなし)
 */

function defineMultilanguage()
{
  //ここに定義
  $multilang = array(
    '_DEFINE_LANGUAGE'    => array('English''日本語'),
    '_DEFINE_GOODMORNING' => array('Good morning''おっはー'),
    '_DEFINE_APPLE'       => array('apple''林檎'),
  );
  
  switch (ereg_replace('[\\|/]''', getLanguageName()))
  {
    case 'japanese-euc':
      foreach ($multilang as $key => $valuedefine($keymb_convert_encoding($value[1], 'EUC-JP''UTF-8'));
      break;
    case 'japanese-utf8':
      foreach ($multilang as $key => $valuedefine($key$value[1]);
      break;
    default:
      foreach ($multilang as $key => $valuedefine($key$value[0]);
  }
}

別になにも変わったことしてないので、すでにやってる人もいる気がします。(あえてループの外でスイッチしてます)

コメント

この記事へのコメントはありません。

コメント追加



プレビュー

コメント追加通知RSS:
↑このフィードをRSSリーダーに登録しておくと、この記事へのコメント追加をチェックすることができます。
コメント追加後の、返事待ちなどにお使い下さい。
なお、コメントチェックの必要がなくなった際には、このRSSを削除して下さいね。
不要なトラフィックを避けるために、ご協力お願いいたします。

トラックバック

トラックバック
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.
トラックバックURL:
PluginGenerator znBackup znItemFieldEX znCustomAdmin znBackup znSmiley znShowDraft yuiCalendar znSpeedCubing znKeywordLink znCommentRSS znCCitation znItemParts znMCList znHatenaExist znQuestionnaire znFlash