GengoML (Gengo Markup Language) is a translation order format for convenience of converting the result into expected formats (typically .strings
, .xml
, .yml
...).
gengo でたくさん頼むとマジで処理がヤバい
gengo では [[[]]]
を無視してくれる。これは指示などに使ったりするが、今回アノテーションにも用いる。
これを使い
[[[@HELLO_WORLD]]]
[[[Category:UI Control, Instruction:アプリのチュートリアルに入るので、柔らかめにお願いします. 次の URL でスクリーンショットを参照してください。 , Context:http://dropbox.com/public/screenshot1.png]]]
こんにちは!
[[[/@HELLO_WORLD]]]
などとする。
これを翻訳すれば
[[[@HELLO_WORLD]]]
[[[Category:UI Control, Instruction:アプリのチュートリアルに入るので、柔らかめにお願いします. 次の URL でスクリーンショットを参照してください。 , Context:http://dropbox.com/public/screenshot1.png]]]
Hello!
[[[/@HELLO_WORLD]]]
などと帰ってくるので、適切にパースし、
//ja
"HELLO_WORLD" = "こんにちは!";
//en
"HELLO_WORLD" = "Hello!";
などと結果を得る。
これを手動で書くのは大変なので、生成のためのフォーマットを用意する。ベースはベース言語の .strings
// base.strings
"HELLO_WORLD" = "こんにちは!";
"GOOD_EVENING" = "こんばんは!";
"GOOD_MORNING" = "おはようございます!";
"GOOD_NIGHT" = "おやすみなさい!";
ここにアノテーションを付ける。(.strings
は //
コメントを許容する)
// base.strings
"HELLO_WORLD" = "こんにちは!"; //@category=Label @instruction=これこれがこうです。 @screenshot=http://dropbox.com/
"GOOD_EVENING" = "こんばんは!"; //@category=Button @instruction=これこれがこうです。 @screenshot=http://dropbox.com/
"GOOD_MORNING" = "おはようございます!"; //@category=Title @instruction=これこれがこうです。 @screenshot=http://dropbox.com/
"GOOD_NIGHT" = "おやすみなさい!"; //@category=Prompt @instruction=これこれがこうです。 @screenshot=http://dropbox.com/
(ところで、スクリーンショットを得るために、UI テストのフレームワークを使ってシナリオを記述し、元言語のスクリーンショットを得る。これは、国際対応した際に画面崩れが無いか、あるいはきちんと出力出来ているかを確認するためにも役立つ。)
これを利用して、上記のオーダフォーマットを生成する。
- 翻訳に関係ない文章多過ぎて、翻訳者としてうざくないか?
- ウザいと思う。
- 結果が帰ってくるときに
[[[]]]
が消される可能性。 *冒頭に[[[DO NOT DELETE [] SURROUNDED STATRMENTS.]]]
とか付ける. 消えたら仕方ない。手動で頑張る。それくらいは仕方ない。 - 結果を取得するために?
- Gengo API を使う。 必要十分に揃っている。 http://developers.gengo.com/v2/api_methods/
- Gengo は非同期だが、どう対応するか?
- 面倒なので、何回かリクエストを飛ばす。その際に In Review のものを全て処理する。
- コメントがあるものはどうするか
- 保留する?確認を促す。