我想用PHP开发一个多语言页面,例如英语/德语/日语..所以当我点击德语页面语言将改为德语,然后我点击英语它变成英语.请指导我这样做.提前致谢....
奇怪的是,很多php开发人员似乎都认为所有自然语言都有相同的语法.制作一个没有参数的翻译框架是不可能的.虽然字符串$lang['welcomeTo'] $sitename可能会为大多数语言正确翻译(欢迎使用stackoverflow),但它不适合土耳其语,例如它应该是$sitename $lang['welcomeTo'](stackoverflow'a hos geldiniz)或德语,无论哪种方式都可行(Willkommen auf stackoverflow /StackoverflowheißtSiewillkommen ).当你试图用多个变量翻译句子时,这会变得更糟.
唯一的选择是使用参数化翻译(例如:函数)
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
Run Code Online (Sandbox Code Playgroud)
简而言之:如果你想要真正的i18n,使用函数来检索你的翻译,而不是变量.您可能也想查看php 的intl扩展.
我们使用http://php.net/manual/en/intro.gettext.php方式.工作正常,我们已经在其他项目(非PHP项目)中使用http://www.gnu.org/software/gettext/manual/gettext.html.所以很容易开始.
我认为正确的方法取决于谁翻译文本!如果是开发人员,您可以为每种语言提供自己的视图.但是,如果你有其他人翻译文本,像gettext(翻译是在一个专门的文件,有工具来处理这种文件)是正确的选择!