※このホームページは、バリアフリーを目指し、音声読み上げソフトに対応しています。

 


新・電子ノートブック Snap Note 3
  フリーソフト Snap Note 3 mini 公開!  

ソフトウェア・デザイン館 Sage Plaisir 21 へようこそ!
隔週月曜更新 : 毎週1つのニュースまたはプログラミング技術を取り上げ、解説します。

東日本大震災 まとめページ

[PR] 最強のスクリプト・ライブラリ vbslib5 が Windows 10 に対応!
[PR] シェル・スクリプトを格段に使いやすくする bashlib1 公開中


週刊 IT プログラミング技術 2017/ 3/13

ソース ファイルの英訳と WHITE SQUARE エンコーディング判定法

vbslib の Translate コマンドは、日本語と英語のペアが書かれた翻訳ファイル
(XML)を使って、ソース ファイルやテキスト ファイルの翻訳(置き換え)
を行います。 

vbslib は、以下からダウンロードできます。 Windows 用です。
    http://vbslib.osdn.jp/
    http://www.sage-p.com/vbslib/vbslib/vbslib.htm
    https://github.com/TsNeko/vbslib

翻訳ファイルは、以下のように記述します。複数行の翻訳もできます(説明書を参照)。

<?xml version="1.0" encoding="Shift_JIS"?>
<Translate>
<File>sample.txt</File>
<T><JP>日本語</JP><EN>Japanese</EN></T>
<T><JP>英語</JP>
   <EN>English</EN></T>
</Translate>

TranslateTest コマンドを実行すると、2バイト文字がすべて英語に翻訳されたか
どうかをチェックします。 実際の翻訳は行いません。 2バイト文字が残っている
行番号を表示します。 また、翻訳ファイルには、翻訳を行った行番号が追加
されます。 翻訳されなかったときは、行番号 0 になります。これは翻訳ファイル
から削除するきっかけになります。

ソース ファイルに英語と日本語を書いて、海外に渡すときは日本語をカットする
方法もありますが、これには問題があります。 それは、英語か日本語の片方だけ
変更してしまうという問題です。 翻訳ファイルを使った置き換えによる翻訳で
あれば、ソース ファイルに書かれた日本語だけ変更したときは英訳に置き換わら
なくなるので、英語と日本語の内容が同じであることを維持しやすくなります。

CheckEnglishOnly コマンドでは、2バイト文字が含まれていないことを指定した
フォルダーの中のすべてのファイルについてチェックします。 最終チェックに
使うとよいでしょう。

ただ、日本人なら、プログラムのソース コードのコメントには、日本語で書くべき
です。 英語の勉強も大事ですが、日本語で書いてあるほうが理解が早く効率的ですし、
コメントした英語がそもそも間違っていてコード以上に理解不能になるからです。 

しかし、海外の人とコミュニケーションをとる人にとっては英訳しないと渡す
意味がないと思ってしまうのか、失礼だと思ってしまうのか、英訳が求められます。
会社は海外の人とも協力していかないといけない、といいますが、他の人はそれほど
深くコードを読みません。 コメントがなかったり読めなかったりすることを自分が
理解できない理由にしているのです。 文句は言ってきますが、現に、しばらくしたら
コードから理解していることが多いです。(ただ、オープンソースなど業務ではない
ときは、それを理由に注目されないという問題はあります。)

最近は、Google 翻訳などの機械翻訳の精度が上がっているため、英訳はそれほど
難しくなくなってきました。 企業秘密にあたる部分を他の言葉に置き換えれば、
Google に情報漏えいすることもありません。 しかし、それが逆にソース ファイル
をすべてを自動的に翻訳することができない要因にもなっています。

手動で機械翻訳した結果を翻訳ファイルに記述しておけば、日本語のソース ファイル
を英語のソース ファイルに変換することができます。 または、英語が苦手な
プログラマーではなく、普段から英語を使って身についている営業の人に翻訳ファイル
を記述してもらうこともできます。 特に中国語への変換となるとできる人は
限られます。 翻訳ファイルによって、適材適所に作業を割り振って効率的に業務が
進められるようになります。

ところで、マイクロソフト製以外では、日本語の対応がよくありません。 UTF-8 
BOM にさえ対応しておらず、未だに UTF-8 しか対応していないものが多くあります。 
UTF-8 BOM に対応すれば、古い Shift-JIS や EUC-jp と新しい UTF-8 BOM の
共存ができるのですが、英語圏の人にはそれが理解できないのでしょう。 
また、UTF-8 しか対応してないツールの中には、Shift-JIS のファイルを壊して
しまうとんでもないものもあります。 そのため、UTF-8 への切り替えは、かなり
必要に迫られています。

そこで調査した結果、UTF-8 (BOMなし) でも正しく文字コードを判定できる方法が
分かりました。 多くのテキスト エディターはもちろん、Windows のメモ帳でも
使える方法です。 それは、WHITE SQUARE エンコーディング判定法です。 

ソース ファイルの先頭付近に以下のコメントを記述します。 単に記述するだけです。
先頭である必要はありませんが、以下のコメントより前には 2バイト文字(日本語、
中国語、韓国語など)がないようにします。

Character Encoding: "WHITE SQUARE" U+25A1 is □.

テキスト エディターには、文字コード セットを自動的に判定する機能があることが
多いですが、どの文字も正しく判定できるとは限らないという問題がありました。
しかし、WHITE SQUARE エンコーディング判定法なら、文字 □ だけ正しく
判定することが確認できれば、他の文字が最初に来るようなファイルでも確実に
判定できることになります。

また、文字コード セットを変換しても書き換える必要はありません。 そのまま
文字コード セットを変換して保存するだけです。 一方、HTML/XML は、
encoding="Shift_JIS" のように文字コード セットの名前を記述しているため、
文字コード セットを変えて保存したときには名前を変更しなければなりません。 
この作業は、よく忘れます。 また文字コード セットの自動変換をするには
encoding="Shift_JIS" の部分を探すための構文解析も必要になり、自動化を
難しくしています。

Shift-JIS のファイルを壊してしまうとんでもないツールでは、文字 □ が正しく
残っているかどうかを見るだけで、壊れたかどうかがすぐに分かります。 
文字化けの発見が遅れると、バックアップから復旧することが難しくなるので、
この特性も有効です。

ちなみに、WHITE SQUARE を選んだ理由は、□ 文字が目立たず単純な記号
だからです。 検討していた時は ■ を使っていましたが、文字化けしたのでは
ないかと気になったのでやめました。

欧州でよく使われる文字コード ISO-8859-1 には、WHITE SQUARE がありません。
そこで、よく使われる COPYRIGHT SIGN (c) (0xA9) がよいでしょう。  Unicode 
でも U+00A9 ですが、バイトの列が異なるので判定は必要です。
ただし、日本語 Windows のメモ帳は Latin-1 自体に対応していません。

Character Code Encoding: "COPYRIGHT SIGN" is ©.


Sage Plaisir 21 のブログやツイッターを読もう!

Sage Plaisir 21 では、ここのホームページのほかにブログとツイッター も行っています。
ブログは、こちら。
ツイッターは、こちら。

Sage Plaisir 21 メールマガジンを読もう!

週刊 IT ニュース&コラム』には、 このページに掲載している コラムの他に、注目ニュースを集めたリンク集も、掲載しています。 日々多く集まる IT 情報から、注目すべき話題をコラム形式で取り上げますので、 ぜひチェックしておきましょう。 (サンプル、および登録)


Sage Plaisir 21 Contents
[ English | 日本語 ]

自動化ツールのダウンロード (2017-01-04) update!

急速な IT 革命により開発スピードの向上が課題になっています。 その鍵になるのがツールの活用または開発です。 一般的なものから専門的なものまで使えるツールを公開しています。

技術資料&オープンソース (2012-03-19)

扱う技術が多くなってくるにつれ、 技術はマスターするものではなく調べるものになり、 どれだけ実践に即した資料を集められるかどうかが、 勝負になります。標準的な技術の資料だけでなく、 プログラムソースやライセンスフリーのライブラリも公開しています。

オブジェクト指向プログラミング設計 (2000-04-01)

Visual Basic 7 にもついに本格的なオブジェクト指向の 機能が追加され、ソフトウェア技術者には必須の知識に なりつつあります。長年の研究の成果から、最新の応用方法まで 様々なメモを公開しています。

ソフトウェア・デザイン館より(技術エッセイ)   (2000-11-01)

プロの経験を通じて習得したソフトウェア全般に関する 技術を解説しています。 ソフトウェアとは何かといった根本的なことを通じて、 デザインに関するポイントをわかりやすく説明しています。


          
 ソフトウェア
デザイン館
Sage Plaisir 21

Simple and Visual

SagePlaisir21サーチ
パワード・バイ・グーグル

週刊 IT ニュース&コラム

3/13 ソース ファイルの英訳と WHITE SQUARE エンコーディング判定法

2/27 運送業大手 UPS がトラックからドローンを発着する実験に成功

2/13 使いなれた外部プログラムを vbslib から起動する Setting コマンド

1/30 Nintendo Switch の新しいコントローラー Joy-Con

1/16 プログラム ソースの静的設定を一度に行う vbslib の Switches

12/19 銀行の API 仕様の公開へ、金融制度ワーキング グループ

12/5 よく使うコードの断片として登録するべきデバッグ用スニペット

11/21 ファンクション キーを Touch Bar に置き換えた MacBook Pro

11/7 人工知能の進化にみる論理的思考の限界と新しい開発プロセスの必要性

10/24 アマゾンが講談社の電子書籍を無断で配信を停止

10/10 レアケースの処理が最初に来る条件式を書くな - リーダブルコード(46)

9/26 東京ゲームショウ2016、PS4, PSVR 対応ゲームが本格化

9/12 数字があれば詳細に分析できているとは限らない

8/29 乾電池が IoT になる MaBeee が一般販売を開始

8/15 バカにはできない定性的な見積もりの代表 KKD 法

8/ 1 スマホ向けゲーム、ポケモンGOのダウンロードが開始され社会現象に

7/18 メインの処理の前の空行を詰めるな - リーダブルコード(45)

7/ 4 Webサービスを連携する IFTTT のイントラネット版、Microsoft Flow

6/20 名前空間のエイリアスは省略するな - リーダブルコード(44)

6/ 6 それぞれの工程に専門家を配置する工程別分業開発

5/23 それぞれの工程に専門家を配置する工程別分業開発

5/ 8 人間の手をスマート ウォッチのタッチパッドにする SkinTrack

4/25 テスト駆動開発では、失敗するようなテストを書くな

4/11 Windows で bash が動く Windows Subsystem for Linux 発表

3/28 手戻りの少ない仕様には、必ずテスト コードが存在する

3/14 連邦裁判所が命じた捜査協力を拒否するIT業界が隠していること

2/29 哲学の成果に基づいて、仕様書と同時にサンプルやテストを作ろう

2/15 Visual Studio Code がスマホ向けライブラリー Cordva に対応

2/ 1 ウォーターフォールは最後だけで、まずプロトタイピングをしよう

1/18 たった 5ドルのコンピューター Raspberry Pi Zero が発売

12/28 ルールをルールにするな - リーダブル・コード(43) 特別編

12/14 IBM、人工知能で適切な Web API を提案する API Harmony を発表

11/30 ヨーダ記法で書くな (4) - リーダブル・コード(42)

11/16 Android のアドウェアが2万を超えるアプリで検出される

11/ 2 ヨーダ記法で書くな (3) - リーダブル・コード(41)

10/19 フォルクスワーゲンが排出ガス処理の無効化プログラムを認める

10/ 5 ヨーダ記法で書くな (2) - リーダブル・コード(40)

9/21 3D Touch の iPhone 6s、大画面の iPad Pro を発表

9/ 7 ヨーダ記法で書くな (1) - リーダブル・コード(39)

8/24 Windows10 のオンライン無料アップグレード開始。無料期間は1年

8/10 ポインター宣言を表す * を変数に付けるな - リーダブル・コード(38)

7/26 Nintendo DS, Wii を開発した 任天堂の岩田聡社長がご逝去

7/13 カッコの内側の空白の有無を統一するな - リーダブル・コード(37)

6/29 日本年金機構から個人情報流出。対策法の改善を考察する

6/15 連続した空白を1つにまとめるな - リーダブル・コード(36)

6/ 1 iOS や Android 向けのソースもビルドできる Windows 10

5/18 インクリメントの演算子を書くな - リーダブル・コード(35)

5/ 4 Apple Watch 発売。スマホが普及した現代に必要かどうか

4/20 大文字小文字に統一するな - リーダブル・コード(34)

4/ 6 Google の次世代 JavaScript、Dart は Chrome に組み込まない方針へ

3/23 配列を pointer と名付けるな - リーダブル・コード(33)

3/ 9 Lenovo 製 PC に付属の Superfish に Web サイトを偽装する脆弱性

2/23 ハンガリアン記法を使うな - リーダブル・コード(32)

2/ 9 現実世界にホログラムを表示することが現実的になる HoloLens

1/26 this ポインターを省略するな - リーダブル・コード(31)

1/12 新型 MacBook Air は、USB Type-C 端子のみ搭載されると予想

12/22 キャピタライゼーションを無視したルールを作るな - リーダブル・コード(30)

12/ 8 Visual Studio Professional と同じ機能の無料版 VS Comminuty

11/24 性能を暗黙的に示すルールを作るな - リーダブル・コード(29)

11/10 W3C より HTML 5 がついに勧告される

10/27 実装依存回避のために独自の定義をするな - リーダブル・コード(28)

10/13 多くの Linux で使われる bash に重大な脆弱性が多数発生

9/29 #define のシンボルを大文字だけにするな - リーダブル・コード(27)

9/15 富士通が発表した設計書からプログラムを自動生成するツールの使い道

9/1 連続した空行、空白、アンダースコアを禁止にするな - リーダブル・コード(26)

8/18 YouTube のような無料の PDF 文書投稿サイト PDFy

8/4 処理内容を示していない関数名を禁止にするな - リーダブル・コード(25)

7/21 Facebook がニュースフィードの一部を減らして無断で心理実験

7/7 プリプロセッサーを行頭に書くな - リーダブル・コード(24)

6/23 Google が YouTube からインディーズレーベルを締め出し

6/9 計算順序を明示する冗長な括弧は書くな - リーダブル・コード(23)

5/26 Google と OpenSSL にパスワードなどが盗み取られる脆弱性

5/12 アドレスに &演算子を強制するな(2) - リーダブル・コード(22)

4/28 STAP 細胞の疑惑を最初に指摘した匿名検証サイト PubPeer

4/14 アドレスに &演算子を強制するな(1) - リーダブル・コード(21)

3/31 マイクロソフトの Office 365 が iPad に対応、閲覧は無料

3/17 アドレスやポインターを配列にするな - リーダブル・コード(20)

3/3 仮想通貨 ビットコイン の大手取引所 Mt.Gox が民事再生法を申請

2/17 カード節と分岐を一緒にするな - リーダブル・コード(19)

2/3 Google Chrome から CSS Regions 標準のサポートを廃止する検討

1/20 複雑な条件式は AND と OR だけにするな - リーダブル・コード(18)

もっと前の記事

自動化ツールのダウンロード

Snap Note 3 mini - サクサク使える自由ノート  new!

Plastic Window 1.20 - ウィンドウを半透明に  new!

Shortcut Director 1.00 - ショートカットのリンク切れ修正

Archives Folderizer SV 1.10 - 圧縮解凍

デジタルスクラップブックSVG Cats 2

その他のツール

オブジェクト指向プログラミング設計

技術資料

All Text composed by T's-Neko ts-neko@sage-p.com,