# # ja/00default.rb: Japanese resources of 00default.rb. # # Copyright (C) 2001-2005, TADA Tadashi # You can redistribute it and/or modify it under GPL2 or any later version. # # # header # def title_tag r = "#{h @conf.html_title}" case @mode when 'day', 'comment' r << "(#{@date.strftime( '%Y-%m-%d' )})" if @date when 'month' r << "(#{@date.strftime( '%Y-%m' )})" if @date when 'form' r << '(追記)' when 'edit' r << '(編集)' when 'preview' r << '(プレビュー)' when 'showcomment' r << '(変更完了)' when 'conf' r << '(設定)' when 'saveconf' r << '(設定完了)' when 'nyear' r << "(#{h @cgi.params['date'][0].sub( /^(\d\d)/, '\1-')}[#{nyear_diary_label}])" if @date end r << '' end # # TSUKKOMI mail # def comment_mail_mime( str ) require 'nkf' NKF::nkf( "-j -m0 -f50", str ).lines.collect do |s| %Q|=?ISO-2022-JP?B?#{[s.chomp].pack( 'm' ).gsub( /\n/, '' )}?=| end end def comment_mail_conf_label; 'ツッコミメール'; end def comment_mail_basic_html @conf['comment_mail.header'] = '' unless @conf['comment_mail.header'] @conf['comment_mail.receivers'] = '' unless @conf['comment_mail.receivers'] @conf['comment_mail.sendhidden'] = false unless @conf['comment_mail.sendhidden'] <<-HTML

ツッコミメールを送る

ツッコミがあった時に、メールを送るかどうかを選択します。

送付先

メールの送付先を指定します。1行に1メールアドレスの形で、複数指定可能です。指定のない場合には、あなたのメールアドレスに送られます。

メールヘッダ

メールのSubjectにつけるヘッダ文字列を指定します。振り分け等に便利なように指定します。実際のSubjectには「指定文字列:日付-1」のように、日付とコメント番号が付きます。ただし指定文字列中に、%に続く英字があった場合、それを日付フォーマット指定を見なします。つまり「日付」の部分は自動的に付加されなくなります(コメント番号は付加されます)。

非表示ツッコミの扱い

フィルタの結果、最初から非表示にされたツッコミが記録されることがあります。この非表示のツッコミが来たときにもメールを発信するかどうかを選択します。

HTML end # # link to HOWTO write diary # def style_howto %Q|/書き方| end # # labels (normal) # def no_diary; "#{@date.strftime( @conf.date_format )}の日記はありません。"; end def comment_today; '本日のツッコミ'; end def comment_total( total ); "(全#{total}件)"; end def comment_new; 'ツッコミを入れる'; end def comment_description_default; 'ツッコミ・コメントがあればどうぞ! E-mailアドレスは公開されません。'; end def comment_limit_label; '本日の日記はツッコミ数の制限を越えています。'; end def comment_description_short; 'ツッコミ!!'; end def comment_name_label; 'お名前'; end def comment_name_label_short; '名前'; end def comment_mail_label; 'E-mail'; end def comment_mail_label_short; 'Mail'; end def comment_body_label; 'コメント'; end def comment_body_label_short; '本文'; end def comment_submit_label; '投稿'; end def comment_submit_label_short; '投稿'; end def comment_date( time ); time.strftime( "(#{@conf.date_format} %H:%M)" ); end def trackback_today; '本日のTrackBacks'; end def trackback_total( total ); "(全#{total}件)"; end def navi_index; 'トップ'; end def navi_latest; '最新'; end def navi_oldest; '最古'; end def navi_update; "追記"; end def navi_edit; "編集"; end def navi_preference; "設定"; end def navi_prev_diary(date); "前の日記(#{date.strftime(@conf.date_format)})"; end def navi_next_diary(date); "次の日記(#{date.strftime(@conf.date_format)})"; end def navi_prev_month; "前月"; end def navi_next_month; "翌月"; end def navi_prev_nyear(date); "前の日(#{date.strftime('%m-%d')})"; end def navi_next_nyear(date); "次の日(#{date.strftime('%m-%d')})"; end def navi_prev_ndays; "前#{@conf.latest_limit}日分"; end def navi_next_ndays; "次#{@conf.latest_limit}日分"; end def submit_label if @mode == 'form' or @cgi.valid?( 'appendpreview' ) then '追記' else '登録' end end def preview_label; 'プレビュー'; end def nyear_diary_label; "長年日記"; end def nyear_diary_title; "長年日記"; end # # labels (for mobile) # def mobile_navi_latest; '最新'; end def mobile_navi_update; "追記"; end def mobile_navi_edit; "編集"; end def mobile_navi_preference; "設定"; end def mobile_navi_prev_diary; "前"; end def mobile_navi_next_diary; "次"; end def mobile_label_hidden_diary; 'この日は【非表示】です'; end # # category # def category_anchor(c); "[#{c}]"; end # # preferences (resources) # @conf_saving = '保存中……' # genre labels @conf_genre_label['basic'] = '基本' @conf_genre_label['update'] = '更新' @conf_genre_label['theme'] = 'テーマ' @conf_genre_label['tsukkomi'] = 'ツッコミ' @conf_genre_label['referer'] = 'リンク元' @conf_genre_label['security'] = 'セキュリティ' @conf_genre_label['etc'] = 'その他' add_conf_proc( 'default', 'サイトの情報', 'basic' ) do saveconf_default @conf.description ||= '' @conf.icon ||= '' @conf.banner ||= '' <<-HTML

タイトル

HTMLの<title>タグ中および、モバイル端末からの参照時に使われるタイトルです。HTMLタグは使えません。

著者名

あなたの名前を指定します。HTMLヘッダ中に展開されます。

メールアドレス

あなたのメールアドレスを指定します。HTMLヘッダ中に展開されます。

トップページURL

日記よりも上位のコンテンツがあれば指定します。存在しない場合は何も入力しなくてかまいません。

日記のURL

日記のURLを指定します。このURLは、さまざまなプラグインで日記を指し示すために利用されるので、正しく一意なものを指定しましょう。

#{"

指定してある値と、現在アクセス中のURLが異なります。注意してください。

" unless base_url == @cgi.base_url}

日記の説明

この日記の簡単な説明を指定します。HTMLヘッダ中に展開されます。何も入力しなくてもかまいません。

サイトアイコン(favicon)

この日記を表す小さなアイコン画像(favicon)があればそのURLを指定します。HTMLヘッダ中に展開されます。何も入力しなくてもかまいません。

バナー画像

この日記を表す画像(バナー)があればそのURLを指定します。makerssプラグインなどでRSSを出力する場合などに使われます。何も入力しなくてもかまいません。

フレーム内表示

日記全体をフレーム内にくるんで表示することを許可します。

HTML end add_conf_proc( 'header', 'ヘッダ・フッタ', 'basic' ) do saveconf_header <<-HTML

ヘッダ

日記の先頭に挿入される文章を指定します。HTMLタグが使えます。「<%=navi%>」で、ナビゲーションボタンを挿入できます(これがないと更新ができなくなるので削除しないようにしてください)。また、「<%=calendar%>」でカレンダーを挿入できます。その他、各種プラグインを記述できます。

フッタ

日記の最後に挿入される文章を指定します。ヘッダと同様に指定できます。

HTML end add_conf_proc( 'display', '表示一般', 'basic' ) do saveconf_display <<-HTML

セクションアンカー

日記のセクションの先頭(サブタイトルの行頭)に挿入される、リンク用のアンカー文字列を指定します。なお「<span class="sanchor">_</span>」を指定すると、テーマによっては自動的に画像アンカーがつくようになります。

ツッコミアンカー

読者からのツッコミの先頭に挿入される、リンク用のアンカー文字列を指定します。なお「<span class="canchor">_</span>」を指定すると、テーマによっては自動的に画像アンカーがつくようになります。

日付フォーマット

日付の表示部分に使われるフォーマットを指定します。任意の文字が使えますが、「%」で始まる英字には次のような特殊な意味があります。「%Y」(西暦年)、「%m」(月数値)、「%b」(短月名)、「%B」(長月名)、「%d」(日)、「%a」(短曜日名)、「%A」(長曜日名)。

最新表示の最大日数

最新の日記を表示するときに、そのページ内に何日分の日記を表示するかを指定します。

最大日分

長年日記の表示

長年日記を表示するためのリンクを表示するかどうかを指定します。

HTML end add_conf_proc( 'timezone', '時差調整', 'update' ) do saveconf_timezone <<-HTML

時差調整

更新時、フォームに挿入される日付を時間単位で調整できます。例えば午前2時までは前日として扱いたい場合には「-2」のように指定することで、2時間分引かれた日付が挿入されるようになります。また、この日付はWebサーバ上の時刻になっているので、海外のサーバで運営している場合の時差調整にも利用できます。

HTML end @theme_location_comment = "

ここにないテーマはテーマ・ギャラリーから入手できます。

" @theme_thumbnail_label = "サムネイル" add_conf_proc( 'theme', 'テーマ選択', 'theme' ) do saveconf_theme r = <<-HTML

テーマの指定

日記のデザインをテーマ、もしくはCSSの直接入力で指定します。ドロップダウンメニューから「CSS指定→」を選択した場合には、右の欄にCSSのURLを入力してください。

ツッコミリスト表示数

最新もしくは月別表示時に表示する、ツッコミの最大件数を指定します。なお、日別表示時にはここの指定にかかわらずすべてのツッコミが表示されます。

最大

1日あたりのツッコミ最大数

1日に書き込めるツッコミの最大数を指定します。この数を超えると、ツッコミ用のフォームが非表示になります。なお、TrackBackプラグインを入れている場合には、ツッコミとTrackBackの合計がこの制限を受けます。

最大

HTML end add_conf_proc( 'csrf_protection', 'CSRF(乗っ取り)対策', 'security' ) do err = saveconf_csrf_protection errstr = '' case err when :param errstr = '

不正な組み合わせです。変更されませんでした。

' when :key errstr = '

鍵が空です。変更されませんでした。

' end csrf_protection_method = @conf.options['csrf_protection_method'] || 1 <<-HTML #{errstr}

クロスサイト・リクエストフォージェリ(CSRF)の対策手法を設定します。

CSRF攻撃は、悪意のある人間がWebページに罠を仕掛けます。 その罠を仕掛けたページをあなたが閲覧すると、あなたのブラウザは tDiaryに偽の書き込み要求を送出してしまいます。あなたのブラウザが 偽要求を送出してしまうため、暗号化・パスワード保護だけでは対策になりません。 tDiaryでは、この種の攻撃に対して、「Refererチェック」と「CSRFキー」という 2種類の防衛手段を用意しています。

Refererチェックによる防衛

Refererの正当性の検査

#{if [0,1,2,3].include?(csrf_protection_method) then ' ' else '' end}する(標準)

あなたのブラウザが送出するReferer(リンク元情報)を検査します。 書き込み要求が正しいページから送出されたことを確認することで、 偽ページからの要求を防ぎます。不正なページからの要求を検出した場合、 更新リクエストを拒否します。 この設定画面では、無効にすることは出来ません。

Refererを送出しないブラウザを拒否

する(標準) しない

ブラウザからRefererが送られてこなかった場合の動作を指定します。

標準では、Refererが送出されない場合、不正なリクエストを 判別できないため、書き込み・設定変更を拒否します。 あなたのブラウザがRefererを送出しない設定の場合、 この設定が「する」になっていると、正規の書き込み要求も拒否してしまいます。 ブラウザを設定を変更しRefererを送出するようにしてください。 どうしてもRefererを送出する設定に出来ない場合、「しない」にしてください。 この場合、Refererが全く送出されなかった場合にも、 書き込み・設定変更を許すようになりますが、 CSRFによる攻撃と区別できなくなりますので、必ず次の「CSRF防止キー」の 設定と併用して下さい。

CSRF防止キーによる防衛

CSRF防止キーの検査

する しない(標準)

書き込みフォームに偽装書き込み防止のためのキーを設定し、CSRFを防ぎます。 偽ページが秘密のキーを知らない限り、 偽の書き込み要求を生成することができなくなります。 この検査を「する」にすると、システムが鍵を自動的に生成、設定します。 上の設定と両方「しない」にすることはできません。

この設定を「する」にした場合、この機構に対応していない一部の プラグインが動作しなくなることがあります。

#{"

注意: あなたのブラウザは現在Refererを送出していないようです。 このリンクからもう一回 このページを開いてみて下さい。 それでもこのメッセージが出る状況では、この設定を変える場合、 一時的にRefererを送出する設定にするか、 直接tdiary.confを編集して下さい。

" if [1,3].include?(csrf_protection_method) && ! @cgi.referer && !@cgi.valid?('referer_exists')}
HTML end add_conf_proc( 'logger', 'ログレベル選択', 'basic' ) do saveconf_logger r = <<-HTML

ログレベルの設定

tDiaryが出力するログレベルを指定します。spam フィルタのログ記録を利用する場合は INFO または DEBUG に指定して下さい。

HTML end # Local Variables: # mode: ruby # indent-tabs-mode: t # tab-width: 3 # ruby-indent-level: 3 # End: