实现多语言PHP的最佳方式

前端之家收集整理的这篇文章主要介绍了实现多语言PHP的最佳方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先 – 我知道有很多关于多语言功能的答案,我没有找到我想要的答案

我想到了可以使用的3种方式,每次在Web窗体界面添加一个新值时,我需要使用PHP创建语言文件

前2个是类似的 – 使用数组或在特定语言文件中定义并将其包含在运行的开始处,
但在这种情况下,我可能会加载数千个定义或数组,以便在每个页面中使用少量.

第三种方法是创建使用关键字或完整短语调用函数,并使用IF-s或switch来选择正确的术语(或者如果没有匹配则返回被调用的键

最好的方法是什么?

编辑:我决定做一些测试,我尝试了3种不同的方式,并测量了时间和记忆:

>我定义了一个数组(22个值),并从1到1,000,000运行它 – 检查调用值 – 使用%运算符选择要使用的值,并将其设置在变量上

时间:0.476591110229秒
>内存:6536字节

>我使用相同的数组(22个值),并使用函数调用它 – return $arr [$string]; (只是为了方便的工作方式,并有能力改变它,以不同的方式,如果我需要)

>花费时间:0.960635185242秒
>内存:6704字节

>我创建了一个包含字符串列表的函数,并使用switch – > case我选择了返回的字符串

>花费时间:1.46953487396秒
>内存:848字节

那么现在的问题是什么是正确的选择 – 喜欢时间或喜欢记忆,
如果这些网站很大,并且会占用很多内存 – 我无法改变它,因为它使用数组构建 – 如果它与功能一起工作,我可以随时改变它

我非常感谢你的帮助,

谢谢

代码方面,这样的东西对你来说很棒.它必须基于用户的选择(从按钮或菜单中选择语言)或基于浏览语言(它不是最好的aprouch).

的index.PHP

<?PHP

// verify the user's choice
if ($_POST[lang] == "en") 
{
    include_once("en_language.PHP");
}

if ($_POST[lang] == "pt") 
{
    include_once("pt_language.PHP");
}

// calling a lable in your page
echo LABEL_MENU;


// the rest of your file
...
?>

en_language.PHP

<?PHP
// ENGISH Language file
define('LABEL_MENU','Main Menu');

// the whole file with the labels of your system

?>

pt_language.PHP

<?PHP
// PORTUGUESE Language file
define('LABEL_MENU','Menu Principal');

// the whole file with the labels of your system

?>

补充

如果你希望使用数组类型,而不是使用define()的Constant值,但是我不知道什么比..

$arrays = array("MAIN_MENU" => "Main Menu","LEFT_MENU" => "Left Menu"); 
echo $arrays["MAIN_MENU"];

猜你在找的PHP相关文章