Php 开发多语言系统
这更像是一个分析性问题 我需要知道如何最好地制作一个多语言系统,也就是一个用户可以更改语言的系统。该语言将存储在cookie或数据库中。Php 开发多语言系统,php,translation,multilingual,analytical,Php,Translation,Multilingual,Analytical,这更像是一个分析性问题 我需要知道如何最好地制作一个多语言系统,也就是一个用户可以更改语言的系统。该语言将存储在cookie或数据库中。 我过去使用过每种语言的不同文件,例如: nl.php en.php index.php 正如您所看到的,这个系统既低效又不安全。有更好的方法吗? 我现在可以想出一些方法来做到这一点,但我真的不知道哪种方法会好 有人能帮我吗?请不要只说“像这样做!”,还要告诉我为什么这是一个好方法。如果您不需要提供通过web界面更改本地化文本的功能,您可以像这样做: inclu
我过去使用过每种语言的不同文件,例如: nl.php en.php index.php 正如您所看到的,这个系统既低效又不安全。有更好的方法吗? 我现在可以想出一些方法来做到这一点,但我真的不知道哪种方法会好
有人能帮我吗?请不要只说“像这样做!”,还要告诉我为什么这是一个好方法。如果您不需要提供通过web界面更改本地化文本的功能,您可以像这样做: include/locales.php 这是最快的方法,因为使用哈希解析单个包含文件是非常快的操作。
如果您需要提供通过web界面修改本地化字符串的功能,那么您将需要在DB中存储本地化字符串,并在每次显示页面时从DB中读取em。。。这种方法的速度要慢得多。首先,文件中不需要更多的语言。将每种语言保存在不同的文件中
不要忘记,您可以在语言文件中保留其他设置,如:日期格式、数字格式等/。。。这就是重点。我需要能够通过web界面轻松地更改语言。在这种方法中,通过web界面更改语言有什么问题?我使用$language变量作为从cookie或任何您喜欢的地方传递的语言的标识符。我的意思是您不能更改语言字符串,而不是语言用户希望看到的页面。但这种方式似乎效率低下:\n例如,是否有一种方法,我可以用荷兰语/英语制作整个系统,并且多语言系统可以在另一个文件中翻译字符串中的所有内容?速度会较慢。更复杂的是,我该如何用它来表示像“Welcome,$user!”这样的字符串呢?因为显然我需要在脚本的顶部包含locales文件,但是在包含locales文件之后,用户的变量可能会改变。。。
$lang['hi'] = 'Hoi';
$lang['howareyou'] = 'Hoe gaat het?';
$lang['hi'] = 'Hi'];
$lang['howareyou'] = 'How are you?';
include($language . '.php');
<?php
if (!isset($locales)) {
$locales = array(
"en" => array(
"hi" => "Hi",
"howareyou" => "How are you?"
),
"nl" => array(
"hi" => "Hoi",
"howareyou" => "Hoe gaat het?"
)
);
}
?>
include("include/locales.php");
if (!isset($locales[$language])) $locale = $locales[$deflang]; // $deflang could be "en"
else $locale = $locales[$deflang];
echo $locale["hi"]." ".$locale["howareyou"];