pContinuousTranslation2023-05-06
2023-05-06
もともと英語であるコンテンツが増えてきて、どう扱うべきか悩む
Scrapboxの日本語を英語に翻訳するシステムを組んだけど、もともと英語の文章をDeepLして置いてあるのまで英語に翻訳するのはなんだが穴を掘って埋めているような気持ち
ところで、日本語から英語への自動翻訳システムを作ったのですが、最近は英語を書くことが多くなりました。英語での思考と日本語での思考を統合する良い方法があるはずです。現在、英語から日本語への機械翻訳を使用していますが、馬鹿馬鹿しいです。
これ自体が英語で書いたものの機械翻訳
まだまとまってないが断片を記録しておく
ページ全体に関するインジケータ
僕が直接英語で書いてるのがen
日本語で書いてから翻訳したとしても最終的に僕が書いてるならこれ
僕が直接日本語で書いてるのがjaだが、これがデフォルト値なので省略される
僕が日本語で書いたものを機械翻訳しただけのものがjaen
この説明だけ見ればenをつければ良いように感じる
何が違いなのか
日本語版は出版社との契約によりこのScrapboxに置くことはできない
最近のコンテンツは英語で書いて、機械翻訳して日本語のコンテンツもでき、それがScrapboxに置かれる
だいたいページの上半分に英語、下半分に日本語という形になる
なぜなら英語版を見た人にとって「機械翻訳の英語」と「オリジナルの英語」ならオリジナルが上に来るのが自然だから
余談
ここで暗黙の判断が起きている。言語化するとこう:
「上に英語、下に日本語」のページの上の英語を見て下に行かずに帰るような日本人は想定読者としなくて良い
このようなケースで下半分の日本語を英訳するのはおかしい
案A: 「機械翻訳するな」的インジケータアイコンの導入
そのアイコンがついている行とその子を翻訳しない
機械翻訳ゾーンの親にこのアイコンをつける
機械翻訳の日本語が英語版に掲載されることになる
ちょっとおかしい
日本語混じり英文をそのまま載せたい時には必要
案B: 「英語版に転載するな」的インジケータアイコンの導入
上と同じ構造で、翻訳しないだけでなく転載もしない
案件C: 「ここから下を転載するな」インジケータ
あー「日本語訳が下にある」シチュエーションに関してはこれがいいかも
行に対するforループがその表記を見たところでbreakされるだけ
使い始めた
いや、いいアイデアだと思ったけど微妙だったな
ツリー構造をパースする実装が面倒でbreakしたらいいじゃんと思ったが、ユーザ目線でない設計だった
ユーザ目線では英語版があって日本語訳を置いて、その後でその日本語を見て関連リンクをつけたくなったりする
この場合、関連リンクは翻訳されてページをつなぐものになるべき
問題発覚
https://gyazo.com/79a7e4abaf7af4687c09aa80739a428c
https://gyazo.com/e269d411b65914e5079248e2436c5f6e
Scrapboxへのインポートに失敗した時、キャッシュのコミットが走る前にアクションが終了するから翌日も同じ量の再翻訳をかけてしまう
12000円くらいドブに捨ててるな、残念
先にコミットするようにしたけど、それはそれで差分が大きすぎる時にはインポートに失敗して、次回はそれとの差分になるから「英語版に反映されてないページ」が生まれるだろうし微妙ではある
いや、違うなこれ
前回4/27に行ったこと
広範囲の訳し直し
高速化のために並列化
これをした際に「更新されてたらフラグを立てる」が機能しなくなってる
なので「更新されてたら翻訳キャッシュをファイルに保存する」も機能しなくなっている
その結果、1回だけ3000円掛かるはずだったのがその後毎日掛かった
広範囲の訳し直しをした時には差分が大きすぎて差分アップロードが機能しないことは期待だった
なのでその時だけ手動でアップロードすれば良いと思った
実際には翻訳キャッシュが機能していなかったことによりその後も毎回広範囲の訳し直しが発生して差分アップロードが失敗した
2023-05-07
https://gyazo.com/b79a76e3f68931adbdd22f3a1677ae4a
https://gyazo.com/c33e0ce2f79ffe6b47c60191befb50c6