0

我有一个多语言网站。该站点有一个区域设置标志菜单,其中包含这些链接

example.com/en/pages/more-info
example.com/fr/pages/plus-d-informations
example.com/de/pages/mehr-infos
example.com/pl/pages/więcej-informacji

当用户访问特定页面时,他会看到整个页面已本地化,例如法语。但是菜单必须显示网站使用的所有可能的本地化。

问题是:我应该使用这段代码吗

putenv("LANG=" . $language); 
setlocale(LC_ALL, $language); 
bindtextdomain("messages", "Locale");
bind_textdomain_codeset("messages", 'UTF-8'); 
textdomain("messages");

然后

<a href="/fr/pages/<?=_("more-info")?>">French</a>
... 

每次在标志菜单中显示每个项目时切换区域设置?

$language在标志菜单中显示每个项目之前更改。

这是一个正确的解决方案吗?

4

1 回答 1

0

当您迭代语言以打印出替代语言链接时,临时切换区域设置是一种常见的做法。我在我工作过的网站上做过。

  • 不要忘记在开始之前保存“当前语言环境”,并在完成该代码部分后将语言环境更改回它。
  • 这似乎是很多切换语言环境的机制。您需要将其封装在一个函数中。
  • 至于性能,我不确定您的按摩是如何存储的,或者它们是否被缓存。如果您发现您的方法表现不佳,那么添加一些缓存机制并修复它应该很简单。
于 2013-03-22T10:28:04.980 回答