MW211 EXIT

devlog
HTML/ボタン
2015年08月22日
今更ながら、現在のところボタンはどういう方式で運用されているのか軽く見てみた。

以下の三つがあり、大手サイトはほぼそのいずれかを使っている。
┌──┬──────┬────────────────────────────┐
│i系 │inputタグ系 │<input type="button" name="" value="ボタン"/>           │
│    │            │<input type="submit" name="" value="ボタン"/>           │
├──┼──────┼────────────────────────────┤
│b系 │buttonタグ系│<button name="" value="">ボタン</button>                │
├──┼──────┼────────────────────────────┤
│a系 │aタグ系     │<a href="">ボタン</a>                                   │
└──┴──────┴────────────────────────────┘

特徴を分析すると以下の通り。
┌──┬───────────────────────────────────┐
│i系 │○オーソドックスなやり方                                              │
│    │×ラベル名が属性に含まれるので、多言語対応時のビュー切り分けが不得手  │
├──┼───────────────────────────────────┤
│b系 │○モダンなやり方(value値が表に出ないので自由に使える)                 │
│    │×レガシーブラウザでは非対応                                          │
├──┼───────────────────────────────────┤
│a系 │○ボタンに依存しないやり方                                            │
│    │×本来の使い方ではない(ボタン形状は自前で用意)                        │
└──┴───────────────────────────────────┘

「i系」から「b系」から移行しつつある一方で、
別概念の「a系」に移行する流れも見られる感じか。
分類:HTML
設計/国際化の略語
2015年08月21日
文字数が多いので以下のような略語(造語)が流行っている。
┌──┬──────────┬──────┬─────────────────┐
│i18n│InternationalisatioN│国際化      │大文字(I18N)だとわかりづらいので  │
├──┼──────────┼──────┼─────────────────┤
│L10N│LocalisatioN        │地域化      │                                  │
├──┼──────────┼──────┼─────────────────┤
│G11N│GlobalizatioN       │グローバル化│                                  │
├──┼──────────┼──────┼─────────────────┤
│M17N│MultilingualizatioN │多言語化    │                                  │
└──┴──────────┴──────┴─────────────────┘
分類:設計
言語/ロケール名
2015年08月20日
ロケール(locale)名にはいくつか流派があって、
UNIX系の「POSIX」ロケールが源流の模様。
以下の組み合わせで決まる。
  ・POSIXロケール=言語(ISO 639-1)+「_」+国(ISO 3166-1)
但し、国は省略可能。
また、後ろに文字コードが付く場合もある。
  ・POSIXロケール=言語(ISO 639-1)+「_」+国(ISO 3166-1)+「.」+文字コード
    例)「ja_JP.UTF-8」

また、Unicode系には「CLDR」(Common Locale Data Repository)ロケール
というものもあり、こちらはPHP向けに使用されている。

主なものを以下にまとめた(POSIXは主な組み合わせのみ)。
┌──────────┬────┬────┬─────────────────┐
│                    │ POSIX  │  CLDR  │                                  │
├──────────┼────┼────┼─────────────────┤
│英語                │en      │en      │                                  │
│  ・イギリス        │en_GB   │en_GB   │                                  │
│  ・アメリカ        │en_US   │en_US   │                                  │
│  ・カナダ          │en_CA   │en_CA   │                                  │
│  ・オーストラリア  │en_AU   │en_AU   │                                  │
│  ・ニュージーランド│en_□   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│フランス語          │fr      │fr      │                                  │
│  ・フランス        │fr_FR   │        │                                  │
│  ・スイス          │fr_CH   │        │                                  │
│  ・ベルギー        │fr_BE   │        │                                  │
│  ・カナダ          │fr_CA   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ドイツ語            │de      │de      │                                  │
│  ・ドイツ          │de_DE   │        │                                  │
│  ・オーストリア    │de_AT   │        │                                  │
│  ・スイス          │de_CH   │de_CH   │                                  │
│  ・ベルギー        │de_BE   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│イタリア語          │it      │it      │                                  │
│  ・イタリア        │it_IT   │        │                                  │
│  ・スイス          │it_CH   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│スペイン語          │es      │es      │                                  │
│  ・スペイン        │es_ES   │es_ES   │                                  │
│  ・メキシコ        │es_MX   │        │                                  │
│  ・アルゼンチン    │es_AR   │        │                                  │
│  ・コロンビア      │es_CO   │        │                                  │
│  ・ペルー          │es_PE   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ポルトガル語        │pt      │pt      │                                  │
│  ・ポルトガル      │pt_PT   │pt_PT   │                                  │
│  ・ブラジル        │pt_BR   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ロシア語            │ru      │ru      │                                  │
│  ・ロシア          │ru_RU   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│中国語              │zh      │zh      │                                  │
│                    │        │zh_Hans │                                  │
│                    │        │zh_Hant │                                  │
│  ・中国            │zh_CN   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│朝鮮語(韓国語)      │ko      │ko      │                                  │
│  ・韓国            │ko_KP   │        │                                  │
│  ・北朝鮮          │ko_KR   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│日本語              │ja      │ja      │                                  │
│  ・日本            │ja_JP   │        │                                  │
└──────────┴────┴────┴─────────────────┘
┌──────────┬────┬────┬─────────────────┐
│                    │ POSIX  │  CLDR  │                                  │
├──────────┼────┼────┼─────────────────┤
│アイルランド語      │ga      │ga      │                                  │
│  ・アイルランド    │ga_IE   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│チェコ語            │cs      │cs      │                                  │
│  ・チェコ          │cs_CZ   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│スロバキア語        │sk      │sk      │                                  │
│  ・スロバキア      │sk_SK   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│クロアチア語        │hr      │hr      │                                  │
│  ・クロアチア      │hr_HR   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│オランダ語          │nl      │nl      │                                  │
│  ・オランダ        │nl_NL   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│デンマーク語        │da      │da      │                                  │
│  ・デンマーク      │da_DK   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│スウェーデン語      │sv      │sv      │                                  │
│  ・スウェーデン    │sv_SE   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ノルウェー語        │no      │no      │                                  │
│  ・ノルウェー      │no_NO   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│フィンランド語      │fi      │fi      │                                  │
│  ・フィンランド    │fi_FI   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ポーランド語        │pl      │pl      │                                  │
│  ・ポーランド      │pl_PL   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ハンガリー語        │hu      │hu      │                                  │
│  ・ハンガリー      │hu_HU   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ルーマニア語        │ro      │ro      │                                  │
│  ・ルーマニア      │ro_RO   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ブルガリア語        │bg      │bg      │                                  │
│  ・ブルガリア      │bg_BG   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ギリシャ語          │el      │el      │                                  │
│  ・ギリシャ        │el_GR   │        │                                  │
└──────────┴────┴────┴─────────────────┘
┌──────────┬────┬────┬─────────────────┐
│                    │ POSIX  │  CLDR  │                                  │
├──────────┼────┼────┼─────────────────┤
│アフリカーンス語    │af      │af      │                                  │
│  ・南アフリカ      │af_ZA   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│アラビア語          │ar      │ar      │                                  │
│                    │        │ar_001  │                                  │
│  ・エジプト        │ar_EG   │arz     │                                  │
│  ・イラク          │ar_IQ   │        │                                  │
│  ・サウジアラビア  │ar_SA   │        │                                  │
│  ・アラブ首長国連邦│ar_AE   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ペルシア語          │fa      │fa      │                                  │
│  ・イラン          │fa_IR   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│トルコ語            │tr      │tr      │                                  │
│  ・トルコ          │tr_TR   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ヒンディー語        │hi      │hi      │                                  │
│  ・インド          │hi_IN   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ベンガル語          │bn      │bn      │                                  │
│  ・インド          │bn_IN   │        │                                  │
│  ・バングラデシュ  │bn_BD   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│タイ語              │th      │th      │                                  │
│  ・タイ            │th_TH   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│ベトナム語          │vi      │vi      │                                  │
│  ・ベトナム        │vi_VN   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│インドネシア語      │id      │id      │                                  │
│  ・インドネシア    │id_ID   │        │                                  │
├──────────┼────┼────┼─────────────────┤
│マレー語            │ms      │ms      │                                  │
│  ・マレーシア      │ms_MY   │        │                                  │
│  ・シンガポール    │ms_SG   │        │                                  │
└──────────┴────┴────┴─────────────────┘
分類:設計
PHP/file_get_contents()の限界
2015年08月18日
「file_get_contents()」はホームページの値をまるごと取得できたりするが
JavaScriptで表示されているもの、JavaScriptで表示された値は取得できない。

つまり、起動時にJavaScriptで何らかの値を表示しているホームページに
アクセスした場合、JavaScriptが動作する前の状態を取得してしまうということだ。

なぜできないのかというと、JavaScriptは各ブラウザが処理を行うもので
PHPはそこまでは範疇ではない(JavaScriptを動作させるまでの機能を持たない)からだ。

ということで、こういったことを実現したい場合には、他をあたるしかない。

一例としては、VBScriptでIEオブジェクトを起動し
IEとしてアクセスを行い、JavaScript動作後の値を取得するとかだ。

…といって、IE以外ではVBScriptは動かないし、
IE自体もIE11以降はサポートを打ち切っているので、この案は無理に等しい。
分類:PHP
Windows/80ポート開放のやり方
2015年08月17日
「コントロールパネル」より
「システムとセキュリティ」の「Windowsファイアウォール」を選択し
「詳細設定」を選択。

「受信の規則」より「新しい規則」を選択。

「規則の種類」で「ポート」を選択。
  ┌────────────────────────────────────┐
  │新規の受信の規則ウイザード/規則の種類                                  │
  ├────────────────────────────────────┤
  │どの種類の規則を作成しますか?                                          │
  │  ○プログラム                                                          │
  │  ●ポート                                                              │
  │  ○事前定義                                                            │
  │  ○カスタム                                                            │
  └────────────────────────────────────┘

次に、「TCP」と「特定のローカルポートを選択し、ポート番号(「80」)を入力する。
  ┌────────────────────────────────────┐
  │新規の受信の規則ウイザード/プロトコルおよびポート                      │
  ├────────────────────────────────────┤
  │TCPとUDPのどちらに規則を適用しますか?                                  │
  │  ●TCP                                                                 │
  │  ○UDP                                                                 │
  │                                                                        │
  │すべてのローカルポートと特定のローカルポートの                          │
  │どちらを対象にこの規則を適用するか選択してください。                    │
  │  ○すべてのローカルポート                                              │
  │  ●特定のローカルポート                                                │
  │    ┌──────────────────────────────┐    │
  │    │80                                                          │    │
  │    └──────────────────────────────┘    │
  └────────────────────────────────────┘

次に、「接続を許可する」を選択する。
  ┌────────────────────────────────────┐
  │新規の受信の規則ウイザード/操作                                        │
  ├────────────────────────────────────┤
  │接続が指定の条件に一致した場合に、どの操作を実行しますか?              │
  │  ●接続を許可する                                                      │
  │  ○セキュリティで保護されている場合のみ接続を許可する                  │
  │  ○接続をブロックする                                                  │
  └────────────────────────────────────┘

次に、「ドメイン、プライベート、パブリック」の全てを選択する。
  ┌────────────────────────────────────┐
  │新規の受信の規則ウイザード/プロファイル                                │
  ├────────────────────────────────────┤
  │この規則はいつ適用しますか?                                            │
  │  ■ドメイン                                                            │
  │  ■プライベート                                                        │
  │  ■パブリック                                                          │
  └────────────────────────────────────┘

最後に、ファイアウォール(の規則)を命名(「HTTP」や「Apache」など)して完了。
  ┌────────────────────────────────────┐
  │新規の受信の規則ウイザード/名前                                        │
  ├────────────────────────────────────┤
  │名前                                                                    │
  │┌──────────────────────────────────┐│
  ││HTTP                                                                ││
  │└──────────────────────────────────┘│
  │説明(オプション)                                                        │
  │┌──────────────────────────────────┐│
  ││                                                                    ││
  └────────────────────────────────────┘
正規表現/入れ子回避
2015年08月16日
「{」の中にある「a」以外の「a」を検索する場合。
┌──────────────────────────────────────┐
│(?<!{[^}]*)a                                                                │
└──────────────────────────────────────┘
分類:正規表現
秀丸マクロ/gettext対応
2015年08月15日
┌────────────────┬─┬────────────────┐
│{$変数|escape}                  │→│{_($変数)|escape}               │
└────────────────┴─┴────────────────┘
Smartyテンプレートで上記の置換を行うマクロ。

まず、手動で直接行う場合。
┌────────────────┬─┬────────────────┐
│{\$([^{]*?)\|escape\}           │→│{_($\1)|escape}                 │
└────────────────┴─┴────────────────┘

これをソースコードにすると以下。
┌──────────────────────────────────────┐
│replaceall "{\\$([^{]*?)\\|escape\\}" , "{_($\\1)|escape}" , regular;       │
└──────────────────────────────────────┘
分類:正規表現
ExcelVBA/DoEventsとは
2015年08月14日
正式には「Application.DoEvents」メソッドだが、
省略形で「DoEvents」と記述されることが多い。

Unix系はマルチタスクOSだが、Windows系は疑似マルチタスクOSである。

つまり直列的に処理が行われるので、Excelで重い処理を行うと
一部の他処理が止まってしまう(画面が真っ白になったりする)。

そのような場合、処理と処理の間に「DoEvents」を挟むことにより、
そのタイミングでOSへ処理を一旦返上し、
溜まっていた処理を吐き出す(実行する)ことができるようになる。

当然ながら、再びはOSより処理は戻ってくるので、続きが行われる。
分類:ExcelVBA
Smarty/gettext()
2015年08月13日
多言語変換の」gettext()」は、翻訳対象を「_()」で囲えばよい。

では、Smartyの場合はどうか。

変数の場合。
┌────────────────┬─┬────────────────┐
│{$変数|escape}                  │→│{_($変数)|escape}               │
└────────────────┴─┴────────────────┘

定数の場合。
┌────────────────┬─┬────────────────┐
│定数                            │→│{_('定数')}                     │
└────────────────┴─┴────────────────┘
もう少しスマートなやり方がありそう。
分類:Smarty
ExcelVBA/保存先指定ダイアログ
2015年08月12日
保存先をダイアログで指定するようにする方法。
┌──────────────────────────────────────┐
│Dim 保存先ファイル名 As String                                              │
│ChDir ActiveWorkbook.Path   ' 本ファイルのフォルダを既定とする              │
│保存先ファイル名 = Application.GetSaveAsFilename( _                         │
│    InitialFileName:="既定ファイル.txt", _                                  │
│    FileFilter:="テキストファイル,*.txt,すべてのファイル,*.*" _             │
│)                                                                           │
│If 保存先ファイル名 = "False" Then                                          │
│    MsgBox "ファイルを指定し直してください", vbInformation, "処理終了"      │
│    Exit Sub                                                                │
│End If                                                                      │
│Msgbox 保存先ファイル名  ' フルパスが取得できるので保存先に利用             │
└──────────────────────────────────────┘
「.GetSaveAsFilename()」メソッドを使う。
既定ファイル名は「InitialFileName」パラメータで指定する。
既定フォルダは、直前に「ChDir」でディレクトリ移動することにより指定となる。
分類:ExcelVBA
前へ 1 … 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 … 156 次へ