2

クライアント側で Javascript を多用する PHP アプリケーションがあります。翻訳者に新しい言語を提供する簡単な方法を提供するために、PHP 側に単純なシステムがあります。しかし、javascript が言語要素をユーザーに表示する必要がある場合があります (おそらく、[OK] または [キャンセル] ボタン、または「読み込み中」など)。

PHP では、サーバー側にキャッシュされたテキスト ファイルがあり、一方にフレーズ コードが含まれ、もう一方にその翻訳が含まれています。翻訳者は、英語を自分の言語に置き換えて、アプリケーションに統合する翻訳版を送ってください。

クライアント側でも同様のものが必要です。翻訳された定数のセットにすぎない JavaScript インクルードを持っていることに気づきましたが、ページの読み込みごとに、そのほとんどが不必要な潜在的に大きなファイルをダウンロードしています。

誰かがこれに対処しなければなりませんでしたか?もしそうなら、あなたの解決策は何でしたか?

編集:明確にするために、ここでは「オンザフライ」の翻訳について言及していません。翻訳はすでに準備されており、すぐに使用できます。必要なのは、効率的な方法でクライアントが利用できるようにすることだけです。

4

5 に答える 5

11

javascript を php からフィードするのはどうですか? だから、ヒービングの代わりに:

  <script type='text/javascript' src='jsscript.js'></script>

行う

 <script type='text/javascript' src='jsscript.php'></script>

次に、php ファイルで、出力されたすべてのテキストを関連する定数に置き換えます。

PHP コード内から正しいキャッシュ ヘッダーを出力するようにしてください。

編集

これらは私が使用するヘッダーです:

header('Content-type: text/javascript');
header('Cache-Control: public');
header('expires: '. date("r", time() + ( 7 * 24 * 60 * 60 ) ) ); // 1 week
header("Pragma: public");
于 2009-01-02T18:00:23.477 に答える
2

私は通常、適切な言語値を JavaScript オブジェクトとして別のファイルにロードし、残りのコードが参照できるようにします。

var messages = {
    "loading": "Chargement"
}

alert(messages.loading);

言語ライブラリは、最初の読み込み後にクライアント側にキャッシュされ、コンテキストに基づいて読み込まれる個別のファイルに値を分割することで、読み込み効率を向上させることができます。たとえば、公開操作用の小さなライブラリ、ログインの背後にある追加のライブラリなどです。

于 2009-01-04T06:49:50.083 に答える
1

あなたが探しているのは、AJAX (Javascript を使用して非同期要求を交換するクライアントとサーバー) のようです。

既製のものをお探しの場合は、Google Translation AJAX APIsをご覧ください。

于 2009-01-02T18:02:18.433 に答える
0

私はPim Jagerの答えが好きで、自分でやった. PHP に JavaScript を生成させたくない場合 (たとえば、パフォーマンス上の理由から)、JavaScript ライブラリのマスター コピーを用意し、それらが変更されたときに、翻訳プログラムを実行して各ライブラリのバージョンを生成することができます。言語ごとに。次に、PHP が送信するスクリプト タグに現在のユーザーに適したバージョンを挿入するだけです。

私は、さまざまな顧客向けにローカリゼーションとブランディングの両方を必要とするシステムに取り組みました。私たちがしたことは、画面に送られるものはすべて、[ 3027 ] (またはそのようなもの) のような固有のマクロを持っていました。次に、各マクロ コードのエントリと、各マクロを置き換えるテキストを含むロケール ファイルとブランディング ファイルを用意しました。プログラムは、すべてのソース ファイルとすべての言語をループし、置換を行います。

ローカリゼーション、金額、日付、時刻などの関数も必要であることがわかりました。すべてうまく機能しました。

もう 1 つ重要なものが必要であることがわかりました。それは、すべての言語ファイルを調べて、必要なコードがすべて含まれていることを確認するためのツールです。時間を大幅に節約。

于 2009-01-03T22:04:13.607 に答える
0

私は個人的にこれを行う必要はありませんでしたが、私の最初の推測は、サードパーティのライブラリを参照することです. Google AJAX API にはこれを行うためのツールしかないと思います。ライブラリは Google 経由であるため、サイトから JavaScript ファイルがダウンロードされることはありません。

次のサイトを少し掘り下げてみてください: http://code.google.com/apis/ajaxlanguage/documentation/

それがあなたを助けるかどうか私に知らせてください。私が管理しているウェブサイトに同様のものを実装することに興味があるかもしれません。

がんばれ、C

于 2009-01-02T18:04:03.170 に答える