2008年12月6日土曜日

ソースコードの最後

ソースコードの最後でload()をコールします。


cc_huu_tools_bp_20081024.load();


これで、初期化処理やブログパーツのhtml出力が行われます。

以上で「大好きマウスくん」のソースコード解説を終わります。
ありがとうございます。

2008年12月5日金曜日

言語コードを調整する関数

つづいて、取得した言語コードを調整する関数です。
言語コードはたくさんありますが「大好きマウスくん」で対応しているのは、日本語、英語、中国語のみです。また、配布サイトは日本語と英語のみです。
そのため、他の言語コードを対応している言語コードに割り振る必要があります。
その割り振りを行う関数です。


cc_huu_tools_bp_20081024.adjustLang = function(orgLang, kind) {
  var returnLang = 'en';

  switch (kind) {
  case 'widget':
    switch (orgLang) {
      case 'ja':
      case 'zh':
        returnLang = orgLang;
        break;
    }
    break;
  case 'site':
  default:
    switch (orgLang) {
      case 'ja':
        returnLang = orgLang;
        break;
    }
    break;
  }
  return returnLang;
};


関数は以上です。

2008年12月4日木曜日

言語コード一覧


af  Afrikaans
sq  Albanian
ar-sa  Arabic(Saudi Arabia)
ar-iq  Arabic(Iraq)
ar-eg  Arabic(Egypt)
ar-ly  Arabic(Libya)
ar-dz  Arabic(Algeria)
ar-ma  Arabic(Morocco)
ar-tn  Arabic(Tunisia)
ar-om  Arabic(Oman)
ar-ye  Arabic(Yemen)
ar-sy  Arabic(Syria)
ar-jo  Arabic(Jordan)
ar-lb  Arabic(Lebanon)
ar-kw  Arabic(Kuwait)
ar-ae  Arabic(U.A.E.)
ar-bh  Arabic(Bahrain)
ar-qa  Arabic(Qatar)
eu  Basque
bg  Bulgarian
be  Belarusian
ca  Catalan
zh-tw  Chinese(Taiwan)
zh-cn  Chinese(PRC)
zh-hk  Chinese(Hong Kong)
zh-sg  Chinese(Singapore)
hr  Croatian
cs  Czech
da  Danish
nl  Dutch(Standard)
nl-be  Dutch(Belgian)
en  English
en-us  English(United States)
en-gb  English(British)
en-au  English(Australian)
en-ca  English(Canadian)
en-nz  English(New Zealand)
en-ie  English(Ireland)
en-za  English(South Africa)
en-jm  English(Jamaica)
en  English(Caribbean)
en-bz  English(Belize)
en-tt  English(Trinidad)
et  Estonian
fo  Faeroese
fa  Farsi
fi  Finnish
fr  French(Standard)
fr-be  French(Belgian)
fr-ca  French(Canadian)
fr-ch  French(Swiss)
fr-lu  French(Luxembourg)
gd  Gaelic(Scots)
gd-ie  Gaelic(Irish)
de  German(Standard)
de-ch  German(Swiss)
de-at  German(Austrian)
de-lu  German(Luxembourg)
de-li  German(Liechtenstein)
el  Greek
he  Hebrew
hi  Hindi
hu  Hungarian
is  Icelandic
in  Indonesian
it  Italian(Standard)
it-ch  Italian(Swiss)
ja  Japanese
ko  Korean
ko  Korean(Johab)
lv  Latvian
lt  Lithuanian
mk  Macedonian
ms  Malaysian
mt  Maltese
no  Norwegian(Bokmal)
no  Norwegian(Nynorsk)
pl  Polish
pt-br  Portuguese(Brazilian)
pt  Portuguese(Standard)
rm  Rhaeto-Romanic
ro  Romanian
ro-mo  Romanian(Moldavia)
ru  Russian
ru-mo  Russian(Moldavia)
sz  Sami(Lappish)
sr  Serbian(Cyrillic)
sr  Serbian(Latin)
sk  Slovak
sl  Slovenian
sb  Sorbian
es  Spanish(Spain - Traditional Sort)
es-mx  Spanish(Mexican)
es  Spanish(Spain - Modern Sort)
es-gt  Spanish(Guatemala)
es-cr  Spanish(Costa Rica)
es-pa  Spanish(Panama)
es-do  Spanish(Dominican Republic)
es-ve  Spanish(Venezuela)
es-co  Spanish(Colombia)
es-pe  Spanish(Peru)
es-ar  Spanish(Argentina)
es-ec  Spanish(Ecuador)
es-cl  Spanish(Chile)
es-uy  Spanish(Uruguay)
es-py  Spanish(Paraguay)
es-bo  Spanish(Bolivia)
es-sv  Spanish(El Salvador)
es-hn  Spanish(Honduras)
es-ni  Spanish(Nicaragua)
es-pr  Spanish(Puerto Rico)
sx  Sutu
sv  Swedish
sv-fi  Swedish(Finland)
th  Thai
ts  Tsonga
tn  Tswana
tr  Turkish
uk  Ukrainian
ur  Urdu
ve  Venda
vi  Vietnamese
xh  Xhosa
ji  Yiddish
zu  Zulu

2008年12月3日水曜日

ユーザが使用している言語を取得する関数

つづいて、ユーザが使用している言語を取得する関数です。
ユーザが使用している言語は、ブラウザやOSの設定によって、変えられます。
それを取得して、説明画像を変えたり、Powered byのリンク先を変えたりしています。


cc_huu_tools_bp_20081024.browserLang = function(defaultLang) {

  if (navigator.userLanguage) {
    return navigator.userLanguage.substr(0,2);
  } else if (navigator.browserLanguage) {
    return navigator.browserLanguage.substr(0,2);
  } else if (navigator.language) {
    return navigator.language.substr(0,2);
  } else {
    return defaultLang;
  }
};


ブラウザによって、取得方法が違うので、プロパティの有無を判別しつつ、ユーザの言語を取得します。
substr(0,2)で最初の2文字のみ利用します。

2008年12月2日火曜日

2点間の距離を計算する関数

つづいて、2点間の距離を計算する関数です。


cc_huu_tools_bp_20081024.calcDistance = function(x1,y1,x2,y2) {
  var a, b, d;

  a = x1 - x2;
  b = y1 - y2;
  d = Math.sqrt(Math.pow(a,2) + Math.pow(b,2));

  return d;
};


ピタゴラスの定理を利用して、距離を求めます。
ピタゴラスの定理は「直角三角形の直角を挟む2辺の2乗の和は斜辺の2乗に等しい」です。
なので、x座標の差の2乗とy座標の差の2乗を足した値のルートをとって、返します。

2008年12月1日月曜日

エレメントのx,y位置を取得する関数

つづいて、エレメントのx,y位置を取得する関数です。


cc_huu_tools_bp_20081024.getX = function(e) {
  var x = 0;
  while(e) {
    x += e.offsetLeft;
    e = e.offsetParent;
  }
  return x;
};

cc_huu_tools_bp_20081024.getY = function(e) {
  var y = 0;
  while(e) {
    y += e.offsetTop;
    e = e.offsetParent;
  }
  return y;
};


順に親ノードをたどり、x,y位置を足し込んでいって、エレメントのx,y位置を計算します。