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 文件中,我有一个警报:

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

如何在我的 js 文件中实现语言文件?我需要创建一个新闻 .js 语言文件吗?

4

2 回答 2

3

您可以为每种语言创建一个 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 回答