JSアプリの多言語対応アーキテクチャについて
@teppeis 個人的には大規模化した時に「ソース内で使ってないのに入ってる文言(誰もどこに使われてるかわからない)」をどうするかとか気になってます
2014-11-18 23:21:47@teppeis なるほど。現状サーバサイドとクライアントサイドとiOSとAndroid(新、旧)があって、grepするのもめんどくなってきてどうしようか悩んでます
2014-11-18 23:24:34JSのソースの中に直接[% l('hello_world') %]みたいなのを埋め込んで、デプロイ前にサポート言語ごとのjsを書き出して配布するってのはまずいのかな? (テンプレートとかもプリコンパイルして言語リソース埋め込む)
2014-11-18 23:31:27現状言語リソースのキーはほぼ一意に把握できるから変換はある程度容易にできそうだし、グローバル変数名とかと合わせれば普通に元ソースをreplaceしてもいいような? リロードしないと言語設定切り替えられないけど
2014-11-18 23:33:06テンプレートとソース内のグローバル変数への参照を置き換えれば今でも普通に動く気がするな。 複数箇所からの参照をまとめて保存できないから若干サイズ増えそうだけど、複数箇所から参照される奴って大抵短いし問題ないような?
2014-11-18 23:35:15事前に使ってる翻訳キーが一覧でとれれば言語リソースから必要な物だけ埋められるし、使ってない言語リソースを特定できるか? テンプレートへの埋め込み文言とコード内で使用してる文言を分けてあれば、あとで「この文言なんだっけ」とか言うのが減らせるか)
2014-11-18 23:39:17@kyo_ago 一連の話、興味深く見てます。一人で作って翻訳してるサイトでは、「JSには言語依存なものを入れない」というポリシーでやってみました。CSSの:after使ったり、非表示divに入れたりしてます。maps.ontarget.cc/dams/
2014-11-18 23:45:44@kyo_ago 被参照がチェックできないという問題は解決しないけど、「ソフトウェアグローバリゼーションのこれから」というイベントでゲームの翻訳やってる人が「バージョン管理の対象は、ファイル単位ではなく、文言単位にすべき」と言ってました。
2014-11-18 23:48:22@tyanagida なるほどー バージョン管理の問題もありますね(はてなの資料でも「gitにバイナリとして認識させてる」とありましたが。。。)
2014-11-18 23:50:28@tyanagida なるほどー バージョン管理の問題もありますね(はてなの資料でも「gitにバイナリとして認識させてる」とありましたが。。。)
2014-11-18 23:50:28「アプリは事前ダウンロードするから言語情報全部入りで重くなっても大丈夫」ってことでブラウザのフロントエンドと別に考えていいんだろうか? このへん、アプリの実装してて辛くなったりしないのか? 誰が一番負担を負ってるんだ?
2014-11-18 23:53:10ブラウザのフロントエンドだけにかぎって言えば一旦サーバサイドに集めた文言設定を毎回配信してもらうのがいい気がするな。 サーバサイドから文言設定引き上げるのは非常に難しいし、アプリ起動のフロー内にサーバサイドの処理が絶対入ってくるから
2014-11-18 23:57:39