1

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

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

<?
    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">

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

4

1 回答 1

1

使用像您的l函数这样的单例或全局函数的一般想法非常普遍。你绝对是在正确的轨道上!

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

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

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

于 2013-04-01T02:31:47.553 回答