Php 对我的多语言网站方法的意见

Php 对我的多语言网站方法的意见,php,coding-style,internationalization,multilingual,Php,Coding Style,Internationalization,Multilingual,我正在以自己的方式处理一个双语网站。我的方法应该允许适当的搜索引擎索引,并将保持在一个页面上没有外部文件的一切 一个函数将处理要显示的内容: <? function l($en, $fr){ echo ($_GET['lang'] === 'fr') ? $fr : $en ; } ?> 然后,将根据URL(/?lang=en)中的语言显示相应的文本 对于图像,这是我的解决方案: <img src="<? l('hi-en.png

我正在以自己的方式处理一个双语网站。我的方法应该允许适当的搜索引擎索引,并将保持在一个页面上没有外部文件的一切

一个函数将处理要显示的内容:

<?
    function l($en, $fr){
        echo ($_GET['lang'] === 'fr') ? $fr : $en ;
    }
?>

然后,将根据URL(/?lang=en)中的语言显示相应的文本


对于图像,这是我的解决方案:

<img src="<? l('hi-en.png', 'hi-fr.png')?>" width="100" height="20">
“width=“100”height=“20”>

如果使用这种方法,有人能说出它的缺点吗?对于包含所有语言内容的页面,使用单一函数句柄语言是不寻常的吗?

使用单一函数或全局函数(如
l
函数)的一般想法非常普遍。您的思路肯定是正确的

不过,您的方法确实存在一些缺点:

  • 如果代码中有许多地方出现相同的文本或图像,则需要在每个地方维护翻译
  • 更新或更正翻译需要费力地阅读代码,这对于没有经验的编码人员或非编码人员来说是非常困难的(比如,如果您有翻译人员帮助您)
  • 如果你要添加一种新的语言,你将不得不修改每个源文件,这将是非常痛苦的。这可能不太可能,但如果真的发生了,你会很生气

一个更典型的解决方案是将翻译放在一个单独的文件中,或者作为一个简单的散列,或者作为一种结构化的数据格式(如XML),然后您的
l
函数看起来就像
l('welcome')
;该参数是一个键,
l
将从单独的文件中查找给定语言的正确翻译。

使用类似于
l
函数的单例函数或全局函数的一般想法非常普遍。您的思路肯定正确

不过,您的方法确实存在一些缺点:

  • 如果代码中有许多地方出现相同的文本或图像,则需要在每个地方维护翻译
  • 更新或更正翻译需要费力地阅读代码,这对于没有经验的编码人员或非编码人员来说是非常困难的(比如,如果您有翻译人员帮助您)
  • 如果你要添加一种新的语言,你将不得不修改每个源文件,这将是非常痛苦的。这可能不太可能,但如果真的发生了,你会很生气

一个更典型的解决方案是将翻译放在一个单独的文件中,或者作为一个简单的散列,或者作为一种结构化的数据格式(如XML),然后您的
l
函数看起来就像
l('welcome')
;参数是一个键,
l
将从单独的文件中查找给定语言的正确翻译。

我刚刚阅读了框架如何使用,可能对您有帮助我刚刚阅读了框架如何使用,可能对您有帮助
<img src="<? l('hi-en.png', 'hi-fr.png')?>" width="100" height="20">