JS多言語化話

0
kyo_ago @kyo_ago

多言語対応時の文字リソースの持ち方、誰か正解教えて。。。

2014-11-18 18:26:03
kyo_ago @kyo_ago

複数アプリ、フロントエンド、バックエンドあった場合、共通化するの?しないの?

2014-11-18 18:26:35
kyo_ago @kyo_ago

@teppeis 答えが欲しいんです。。。!

2014-11-18 22:18:45
kyo_ago @kyo_ago

@teppeis 「全体を共通化して翻訳してから各モジュール毎に必要な単位にバラす」みたいな感じなんでしょうか? 「使ってない文言を削除できない」って点なんですが、「不要な文言の把握や各モジュール間の重複文言の扱い、文言から使用箇所の把握」とかどうしたらいいんでしょうか?

2014-11-18 22:35:33
kyo_ago @kyo_ago

文言リソースはサーバサイドに置いて毎回フロントに渡すのがいいの? ネイティブアプリも考えるとそもそもサーバサイドには文言置かずにクライアントサイドに置いてサーバからメッセージ出したい場合は文言idで指定するのがいいの?

2014-11-18 22:39:47
kyo_ago @kyo_ago

@teppeis なるほど。割とUIそのまま翻訳してるんですね。

2014-11-18 22:43:34
kyo_ago @kyo_ago

翻訳を外部に依頼する場合、何でやり取りするのがいいの? やっぱり翻訳キーに日本語はまずい? 翻訳キーはUIと関連づけるべき?

2014-11-18 22:50:00
kyo_ago @kyo_ago

@teppeis うーん。理想ではあるんですが、外部に依頼する場合だとワークフローをどうするか悩ましいですねー (ツールの問題な気もしますが。。。)

2014-11-18 22:52:16
kyo_ago @kyo_ago

@teppeis うーん。どちらかと言うと翻訳フローというより、こっち系の話で悩んでたりします twitter.com/kyo_ago/status…

2014-11-18 23:01:41
kyo_ago @kyo_ago

「諦めましょう」というメッセージしか受け取れない。。。 // はてなにおける Web アプリケーションの国際化 wakaba.github.io/packages/slide…

2014-11-18 23:03:28
kyo_ago @kyo_ago

今まで毎回.po使って破綻してるんだけど、みんなほんとにあれ使ってるの?

2014-11-18 23:08:25
kyo_ago @kyo_ago

@teppeis やっぱり文言.jsonなんですね。。。 アーキテクチャによるのはもちろんなんですが、多分みんな困ってるし、少なくとも「この辺を考慮するとこの部分はこうなる」的なベストプラクティスはほしいと思ってます

2014-11-18 23:13:22
kyo_ago @kyo_ago

「でかい.poをサーバサイドに置いて、まんま変換した文言.jsonを毎回クライアントに渡す」は全員が不幸になるのでもうやめたい

2014-11-18 23:15:36
kyo_ago @kyo_ago

@teppeis 個人的には大規模化した時に「ソース内で使ってないのに入ってる文言(誰もどこに使われてるかわからない)」をどうするかとか気になってます

2014-11-18 23:21:47
kyo_ago @kyo_ago

翻訳用のJSコンパイラが必要?

2014-11-18 23:22:31
kyo_ago @kyo_ago

@teppeis なるほど。現状サーバサイドとクライアントサイドとiOSとAndroid(新、旧)があって、grepするのもめんどくなってきてどうしようか悩んでます

2014-11-18 23:24:34
kyo_ago @kyo_ago

あと、grepできるようにすると翻訳用のキーを全体で一意にしないといけなくて辛い。 階層化して参照したい

2014-11-18 23:25:23
kyo_ago @kyo_ago

というか、使ってるキーは自動的に管理して使ってないキーあったら弾くとかしてほしい

2014-11-18 23:26:14
kyo_ago @kyo_ago

翻訳オブジェクトがグローバル変数なら、esprimaで追っかけられるか?

2014-11-18 23:27:16
kyo_ago @kyo_ago

@teppeis んー、なんかそもそも前提条件とか状況の認識がずれてる気がするのでどっかで直接話したほうがいい気がします

2014-11-18 23:28:43
kyo_ago @kyo_ago

JSのソースの中に直接[% l('hello_world') %]みたいなのを埋め込んで、デプロイ前にサポート言語ごとのjsを書き出して配布するってのはまずいのかな? (テンプレートとかもプリコンパイルして言語リソース埋め込む)

2014-11-18 23:31:27
kyo_ago @kyo_ago

現状言語リソースのキーはほぼ一意に把握できるから変換はある程度容易にできそうだし、グローバル変数名とかと合わせれば普通に元ソースをreplaceしてもいいような? リロードしないと言語設定切り替えられないけど

2014-11-18 23:33:06
kyo_ago @kyo_ago

テンプレートとソース内のグローバル変数への参照を置き換えれば今でも普通に動く気がするな。 複数箇所からの参照をまとめて保存できないから若干サイズ増えそうだけど、複数箇所から参照される奴って大抵短いし問題ないような?

2014-11-18 23:35:15
kyo_ago @kyo_ago

事前に使ってる翻訳キーが一覧でとれれば言語リソースから必要な物だけ埋められるし、使ってない言語リソースを特定できるか? テンプレートへの埋め込み文言とコード内で使用してる文言を分けてあれば、あとで「この文言なんだっけ」とか言うのが減らせるか)

2014-11-18 23:39:17
kyo_ago @kyo_ago

考えてたら結局「現状使ってる言語キーの一覧が取りたい」ってことなのかな。。。

2014-11-18 23:43:14