コンテンツにスキップ
Wikipedia

MediaWiki:Gadget-CommentsInLocalTime.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

 /*
 	Documentation: [[Help:UTCの時刻を地方時で表示する]]
 */

 jQuery(function($)
 {
 /*
 		Language
 	*/
 varlanguage=
 {
 'ja':{
 // relative terms
 'Today':'本日',
 'Yesterday':'昨日',
 'Tomorrow':'明日',

 'last':'前の',
 'this':'次の',

 // days of the week
 'Sunday':'日曜日',
 'Monday':'月曜日',
 'Tuesday':'火曜日',
 'Wednesday':'水曜日',
 'Thursday':'木曜日',
 'Friday':'金曜日',
 'Saturday':'土曜日',

 // days of the week (abbreviation)
 'Sun':'日',
 'Mon':'月',
 'Tue':'火',
 'Wed':'水',
 'Thu':'木',
 'Fri':'金',
 'Sat':'土',

 // months of the year
 'January':'1月',
 'February':'2月',
 'March':'3月',
 'April':'4月',
 'May':'5月',
 'June':'6月',
 'July':'7月',
 'August':'8月',
 'September':'9月',
 'October':'10月',
 'November':'11月',
 'December':'12月',

 // difference words
 'ago':'前',
 'from now':'後',

 // date phrases
 'year':'年',
 'years':'年',
 'month':'か月',
 'months':'か月',
 'day':'日',
 'days':'日',

 // difference format
 'separator_value_unit':'',
 'separator_before_month':'',
 'separator_before_day':'と'
 },
 'en':{
 // relative terms
 'Today':'Today',
 'Yesterday':'Yesterday',
 'Tomorrow':'Tomorrow',

 'last':'last',
 'this':'this',

 // days of the week
 'Sunday':'Sunday',
 'Monday':'Monday',
 'Tuesday':'Tuesday',
 'Wednesday':'Wednesday',
 'Thursday':'Thursday',
 'Friday':'Friday',
 'Saturday':'Saturday',

 // days of the week (abbreviation)
 'Sun':'Sun',
 'Mon':'Mon',
 'Tue':'Tue',
 'Wed':'Wed',
 'Thu':'Thu',
 'Fri':'Fri',
 'Sat':'Sat',

 // months of the year
 'January':'January',
 'February':'February',
 'March':'March',
 'April':'April',
 'May':'May',
 'June':'June',
 'July':'July',
 'August':'August',
 'September':'September',
 'October':'October',
 'November':'November',
 'December':'December',

 // difference words
 'ago':'ago',
 'from now':'from now',

 // date phrases
 'year':'year',
 'years':'years',
 'month':'month',
 'months':'months',
 'day':'day',
 'days':'days',

 // difference format
 'separator_value_unit':' ',
 'separator_before_month':', ',
 'separator_before_day':', '
 }
 };

 /*
 		Settings
 	*/
 if(typeof(LocalComments)=='undefined')
 LocalComments={};

 if(typeof(LocalComments.dateDifference)=='undefined')
 LocalComments.dateDifference=true;

 if(typeof(LocalComments.language)=='undefined')
 LocalComments.language=mw.config.get('wgUserLanguage');
 else
 LocalComments.language=LocalComments.language.toLowerCase();
 varlang=LocalComments.language;
 if(language[lang]==null)
 lang='en';//言語対応していない場合とりあえず英語設定

 if(typeof(LocalComments.dateFormat)=='undefined')
 {
 if(lang=='ja')
 LocalComments.dateFormat='ja-default';
 else
 LocalComments.dateFormat='dmy';
 }else{
 LocalComments.dateFormat=LocalComments.dateFormat.toLowerCase();
 }

 if(typeof(LocalComments.timeFirst)=='undefined')
 LocalComments.timeFirst=true;

 if(typeof(LocalComments.twentyFourHours)=='undefined')
 LocalComments.twentyFourHours=false;
 /*
 		End Settings
 	*/

 /*
 		Date and time format
 	*/
 varfull_format;
 vardate_format;
 vartime_format;

 switch(LocalComments.dateFormat)
 {
 case'dmy':
 if(LocalComments.timeFirst)
 full_format='%time%, %date% (UTC%utc_offset%)';
 else
 full_format='%date%, %time% (UTC%utc_offset%)';
 date_format='%day% %month_name% %year%, %last%%day_of_the_week%%diff%';
 time_format='%hour%:%minute%%ampm%';
 break;
 case'mdy':
 if(LocalComments.timeFirst)
 full_format='%time%, %date% (UTC%utc_offset%)';
 else
 full_format='%date%, %time% (UTC%utc_offset%)';
 date_format='%month_name% %day%, %year%, %last%%day_of_the_week%%diff%';
 time_format='%hour%:%minute%%ampm%';
 break;
 case'ja-default':
 default:
 full_format='%date% %time% (UTC%utc_offset%)';
 date_format='%year%年%month_num%月%day%日 (%day_of_the_week_abbr%)%diff%';
 time_format='%hour%:%minute%%ampm%';
 }

 switch(mw.config.get('wgCanonicalNamespace'))
 {
 case'':
 case'MediaWiki':
 case'Special':
 return;
 }

 varelement_id=null;
 if(mw.config.get('wgAction')=='view'){
 switch(mw.config.get('skin')){
 case'monobook':
 case'vector':
 case'vector-2022':
 case'minerva':
 case'timeless':
 element_id='bodyContent';
 break;
 case'cologneblue':
 element_id='article';
 break;
 case'modern':
 element_id='mw_contentholder';
 break;
 }
 }elseif(mw.config.get('wgAction')=='edit'||mw.config.get('wgAction')=='submit'){
 element_id='wikiPreview';
 }

 if(element_id)
 replace_text(document.getElementById(element_id),
 /(?:(\d{4})年(\d{1,2})月(\d{1,2})日 \([日月火水木金土]\) (\d\d):(\d\d)|(\d\d):(\d\d) (\d{4})年(\d{1,2})月(\d{1,2})日) \(UTC\)/,
 adjust_time);

 functionadd_leading_zero(number)
 {
 if(number<10)
 number='0'+number;
 returnnumber;
 }

 functionadjust_time(original_timestamp,old_year,old_month,old_day,old_hour,old_minute,
 old_hour2,old_minute2,old_year2,old_month2,old_day2)
 {
 if(old_year==''||old_year===undefined)old_year=old_year2;
 if(old_month==''||old_month===undefined)old_month=old_month2;
 if(old_day==''||old_day===undefined)old_day=old_day2;
 if(old_hour==''||old_hour===undefined)old_hour=old_hour2;
 if(old_minute==''||old_minute===undefined)old_minute=old_minute2;

 vartoday=newDate(),yesterday=newDate(),tomorrow=newDate();
 yesterday.setDate(yesterday.getDate()-1);
 tomorrow.setDate(tomorrow.getDate()+1);

 // set the date entered
 vartime=newDate();
 time.setUTCFullYear(old_year,convert_month_to_number(old_month),old_day);
 time.setUTCHours(old_hour);
 time.setUTCMinutes(old_minute);

 // determine the time offset
 varutc_offset=-1*time.getTimezoneOffset()/60;
 if(utc_offset>=0)
 utc_offset='+'+utc_offset;
 else
 utc_offset='−'+Math.abs(utc_offset);

 // set the date bits to output
 varyear=time.getFullYear(),month=add_leading_zero(time.getMonth()+1);
 varday=time.getDate();
 varhour=parseInt(time.getHours()),minute=add_leading_zero(time.getMinutes());

 // output am or pm depending on the date
 varampm='';
 if(!LocalComments.twentyFourHours)
 {
 ampm=' am';
 if(hour>11)ampm=' pm';
 if(hour>12)hour-=12;
 if(hour=='00')hour=12;
 }

 // return 'today' or 'yesterday' if that is the case
 if(year==today.getFullYear()&&month==add_leading_zero(today.getMonth()+1)&&day==today.getDate())
 vardate=language[lang]['Today'];
 elseif(year==yesterday.getFullYear()&&month==add_leading_zero(yesterday.getMonth()+1)&&day==yesterday.getDate())
 vardate=language[lang]['Yesterday'];
 elseif(year==tomorrow.getFullYear()&&month==add_leading_zero(tomorrow.getMonth()+1)&&day==tomorrow.getDate())
 vardate=language[lang]['Tomorrow'];
 else
 {
 // calculate day of week
 varday_of_the_week=newArray(language[lang]['Sunday'],
 language[lang]['Monday'],
 language[lang]['Tuesday'],
 language[lang]['Wednesday'],
 language[lang]['Thursday'],
 language[lang]['Friday'],
 language[lang]['Saturday'])[time.getDay()];
 varday_of_the_week_abbr=newArray(language[lang]['Sun'],
 language[lang]['Mon'],
 language[lang]['Tue'],
 language[lang]['Wed'],
 language[lang]['Thu'],
 language[lang]['Fri'],
 language[lang]['Sat'])[time.getDay()];

 if(LocalComments.dateDifference)
 {
 // calculate time difference from today and the timestamp
 today=newDate(today.getYear(),today.getMonth(),today.getDate());
 time=newDate(time.getYear(),time.getMonth(),time.getDate());

 varmilliseconds_ago=today.getTime()-time.getTime();
 vardays_ago=Math.round(milliseconds_ago/1000/60/60/24);

 vardifference,difference_word='',last='';
 if(today.valueOf()>=time.valueOf())
 {
 difference=newDate(today.valueOf()-time.valueOf());
 difference_word=language[lang]['ago'];
 if(days_ago<=7)
 last=language[lang]['last']+' ';
 }
 else
 {
 difference=newDate(time.valueOf()-today.valueOf());
 difference_word=language[lang]['from now'];
 if(days_ago>=-7)
 last=language[lang]['this']+' ';
 }
 difference=newDate(difference.getUTCFullYear(),difference.getUTCMonth(),difference.getUTCDate()-1);
 vardescriptive_difference=[];

 if(difference.getYear()-70>0)
 {
 varyears_ago=(difference.getYear()-70)+language[lang]['separator_value_unit']+pluralize(language[lang]['year'],difference.getYear()-70,language[lang]['years']);
 descriptive_difference.push(years_ago);
 }
 if(difference.getMonth()>0)
 {
 varmonths_ago=difference.getMonth()+language[lang]['separator_value_unit']+pluralize(language[lang]['month'],difference.getMonth(),language[lang]['months']);
 descriptive_difference.push(months_ago);
 }
 if(difference.getDate()>0)
 {
 varnew_days_ago=difference.getDate()+language[lang]['separator_value_unit']+pluralize(language[lang]['day'],difference.getDate(),language[lang]['days']);
 descriptive_difference.push(new_days_ago);
 }

 descriptive_difference='';
 if(years_ago!=undefined){
 descriptive_difference+=years_ago;
 }
 if(months_ago!=undefined){
 descriptive_difference+=(descriptive_difference==''?'':language[lang]['separator_before_month'])+months_ago;
 }
 if(new_days_ago!=undefined){
 descriptive_difference+=(descriptive_difference==''?'':language[lang]['separator_before_day'])+new_days_ago;
 }
 descriptive_difference='('+descriptive_difference+language[lang]['separator_value_unit']+difference_word+')';
 }
 else
 {
 descriptive_difference='';
 last='';
 }

 // format the date according to user preferences
 vardate=date_format.replace('%year%',year)
 .replace('%month_num%',time.getMonth()+1)
 .replace('%month_name%',convert_number_to_month(time.getMonth()))
 .replace('%day%',day)
 .replace('%day_of_the_week%',day_of_the_week)
 .replace('%day_of_the_week_abbr%',day_of_the_week_abbr)
 .replace('%last%',last)
 .replace('%diff%',descriptive_difference);
 }

 vartime=hour+':'+minute+ampm;
 vartime=time_format.replace('%hour%',hour)
 .replace('%minute%',minute)
 .replace('%ampm%',ampm);

 varreturn_date=full_format.replace('%date%',date)
 .replace('%time%',time)
 .replace('%utc_offset%',utc_offset);

 returnreturn_date;
 }

 functionconvert_month_to_number(month)
 {
 varoutput=newDate('2001/'+month+'/1');
 returnoutput.getMonth();
 }

 functionconvert_number_to_month(number)
 {
 varmonth=newArray(language[lang]['January'],language[lang]['February'],language[lang]['March'],language[lang]['April'],language[lang]['May'],language[lang]['June'],language[lang]['July'],language[lang]['August'],language[lang]['September'],language[lang]['October'],language[lang]['November'],language[lang]['December']);
 returnmonth[number];
 }

 functionpluralize(term,count,plural)
 {
 if(plural==null)
 plural=term+'s';

 return(count==1?term:plural)
 }

 functionreplace_text(node,search,replace)
 {
 if(!node)
 return;

 if(node.nodeType==3)
 {
 varvalue=node.nodeValue;
 if(search.test(value))
 {
 varnew_node=document.createDocumentFragment();

 while(true){
 varpos=value.search(search);
 if(pos<0)break;

 varmatch=value.match(search)[0];

 // Create <span class="localcomments" style="font-size: 95%; white-space: nowrap;" title="match">replace(match)</span>
 varspan=document.createElement('span');
 span.setAttribute('class','localcomments');
 span.style.fontSize='95%';
 span.style.whiteSpace='nowrap';
 span.setAttribute('title',match);
 span.appendChild(document.createTextNode(match.replace(search,replace)));

 new_node.appendChild(document.createTextNode(value.substring(0,pos)));
 new_node.appendChild(span);

 value=value.substring(pos+match.length);
 }
 new_node.appendChild(document.createTextNode(value));
 node.parentNode.replaceChild(new_node,node);
 }
 }
 else
 {
 varchildren=[],child=node.firstChild;
 while(child)
 {
 children[children.length]=child;
 child=child.nextSibling;
 }

 for(varchild=0;child<children.length;child++)
 replace_text(children[child],search,replace);
 }
 }

 });

AltStyle によって変換されたページ (->オリジナル) /