2011-09-14 37 views
0

私はさまざまな非常に大きなJavaScriptファイルを持っており、特定の文字列のみを抽出する必要があります。入力は次のような数百行になります。コードから特定の文字列のみを抽出する

function foo("ignore this string"){ 
var n = "copy this"; 
} 
function bar("copy this string"){ 
var i = "ignore this string"; 
} 
var globalX ="copy if over a certain length"; 
var globalY ="copy if within 2 lines of 'globalX'"; 

出力は単純な文字列のリストになります。ルールを書くことは難しくありませんが、JavaScriptは100ページのコードを読み込み、解析目的の文字列として扱うことができますか?もしそうでなければ、私はどんな他のツールを使うべきですか?どんな提案も歓迎です!

+0

あなたの質問は完全ではありません。 –

+0

申し訳ありません。そして、すばやい返信に感謝します。私は、単純なJavaScriptベースの冒険ゲームエンジンを作っています。ゲームを他の言語でも利用できるようにしたい。私が見つけることができるすべての翻訳ツールは、かなり静的なWebページを前提としています。だから私は生のコードをとり、翻訳者に与えることができる文字列のリストを作成する予定です。洗練されたマクロの検索と置換を可能にするツールを見つけることを望んでいますが、どこから始めるべきかはわかりません。 –

答えて

0

上記のコメントに基づき、必要なものはJavaScriptのローカライズの仕組みです。アプリケーションをビルドしてパッケージ化する方法に依存するいくつかのオプションがあります。

1)言語ごとに個別のJSファイルを作成し、リクエストから彼の情報を取得することにより、クライアントに応じて、正しいものを()をロード:ここ

は、メカニズムの一部です。

非常に貧しい - 重複とオーバーヘッドが多い。

2)ビット改良された方法は、オブジェクトによって各文字列を表現することです:私あなたのコードよりも

var localeStrings = 
{ 
    'some message': 
    { 
     'en/US':'Some text', 
     'ru/RU':'Какой-то текст' 
    } 
} 

あなたはリクエストヘッダから言語を取得し、再び、localeStrings['some message']['en/US']を呼び出すことで、実際のメッセージを取得し、ちょうど私が'en/US'を使用したのと同じように使用します。

また、不十分なデータがクライアントにロードされるため、不良です。

3)リクエストに応じて動的に置き換えられるものがあります。

一般に、トークンを置き換えるサーバ側のコンポーネント(例えばサーブレット)のために、サーバ側のファイルからのデータでトークン( `## {some token} )が含まれています。

これは、ユーザー応答が少し遅延する原因となることがありますが、これは前提条件であり無視できるものです。

あなたの毒を選んでください。

もっとたくさんあると確信しており、回答でそれらを見ることを心配しています。私はすぐに使えるものを見つけることができませんでした。

EDITrelated conversationにあなたを指すように忘れてしまいました。

+0

ありがとうございます。置換部分は問題ではない - 私はオプション2のようなものを使うだろう。問題は、初期コード(文字列を含む)が英語で書かれていることである。オプション2に入る前に、コードを読み、文字列 'some message'(内部変数)を無視し、文字列 'some text'をコピーする必要があります。その後、得られたファイルは友好的なフランス人に送られます。 –

+0

あなたはその点を見逃していると思います。それとも私かもしれません。コードから文字列を外部化します(たとえば、オプション2を使用)。自動解析を可能にする一連のルールがない限り、手作業で行う必要があると私は思っています。もしあなたがそういったことをしているなら、あなたは見つけ出すことができる構文解析/正規表現マッチングエンジンを何度も実行しなければならない。パーサがキーで見つけたすべての文字列を置き換える( '' some message''オプション2から)、 'localeStrings'オブジェクトを別のJSファイルに入れ、フレンドリーなフランス人に渡してください。 – ZenMaster

+0

はい、解析/正規表現マッチングエンジンが必要です。私はマクロを一度書くことができ、その後私が作成するすべての将来のゲームでそれを使うことができるものが欲しい。以前はAdventure Game Studioを使用していましたが、翻訳者が必要とする可能性のあるすべての文字列を抽出するワンクリックボタンが含まれていました。私は同様のツールを作成したいが、自分のルールをいくつか追加したい。 –

関連する問題