Visual Studio Code ローカライズ プロジェクトの個人レポート

> **この記事は、[VisualStudioCode AdventCalendar 2017](https://qiita.com/advent-calendar/2017/vscode) 2日目の記事です。**

## はじめに

はじめて Visual Studio Code (VSCode) をインストールしたとき、日本語にローカライズされていることで驚いた人もいるのではないでしょうか？

VS Code にはローカライズ ポイントが設定されており、誰でも翻訳に参加できるようになっています。

この記事は 2017 年にそこで起こったことを個人的な視点からまとめた活動レポートです。
また参加するときの注意点みたいなものを最後に載せています。見た目は難しそうですがとても簡単です。

なお必ずしもコミュニティの総意ではないので注意してください :)

## 活動レポート

![41670e5c3e7d1c51dcee5ab9c74d039e.png](https://qiita-image-store.s3.amazonaws.com/0/76740/61d73875-f57c-2d4f-6d98-25830f75f5a4.png)

|                | All    | vscode-editor | vscode-extension | vscode-workbench |
| -------------: | -----: | :-----------: | :--------------: | :--------------: |
| 原文[文]       | 30.36K | 5.43K         | 6.64K            | 17.45K           |
| 翻訳者[人] | 35     |

画像は全言語でのステータス。表は日本語限定で見たものになります。

> * vscode-editor : エディター部分の文字列や、そこに関係する IntelliSense のドキュメントが入っています。
> * vscode-extension : ビルトインしている拡張機能の翻訳箇所が入っています。vscode 本体は monaco-Editor、UI、 API などの基本を提供しているだけなので、たいていの機能は拡張機能で動いていたりします。
> * vscode-workbench : エディター以外のたいていの UI や設定の IntelliSense ドキュメントが入っています。
> * vscode-setup : コミュニティーに公開される前に翻訳され、内容に変化がないので一部言語向けに開いています。日本語はその対象外です。

### 2016 年 12 月
* ローカライズ プロジェクトの公開が初めて予告されました。

### 4 月
* 4 月 10 日から transifex で公開されました。

* 同月の 25 日ごろに一応日本向けの Slack チャンネルを作成しています。

### 5 月
コミュニティーに公開されるまえに翻訳された内容をいくつかを修正、統一しました。どちらも当時の多数決で決まっています。

* **「属性/プロパティ/型 〇〇〇」と「〇〇〇 属性/プロパティ/型」の混合**

特別どちらかが正解というわけではないかと思われます。ただ「後者が多い」「日本語として適切」という理由からこちらが選択されるようになりました。

* **「端末」と「ターミナル」の混合**

「ターミナル」にほぼ統一することになります。わざわざ文字数が多いほうを選択した理由として「統合ターミナル」の存在がありました。当時 1 箇所に「統合端末」という翻訳もあったのですが、たいていの方が「統合ターミナル」として認識しており、今後不特定多数が翻訳する "terminal" がぶれるのはよくないということで「ターミナル」に統一されるようになりました。

わかりやすいところとしては出力パネルのタブがあったので変更に気づいた方も多かったようです。

![64e3848325ee11b80774c8732baa05ff.png](https://qiita-image-store.s3.amazonaws.com/0/76740/1162bc10-6011-b558-063d-2c5d79f12c62.png)

* **「再読み込む」**

これは思い当たる方が多いのではないでしょうか。
拡張機能をインストールしたあとに表示されるボタンが「再読み込む」になっていた問題です。言い訳ですがコミュニティーに公開される前に翻訳されたものだったりします。[Twitter](https://twitter.com/search?q="再読み込む")

![再読み込む.png](https://qiita-image-store.s3.amazonaws.com/0/76740/876366dc-c447-ea7e-c7d8-f8b7094fb39b.png)


### (3~) 4 ~ 6 月
* **カスタム配色の実装が本格化**

カスタム配色を指定するとき IntelliSense をトリガーすると簡単な説明が表示されます。その内容は大体このとき翻訳されました。

簡単な説明に「全体の前景色。この...」といった「です。」で終わらない翻訳が多くあるのは、やはりコミュニティーに公開される前の翻訳の名残だったりします。

![7b395a303a7c43ff9659a11ca5b860bf.png](https://qiita-image-store.s3.amazonaws.com/0/76740/39325cec-b1e9-a303-69a0-beb1fb1f0513.png)

### 6 月
この月も見どころがありました。

* **マルチ ルート ワークスペースの実装が始まった**

ワークスペースに複数のルート フォルダーを指定して保存/共有できる機能です。この頃はまだこの用語が不安定で「マルチ ルート フォルダー」なんていう用語もありました。

現在は「ワークスペース」の用語がほとんどになっています。これに合わせ "workspace"、 "workspaces" に気を付けるようにしていたつもりですが、意味が通らないような訳があればお知らせください。

* **OSS Community Call が始まった**

MS による軽い成果発表が行われる電話カンファレンスです。OSS Community Call はこのときに始まりました。

* **Investigate into Language Packs**

表示言語パックを拡張機能として提供しだれでも作れるようにしよう、という issue が作成されました。

当初対応言語は 10 カ国語 11 言語でしたが、コミュニティーが MS に言語をリクエストできるようになったことで今後同封するリソースの容量が多くなることが予想されるからという理由もあるようです。

現在 On Deck ですがいつ実装されるかはわかりません。実装されたときには、ローカライズ箇所を抜き出してリソースにするアプリケーションも OSS ですので、おそらく気軽に誰でも翻訳を公開できるようになります。

https://github.com/Microsoft/vscode/issues/29008
https://github.com/Microsoft/vscode/issues/39178

* **better-merge 拡張機能の翻訳**

この拡張機能はマージの競合部分にマーカーを表示する拡張機能で、元は外部のものだったのですが VS Code 本体に統合されました。

マージする側とされる側を表すブランチを通常 "ours/theirs" (自分側/相手側) と表記することが多いのですが、この拡張機能では "current/incoming" 表記になっています。この表記に変更した [PR#9](https://github.com/pprice/vscode-better-merge/pull/9) は残っていますが提案の issue#8 は issue 機能を消したときに消されてしまったようです。

内容としては 「ours/teirs が習慣になってるけど悪い習慣だよね。こんなのどう」 というものでした。

自分もその考えを尊重して 「現在/入力側」 と割り当てたのですが、わかりづらかったでしょうか。エゴサした範囲では反対意見が見受けられなかったので個人的には安堵しています。


![英語.png](https://qiita-image-store.s3.amazonaws.com/0/76740/e2389d79-5c4d-425e-ee23-3fbbb0df4554.png)

![日本語.png](https://qiita-image-store.s3.amazonaws.com/0/76740/a1fd2fd4-34db-e2d3-e50c-70d754a961ab.png)



### 7 月
* **ヘルプ コマンドの再翻訳**

vscode のコマンドのヘルプを表示する `code -h` コマンドがあります。実はこれにも翻訳がついていたりします。

ただ実装の問題で統合ターミナルで実行しなければいけないという正直あまり意味のないものですが、翻訳に少し修正を加えました。

![df567d85002ea322d9766e694c93791b.png](https://qiita-image-store.s3.amazonaws.com/0/76740/080e2f1f-7f34-5a88-86e2-942077880c4f.png)
(変更前)

コマンド ライン ヘルプの翻訳は苦労するらしく `tsc` のヘルプコマンドも似たような命令形として翻訳されています。

また余談ですが、Windows の PowerShell で実行する場合、起動引数に `"-NoExit","chcp","65001"` を指定しないと文字化けします。

この問題は優先順位の問題からまだ解決されてません。

> タスク出力の文字化けにはコマンドをjsonに追加してエンコードを回避することが現在公式で推奨される方法です。

* **Emmet コマンドの再翻訳**

Emmet 2.0 で再実装されたことで新しい翻訳を割り当てる機会があったため、より一般的な訳を当てるようにしました。

コマンド パレットには英語で入力することを個人的にはお勧めします。特に Emmet は訳しづらく推測できるものではありません。実際のところ、入力するコマンドとして使われることを意識してない翻訳がほとんどかと思われます。

### 8 月
* **OSS Community Call 2**

OSS Community Call の 2 回目が下旬に行われました。vscode の PM が参加して成果発表をしていました。

* **MT:MICROSOFT**

この頃から Microsoft の翻訳 bot が翻訳の提案欄で働くようになります。精度が高いとは言えないのですが Microsoft のスタイルガイド沿った翻訳がされているような気がします。

![262fffdd1105e6c928b336fb74b1cff5.png](https://qiita-image-store.s3.amazonaws.com/0/76740/c91b1f96-483e-c207-ff1d-5af67fa062a3.png)


### 9 月
* **リソースの更新タイミングの変更**

週 2 回の更新からだいぶ不定期に更新されるようになりました。Wiki のほうでは修正されていないようなので注意してください。

### 10 月
31 日の Insider-build のフィードバック アイコンがパンプキンになった月です。さりげなさがかわいいです。

![0bc33ff775d6b3e59aa980db9b08f2db.png](https://qiita-image-store.s3.amazonaws.com/0/76740/b32789b5-3d0c-23f6-95b6-3cb5744c74f9.png)


* **OSS Community Call 3**

OSS Community Call の 3 回目が上旬に行われました。

* **検索ウィジェットの再翻訳**

気になっていた方が多いかもしれない翻訳を修正しました。

検索ウィジェット (Windows では ctrl+F) があるのですが、その翻訳を修正しています。

![d4471ed0f42725afb3a01f6871fb034c.png](https://qiita-image-store.s3.amazonaws.com/0/76740/81278c6f-601f-9ff4-be45-f8f42525b5f5.png)

![1bed36581ac5ce2e2b87e402da5c70ae.png](https://qiita-image-store.s3.amazonaws.com/0/76740/2b9c4d06-956c-1b99-7175-96f788c40e8c.png)

白が当初の翻訳で黒が修正後です。

この原文は "{0} of {1}" です。時々気になってはいたのですが、issue が作成されたのでこれに対応しました。


* **"Go problem"**

これに対しあまり気づかれていないかもしれない問題も修正しています。


![DKp630MVYAA2hpz.jpg](https://qiita-image-store.s3.amazonaws.com/0/76740/4ec309eb-409a-2664-254d-539924db8691.jpeg)

![DKp630MVYAA2hpz-.png](https://qiita-image-store.s3.amazonaws.com/0/76740/3580413d-57ce-4635-d4a0-a4971577e1cc.png)

これはタスクを実行するときに使用する問題マッチャーの項目の翻訳です。原文は "Go problem" でした。

日本以外でも Go を動詞として翻訳しているところがあり意外と盲点だった箇所です。気づいていた方はいるのでしょうか。

### 11 月
私情で忙しかったのであまりかかわっていません。

## 感想
こういった翻訳プロジェクトに参加するのは初めてだったので、とても貴重な経験ができました。UI の翻訳は場所によって意味や語尾が変わりやすく正直きれいにまとめられたと思わない部分も多々ありました。以後の反省点として頑張っていきたいと思います。

これとは別に 3 月ごろから公式ドキュメントとリリース ノートを翻訳し[公開](https://vscode-doc-jp.github.io/)してきたのですが、こちらも多くの方のアクセスをいただいています。力を入れてやっていたわけではないのでアクセスが思っていた以上に多く少々恥ずかしいところがあります。

![e4ef186a8ddc21507b8d6cb0d7acd835.png](https://qiita-image-store.s3.amazonaws.com/0/76740/e32be8e1-8dad-b6bd-5c00-41af1403780f.png)

10月分のリリースでは 「マルチルート」 「Git status explorer」 「ロゴの更新」 などメジャー アップデートで実装されるかと思っていた機能が普通に実装され少々驚きました。次はどの[機能要求](https://github.com/Microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+future+request+label%3Afeature-request+sort%3Areactions-%2B1-desc)が実装されるのかとわくわくしています。

今後も急成長する Visual Studio Code に目を離せません 🎉

## [おまけ] 翻訳するとき気を付けることが 3 分でわかる

翻訳プロジェクトは公開されているので誰でも参加することができます。

参加方法はいろいろな箇所に乗っているのでここでの説明を省き、注意するべきところをまとめます。


### 翻訳のスタイルが事実上指定されている
Microsoft の[スタイル ガイド](https://www.microsoft.com/ja-jp/language/StyleGuides) に従うことが暗黙のルールになっているようです。[JTF日本語標準スタイルガイド（翻訳用)](https://www.jtf.jp/jp/style_guide/styleguide_top.html)を利用している方は簡単に MS のスタイルへ対応できます。

これと大まかな違う点は次の通りです。

**英字を挟むときは半角スペースを入れる**
JTF と違い半角スペースを必ず入れる必要があります。

**元の原文に半角スペースが含まれる場合は訳語でも入れる**
例: "page layout" -> 「ページ▵レイアウト」

ただし、いくつか例外があります。

例: "page-layoutl" -> 「ページレイアウト」
ハイフンがあるとき結合する必要があります。

例: "log on" -> 「ログオン」
例: "shut down" -> 「シャットダウン」
副詞が来るときは結合する必要があります。

例: "sidebar" -> 「サイド▵バー」
「**バー」(bar) は半角スペースを挟みます。

**感嘆/疑問符を大文字しなくていい**
例: "hello!?" -> 「こんにちは!?」

**いくつかの表現はすでに決まっている**
P 35 以降を見ていくと例文が乗っていることがわかります。
ただこれに関しては量が多く、ローカライズ プロジェクトが公開されたときから完全にしたがっている部分が多いようには見えないので、すべてがかなりの強制力を持っているわけではないようです。
注意してみるのをお勧めするのは、エラーメッセージの例と Verbs のセクションです。

### 翻訳を修正しづらい
2 つの票、つまり翻訳者(1vote)と誰かひとりの投票があればすぐに翻訳が確定します。

確定した翻訳を修正するには、日付か、膨大な一覧から選択し、採用されている投票数より多くの票を得る必要があります。
通常は問題ないのですが、不適切なものが入っても発覚→修正まで時間がかかったりするので少し面倒です。

この対応策は[こちら](https://github.com/Microsoft/Localization/wiki/Need-help-or-report-an-issue)です。日本人で翻訳してる人数人にメンションを飛ばしても解決できそうな気もします。

**この辺はプロのレビュアーを用意すれば解決しそうな気もします。 どうでしょうか Microsoft さん。**

### 参加するときの同意
参加するときに [Microsoft Contribution License Agreement](https://cla.microsoft.com/cladoc/microsoft-contribution-license-agreement.pdf) へ同意する必要があります。

次は内容の自己解釈です。

**Q. 機械翻訳を入れることができるか**
**A.** 難しい。
提出物はオリジナルである必要がある(例外あり)。
Microsoft が提供してる MT:MICROSOFT の結果はもちろん平気です。

**Q. 仕事中に提出できるか**
**A.** 無理。
雇用主と一緒に契約するか、許可があれば別。

**Q. 提出物の著作権**
**A.** Microsoft が配布、複製を行うためにロイヤリティフリーなライセンスがつく。