0

私のページは 3 つの言語で利用でき、各ファイル (インデックス、連絡先など) のヘッダーに、選択した言語ファイル (en、ru、pl) を含めています。

<?php
session_start();
include('language/'.$_SESSION['lang'].'.php');
?>

en.php

<?php
session_start();
$lang = array();

$lang['hello'] = 'Hello';
$lang['world'] = 'World !';
?>

ru.php

<?php
session_start();
$lang = array();

$lang['hello'] = 'привет';
$lang['world'] = 'мир';
?>

そして、これが私がそれらをエコーし​​ている方法です:

<p><? echo $lang['hello'].' '.$lang['world'];?></p>

これは実際には問題なく動作していますが、.js ファイルに問題があります。警告したり、どこかにテキストを挿入したりしたい場合はできません。

たとえば、私の .js ファイルの 1 つにアラートがあります。

if (something_obj.val() == ''){
   alert('Wrong username given !');
   return false;
}

js ファイルに言語ファイルを実装するにはどうすればよいですか? ニュース .js 言語ファイルを作成する必要がありますか?

4

2 に答える 2

3

次のような翻訳で、言語ごとに 1 つの js ファイルを持つことができます。

// german.js
var translations = {
  'hello': 'hallo',
  'world': 'welt'
};

他の JS スクリプトでは、次のようにします。

alert(translations['hello'] + " " + translations['world'])

もちろん、より短い変数名を選択することもできますtranslations

次に、php ファイルに、言語に基づいた正しい JS スクリプトを含めます。

<script src="languages/<?php echo $_SESSION['lang']; ?>.js"></script>
于 2013-03-29T12:27:15.200 に答える
1

新しいファイルを作成できます。たとえばjs.php、適切な言語ファイルをロードし、すべての変数を JavaScript 配列に出力します。

js.php

<script type="text/javascript">
var lang = {
<?php
session_start();
include('language/'.$_SESSION['lang'].'.php');

$data = array();
foreach ( $lang as $key => $value ) {
  $data[] = '"' . $key . '" : "' . $value . '"';
}
echo implode(',', $data);
?>
};
</script>

次に、JavaScript 変換配列を使用する必要があるページにこのファイルを含め、次のように使用します。

alert(lang.key);

また"、翻訳文字列に符号がある場合は、次のようにエスケープする必要があります\"

$value = str_replace('"', '\"', $value);
于 2013-03-29T12:27:49.297 に答える