我正在拥有一个庞大的医院管理软件,在PHP和后端SQL Server中开发了500多个屏幕。现在我想将HMS改为双语。目前,所有屏幕都是静态的,即屏幕上的标签/文本不是来自DB,而是硬编码的。像下面的屏幕截图一样。
在上面的屏幕中,所有文本"登录","用户名","密码"等都是硬编码的。
我的问题是采用哪种方法动态更改文本。
提前致谢。
答案 0 :(得分:1)
我见过的一种方法是创建单独的语言文件
例如
public_html
/lang
/en
lang.php
/fr
lang.php
每个文件都包含一个数组
en/lang.php
$lang = array(
'login-title' => 'Login',
'username-label' => 'Username'
);
fr/lang.php
$lang = array(
'login-title' => 'Entrer',
'username-label' => 'Pseudo'
);
(不要判断我使用谷歌翻译!)
请务必注意,数组及其键在每个文件中都命名为相同,只有值会发生变化。
现在使用一些会话变量,或者通过解析语言参数的URL,您可以加载相应的语言文件,并且由于数组键完全相同,您可以分别回显每个。
echo $lang['login-title'];
我特别喜欢这种方法的一件事是,如果您需要翻译人员来完成工作,您可以将文件发送给他们,因为它是一种非常基本的格式,他们通常可以直接将更改实现到数组中。 (指导很少)