php - 在 PHP 中创建多语言网页

标签 php html

我想用 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,请使用函数来检索您的翻译,而不是变量。您可能想查看 intl也是 php 的扩展。

关于php - 在 PHP 中创建多语言网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/776807/

相关文章:

php - 在 ModelAsController 子类上调用操作

php - CodeIgniter 项目结构

php - 关于 MySQL 中的 Join 语句(或其他有效方法)的问题

jquery - 使 "dynamic"div 响应

html - 同时水平和垂直居中段落文本

php - 密码保护页面的最佳方法

html - 制作一个看起来像选择框的无序列表

javascript - 将事件 anchor 类链接到页面部分

html - margin :0 auto div improper arrangement on zoom

PHP:在每个文件的开头和结尾调用一个函数