我有一个大型语言文件,其结构如下:
Click here|Cliquez ici
New|Nouveau
...
然后我有一个英语和法语的应用程序。语言文件由 CONF.pm 加载到 hash 中%t
,它在整个应用程序中的使用方式如下:
<input type="button" value="$t{'Click here'}">
<a href="new.pl">$t{'New'}</a>
...
因此,根据用户设置,应用程序将以英语或法语显示。为此,必须先通过 CONF.pm 加载大型语言文件以填充%t
。
问题是我们的大多数用户都是英语用户,每次加载语言文件都会浪费不少内存。语言文件对于英语用户来说并不是“真正”必要的,因为 的值$t{'Click here'}
始终是Click here
。
你会同意这可能不是最智能的语言配置设计。当用户是英语时,Perl 是否有可能不加载语言文件?当值未定义时,只显示哈希的键?
<input type="button" value="Click here">
<a href="new.pl">New</a>
我无法更改$t{'...'}
应用程序中的所有文件,因为文件数量肯定有数千个。不为每个请求加载大型语言文件将为我节省大量内存。