对我的多语言网站方法的看法

时间:2013-04-01 02:24:14

标签: php coding-style internationalization multilingual

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

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

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

然后将根据URL(/?lang = en)

中的语言显示相应的文本
<h1><? l('welcome!', 'bienvenue!') ?></h1>

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

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

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

1 个答案:

答案 0 :(得分:1)

使用像l函数这样的单例或全局函数的一般想法很常见。你肯定是在正确的轨道上!

但是你的方法确实有一些缺点:

  • 如果您在代码中的多个位置显示相同的文字或图片,则需要在的每个位置维护翻译。
  • 更新或更正翻译需要涉及代码,这对于没有经验的编码员或非编程人员来说非常困难(例如,如果您有翻译帮助您)。
  • 如果您要添加新语言,则必须修改每个源文件,这将是非常难以忍受的。这可能不太可能,但如果它发生了,你就会与自己交叉。

更典型的解决方案是将翻译放在单独的文件中,可以是简单的哈希,也可以是XML等结构化数据格式,然后l函数看起来就像l('welcome') ;参数是一个键,l将从单独的文件中查找给定语言的正确翻译。