我想用php开发一个多语言页面,例如英语/德语/日语。所以当我点击德语时,页面语言会变为德语,然后我点击英语,它会变为英语。请引导我这么做。提前谢谢……

最佳答案

奇怪的是,这么多php开发人员似乎认为所有自然语言都有相同的语法。没有参数的翻译框架是不可能的。尽管字符串$lang['welcomeTo'] $sitename可以正确地翻译大多数语言(欢迎使用stackoverflow),但对于土耳其语(例如应该是$sitename $lang['welcomeTo'](stackoverflow'a hos geldiniz)或德语(willkommen auf stackoverflow/stackoverflow hei_t sie willkommen)都会失败。当你试图翻译多变量的句子时,情况会变得更糟。
唯一的选择是使用参数化翻译(比如:函数)

Language::getCurrentLanguage()->translate('welcomeTo', array('sitename' => $sitename));

# Translation file for english (configfile-style):
welcomeTo=Welcome to $sitename

# Translation file for turkish:
welcomeTo=$sitename'a hos geldiniz

# Translation file for german:
welcomeTo=Willkommen auf $sitename
# Or
welcomeTo=$sitename heißt sie willkommen

简而言之:如果您想要真正的i18n,请使用函数来检索您的翻译,而不是变量。您可能还需要研究php的intl扩展。

07-26 08:10