【发布时间】:2014-12-05 22:43:32
【问题描述】:
我有一个包含大约 700 个术语的数据库。我只想编写一个名为 internationalize 的单个 php 文件,该文件将检查 mysql 数据库并返回正确的翻译。所有 PHP 变量都已设置,并且有一个包含所有语言翻译的视图。大约有 11 种语言。我看了很多地方,但没有一个适合我的情况。任何建议将不胜感激。
if (!isset($_SESSION))
{
session_start();
}
if (isset($setup))
{
$lang=$_SESSION['setupLang'];
}
elseif (isset($_SESSION['lang']))
{
$lang=$_SESSION['lang'];
}
else
{
require("fetchMainConfig.php");
}
$lang_code = $lang;
//file_dir contains the language codes for example: il,fr,pt,ge and so on
$sql = "SELECT file_dir FROM `hydroserver_translation`.`language_file_dir`";
if($lang_code = $sql){
// What should go in here??? What is the best way to
// dynamically translate the database?
}
我还附上了数据库视图的副本。我打算这样写代码,如果没有语言翻译,默认翻译是英文。
【问题讨论】:
-
有什么理由不使用 gettext 和 POT 文件?
-
您要翻译什么文字?我不明白输入是什么。
-
看起来脚本根据所选择的语言为 php 变量赋值。该脚本似乎生成了几个变量,这些变量从数据库中获取其值并用于脚本的其余部分。
-
我们希望在翻译时为用户提供更大的灵活性。由于数据库和网站包含多个科学变量,最好让用户输入翻译数据。 @A.L 这些是我们用来在网站上显示信息的所有 php 变量。所以我们基本上是在翻译整个网页的内容。
-
我认为如果你有值和翻译,你想创建一个变量,
$value可以为每个值访问。你可以写$$database_result["value"] = translation。这个链接解释了它是如何工作的:php.net/manual/en/language.variables.variable.php 但这也可能会覆盖 php 中的重要变量或函数,所以我不推荐这种方法。为此最好使用数组,因为从数组中存储和检索数据更容易。
标签: php mysql language-translation